Parceros
  • 馃懡Recursos
    • 馃捇Nodos validadores
      • Buenas pr谩cticas y seguridad de un validador
      • Montaje de nodo validador de Stargaze
      • Montaje de nodo validador de Tgrade
      • Montaje de nodo validador de Juno
      • Instalacion del Cosmovisor
      • Instalaci贸n de AutoCompound
      • Gu铆a de instalaci贸n Prometheus y Grafana para un Validador
    • 馃帗Desarrollo
      • Fundamentos en Gnu/Linux
      • Fundamentos en Blockchain
      • Billeteras
      • Introducci贸n a Cosmos Hub
      • Guia de Inicio en Rust
      • Clases de CosmWasm
        • Introducci贸n a CosmWasm
        • Puntos de entrada de un contrato vacio
        • Consultas - Query
      • Clases de Rust
        • Introducci贸n a Rust
        • Ciclos
        • Funciones
        • Manejo de la memoria
        • Tipos de datos avanzados
        • Macros
        • Manejo de paquetes
        • Manejo de errores
      • Guia Archway
        • Instalaci贸n de requisitos
        • Configuraci贸n del proyecto
        • Solicitud de tokens Testnet
        • Mi primera app
          • Configuracion
          • Produciendo ejecutables wasm
          • Despliegue e instanciaci贸n de contratos en la cadena
          • Interactuar con su contrato
          • Construir el frontend de la dApp
        • Proyecto NFT
          • Creando un proyecto NFT
          • Despliegue del contrato de tokens
          • Acu帽aci贸n y env铆o de tokens
          • Construye la Dapp NFT
        • Fee Grant
          • Comprendiendo los Fee grant
          • Grant asignaci贸n
          • Utilizando asignaciones grant
        • Multifirmas
          • Archway multi firma hub
          • Navegar por la interfaz multi firmas
      • Cosmwasm Documentacion
        • Introducci贸n
        • Primeros pasos
          • Introducci贸n
          • Configuraci贸n del entorno
          • Elaborar un contrato
          • Test Unitarios
          • Despliegue e interacci贸n
          • Integraci贸n con contratos inteligentes
          • Pr贸ximos pasos
        • Arquitectura
          • 驴Qu茅 son los contratos multicadena?
          • Modelo de actor para las convocatorias de contratos
          • Nombres y direcciones
          • Consulta del estado del contrato
          • Formatos de serializaci贸n
          • Composici贸n del contrato
          • Comparaci贸n con los contratos de solidity
        • Contratos inteligentes
          • Sem谩ntica contractual
          • Message
            • Messages
            • Submensajes
          • State
            • Simple state
            • Complex state y maps
          • Result y option
          • Entry points
          • Query
          • Events
          • Math
          • Verificaci贸n de contratos inteligentes
          • Migration
          • Migrar una dapp a una red diferente
          • Testing
          • Ejecuci贸n Sudo
          • CosmWasm y CIB
        • Tutoriales
          • Opcion simple
            • Testing
          • Storage
            • 驴C贸mo funciona el almacenamiento de valores clave?
            • 脥ndices
            • Modelizaci贸n avanzada de estados
          • Cosmwasm con ejemplos
            • Operaciones matem谩ticas de Cosmowasm
            • Crear una instancia de un contrato CosmWasm
            • Timelock
            • Contrato Crowdfunding
            • Respuestas y atributos en Cosmwasm
            • Lee y escribe
            • Env铆o de tokens
            • Token Vaults
            • Creador de mercado autom谩tico de productos constantes (AMM)
      • Guia Celestia
        • Descripcion general de celestia
          • Introduccion
          • Blockchains monol铆ticos vs modulares
          • Capa de disponibilidad de datos
            • La capa de disponibilidad de datos de Celestia
            • El ciclo de vida de una transacci贸n celestia-app
            • Recuperabilidad de datos y poda
            • Disponibilidad de datos FAQ
          • Recursos adicionales
            • Aprende modular
            • Glosario de Celestia
            • Especificaciones de aplicaci贸n de celestes
            • Documentaci贸n API de nodo celestial
        • Ejecutar un nodo
          • Descripci贸n general de los nodos en ejecuci贸n en Celestia
          • Gu铆a de inicio r谩pido
            • Decidir qu茅 nodo ejecutar
            • Entorno de desarrollo
            • Instalar celestia-node
            • Instalar celestia-app
            • 馃惓 Configuraci贸n de Docker
          • Redes
            • Resumen de redes
            • Mainnet Beta
            • Mocha testnet
            • Ar谩bica devnet
          • Tipos de nodos
            • Disponibilidad de datos
              • Nodo ligero
              • Nodo completo
              • Nodo puente
            • Consenso
            • Relay de IBC
              • Gu铆a de retransmisi贸n IBC
              • Relays de IBC
          • Recursos
            • nodo-celestia
              • Metricas
              • gu铆a config.toml
              • Redes y valores personalizados
              • Soluci贸n de problemas
            • celestia-app
              • Especificaciones
              • M茅tricas, visualizaci贸n y alertas
              • Mec谩nica de corte
              • Crear un testnet Celestia
              • Comandos CLI 煤tiles
              • Monitor de Actualizaci贸n
              • Carteras en celestia-app
              • Multisig
              • Crea una cuenta de adquisici贸n
            • SystemD
            • Proceso de hardfork
        • Desarrolladores
          • Construir modular
          • Env铆o de blobs de datos a Celestia
          • Directrices de reenv铆o de transacciones
          • API de nodo
            • Celestia-node RPC CLI tutorial
            • Documentaci贸n de la API RPC de Celestia-Node
            • R谩pido Scavenger
            • Page
          • Integrar con Blobstream
            • Descripci贸n general de Blobstream
            • Integrarse con contratos de Blobstream
            • Integrar con el cliente Blobstream
            • Consultando las pruebas de Blobstream
            • Operadores locales de Blobstream X
              • Solicitar rangos de compromiso de datos
              • Nuevas implementaciones de Blobstream X
          • Implementar un rollup
            • L2s Ethereum
              • Ethereum fallback
              • Arbitro
                • Introducci贸n a los rollups de Arbitrum con Celestia como DA
                • Implementar un arbitrum rollup devnet
                • Testnet de nitr贸geno
                • Implementar un contrato inteligente sobre la implementaci贸n de Arbitrum
                • Implemente un dapp en su devnet Arbitrum rollup
                • Optimismo
                  • Introducci贸n a la integraci贸n de OP Stack
                  • Bubs testnet
                  • Implemente un contrato inteligente en Bubs testnet
                  • Implemente un dapp en Bubs testnet
                  • Implemente un devnet OP Stack
                  • Implemente un devnet OP Stack en Celestia
                  • Auditor铆a
                  • Implemente un dapp con thirdweb
                  • Rollups-as-a-Servicio
                    • Caldera
            • Rollkit
            • Astria
              • Documentaci贸n
              • Implementar a Dusknet
            • SDK Soberano
            • Vistara
            • Dimensi贸n
          • Carteras
            • Crea una billetera con celestia-node
            • Integraciones de billeteras con Celestia
          • Integre Celestia para proveedores de servicios
      • Uni贸n
        • Arquitectura
          • CometBLS
          • Galois
          • Voyager
        • Conceptos
          • BLS Firmas
          • Clientes de Luz Condicional
          • Verificaci贸n de Consenso
          • Tecnolog铆a de validador distribuido
          • IBC
          • Sin permiso versus sin confianza
        • Infraestructura
          • Operador de nodo
            • Empezando
            • Docker Compose
            • Kubernetes
            • NixOS
            • Configuraci贸n del Nodo
        • Integracion
          • IBC Enabled Solidity
        • Demostrar
          • Dirigiendo el Union Devnet
          • PingPong
        • Unirse al testnet
          • Empezando
          • Ejecutar el binario cliente
          • Ejecuci贸n de Unionvisor
          • Obteniendo Tokens Testnet
          • Crear un Validador
          • Endpoints publicos
          • Sincronizaci贸n de estado
          • Liberar un validador
          • Preguntas frecuentes
          • Historial de actualizaciones
        • Guia de estilo
          • Lista de palabras
      • Avail
        • Introducci贸n a Avail
          • Aprovechar DA
          • Aprovechar Nexus
          • Aprovechar la fusi贸n
        • Informacion de red
        • M谩s informaci贸n sobre disponibilidad
          • El conseso
            • BABE
            • GRANDPA
            • NPoS
          • EIP-4844 y disponible
        • Guia de nuevo usuario
          • C贸mo crear y administrar una cuenta disponible
          • C贸mo utilizar el Explorador Goldberg Testnet
          • C贸mo utilizar el faucet Testnet
          • C贸mo establecer una identidad en cadena
          • C贸mo generar una identificaci贸n de aplicaci贸n disponible
          • C贸mo realizar transferencias de saldo disponibles
          • C贸mo crear grupos de nominaciones disponibles
        • Construir con disponibilidad
          • Cree un paquete acumulativo con Avail
          • Comience con Avail
          • Optimium
            • OP Stack
            • Aprovechando la pila OP con Avail
            • C贸mo utilizar la pila OP con Avail
            • Adaptador de pila OP 馃敆
          • Validium
            • Polygon zkEVM
              • Construyendo sobre Polygon zkEVM con Avail
              • C贸mo utilizar Polygon zkEVM con Avail
              • Nodo Validium 馃敆
              • Contratos de Validium 馃敆
              • Puente Validium 馃敆
            • Madara Starknet
              • Construyendo sobre Madara Stack con Avail
              • C贸mo utilizar Madara con Avail
              • Madara Starknet馃敆
            • Referencia
          • Sovereign Rollups
            • Sovereign SDK 馃敆
            • Rollkit 馃敆
            • OpEVM 馃敆
        • Glosario
        • Preguntas generales frecuentes
      • Dymension
        • Aprender
          • ELI5
          • RollApps
            • RollApps
            • Tokens
            • Gobernancia
            • Puente
            • En profundidad
              • Dymension RDK
                • Dymint
              • Gobernanza
                • Gobernador
                  • Descripci贸n general
                  • Crear gobernador
                  • Otros comandos
                • Votaci贸n
                  • Par谩metros ajustables
                  • Gasto comunitario
                  • Registro de tokens ERC-20
              • IBC Puente
                • Visi贸n general
                • Seguridad
                • Retransmisores
          • Dymension
            • Visi贸n general
            • DYM
              • Supply
              • Demanda
              • Crecimiento
              • Distribuci贸n
            • Seguridad
              • Est谩ndares
              • Actualizable
              • Disponibilidad de datos
              • Pruebas de fraude
              • Resistencia a la censura
              • Page 1
            • Puentes
              • IBC
              • eIBC
            • Liquidez
              • Descripci贸n general
              • Depositar tokens
              • Vinculaci贸n de tokens LP
              • Incentivos
              • Comisiones
            • Gobernanza
              • Descripci贸n general
              • Preparando una propuesta
              • Proponiendo a la dimocracia
        • Construir
          • Descripci贸n general
          • Testnet
            • EVM
              • Descripci贸n general
            • CosmWasm
              • Descripci贸n general
              • Informaci贸n
              • Ejemplo de cosmoWasm
          • Roller CLI
            • Descripci贸n general
            • Comenzar
              • Instalar
              • Inicializar RollApp
              • Registro
              • Correr
                • Simple
                • Avanzado
                  • Cliente ligero DA
                  • Secuenciador
                  • Retransmisor
            • Nodo en ejecuci贸n
              • Ejecutando en producci贸n
              • Supervisi贸n
              • Informaci贸n de RollApp
              • Exportar claves
              • Mejora
              • Editar la configuraci贸n de RollApp
              • Sincronizaci贸n de estado
            • Soluci贸n de problemas
              • Descripci贸n general
              • Saldos
              • Hardware
              • Rollapp de importaci贸n/exportaci贸n
              • Acceso externo
              • Estado
              • Archivos de registro
            • RollApp local
              • Ejecute la aplicaci贸n EVM RollApp
              • Ejecute la aplicaci贸n CosmWasm RollApp
        • Validar
          • Preguntas frecuentes sobre nodos
          • Construir dimensi贸n
          • Configuraci贸n de nodo
          • 脷nase a una red
          • Nodo de sincronizaci贸n
          • Validador
          • Actualizaciones
          • Soluci贸n de problemas
          • Programa de delegaci贸n
            • objetivos del programa
            • Par谩metros de evaluaci贸n
            • Solicitud
      • Movement
        • Desarrolladores
          • Inicio r谩pido
          • Configuraci贸n
            • Usando contenedores
            • Usando el instalador
          • Tutoriales
            • Desplegar
              • M贸dulo Aptos
              • M贸dulo Sui
              • Contratos EVM
                • Implementaci贸n de contratos de solidez en movimiento utilizando Foundry y Fractal
                • Implementaci贸n de contratos de solidez en M1 usando Hardhat y Fractal
                • Implementaci贸n de contratos inteligentes de Solidity en M1 utilizando el tiempo de ejecuci贸n Fractal
            • Ejecute MoveVM
              • Ejecutando M1 usted mismo
            • Construir dApp
              • Aptos Move dApp
              • Aplicaci贸n Sui Move
              • DApp de solidity
            • Interoperar
              • AptosVM<>MEVM
          • Herramientas de desarrollo
            • Movement CLI
              • Movement aptos
                • cuenta
                  • crear
                  • crear-cuenta-de-recursos
                    • derivar-direcci贸n-de-cuenta-de-recursos
                  • fondo-con-grifo
                  • lista
                  • direcci贸n de b煤squeda
                  • rotar llave
                  • transferir
                • configuraci贸n
                  • generar-compleciones-de-shell
                  • configurar-global-config
                  • show-global-config
                  • mostrar-perfiles
                • g茅nesis
                  • generar-admin-escritura-conjunto
                  • generar-g茅nesis
                  • obtener direcciones de grupo
                  • generar-claves
                  • generar-plantilla-de-dise帽o
                  • configuraci贸n-git
                  • configuraci贸n-del-validador-de-conjuntos
                • gobernancia
                  • proponer
                  • votar
                  • propuesta de show
                  • lista-propuestas
                  • verificar-propuesta
                  • ejecutar propuesta
                  • generar-propuesta-de-actualizaci贸n
                  • aprobar-ejecuci贸n-hash
                • informaci贸n
                • init
                • llave
                  • generar
                  • extraer-peer
                • mover
                  • construir-publicar-carga 煤til
                  • limpio
                  • compilar
                  • script de compilaci贸n
                  • cobertura
                    • resumen
                    • fuente
                    • c贸digo de bytes
                  • crear-cuenta-de-recursos-y-publicar-paquete
                  • desmontar
                  • documento
                  • descargar
                  • init
                  • list
                  • probar
                  • publicar
                  • correr
                  • ejecutar gui贸n
                  • prueba
                  • prueba transaccional
                  • verificar-paquete
                  • vista
                • multifirma
                  • aprobar
                  • crear
                  • crear-transacci贸n
                  • ejecutar
                  • ejecutar-rechazar
                  • ejecutar con carga 煤til
                  • rechazar
                  • verificar-propuesta
                • nodo
                  • analizar-validador-rendimiento
                  • arranque-db
                  • verificar-conectividad-de-red
                  • conseguir-participaci贸n-pool
                  • inicializar-validador
                  • conjunto de validadores de uni贸n
                  • conjunto de validadores de licencia
                  • mostrar-informaci贸n-de-茅poca
                  • mostrar-validador-config
                  • mostrar-conjunto-validador
                  • mostrar-validador-participaci贸n
                  • ejecutar-testnet-local
                  • actualizaci贸n-clave-de-consenso
                  • actualizar-validador-direcciones-de-red
                • apostar
                  • agregar apuesta
                  • crear-contrato-de-participaci贸n
                  • distribuir-monedas-adquiridas
                  • aumentar-bloqueo
                  • inicializar-propietario de la participaci贸n
                  • solicitud-comisi贸n
                  • establecer-votante-delegado
                  • operador de conjunto
                  • desbloquear-apuesta
                  • desbloquear-monedas-adquiridas
                  • retirar-apuesta
                • actualizar
              • movement sui
                • comenzar
                • g茅nesis
                • ceremonia-genesis
                  • init
                  • estado de validaci贸n
                  • agregar-validador
                  • validadores de lista
                  • punto de control de compilaci贸n sin firmar
                  • examinar-punto-de-control-g茅nesis
                  • verificar y firmar
                  • finalizar
                • herramienta clave
                  • convertir
                  • decodificar-tx-bytes
                  • decodificar-multi-sig
                  • generar
                  • importar
                  • lista
                  • par de claves de carga
                  • direcci贸n multifirma
                  • multi-sig-combinar-sig-parcial
                  • herencia-sig-parcial-combinada-multi-sig
                  • espect谩culo
                  • firmar
                  • se帽al-kms
                  • deshacer
                  • zk-login-firmar-y-ejecutar-tx
                  • zk-login-ingresar-token
                  • zk-login-sig-verificar
                  • zk-login-signo-inseguro-mensaje-personal
                • consola
                • cliente
                  • direcci贸n activa
                  • entorno-activo
                  • direcciones
                  • llamar
                  • identificador de cadena
                  • campo din谩mico
                  • env
                  • ejecutar-tx firmado
                  • gas
                  • fusionar moneda
                  • nueva direccion
                  • nuevo-ambiente
                  • objeto
                  • objetos
                  • pagar
                  • pago todo-sui
                  • pay-sui
                  • publicar
                  • moneda dividida
                  • cambiar
                  • bloque tx
                  • transferir
                  • transferencia-sui
                  • mejora
                  • verificar-bytecode-metro
                  • verificar-fuente
                  • transacci贸n-repetici贸n
                  • lote de repetici贸n
                  • punto de control de repetici贸n
                • validador
                  • hacer-informaci贸n-validador
                  • convertirse en candidato
                  • comit茅 conjunto
                  • comit茅 de licencia
                  • metadatos de visualizaci贸n
                  • actualizar-metadatos
                    • nombre
                    • descripci贸n
                    • URL de la imagen
                    • URL del proyecto
                    • direcci贸n de red
                    • direcci贸n primaria
                    • direcci贸n-trabajador
                    • direcci贸n-p2p
                    • clave-pub-de-red
                    • clave-pub-trabajador
                    • protocolo-pub-clave
                  • actualizar-precio-de-gas
                  • validador de informes
                  • serializar-carga 煤til-pop
                  • mostrar-actualizaci贸n-del-precio-del-gas-raw-txn
                • move
                  • construir
                  • cobertura
                    • resumen
                    • fuente
                    • c贸digo de bytes
                  • desmontar
                  • nuevo
                  • probar
                  • prueba
                • simulacro de incendio
                  • rotaci贸n de metadatos
              • movement ctl
              • movement manage
            • fractales
              • marco evm
          • Desarrolladores Aptos
            • Configurar la CLI de Aptos
            • Usando la CLI de Aptos
          • Desarrolladores Sui
            • Configurar Sui CLI
            • Usando Sui CLI
          • Preguntas m谩s frecuentes
        • Ecosistema
          • Wallets
          • Tokens
          • Faucet
          • Move idioma
            • M贸dulos y scripts
            • Tipos primitivos
              • Enteros
              • booleano
              • DIRECCI脫N
              • Vector
              • Firmante
              • Referencias
              • Tuplas y unidad
          • Recursos de aprendizaje
          • Techpedia
            • Paralelizaci贸n
            • Mover recursos
            • SDK de movement
      • Initia
        • ACERCA DE
          • Bienvenido a Inicia
          • Arquitectura Omnitia
            • Inicia (Capa 1)
            • Minitia (Capa 2)
          • Ciclo de vida de la transacci贸n
          • Liquidez y apuestas consagradas
            • IniciaDEX
          • Programa de intereses adquiridos
        • CONSTRUIR SOBRE LA INICIATIVA
          • iniciado
          • inicia.js
          • Creando cuenta
          • Tutoriales espec铆ficos de VM
            • MoverVM
              • Implementaci贸n de m贸dulos de movimiento
              • Creando moneda de movimiento
              • Env铆o de moneda de movimiento
              • Creando movimiento NFT
              • M贸dulos relacionados con el replanteo
              • Interactuar con Oracle en MoveVM
              • Mover ganchos IBC
            • WASMVM
              • Implementaci贸n del contrato CosmWasm
              • Interactuando con Oracle en WasmVM
              • Ganchos Wasm IBC
              • F谩brica de fichas
            • EVM
              • Implementaci贸n del contrato de solidez
              • Crear un token ERC-20 personalizado
              • Consultar estados del cosmos
              • Ejecutando mensajes de Cosmos
              • Conversi贸n de direcciones entre EVM y Cosmos
              • Conversi贸n entre direcciones Denom y ERC-20
              • Interactuar con Oracle en EVM
              • Ganchos EVM IBC
              • Ethereum JSON-RPC
          • Tutoriales generales
            • Or谩culo: Furtivo
            • Mensajes entre cadenas
            • Saltar API
            • Miniswap
              • Interactuando con Minitswap
            • Conversi贸n entre nombres de usuario y direcciones
            • Usando el Explorador local de Initia
            • Interactuando con InitiaDEX
            • Usando el widget de billetera Initia
        • IMPLEMENTAR MINITIA
          • Empezando
            • Implementaci贸n de su propia Minitia (Capa 2)
          • Configuraci贸n
          • Implementaci贸n de una Minitia independiente
          • Implementaci贸n completa de Minitia
            • Dirigiendo la Minitia
            • Pila de OPinit
              • M贸dulo OPinit: OPhost y OPchild
              • Configurar robots OPinit
                • Ejecutor del puente
                • Remitente de salida
                • Desafiador
                • Env铆o por lotes
                  • Env铆o de lotes a Inicia L1
                  • Env铆o de lotes a Celestia
            • Rel茅 Hermes (IBC)
            • Habilitando or谩culos
          • Retroceder
          • Agregar tokens a Initia Wallet
          • Personalizando Minitia
        • EJECUTAR EL NODO DE INICIO
          • Ejecutando el nodo de inicio
          • Arrancar un nodo de inicio
          • Con茅ctese a la red Inicial
          • Or谩culo
          • Automatizaci贸n de actualizaciones de software con Cosmovisor
          • Convertirse en un validador
        • RECURSOS
          • Registro de Iniciaci贸n
          • Informaci贸n de la cadena Testnet
          • Par谩metros de cadena
          • Documentaci贸n de la API
          • Documentos API (MiniMove)
          • Documentos API (MiniWasm)
          • Documentos API (MiniEVM)
      • Internet Computer
        • 隆Hola, mundo!
        • Descripci贸n general del ICP
