refactor: update database schema and fix chain_id handling across components
Some checks failed
AITBC CI/CD Pipeline / lint-and-test (3.11) (push) Has been cancelled
AITBC CI/CD Pipeline / lint-and-test (3.12) (push) Has been cancelled
AITBC CI/CD Pipeline / lint-and-test (3.13) (push) Has been cancelled
AITBC CI/CD Pipeline / test-cli (push) Has been cancelled
AITBC CI/CD Pipeline / test-services (push) Has been cancelled
AITBC CI/CD Pipeline / test-production-services (push) Has been cancelled
AITBC CI/CD Pipeline / security-scan (push) Has been cancelled
AITBC CI/CD Pipeline / build (push) Has been cancelled
AITBC CI/CD Pipeline / deploy-staging (push) Has been cancelled
AITBC CI/CD Pipeline / deploy-production (push) Has been cancelled
AITBC CI/CD Pipeline / performance-test (push) Has been cancelled
AITBC CI/CD Pipeline / docs (push) Has been cancelled
AITBC CI/CD Pipeline / release (push) Has been cancelled
AITBC CI/CD Pipeline / notify (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.11) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.12) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.13) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-summary (push) Has been cancelled
Security Scanning / Bandit Security Scan (apps/coordinator-api/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (cli/aitbc_cli) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-core/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-crypto/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-sdk/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (tests) (push) Has been cancelled
Security Scanning / CodeQL Security Analysis (javascript) (push) Has been cancelled
Security Scanning / CodeQL Security Analysis (python) (push) Has been cancelled
Security Scanning / Dependency Security Scan (push) Has been cancelled
Security Scanning / Container Security Scan (push) Has been cancelled
Security Scanning / OSSF Scorecard (push) Has been cancelled
Security Scanning / Security Summary Report (push) Has been cancelled

- Add new Transaction fields: nonce, value, fee, status, timestamp, tx_metadata
- Add block_metadata field to Block model
- Remove account_type and metadata fields from Account creation
- Simplify contract deployment transaction structure
- Fix chain_id hardcoding in PoA proposer and RPC router
- Update config to use /opt/aitbc/.env path with extra="ignore"
- Switch from starlette.broadcast to broadcaster module
- Update CLI
This commit is contained in:
2026-03-23 12:11:34 +01:00
parent 81e96f102f
commit 5dccaffbf9
24 changed files with 298 additions and 28 deletions

View File

@@ -917,18 +917,20 @@ def send(ctx, chain_id, from_addr, to, data, nonce):
config = ctx.obj['config']
try:
import httpx
import json
with httpx.Client() as client:
try:
payload_data = json.loads(data)
except json.JSONDecodeError:
payload_data = {"raw_data": data}
tx_payload = {
"type": "TRANSFER",
"chain_id": chain_id,
"from_address": from_addr,
"to_address": to,
"value": 0,
"gas_limit": 100000,
"gas_price": 1,
"sender": from_addr,
"nonce": nonce,
"data": data,
"signature": "mock_signature"
"fee": 0,
"payload": payload_data,
"sig": "mock_signature"
}
response = client.post(

View File

@@ -308,3 +308,4 @@ def create_http_client_with_retry(
transport=RetryTransport(),
timeout=timeout
)
from .subprocess import run_subprocess

View File

@@ -0,0 +1,31 @@
import subprocess
import sys
from typing import List, Optional, Union
from . import error, output
def run_subprocess(cmd: List[str], check: bool = True, capture_output: bool = True, shell: bool = False) -> Optional[str]:
"""Run a subprocess command safely with logging"""
try:
if shell:
# When shell=True, cmd should be a string
cmd_str = " ".join(cmd) if isinstance(cmd, list) else cmd
result = subprocess.run(cmd_str, shell=True, check=check, capture_output=capture_output, text=True)
else:
result = subprocess.run(cmd, check=check, capture_output=capture_output, text=True)
if capture_output:
return result.stdout.strip()
return None
except subprocess.CalledProcessError as e:
error(f"Command failed with exit code {e.returncode}")
if capture_output and e.stderr:
print(e.stderr, file=sys.stderr)
if check:
sys.exit(e.returncode)
return None
except Exception as e:
error(f"Failed to execute command: {e}")
if check:
sys.exit(1)
return None