navio-blsct
    Preparing search index...

    Class CTx

    Represents a confidential transaction. Also known as CMutableTransaction on the C++ side. Examples:

    const { CTx, CTxId, TxIn, TxOut, ChildKey, SpendingKey, SubAddr, SubAddrId, DoublePublicKey, OutPoint, PublicKey, TokenId, CTX_ID_SIZE } = require('navio-blsct')
    const { randomBytes } = require('crypto')
    const cTxIdHex = randomBytes(CTX_ID_SIZE).toString('hex')
    const cTxId = CTxId.deserialize(cTxIdHex)
    const numTxIn = 1
    const numTxOut = 1
    const defaultFee = 200000
    const fee = (numTxIn + numTxOut) * defaultFee
    const outAmount = 10000
    const inAmount = fee + outAmount
    const outIndex = 0
    const outPoint = OutPoint.generate(cTxId, outIndex)
    const gamma = 100
    const spendingKey = new SpendingKey()
    const tokenId = TokenId.default()
    const txIn = TxIn.generate(inAmount, gamma, spendingKey, tokenId, outPoint)
    const viewKey = new ChildKey().toTxKey().toViewKey()
    const spendingPubKey = new PublicKey()
    const subAddrId = SubAddrId.generate(123, 456)
    const subAddr = SubAddr.generate(viewKey, spendingPubKey, subAddrId)
    const txOut = TxOut.generate(subAddr, outAmount, 'navio')
    const cTx = CTx.generate([txIn], [txOut])
    for (const cTxIn of cTx.getCTxIns()) {
    console.log(`prevOutHash: ${cTxIn.getPrevOutHash()}`)
    console.log(`prevOutN: ${cTxIn.getPrevOutN()}`)
    console.log(`scriptSig: ${cTxIn.getScriptSig()}`)
    console.log(`sequence: ${cTxIn.getSequence()}`)
    console.log(`scriptWitness: ${cTxIn.getScriptWitness()}`)
    }
    for (const cTxOut of cTx.getCTxOuts()) {
    console.log(`value: ${cTxOut.getValue()}`)
    console.log(`script_pub_key: ${cTxOut.getScriptPubKey()}`)
    console.log(`blsctData.spendingKey: ${cTxOut.blsctData().getSpendingKey()}`)
    console.log(`blsctData.ephemeralKey: ${cTxOut.blsctData().getEphemeralKey()}`)
    console.log(`blsctData.blindingKey: ${cTxOut.blsctData().getBlindingKey()}`)
    console.log(`blsctData.viewTag: ${cTxOut.blsctData().getViewTag()}`)
    const rp = cTxOut.blsctData().getRangeProof()
    console.log(`blsctData.rangeProof.A: ${rp.get_A()}`)
    console.log(`blsctData.rangeProof.A_wip: ${rp.get_A_wip()}`)
    console.log(`blsctData.rangeProof.B: ${rp.get_B()}`)
    console.log(`blsctData.rangeProof.r_prime: ${rp.get_r_prime()}`)
    console.log(`blsctData.rangeProof.s_prime: ${rp.get_s_prime()}`)
    console.log(`blsctData.rangeProof.delta_prime: ${rp.get_delta_prime()}`)
    console.log(`blsctData.rangeProof.alpha_hat: ${rp.get_alpha_hat()}`)
    console.log(`blsctData.rangeProof.tau_x: ${rp.get_tau_x()}`)
    console.log(`tokenId: token=${cTxOut.getTokenId().getToken()}, subid=${cTxOut.getTokenId().getSubid()}`)
    console.log(`vector_predicate: ${cTxOut.getVectorPredicate()}`)
    }
    const ser = cTx.serialize()
    const deser = CTx.deserialize(ser)
    ser === deser.serialize()

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    obj: any
    objSize: number

    Methods

    • Returns the transaction ID of this confidential transaction.

      Returns CTxId

      The transaction ID.

    • Returns the number of transaction inputs in this confidential transaction.

      Returns CTxIn[]

      The number of transaction inputs.

    • Returns the number of transaction outputs in this confidential transaction.

      Returns CTxOut[]

      The number of transaction outputs.

    • Returns the underlying C++ object, transferring ownership from this instance to the caller.

      Returns any

      The underlying object of the instance.

    • Serializes the instance to a hexadecimal string.

      Returns string

      A hexadecimal string representation of the instance.

    • Returns the size of the underlying C++ object.

      Returns number

      The size of the underlying C++ object in bytes.

    • Returns a string representation of the instance.

      Returns string

      A string representation of the instance.

    • Returnsthe underlying C++ object.

      Returns any

      The underlying C++ object.

    • Deserializes a hexadecimal string into a CTx instance.

      Parameters

      • hex: string

        The hexadecimal string to deserialize.

      Returns CTx

      A new CTx instance.

    • Constucts a new instance using the provided object.

      Type Parameters

      Parameters

      • this: new (obj: any, objSize?: number) => T
      • obj: any

        The object to use for the new instance.

      Returns T

      A new instance of the class.

    • Constructs a new instance using the provided object and size.

      Type Parameters

      Parameters

      • this: new (obj: any) => T
      • obj: any

        The object to use for the new instance.

      • objSize: number

        The size of the object.

      Returns T

      A new instance of the class.

    • Constructs a new CTx instance.

      Parameters

      • srcTxIns: TxIn[]

        An array of TxIn objects representing the transaction inputs.

      • srcTxOuts: TxOut[]

        An array of TxOut objects representing the transaction outputs.

      Returns CTx

      A new CTx instance.