Skip to content

abumostafa/cardano-cli-js

Repository files navigation

CardanoCliJS

JS wrapper for cardano-node-cli

Installation

npm i --save @abumostafa/cardano-cli

Usage

  • initialize

    import { CardanoCli } from "@abumostafa/cardano-cli"
    
    const cli = new CardanoCli({
        binPath: "/path/to/cardano-cli", // default is cardano-cli 
        storageDir: path.resolve(__dirname, "storage"), // storage path for keys, transactions, etc.,
        network: "mainnet", // "mainnet" || "testnet-magic 1097911063",
        shelleyGenesis: "/path/to/shelley-genesis.json"
    })
  • address

    • key-gen
      const keys = cli.address.keyGen({ account: "Ahmed", fileName: "wallet0" })
      // output: { vkey: "/path/to/wallet0.payment.vkey", skey: "/path/to/wallet0.payment.skey" } 
    • build
      const paymentAddr = cli.address.build({ account: "Ahmed", fileName: "wallet0" })
      // output: /path/to/wallet0.payment.addr 
    • build signed
      const paymentAddr = cli.address.build({ account: "Ahmed", fileName: "wallet0", signing: true })
      // output: /path/to/wallet0.payment.addr 
    • keyHash
      const keyHash = cli.address.keyHash({ account: "Ahmed", vkeyFileName: "verification-key-file-name" })
      // output: cb64ffbb1... 
  • stake-address

    • key-gen
      const keys = cli.address.keyGen({ account: "Ahmed", fileName: "wallet0" })
      // output: { vkey: "/path/to/wallet0.stake.vkey", skey: "/path/to/wallet0.stake.skey" } 
    • build
      const paymentAddr = cli.address.build({ account: "Ahmed", fileName: "wallet0" })
      // output: /path/to/wallet0.stake.addr 
    • build signed
      const paymentAddr = cli.address.build({ account: "Ahmed", fileName: "wallet0", signing: true })
      // output: /path/to/wallet0.stake.addr 
  • query

    • tip
      const tip = cli.query.tip()
      // output: { slot: 1123123, ... } 
    • utxo
      const utxos = cli.query.utxo({ address: "addr..." })
      // output: [{ txId: "", txHash, lovelace: 200000, assets: [{ type: "policy.name", querntity: 1 }]}] 
    • protocol parameters
      const params = cli.query.protocolParameters()
      // output: /path/to/protocol-parameters.json 
  • transaction

    • build raw
      const raw = cli.transaction.buildRaw({
          txIn: [{ txId, txHash }],
          txOut: [{ address, lovelace, assets: [{ type: "policy.name", quantity: 1 }] }],
      })
      // output: /path/to/transactions/now-raw.json 
    • calculate min fees
      const fee = cli.transaction.calculateMinFee({ txBody: "/path/to/transactions/now-raw.json"  })
      // output: 12345456 // lovelace 
    • sign
      const signed = cli.transaction.sign({ 
          txBody: "/path/to/transactions/now-raw.json",
          signingKeys: ["/path/to/payment.skey"] 
      })
      // output: /path/to/transactions/now-signed.json 
    • submit
      const txHash = cli.transaction.submit({ 
          tx: "/path/to/transactions/now-signed.json",
      })
      // output: cb64ffbb1...
    • view
      const txHash = cli.transaction.view({ 
          txFile: "/path/to/transactions/now-signed.json",
      })
      // output: cb64ffbb1...
    • policyId
      const txHash = cli.transaction.policyId({ 
          scriptFile: "/path/to/policies/policy.script",
      })
      // output: cb64ffbb1...
    • txid
      const txHash = cli.transaction.txid({ 
          txFile: "/path/to/transactions/now-signed.json",
      })
      // output: cb64ffbb1...