Despliegue e instanciación de contratos en la cadena

Sólo los archivos wasm optimizados pueden almacenarse en la cadena. Si su proyecto local no tiene una carpeta de artifacts, o, si la carpeta de artifacts está vacía. Vuelva al paso anterior de la guía para obtener información sobre la producción de ejecutables optimizados CosmWasm.

Almacenamiento de contratos en la cadena

Puedes obtener tokens CONST gratuitos de la red de pruebas para cubrir las tasas de transacción en la red de pruebas de Constantine utilizando el faucet disponible en Discord. Para Mainnet tendrás que adquirir tokens ARCH.

Cuando esté listo para almacenar el ejecutable wasm en cadena, ejecute el siguiente comando a través de la CLI de desarrollador:

archway contracts store CONTRACT [--json] [--
log-level debug|error|info|warn] [--
instantiate-permission any-of|everybody|nobody] 
[--allowed-addresses <value>] [--keyring-backend file|os|test] 
[--keyring-path <value>] [-f <value>] [--fee <value>] [--no-confirm] 
[--gas-adjustment <value>]

Argumentos

CONTRACT  (required) Name of the contract

Alternativamente, puede utilizar archwayd:

MAINNET
archwayd tx wasm store artifacts/test_project2.wasm --from my-wallet
--node https://rpc.mainnet.archway.io:443 --chain-id archway-1 --gas
auto --gas-prices $(archwayd q rewards estimate-fees 1
--node 'https://rpc.mainnet.archway.io:443' --output json | jq -r 
'.gas_unit_price | (.amount + .denom)') --gas-adjustment 1.4

TESNET
archwayd tx wasm store artifacts/test_project2.wasm --from my-wallet 
--node https://rpc.constantine.archway.tech:443 --chain-id constantine-3 --gas 
auto --gas-prices $(archwayd q rewards estimate-fees 1
--node 'https://rpc.constantine.archway.tech:443' --output 
json | jq -r '.gas_unit_price | (.amount + .denom)') --gas-adjustment 1.4

Instancia del contrato

A continuación, puede instanciar su contrato con el siguiente comando sustituyendo por el nombre del contrato que desea instanciar:

Como hemos clonado la plantilla de inicio Increment, intente instanciarla con su argumento counter a 0:

Por ejemplo, si se utiliza la CLI archway:

Si está utilizando archwayd entonces el siguiente comando debería funcionar:

En el caso de usar archwayd, necesitas añadir el Code Id (que puedes ver mirando los datos de transacción de la tienda y establecer la dirección del admin. Puede comprobar esa información y la dirección del contrato en un blockexplorer).

Entonces, ¿por qué estamos enviando nuestro constructor como {"count":0} y cómo podemos verificar que es correcto?

Desde los archivos de tu proyecto abre src/contract.rs. Cerca de la parte superior, es la función pub fn instantiate, que funciona como un constructor y establece el estado inicial del contrato:

Verá que el parámetro msg es de tipo InstantiateMsg que se define en el archivo src/msg.rs y contiene los valores que se pueden enviar en formato de objeto JSON:

En tu historial deberías ver que se han creado dos acciones:

  • la transacción de almacenamiento se produjo cuando el ejecutable wasm se cargó en la cadena

  • La transacción de instanciación, que crea una instancia del contrato con su propio estado.

El siguiente comando historizará las acciones de despliegue:

Ejemplo de output:

También puede acceder a estos datos históricos desde la carpeta ".archway", donde se almacena un archivo respectivo para cada cadena, que contiene los datos históricos. Para Archway testnet, por ejemplo, el archivo sería constantine-3.json.

Configuración del contrato desplegado

Ahora que la dapp está desplegada, se recomienda configurar sus metadatos. Esto te permitirá configurar el contrato inteligente para cobrar recompensas.

Para establecer los metadatos del contrato, utilice el comando:

Un ejemplo básico sería:

Argumentos:

Ejemplo output:

Fijar contratos premiun

Para establecer una prima de contrato, el contrato debe tener ya configurados los metadatos de recompensa. Utilice el siguiente comando para establecer el premiun:

Un ejemplo básico sería:

Argumentos

Ejemplo output:

Last updated