Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

storeCode

Upload a Wasm code blob to the chain.

Signature

function storeCode(
  client: Client<Signer>,
  parameters: {
    sender: Address
    code: Base64
  },
): Promise<{ hash: Uint8Array } & TxData>

Example

import { createSignerClient, createTransport, testnet, PrivateKeySigner } from "@left-curve/sdk"
import { encodeBase64 } from "@left-curve/encoding"
import { readFileSync } from "node:fs"
import type { Address } from "@left-curve/sdk"
 
const client = createSignerClient({
  chain: testnet,
  transport: createTransport(),
  signer: PrivateKeySigner.fromMnemonic(process.env.DANGO_MNEMONIC!),
})
const sender: Address = "0x1234567890abcdef1234567890abcdef12345678"
 
const wasm = readFileSync("./contract.wasm")
await client.storeCode({ sender, code: encodeBase64(wasm) })

Parameters

senderAddress. The uploader. Subject to the chain's upload permission (everybody, nobody, or somebodies).

codeBase64. Base64-encoded Wasm bytecode.

Returns

{ hash: Uint8Array } & TxData — see broadcastTxSync.

Notes

  • The code hash for later instantiate calls is SHA-256 of the raw bytes (the typed-data builder hashes the base64-decoded content).

See also