Codec
Typescript SDK provides codec
for encoding
and decoding transactions, contracts and transaction scripts. codec
can be helpful in many scenarios: it is useful to debug transactions
and contracts, inspect security risks of existing dApps, efficiently
construct bytecode, etc.
In this guide we will learn how to use codec
to encode and decode
transaction, contract and transaction script.
Transaction
Unsigned Transaction
import { codec, node } from '@alephium/web3'
const unsignedTx: node.UnsignedTx = // unsigned transaction
const encoded = codec.unsignedTxCodec.encodeApiUnsignedTx(unsignedTx)
const decoded = codec.unsignedTxCodec.decodeApiUnsignedTx(encoded)
Signed Transaction
import { codec, node } from '@alephium/web3'
const tx: node.Transaction = // transaction
const encoded = codec.transactionCodec.encodeApiTransaction(tx)
const decoded = codec.transactionCodec.decodeApiTransaction(encoded)
Contract
import { codec } from '@alephium/web3'
const contract: codec.contract.Contract = // contract
const encoded = codec.contract.contractCodec.encodeContract(contract)
const decoded = codec.contract.contractCodec.decodeContract(encoded)
You can also decode from the contract artifact:
import { codec, Contract } from '@alephium/web3'
const artifact: Contract = // contract artifact
const decoded = codec.contract.contractCodec.decodeContract(artifact.bytecode)
Transaction Script
import { codec } from '@alephium/web3'
const script: codec.script.Script = // script
const encoded = codec.script.scriptCodec.encodeScript(script)
const decoded = codec.script.scriptCodec.decodeScript(encoded)
You can also decode from the script artifact:
import { codec, Script } from '@alephium/web3'
const artifact: Script = // script artifact
const scriptBytecode = artifact.buildByteCodeToDeploy(...)
const decoded = codec.script.scriptCodec.decodeScript(scriptBytecode)