一个用于与LightPool区块链进行交互的Python SDK,特别专注于现货交易功能。
- 🔐 加密操作: 生成密钥对、签名交易
- 🔧 交易构建: 流畅的API用于构建各种操作的交易
- 🌐 RPC客户端: HTTP客户端用于与LightPool节点通信
- 🪙 代币操作: 内置支持代币创建、转账、铸造、合并和分割
- 📈 现货交易: 完整的现货交易功能,包括下单、撤单、查询订单簿
- ⚡ 异步支持: 使用asyncio的完整异步/等待支持
pip install -r requirements.txtfrom lightpool_sdk import Signer
# 生成新的随机密钥对
signer = Signer.new()
address = signer.address()
print(f"地址: {address}")
# 或者从现有私钥导入
secret_key_bytes = bytes([0] * 32) # 您的私钥字节
signer = Signer.from_secret_key_bytes(secret_key_bytes)from lightpool_sdk import LightPoolClient
client = LightPoolClient("http://localhost:26300", timeout=30)
# 测试连接
is_healthy = await client.health_check()
print(f"节点健康状态: {is_healthy}")from lightpool_sdk import (
TransactionBuilder, ActionBuilder, CreateTokenParams,
Address, U256
)
# 创建代币参数
create_params = CreateTokenParams(
name="我的代币",
symbol="MYT",
decimals=18,
total_supply=U256(1_000_000),
mintable=True
)
# 构建操作
action = ActionBuilder.create_token(
Address.two(), # 合约地址
Address.two(), # 模块地址
create_params
)
# 构建并签名交易
verified_tx = TransactionBuilder.new()\
.sender(signer.address())\
.nonce(1)\
.gas_budget(1_000_000)\
.gas_price(1)\
.add_action(action)\
.build_and_sign(signer)
# 提交到网络
response = await client.submit_transaction(verified_tx)
print(f"交易哈希: {response.digest}")from lightpool_sdk import CreateMarketParams, MarketState
# 创建BTC/USDT市场
market_params = CreateMarketParams(
name="BTC/USDT",
base_token=btc_token_address,
quote_token=usdt_token_address,
min_order_size=100_000, # 0.1 BTC最小订单
tick_size=1_000_000, # 1 USDT价格精度
maker_fee_bps=10, # 0.1% maker费用
taker_fee_bps=20, # 0.2% taker费用
allow_market_orders=True,
state=MarketState.Active,
limit_order=True
)
action = ActionBuilder.create_market(
SPOT_CONTRACT_ADDRESS,
market_params
)
tx = TransactionBuilder.new()\
.sender(signer.address())\
.add_action(action)\
.build_and_sign(signer)
response = await client.submit_transaction(tx)from lightpool_sdk import PlaceOrderParams, OrderSide, TimeInForce, OrderParamsType
# 限价买单
order_params = PlaceOrderParams(
side=OrderSide.Buy,
amount=1_000_000, # 1 BTC (6位小数)
order_type=OrderParamsType.Limit(
tif=TimeInForce.GTC
),
limit_price=50_000_000_000 # 50,000 USDT (6位小数)
)
action = ActionBuilder.place_order(
market_address,
market_id,
balance_id,
order_params
)
tx = TransactionBuilder.new()\
.sender(signer.address())\
.add_action(action)\
.build_and_sign(signer)
response = await client.submit_transaction(tx)from lightpool_sdk import CancelOrderParams
cancel_params = CancelOrderParams(
order_id=order_id
)
action = ActionBuilder.cancel_order(
market_address,
market_id,
cancel_params
)
tx = TransactionBuilder.new()\
.sender(signer.address())\
.add_action(action)\
.build_and_sign(signer)
response = await client.submit_transaction(tx)python examples/simple_spot_client.pypython examples/burst_spot_client.pySDK使用异常进行错误处理:
try:
response = await client.submit_transaction(verified_tx)
print("交易提交成功!")
print(f"哈希: {response.digest}")
print(f"收据: {response.receipt}")
except NetworkError as e:
print(f"网络错误: {e}")
except CryptoError as e:
print(f"加密错误: {e}")
except TransactionError as e:
print(f"交易错误: {e}")
except Exception as e:
print(f"其他错误: {e}")- Python 3.8+ (推荐Python 3.9+)
- 运行中的LightPool节点(用于集成测试和示例)
注意: 本项目已针对Python 3.8进行了兼容性优化,支持较老的Python版本。
# 安装依赖
pip install -r requirements.txt
# 安装SDK到开发环境(推荐)
pip install -e .
# 验证安装
python test_import.pypython setup.py build# 使用自定义脚本(推荐)
python run_tests.py --run-integration # 运行集成测试
python run_tests.py --unit-only # 只运行单元测试
python run_tests.py --all # 运行所有测试
# 使用pytest直接运行
python -m pytest tests/ -m "not integration" # 单元测试
python -m pytest tests/integration/ -m integration # 集成测试
python -m pytest tests/ # 所有测试本项目采用与LightPool项目相同的许可证。