Ce référentiel contient des exemples de contrats utilisant XVM pour appeler EVM depuis Ink ! nécessaire pour utiliser XVM à partir des contrats WASM. Il contient une implémentation de l'extension de chaîne XVM à utiliser dans vos contrats. Ainsi que de l'encre ! contracte le SDK qui implémente l’extension de chaîne XVM à utiliser tel quel.
Cette implémentation est un wrapper d'un ERC20
sous-jacent sur EVM. Interagissez avec les adresses de substrat natives. Comme il implémente un modèle de wrapper, il dispose d'une fonction deposit
et withdraw
et peut être utilisé comme solution sans pont entre WASM VM et EVM. Il implémente la norme PSP22
et peut donc être utilisé dans n'importe quel DEX/portefeuille le prenant en charge. Veuillez consulter les tests qui décrivent le processus d'utilisation deposit
et withdraw
.
Cette implémentation est un wrapper d'un ERC721
sous-jacent sur EVM. Interagissez avec les adresses natives du substrat. Comme il implémente un modèle de wrapper, il dispose d'une fonction deposit
et withdraw
et peut être utilisé comme solution sans pont entre WASM VM et EVM. Il implémente la norme PSP34
et peut donc être utilisé dans n'importe quel DEX/portefeuille le prenant en charge.
Implémentation de l'extension de chaîne XVM ajoutée à un XvmDefaultEnvironment
personnalisé.
Importez la caisse dans votre Cargo.toml
Ajoutez-le à votre contrat à l’encre ! macro #[ink::contract(env = xvm_sdk::XvmDefaultEnvironment)]
.
Dans votre contrat, utilisez-le avec self.env().extension().xvm_call(..args)
.
Cette caisse expose la structure Xvm
qui implémente xvm_call avec le générateur d'extension de chaîne de ink_env. Cela le rend compatible avec d’autres environnements personnalisés comme openbrush. Jetez un œil à PSP22 Wrapper pour un exemple.
Importez la caisse dans votre Cargo.toml
Importez la structure dans votre contrat, utilisez use xvm_helper::*;
Utilisez-le avec XvmErc20::transfer(..args)
Cloner le dépôt
Exécuter yarn
Construisez de l'encre ! contrats yarn build:ink
Pour exécuter sur un nœud local : assurez-vous d'avoir un nœud local exécuté avec ./target/release/astar-collator --dev -lruntime::contracts=debug -l=runtime=debug,xvm=trace --enable-evm-rpcp
(pour avoir les logs XVM et ink!).
Ensuite, lancez yarn test
.
Pour exécuter sur Shibuya : créez un fichier .env à partir de .env.example et remplissez-le avec vos informations d'identification : ajoutez votre clé privée Shibuya EVM dans ACCOUNT_PRIVATE_KEY_EVM
et votre phrase secrète de substrat Shibuya dans SUBSTRATE_MNEMO
. Ensuite, lancez yarn test:shibuya
.