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_write
módulo del initia-tutorials
repositorio. A continuación le indicamos cómo empezar:
Tutorial
Paso 1: clonarinitia-tutorials
initia-tutorials
Primero, clone el initia-tutorials
repositorio, que contiene el read_write
módulo que usaremos.
git clone [email protected]:initia-labs/initia-tutorials.git
Paso 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.toml
archivo 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]'));
// 0x7b23641ee96425a5dbe9953bdd949da7f6c5fcb0
Ahora, modifique el Move.toml
archivo 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_write
Paso 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