iroha-javascript icon indicating copy to clipboard operation
iroha-javascript copied to clipboard

Add utility methods to build, sign, and send a transaction

Open s8sato opened this issue 3 years ago • 2 comments

Add utility methods to build, sign, and send a transaction. Something like:

  • [x] ~createTransactionPayload~
    • The request was canceled because your example helped them @0x009922
  • [ ] signTransactionPayload
  • [ ] submitVersionedTransaction

s8sato avatar Aug 02 '22 06:08 s8sato

  • createTransactionPayload - what exactly is needed here? Transaction payload could be created by hand with TransactionPayload() helper from @iroha2/data-model:

    import { TransactionPayload, OptionU32, MapNameValue } from '@iroha2/data-model'
    
    const payload = TransactionPayload({
      instructions: executable,
      time_to_live_ms: 100_000n,
      nonce: OptionU32('None'),
      metadata: MapNameValue(new Map()),
      creation_time: BigInt(Date.now()),
      account_id: accountId,
    })
    
  • signTransactionPayload - this could be exposed easily. Currently Client.submit() does it internally.

  • submitVersionedTransaction - this could be exposed from Client as well.

0x009922 avatar Aug 02 '22 07:08 0x009922

The transaction lifecycle feature will affect the implementation of this issue

s8sato avatar Aug 02 '22 07:08 s8sato

I close this issue after merging of #124.

  • You can scaffold a transaction payload with a new helper for it - makeTransactionPayload()
  • You can make signature of a transaction in 2 ways:
    • signTransaction(payload) returns Signature
    • makeSignedTransaction(payload, signer) returns signed VersionedTransaction
  • Torii.transaction(tx) literally only submits VersionedTransaction

0x009922 avatar Sep 20 '22 03:09 0x009922