Powered by GitBook
On this page
  • Inspeccionar c贸digo
  • Encontrar el c贸digo original
  1. Recursos
  2. Desarrollo
  3. Cosmwasm Documentacion
  4. Contratos inteligentes

Verificaci贸n de contratos inteligentes

PreviousMathNextMigration

Last updated 1 year ago

Se trata de un paso vital para garantizar que se est谩 ejecutando el contrato adecuado. Es posible verificar cualquier contrato inteligente desplegado en la cadena de bloques. Tomemos un ejemplo pr谩ctico en el que se tiene un contrato activo en la blockchain y se desea determinar su nombre en clave y su versi贸n.

Inspeccionar c贸digo

Examinaremos el siguiente contrato de acceso p煤blico archway1cug98emkqmj8n3n2tnm9d04e7q52r9lrjgaud9hecnqw6pth8fvse96uwj en las redes de Archway. Este contrato se basa en el modelo de contrato Increment que puede encontrarse .

Podemos consultar la informaci贸n del contrato utilizando el siguiente comando:

Mainnet
archwayd query wasm contract-state raw archway1cug98emkqmj8n3n2tnm9d04e7q52r9lrjgaud9hecnqw6pth8fvse96uwj 636F6E74726163745F696E666F --node https://rpc.mainnet.archway.io:443 --chain-id archway-1 --output json | jq  -r .data | base64 -d | jq
{
  "contract": "crates.io:archway5",
  "version": "0.1.0"
}

