59个版本 (4个重大更改)
0.5.18 | 2023年11月16日 |
---|---|
0.5.13 | 2023年10月31日 |
0.3.5 | 2023年7月31日 |
#50 in 魔法豆
每月下载量559次
1MB
21K SLoC
switchboard-evm
一个用于与基于EVM链的Switchboard交互的Rust库。
类型文档:docs.rs/switchboard-evm
EVM SDK:github.com/switchboard-xyz/evm-sdk
Switchboard文档:docs.switchboard.xyz
安装
在您的项目目录中运行以下Cargo命令
cargo add switchboard-evm
或者将以下行添加到您的Cargo.toml中
[dependencies]
switchboard-evm = "0.5.15"
用法
以下是在Switchboard函数中使用EvmFunctionRunner的示例
/// Required
static CLIENT_URL: &str = "https://goerli-rollup.arbitrum.io/rpc";
// Generate your contract's ABI
abigen!(Receiver, r#"[ function callback(uint256) ]"#,);
#[derive(EthAbiType, EthAbiCodec, Default, Debug, Clone)]
pub struct Params {
callback: Address,
}
#[sb_function(expiration_seconds = 120, gas_limit = 5_500_000)]
async fn sb_function(client: SbMiddleware, _call_id: Address, params: Params) -> SbResult {
let receiver_contract = Receiver::new(params.callback, client.into());
let mut random = [0u8; 32];
Gramine::read_rand(random.as_mut_slice()).map_err(|_| SbError::SgxRandReadFail)?;
Ok(vec![receiver_contract.callback(U256::from_little_endian(&random))])
}
#[sb_error]
pub enum SbError {
SgxRandReadFail
}
依赖项
~33–49MB
~1M SLoC