name: mvx_sdk_py_core
description: MultiversX Python SDK 的核心 SDK 操作 - 入口点、提供者和网络。
MultiversX SDK-Py 核心操作
这个技能涵盖了 multiversx-sdk v2 库的基本构建块。
入口点
网络特定的客户端,简化常见操作:
| 入口点 |
网络 |
默认 URL |
DevnetEntrypoint |
开发网 |
https://devnet-api.multiversx.com |
TestnetEntrypoint |
测试网 |
https://testnet-api.multiversx.com |
MainnetEntrypoint |
主网 |
https://api.multiversx.com |
LocalnetEntrypoint |
本地网络 |
http://localhost:7950 |
from multiversx_sdk import DevnetEntrypoint
# 默认 API
entrypoint = DevnetEntrypoint()
# 自定义 API
entrypoint = DevnetEntrypoint(url="https://custom-api.com")
# 代理模式(网关)
entrypoint = DevnetEntrypoint(url="https://devnet-gateway.multiversx.com", kind="proxy")
入口点方法
| 方法 |
描述 |
create_account() |
创建新账户实例 |
create_network_provider() |
获取底层网络提供者 |
recall_account_nonce(address) |
从网络获取当前 nonce |
send_transaction(tx) |
广播单个交易 |
send_transactions(txs) |
广播多个交易 |
get_transaction(tx_hash) |
通过哈希获取交易 |
await_completed_transaction(tx_hash) |
等待交易完成 |
网络提供者
低级网络访问:
| 提供者 |
使用场景 |
ApiNetworkProvider |
标准 API 查询(推荐) |
ProxyNetworkProvider |
通过网关直接节点交互 |
# 从入口点
provider = entrypoint.create_network_provider()
# 手动实例化
from multiversx_sdk import ApiNetworkProvider
api = ApiNetworkProvider("https://devnet-api.multiversx.com", client_name="my-app")
提供者方法
| 方法 |
描述 |
get_network_config() |
链 ID、燃气设置 |
get_network_status() |
当前纪元、nonce |
get_block(block_hash) |
获取区块数据 |
get_account(address) |
账户余额、nonce |
get_account_storage(address) |
合约存储 |
get_transaction(tx_hash) |
交易详情 |
query_contract(query) |
VM 查询(只读) |
交易生命周期
# 1. 创建账户并同步 nonce
account = Account.new_from_pem("wallet.pem")
account.nonce = entrypoint.recall_account_nonce(account.address)
# 2. 创建交易(通过控制器)
controller = entrypoint.create_transfers_controller()
tx = controller.create_transaction_for_transfer(
sender=account,
nonce=account.get_nonce_then_increment(),
receiver=receiver_address,
native_amount=1000000000000000000
)
# 3. 发送
tx_hash = entrypoint.send_transaction(tx)
# 4. 等待完成
result = entrypoint.await_completed_transaction(tx_hash)
print(f"状态: {result.status}")
最佳实践
- 使用入口点:简化配置
- 同步 nonce:在创建任何交易前
- 处理异常:包装网络调用
- 使用整数:对于金额(EGLD 有 18 位小数)