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

Primero, clone el initia-tutorialsrepositorio, que contiene el read_writemódulo que usaremos.

git clone git@github.com: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.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]'));
// 0x7b23641ee96425a5dbe9953bdd949da7f6c5fcb0

Ahora, 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_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