该存储库包含使用 XVM 从 ink 调用 EVM 的示例合约!需要使用 WASM 合约中的 XVM。它包含在您的合约中使用的 XVM 链扩展的实现。还有墨水!实现 XVM 链扩展的合约 SDK 按原样使用。
该实现是 EVM 上底层ERC20
的包装。与本机底层地址交互。由于它实现了包装器模式,因此具有deposit
和withdraw
功能,并且可以用作 WASM VM 和 EVM 之间的无桥解决方案。它实现了PSP22
标准,因此可以在任何支持它的DEX/钱包中使用。请查看描述deposit
和withdraw
使用流程的测试。
此实现是 EVM 上底层ERC721
的包装。与基底本机基底地址交互。由于它实现了包装器模式,因此具有deposit
和withdraw
功能,并且可以用作 WASM VM 和 EVM 之间的无桥解决方案。它实现了PSP34
标准,因此可以在任何支持它的DEX/钱包中使用。
添加到自定义XvmDefaultEnvironment
的 XVM 链扩展的实现。
将板条箱导入您的 Cargo.toml 中
用墨水将其添加到您的合同中!宏#[ink::contract(env = xvm_sdk::XvmDefaultEnvironment)]
。
在您的合同中将其与self.env().extension().xvm_call(..args)
一起使用。
该板条箱公开了Xvm
结构,该结构使用 ink_env 中的链扩展构建器实现 xvm_call。它使其与其他自定义环境(如 openbrush)兼容。查看 PSP22 Wrapper 的示例。
将板条箱导入您的 Cargo.toml 中
在合约中导入结构使用use xvm_helper::*;
与XvmErc20::transfer(..args)
一起使用
克隆存储库
跑yarn
打造墨水!合同yarn build:ink
要在本地节点上运行:确保您有一个正在运行的本地节点./target/release/astar-collator --dev -lruntime::contracts=debug -l=runtime=debug,xvm=trace --enable-evm-rpcp
(拥有 XVM 和 ink!日志)。
然后运行yarn test
。
要在 Shibuya 上运行:从 .env.example 创建一个 .env 文件并填写您的凭据:在ACCOUNT_PRIVATE_KEY_EVM
中添加您的 Shibuya EVM 私钥,并在SUBSTRATE_MNEMO
中添加您的 Shibuya Substrate 密码。然后运行yarn test:shibuya
。