MoverVM
Descripción general
MoveVM de Initia sirve como un puente innovador, integrando perfectamente Move Runtime con CosmosSDK. Esta integración se logra mediante un método inspirado en WasmVM de CosmWasm, facilitando una conexión entre el tiempo de ejecución de MoveVM, desarrollado en Rust, y la cadena Cosmos, implementada en Go. Este enfoque va más allá de la mera conectividad; Armoniza los estándares de tokens dentro de la plataforma adaptando el módulo bancario de CosmosSDK para utilizar exclusivamente el estándar de monedas Move. Además, para garantizar que los usuarios de Move puedan aprovechar plenamente las capacidades de apuesta nativas de Cosmos, se ha introducido un módulo de apuesta líquida. Esta función permite la utilización de las funciones de Cosmos Stake dentro del ecosistema Move. Además, Initia admite varios mensajes CosmosSDK dentro de Move, lo que mejora la funcionalidad y la interoperabilidad de las aplicaciones creadas en esta plataforma.
Mensajes de Cosmos admitidos
Módulo
mensaje
Replantear
delegate
Distribución
fund_community_pool
IBC
transfer
IBC
nft_transfer
IBC
pay_fee
OPinar
initiate_token_bridge
Interactuar con CLI
Este tutorial lo guía a través del proceso de interacción con la interfaz de línea de comandos (CLI) para initiad
y minitiad
, y muestra cómo crear un módulo Move, implementar un paquete Move y ejecutar funciones de entrada y visualización en la red Initia.
Movimiento de construcción
La initia
CLI se puede utilizar para crear un paquete Move. Para crear un paquete Move, managed_coin
por ejemplo, utilice el siguiente comando.
$ initiad move build --path ./move/managed_coin --dev
Prueba de unidad
Para ejecutar una prueba unitaria localmente, utilice el siguiente comando.
$ initiad move test --path ./move/managed_coin --dev
Este es un ejemplo de respuesta:
INCLUDING DEPENDENCY InitiaStdlib
INCLUDING DEPENDENCY MoveNursery
INCLUDING DEPENDENCY MoveStdlib
BUILDING basic_coin
Running Move unit tests
[ PASS ] 0x2::managed_coin::test_create_and_mint
Test result: OK. Total tests: 1; passed: 1; failed: 0
Cobertura de la prueba
Para generar un informe de cobertura de prueba, ejecute el siguiente comando.
$ initiad move test --path ./move/managed_coin --dev --coverage
El resultado contiene el resultado de cada caso de prueba seguido de un resumen de cobertura básica:
INCLUDING DEPENDENCY InitiaStdlib
INCLUDING DEPENDENCY MoveNursery
INCLUDING DEPENDENCY MoveStdlib
BUILDING basic_coin
Running Move unit tests
[ PASS ] 0x2::managed_coin::test_create_and_mint
Test result: OK. Total tests: 1; passed: 1; failed: 0
+-------------------------+
| Move Coverage Summary |
+-------------------------+
Module 0000000000000000000000000000000000000000000000000000000000000002::managed_coin
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00 |
+-------------------------+
Please use `initiad move coverage -h` for more detailed source or bytecode test coverage of this package
Implementación de un paquete de movimiento
Para implementar un paquete Move en la red, siga estos pasos:
Crea una cuenta :
Úselo
initiad keys add acc0
para crear una nueva cuenta.Analice la dirección de la cuenta creada:
initiad keys parse $(initiad keys show acc0 --address)
.Actualice
your_address
a./move/managed_coin/Move.toml
la dirección 0x de la cuenta creada.Obtenga tokens del faucet Initia: https://faucet.initia.tech/ .
Puede encontrar un tutorial completo sobre cómo crear una cuenta aquí .
Implementar el paquete : ejecute el comando de implementación y reemplace los marcadores de posición con valores reales:
$ initiad move deploy \
--path ./move/managed_coin \
--from acc0 \
--gas-prices 0.15uinit \
--gas auto \
--gas-adjustment 1.4 \
--node ${RPC_ADDR} \
--chain-id ${CHAIN_ID}
Ejecutar una función de vista
Por ejemplo, para recuperar y consultar metadatos y saldo de monedas:
Recuperar dirección de metadatos
initiad q move execute 0x1 coin metadata \
--args "address:$(initiad keys show acc0 --address) string:BASIC" \
--node ${RPC_URL}
# record METADATA=0x~~~
Consultar saldo de monedas acuñadas
initiad q move execute 0x1 coin balance \
--args "address:$(initiad keys show node0 --address) address:${METADATA}" \
--node ${RPC_URL}
Ejecutar una función de entrada
Por ejemplo, para acuñar managed_coin
la acc0
cuenta, ejecute el siguiente comando, reemplazando ${RPC_URL}
y ${CHAIN_ID}
con sus valores específicos:
$ initiad tx move execute \
$(initiad keys show acc0 --address) managed_coin mint_to \
--args "u64:100 address:$(initiad keys show acc0 --address)" \
--from acc0 \
--gas auto \
--gas-adjustment 1.4 \
--gas-prices 0.15uinit \
--node ${RPC_URL} \
--chain-id ${CHAIN_ID}
Conclusión
Este tutorial ofrece una descripción general concisa de las operaciones esenciales que puede realizar utilizando las herramientas CLI de Initia, proporcionando una base sólida para desarrollar e implementar contratos y aplicaciones inteligentes en la red de Initia.
Para conocer ejemplos de módulos Move, visite los tutoriales de módulos Move que le proporcionamos.
Last updated