Esta ferramenta é uma interface de linha de comando para o Wormhole, permitindo realizar várias ações, como consultar o status de uma transação ou submeter transferências de tokens.
Instalação
Clone o repositório e altere o diretório para o apropriado:
git clone https://github.com/wormhole-foundation/wormhole &&
cd wormhole/clients/js
Construa e instale a ferramenta CLI:
make install
Isso instala dois binários, worm-fetch-governance e worm, no seu $PATH. Para usar o worm, configure o arquivo $HOME/.wormhole/.env com suas chaves privadas, com base no .env.sample presente nesta pasta.
Uso
Você pode interagir com o Wormhole CLI digitando worm e incluindo o comando, subcomando e parâmetros necessários.
Comando
Descrição
worm aptos INSERT_COMMAND
Utilitários para Aptos
worm edit-vaa INSERT_COMMAND
Edita ou gera um VAA
worm evm INSERT_COMMAND
Utilitários para EVM
worm generate INSERT_COMMAND
Gera VAAs (apenas Devnet e Testnet)
worm info INSERT_COMMAND
Utilitários de informações sobre contratos, cadeia, RPC e endereços
worm near INSERT_NETWORK, INSERT_ACCOUNT
Utilitários para NEAR
worm parse INSERT_VAA
Analisa um VAA (pode estar em formato hex ou base64)
worm recover INSERT_DIGEST INSERT_SIGNATURE
Recupera um endereço a partir de uma assinatura
worm status INSERT_NETWORK, INSERT_CHAIN, INSERT_TXN_HASH
Exibe informações sobre a entrega automática iniciada na rede, cadeia e hash da transação especificados
worm submit INSERT_VAA
Executa um VAA
worm sui INSERT_COMMAND
Utilitários para Sui
worm transfer INSERT_SOURCE_CHAIN, INSERT_DESTINATION_CHAIN, INSERT_DESTINATION_ADDRESS, INSERT_AMOUNT, INSERT_NETWORK
Transfere um token
worm verify-vaa INSERT_VAA, INSERT_NETWORK
Verifica um VAA consultando o Contrato Principal na Ethereum
Você também pode consultar as opções abaixo, disponíveis com todos os comandos worm:
Opções:
--help Exibe ajuda [booleano]
--version Exibe o número da versão [booleano]
Subcomando
Aptos
worm aptos INSERT_COMMAND
Commands:
worm aptos init-token-bridge Init token bridge contract
worm aptos init-wormhole Init Wormhole core contract
worm aptos deploy <package-dir> Deploy an Aptos package
worm aptos deploy-resource <seed> Deploy an Aptos package using a
<package-dir> resource account
worm aptos send-example-message Send example message
<message>
worm aptos derive-resource-account Derive resource account address
<account> <seed>
worm aptos derive-wrapped-address Derive wrapped coin type
<chain> <origin-address>
worm aptos hash-contracts <package-dir> Hash contract bytecodes for upgrade
worm aptos upgrade <package-dir> Perform upgrade after VAA has been
submitted
worm aptos migrate Perform migration after contract
upgrade
worm aptos faucet Request money from the faucet for a
given account
worm aptos start-validator Start a local aptos validator
Options:
--help Show help [boolean]
--version Show version number [boolean]
Edit VAA
worm edit-vaa INSERT_COMMAND
Options:
--help Show help [boolean]
--version Show version number [boolean]
-v, --vaa vaa in hex format [string] [required]
-n, --network Network
[required] [choices: "mainnet", "testnet", "devnet"]
--guardian-set-index, --gsi guardian set index [number]
--signatures, --sigs comma separated list of signatures [string]
--wormscanurl, --wsu url to wormscan entry for the vaa that
includes signatures [string]
--wormscan, --ws if specified, will query the wormscan entry
for the vaa to get the signatures [boolean]
--emitter-chain-id, --ec emitter chain id to be used in the vaa
[number]
--emitter-address, --ea emitter address to be used in the vaa[string]
--nonce, --no nonce to be used in the vaa [number]
--sequence, --seq sequence number to be used in the vaa[string]
--consistency-level, --cl consistency level to be used in the vaa
[number]
--timestamp, --ts timestamp to be used in the vaa in unix
seconds [number]
-p, --payload payload in hex format [string]
--guardian-secret, --gs Guardian's secret key [string]
EVM
worm evm INSERT_COMMAND
Commands:
worm evm address-from-secret <secret> Compute a 20 byte eth address from a 32
byte private key
worm evm storage-update Update a storage slot on an EVM fork
during testing (anvil or hardhat)
worm evm chains Return all EVM chains
worm evm info Query info about the on-chain state of
the contract
worm evm hijack Override the guardian set of the core
bridge contract during testing (anvil
or hardhat)
worm evm start-validator Start a local EVM validator
Options:
--help Show help [boolean]
--version Show version number [boolean]
--rpc RPC endpoint [string]
Generate
worm generate INSERT_COMMAND
Commands:
worm generate registration Generate registration VAA
worm generate upgrade Generate contract upgrade VAA
worm generate attestation Generate a token attestation VAA
worm generate recover-chain-id Generate a recover chain ID VAA
worm generate Sets the default delivery provider
set-default-delivery-provider for the Wormhole Relayer contract
Options:
--help Show help [boolean]
--version Show version number [boolean]
-g, --guardian-secret Guardians' secret keys (CSV) [string] [required]
Info
worm info INSERT_COMMAND
Commands:
worm info chain-id <chain> Print the wormhole chain ID integer
associated with the specified chain
name
worm info contract <network> <chain> Print contract address
<module>
worm info emitter <chain> <address> Print address in emitter address
format
worm info origin <chain> <address> Print the origin chain and address
of the asset that corresponds to the
given chain and address.
worm info registrations <network> Print chain registrations
<chain> <module>
worm info rpc <network> <chain> Print RPC address
worm info wrapped <origin-chain> Print the wrapped address on the
<origin-address> <target-chain> target chain that corresponds with
the specified origin chain and
address.
Options:
--help Show help [boolean]
--version Show version number [boolean]
NEAR
worm near INSERT_COMMAND
Commands:
worm near contract-update <file> Submit a contract update using our specific
APIs
worm near deploy <file> Submit a contract update using near APIs
Options:
--help Show help [boolean]
--version Show version number [boolean]
-m, --module Module to query [choices: "Core", "NFTBridge", "TokenBridge"]
-n, --network Network [required] [choices: "mainnet", "testnet", "devnet"]
--account Near deployment account [string] [required]
--attach Attach some near [string]
--target Near account to upgrade [string]
--mnemonic Near private keys [string]
--key Near private key [string]
-r, --rpc Override default rpc endpoint url [string]
Parse
worm parse INSERT_VAA
Positionals:
vaa vaa [string]
Options:
--help Show help [boolean]
--version Show version number [boolean]
Recover
worm recover INSERT_DIGEST INSERT_SIGNATURE
Positionals:
digest digest [string]
signature signature [string]
Options:
--help Show help [boolean]
--version Show version number [boolean]
worm submit INSERT_VAA
Positionals:
vaa vaa [string]
Options:
--help Show help [boolean]
--version Show version number [boolean]
-c, --chain chain name
[choices: 'unset',
'solana',
'ethereum',
'terra',
'bsc',
'polygon',
'avalanche',
'oasis',
'algorand',
'aurora',
'fantom',
'karura',
'acala',
'klaytn',
'celo',
'near',
'moonbeam',
'neon',
'terra2',
'injective',
'osmosis',
'sui',
'aptos',
'arbitrum',
'optimism',
'gnosis',
'pythnet',
'xpla',
'btc',
'base',
'sei',
'rootstock',
'scroll',
'mantle',
'blast',
'xlayer',
'linea',
'berachain',
'seievm',
'wormchain',
'cosmoshub',
'evmos',
'kujira',
'neutron',
'celestia',
'stargaze',
'seda',
'dymension',
'provenance',
'sepolia',
'arbitrum_sepolia',
'base_sepolia',
'optimism_sepolia',
'holesky',
'polygon_sepolia']
-n, --network Network
[required]
[choices:
'mainnet',
'testnet',
'devnet']
-a, --contract-address Contract to submit VAA to (override config) [string]
--rpc RPC endpoint [string]
--all-chains, --ac Submit the VAA to all chains except for the origin
chain specified in the payload
[boolean] [default: false]
Sui
worm sui INSERT_COMMAND
Commands:
worm sui build-coin Build wrapped coin and dump bytecode.
Example:
worm sui build-coin -d 8 -v V__0_1_1 -n
testnet -r
"https://fullnode.testnet.sui.io:443"
worm sui deploy <package-dir> Deploy a Sui package
worm sui init-example-message-app Initialize example core message app
worm sui init-token-bridge Initialize token bridge contract
worm sui init-wormhole Initialize wormhole core contract
worm sui publish-example-message Publish message from example app via
core bridge
worm sui setup-devnet Setup devnet by deploying and
initializing core and token bridges and
submitting chain registrations.
worm sui objects <owner> Get owned objects by owner
worm sui package-id <state-object-id> Get package ID from State object ID
worm sui tx <transaction-digest> Get transaction details
Options:
--help Show help [boolean]
--version Show version number [boolean]
worm verify-vaa INSERT_VAA, INSERT_NETWORK
Options:
--help Show help [boolean]
--version Show version number [boolean]
-v, --vaa vaa in hex format [string] [required]
-n, --network Network [required] [choices: "mainnet", "testnet", "devnet"]
Aqui está a tradução técnica para o português:
Exemplos
Geração de VAA
Use o comando generate para criar VAAs para testes. Por exemplo, use o seguinte comando para criar um VAA de registro de ponte NFT:
Use o comando submit para enviar um VAA para uma rede. Ele primeiro analisa o VAA e determina a cadeia e o módulo de destino. Por exemplo, um upgrade de contrato contém tanto a cadeia de destino quanto o módulo, portanto, o único argumento necessário é o nome da rede (mainnet ou testnet):
O script pedirá para você especificar a cadeia de destino para VAAs que não possuem uma cadeia de destino específica (como registros ou upgrades de conjunto de guardiões). Por exemplo, para enviar um upgrade de conjunto de guardiões para todas as cadeias, execute:
O tipo de carga útil do VAA (upgrade de conjunto de guardiões) especifica que este VAA deve ir para a ponte principal, e a ferramenta direciona para lá.
Obter Informações
Para obter informações sobre um contrato (apenas EVM suportado neste momento), use o seguinte comando:
worm evm info -c bsc -n mainnet -m TokenBridge
Ao executar este comando, será gerado a seguinte saída: