Canton Transaction POC in JS and C/C++: 1. Create keypair at this derivation path from mnemonic: Derivation path: `m/44’/6767’/0’/0’/0’` (use ed25519) 2. Derive `partyId` from public key 3. Run a local dev net using docker on your local machine. Ref: <https://docs.dev.sync.glocbal/app_dev/testing/localnet.html> 3. 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 4. Send/Tap some CC in your `partyId` 5. Implement Send from your account to some other account: Ref: <https://docs.digitalasset.com/integrate/devnet/preparing-and-signing-transactions/index.html>. Steps: - Prepare send txn in JS - Parse (proto deserialise) the prepared txn in C/C++ - Validate and extract data to be displayed: sender, receiver, amount, expiry etc - Encode and hash the txn: Ref: https://docs.digitalasset.com/build/3.3/explanations/external-signing/external_signing_hashing_algorithm.html - Sign the txn hash using private key 6. 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: 1. https://docs.digitalasset.com/index.html 2. https://docs.dev.sync.global/app_dev/testing/localnet.html 3. https://github.com/hyperledger-labs/splice-wallet-kernel (Wallet SDK/Lib to be used, Can check source code for better understanding) 4. Protobuf docs: https://protobuf.dev/ 5. 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> 6. 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: