Python SDK now uses per-network artifact submodules directly. It does not depend on cloning the TS SDK monorepo.
Submodules live under:
artifacts_submodules/dev/l1_tvm_tonartifacts_submodules/dev/l2-evmartifacts_submodules/testnet/l1_tvm_tonartifacts_submodules/testnet/l2-evmartifacts_submodules/mainnet/l1_tvm_tonartifacts_submodules/mainnet/l2-evm
Network metadata lives under:
artifacts/networks/<network>/ton.jsonartifacts/networks/<network>/tac.json
One command:
python3 scripts/sync_artifacts_sources.pyWhat it does:
git submodule sync --recursive && git submodule update --init --recursive- Builds TON artifacts in each
l1_tvm_ton - Installs deps for each
l2-evm, bootstraps local/offlinesolccache for Hardhat, compiles TAC artifacts - Exports bundle to
artifacts/artifacts.bundle.json - Exports pytvm fixtures to
artifacts/sandbox_fixtures
Optional flags:
python3 scripts/sync_artifacts_sources.py --skip-submodule-sync
python3 scripts/sync_artifacts_sources.py --skip-ton-build
python3 scripts/sync_artifacts_sources.py --skip-hardhat-compile
python3 scripts/sync_artifacts_sources.py --skip-sandbox-fixtures
python3 scripts/sync_artifacts_sources.py --sources-root artifacts_submodules --metadata-root artifacts/networks --out artifacts/artifacts.bundle.jsonfrom sdk.TacSdk import TacSdk
from structs.Struct import SDKParams, Network
sdk = await TacSdk.create(
SDKParams(
network=Network.TESTNET,
# artifacts is optional, default is artifacts/artifacts.bundle.json
)
)If artifacts is not passed, SDK tries artifacts/artifacts.bundle.json.