이 저장소에는 잉크에서 EVM을 호출하기 위해 XVM을 사용하는 예제 계약이 포함되어 있습니다! WASM 계약에서 XVM을 사용하는 데 필요합니다. 여기에는 계약에 사용할 XVM 체인 확장 구현이 포함되어 있습니다. 잉크도 마찬가지! XVM 체인 확장을 구현한 SDK를 그대로 사용하도록 계약합니다.
이 구현은 EVM의 기본 ERC20
래퍼입니다. 기본 기판 주소와 상호 작용합니다. 래퍼 패턴을 구현하여 deposit
기능을 가지며 WASM VM과 EVM withdraw
브리지리스 솔루션으로 사용할 수 있습니다. PSP22
표준을 구현하므로 이를 지원하는 모든 DEX/지갑에서 사용할 수 있습니다. deposit
및 withdraw
사용 흐름을 설명하는 테스트를 살펴보시기 바랍니다.
이 구현은 EVM의 기본 ERC721
래퍼입니다. 기판 기본 기판 주소와 상호 작용합니다. 래퍼 패턴을 구현하여 deposit
기능을 가지며 WASM VM과 EVM withdraw
브리지리스 솔루션으로 사용할 수 있습니다. PSP34
표준을 구현하므로 이를 지원하는 모든 DEX/지갑에서 사용할 수 있습니다.
사용자 정의 XvmDefaultEnvironment
에 XVM 체인 확장 구현이 추가되었습니다.
Cargo.toml에서 상자를 가져옵니다.
잉크로 계약서에 추가하세요! 매크로 #[ink::contract(env = xvm_sdk::XvmDefaultEnvironment)]
.
계약에서 self.env().extension().xvm_call(..args)
과 함께 사용하세요.
이 크레이트는 ink_env의 체인 확장 빌더를 사용하여 xvm_call을 구현하는 Xvm
구조체를 노출합니다. 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
실행하세요.