Testnet
archwayd query wasm contract-state raw archway1cug98emkqmj8n3n2tnm9d04e7q52r9lrjgaud9hecnqw6pth8fvse96uwj 636F6E74726163745F696E666F --node https://rpc.constantine.archway.tech:443 --chain-id constantine-3 --output json | jq  -r .data | base64 -d | jq
{
  "contract": "crates.io:archway5",
  "version": "0.1.0"
}

驴Qu茅 significa exactamente 636F6E74726163745F696E666F en la consulta anterior?

El ContractInfo se almacena bajo la clave contract_info, que se traduce a 636F6E74726163745F696E666F en formato hexadecimal, como se documenta .

Para obtener el hash requerido, primero necesitamos encontrar el ID de c贸digo correspondiente. Este es el proceso para obtenerlo:

Mainnet
archwayd query wasm contract archway1cug98emkqmj8n3n2tnm9d04e7q52r9lrjgaud9hecnqw6pth8fvse96uwj  --node https://rpc.mainnet.archway.io:443 --output json  | jq
{
  "address": "archway1cug98emkqmj8n3n2tnm9d04e7q52r9lrjgaud9hecnqw6pth8fvse96uwj",
  "contract_info": {
    "code_id": "85",
    "creator": "archway1hlsd2tgjxalap5gslxz4g4t0f0yr9nwne98uyu",
    "admin": "archway1hlsd2tgjxalap5gslxz4g4t0f0yr9nwne98uyu",
    "label": "archway5 0.1.0",
    "created": null,
    "ibc_port_id": "",
    "extension": null
  }
  
  Testnet
  archwayd query wasm contract archway1cug98emkqmj8n3n2tnm9d04e7q52r9lrjgaud9hecnqw6pth8fvse96uwj  --node https://rpc.constantine.archway.tech:443 --output json  | jq
{
  "address": "archway1cug98emkqmj8n3n2tnm9d04e7q52r9lrjgaud9hecnqw6pth8fvse96uwj",
  "contract_info": {
    "code_id": "85",
    "creator": "archway1hlsd2tgjxalap5gslxz4g4t0f0yr9nwne98uyu",
    "admin": "archway1hlsd2tgjxalap5gslxz4g4t0f0yr9nwne98uyu",
    "label": "archway5 0.1.0",
    "created": null,
    "ibc_port_id": "",
    "extension": null
  }

Ahora tenemos code_id junto con las direcciones creator y admin. La siguiente consulta recuperar谩 el hash:

Mainnet
archwayd query wasm code 85 85_code.wasm --node https://rpc.mainnet.archway.io:443 --chain-id archway-1
Downloading wasm code to 85_code.wasm

Testnet
archwayd query wasm code 85 85_code.wasm --node https://rpc.constantine.archway.tech:443 --chain-id constantine-3
Downloading wasm code to 85_code.wasm

Ahora recupera el hash:

sha256sum 85_code.wasm
dc02d33e40511396a5895ac0b1c3b9d53803e115f605ad5cbfe8035a031bbd3f  85_code.wasm

Encontrar el c贸digo original

Los hashes de los contratos inteligentes de cw-plus se publican junto con el c贸digo del contrato, que puede encontrarse en cw-plus dentro de un archivo checksums.txt. He aqu铆 un ejemplo:

fe34cfff1cbc24594740164abb953f87735afcdecbe8cf79a70310e36fc13aa0  cw1155_base.wasm
de49426e9deed6acf23d5e930a81241697b77b18131c9aea5c3ca800c028459e  cw1_subkeys.wasm
c424b66e7f289cef69e1408ec18732e034b0604e4b22bfcca7546cc9d57875e3  cw1_whitelist.wasm
e462d44a086a936c681f3b3389d50b8404ce2152c8f0fb32b257064576210c03  cw1_whitelist_ng.wasm
0b2e5d5dc895f8f49f833b076a919774bb5b0d25bf72819e9a1cbdf70f9bf79b  cw20_atomic_swap.wasm
6c1fa5872e1db821ee207b5043d679ad1f57c40032d2fd01834cd04d0f3dbafb  cw20_base.wasm
f00759aa9a221efeb58b61a1a1d4cc4281cdce39d71ac4d8d78d234f03b3b0eb  cw20_bonding.wasm
b6041789cc227472c801763c3fab57a81005fb0c30cf986185aba5e0b429d2e6  cw20_escrow.wasm
91b35168d761de9b0372668dd8fa8491f2c8faedf95da602647f4bade7cb9f57  cw20_ics20.wasm
d408a2195df29379b14c11277f785b5d3f57b71886b0f72e0c90b4e84c2baa4a  cw20_merkle_airdrop.wasm
934ba53242e158910a2528eb6c6b82deb95fe866bbc32a8c9afa7b97cfcb9af4  cw20_staking.wasm
ac1f2327f3c80f897110f0fca0369c7022586e109f856016aef91f3cd1f417c1  cw3_fixed_multisig.wasm
785340c9eff28e0faeb77df8cca0fafee6b93a1fa033d41bda4074cd97600ec1  cw3_flex_multisig.wasm
87b3ad1dee979afc70e5c0f19e8510d9dcc8372c8ef49fc1da76725cad706975  cw4_group.wasm
4651e90405917897f48d929198278f238ec182ac018c414ee22f2a007a052c1e  cw4_stake.wasm

Compilar uno mismo

docker run --rm -v "$(pwd)":/code \
  --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
  --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
  cosmwasm/workspace-optimizer:0.12.11

En Windows, puede utilizar el siguiente comando en su lugar:

docker run --rm -v ${pwd}:/code `
 --mount type=volume,source="$("$(Split-Path -Path $pwd -Leaf)")_cache",target=/code/target `
 --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry `
 cosmwasm/rust-optimizer:0.12.11

Los hashes ser谩n generados en ./artifacts/checksums.txt.

En lugar de usar el rust-optimizer directamente, puedes utilizar el Archway CLI para optimizar tu c贸digo que tambi茅n generar谩 el checksum requerido con el hash para tu c贸digo. El rust-optimizer est谩 siendo usado en segundo plano.

archway build --optimize

Los hashes se generar谩n en ./artifacts/checksums.txt.

Puede encontrar el valor y compararlo con el que hemos obtenido.

cat ./artifacts/checksums.txt | grep archway5.wasm
dc02d33e40511396a5895ac0b1c3b9d53803e115f605ad5cbfe8035a031bbd3f  archway5.wasm
diff  <(echo "dc02d33e40511396a5895ac0b1c3b9d53803e115f605ad5cbfe8035a031bbd3f" ) <(echo "dc02d33e40511396a5895ac0b1c3b9d53803e115f605ad5cbfe8035a031bbd3f")

Si los hashes coinciden, se verifica el contrato.

En lugar de confiar en hashes preexistentes, podemos generar el hash para nuestro contrato nosotros mismos. Podemos utilizar no s贸lo para crear c贸digo compacto y de alto rendimiento, sino tambi茅n para asegurar que el c贸digo de salida es determinista y puede ser comparado con precisi贸n. De hecho, los hashes proporcionados en el ejemplo anterior fueron todos producidos usando rust-optimizer.

馃懡
馃帗
aqu铆
aqu铆
rust-optimizer