Canton Transaction POC in JS and C/C++:
- Create keypair at this derivation path from mnemonic: Derivation path:
m/44’/6767’/0’/0’/0’ (use ed25519)
- Derive
partyId from public key
- Run a local dev net using docker on your local machine. Ref: https://docs.dev.sync.glocbal/app_dev/testing/localnet.html
- Allocate external party on participant node: Ref: https://docs.digitalasset.com/integrate/devnet/party-management/index.html.
partyId needs to be allocated on participant node in order to be able to use the network.
Steps:
- Prepare txn in JS
- Parse (proto deserialise) the prepared txn in C/C++
- Validate, hash the proto serialized transactions (see multihashing from canton-wallet-sdk) and sign using the private key
- Send/Tap some CC in your
partyId
- Implement Send from your account to some other account: Ref: https://docs.digitalasset.com/integrate/devnet/preparing-and-signing-transactions/index.html. Steps:
- Implement Accept choice on any pending txn: Ref: https://docs.digitalasset.com/integrate/devnet/token-standard/index.html#accepting-or-rejecting-a-2-step-transfer
- Prepare Accept txn in JS
- Rest steps same as Send: Show txn type as well.
General References:
- https://docs.digitalasset.com/index.html
- https://docs.dev.sync.global/app_dev/testing/localnet.html
- https://github.com/hyperledger-labs/splice-wallet-kernel (Wallet SDK/Lib to be used, Can check source code for better understanding)
- Protobuf docs: https://protobuf.dev/
- Prepared Transaction (Send, Accept, Tap) Proto: https://github.com/hyperledger-labs/splice-wallet-kernel/blob/main/core/ledger-proto/src/_proto/com/daml/ledger/api/v2/interactive/interactive_submission_service.ts
- Topology txn Proto: https://github.com/hyperledger-labs/splice-wallet-kernel/blob/main/core/ledger-proto/src/_proto/com/digitalasset/canton/topology/admin/v30/topology_manager_write_service.d.ts
Canton Transaction POC in JS and C/C++:
m/44’/6767’/0’/0’/0’(use ed25519)partyIdfrom public keypartyIdneeds to be allocated on participant node in order to be able to use the network.Steps:
partyIdGeneral References: