Implementación de módulos de movimiento
Descripción general
Este tutorial lo guiará a través del proceso de creación, publicación e interacción con sus propios módulos Move en la cadena de bloques Initia. Específicamente, trabajaremos con el read_writemódulo del initia-tutorialsrepositorio. A continuación le indicamos cómo empezar:
Tutorial
Paso 1: clonarinitia-tutorials
initia-tutorialsPrimero, clone el initia-tutorialsrepositorio, que contiene el read_writemódulo que usaremos.
git clone [email protected]:initia-labs/initia-tutorials.gitPaso 2: construir un módulo
Antes de construir el módulo, debe actualizar la dirección del propietario del módulo a su propia dirección en el Move.tomlarchivo de configuración ubicado en ./initia-tutorials/move/read_write.
Cómo obtener su dirección HEX:
Utilice el siguiente comando para analizar su dirección de Initia en formato de bytes, que es su dirección HEX.
CLI
> initiad keys parse [addr]salida de ejemplo:
bytes: F64D24B10B0CE93CD428DF3AB9228ADB18B93CFE
human: init
inicia.js
import { AccAddress } from '@initia/initia.js';
console.log(AccAddress.toHex('[addr]'));
// 0x7b23641ee96425a5dbe9953bdd949da7f6c5fcb0Ahora, modifique el Move.tomlarchivo para incluir su dirección HEX:
[package]
name = "read_write"
version = "0.0.0"
[dependencies]
InitiaStdlib = { git = "https://github.com/initia-labs/movevm.git", subdir = "precompile/modules/initia_stdlib", rev = "main" }
[addresses]
std = "0x1"
your_address = "{insert your hex address here}"Cree el módulo utilizando CLI o builder.js:
CLIconstructor.js
> initiad move build --path ./initia-tutorials/move/read_writePaso 3: publicar un módulo
Después de construir su módulo, el siguiente paso es publicarlo en la cadena de bloques Initia.
CLIinicia.js
>initiad move deploy \
--path ./initia-tutorials/move/read_write \
--upgrade-policy COMPATIBLE \
--from test-account \
--gas auto --gas-adjustment 1.5 \
--gas-prices 0.15uinit \
--node [rpc-url]:[rpc-port] \
--chain-id [chain-id]Acerca de la política de actualización:
Política
Descripción
COMPATIBLE
Realiza una verificación de compatibilidad durante las actualizaciones, asegurando que no haya cambios en las funciones públicas ni modificaciones en el diseño de los recursos.
INMUTABLE
Marca los módulos como inmutables, evitando futuras actualizaciones.
Paso 4: interactúe con su módulo publicado
Después de la publicación, puede interactuar con su módulo a través de varios scripts de Move o llamadas directas desde aplicaciones cliente.
CLIinicia.js
> initiad query move view [addr] read_write read \
--node [rpc-url]:[rpc-port]
data: '"initial content"'
> initiad tx move execute [addr] read_write write \
--args "string:new_string" \
--from [key-name] \
--gas auto --gas-adjustment 1.5 --gas-prices 0.15uinit \
--node [rpc-url]:[rpc-port] --chain-id [chain-id]
> initiad query move view [addr] read_write read \
--node [rpc-url]:[rpc-port]
data: '"new_string"'Last updated