@bitgo-beta/sdk-coin-icp 1.0.1-beta.574 → 1.0.1-beta.576

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/package.json +7 -7
  2. package/dist/src/icp.d.ts +0 -92
  3. package/dist/src/icp.d.ts.map +0 -1
  4. package/dist/src/icp.js +0 -377
  5. package/dist/src/index.d.ts +0 -5
  6. package/dist/src/index.d.ts.map +0 -1
  7. package/dist/src/index.js +0 -21
  8. package/dist/src/lib/icpAgent.d.ts +0 -34
  9. package/dist/src/lib/icpAgent.d.ts.map +0 -1
  10. package/dist/src/lib/icpAgent.js +0 -87
  11. package/dist/src/lib/iface.d.ts +0 -187
  12. package/dist/src/lib/iface.d.ts.map +0 -1
  13. package/dist/src/lib/iface.js +0 -39
  14. package/dist/src/lib/index.d.ts +0 -9
  15. package/dist/src/lib/index.d.ts.map +0 -1
  16. package/dist/src/lib/index.js +0 -53
  17. package/dist/src/lib/keyPair.d.ts +0 -18
  18. package/dist/src/lib/keyPair.d.ts.map +0 -1
  19. package/dist/src/lib/keyPair.js +0 -60
  20. package/dist/src/lib/signedTransactionBuilder.d.ts +0 -9
  21. package/dist/src/lib/signedTransactionBuilder.d.ts.map +0 -1
  22. package/dist/src/lib/signedTransactionBuilder.js +0 -64
  23. package/dist/src/lib/transaction.d.ts +0 -54
  24. package/dist/src/lib/transaction.d.ts.map +0 -1
  25. package/dist/src/lib/transaction.js +0 -255
  26. package/dist/src/lib/transactionBuilder.d.ts +0 -78
  27. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  28. package/dist/src/lib/transactionBuilder.js +0 -164
  29. package/dist/src/lib/transactionBuilderFactory.d.ts +0 -25
  30. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  31. package/dist/src/lib/transactionBuilderFactory.js +0 -61
  32. package/dist/src/lib/transferBuilder.d.ts +0 -19
  33. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  34. package/dist/src/lib/transferBuilder.js +0 -109
  35. package/dist/src/lib/unsignedTransactionBuilder.d.ts +0 -11
  36. package/dist/src/lib/unsignedTransactionBuilder.d.ts.map +0 -1
  37. package/dist/src/lib/unsignedTransactionBuilder.js +0 -87
  38. package/dist/src/lib/utils.d.ts +0 -304
  39. package/dist/src/lib/utils.d.ts.map +0 -1
  40. package/dist/src/lib/utils.js +0 -725
  41. package/dist/src/register.d.ts +0 -3
  42. package/dist/src/register.d.ts.map +0 -1
  43. package/dist/src/register.js +0 -11
  44. package/dist/src/ticp.d.ts +0 -25
  45. package/dist/src/ticp.d.ts.map +0 -1
  46. package/dist/src/ticp.js +0 -37
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.IcpAgent = void 0;
7
- const principal_1 = require("@dfinity/principal");
8
- const ic0_1 = require("ic0");
9
- const utils_1 = __importDefault(require("./utils"));
10
- const iface_1 = require("./iface");
11
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
12
- class IcpAgent {
13
- constructor(host) {
14
- this.host = host;
15
- }
16
- /**
17
- * Creates a new HTTP agent for communicating with the Internet Computer.
18
- * @returns An instance of HttpAgent.
19
- */
20
- createAgent() {
21
- return new ic0_1.HttpAgent({
22
- host: this.host,
23
- fetch,
24
- verifyQuerySignatures: false,
25
- });
26
- }
27
- /**
28
- * Retrieves an instance of the ledger canister agent.
29
- *
30
- * This method creates a new agent using `createAgent()`, initializes a replica interface
31
- * with the agent (configured for local use), and returns an `AgentCanister` instance
32
- * for the ledger canister identified by `LEDGER_CANISTER_ID`.
33
- *
34
- * @returns {AgentCanister} An agent interface for interacting with the ledger canister.
35
- */
36
- getLedger() {
37
- const agent = this.createAgent();
38
- const ic = (0, ic0_1.replica)(agent, { local: true });
39
- return ic(principal_1.Principal.fromUint8Array(iface_1.LEDGER_CANISTER_ID).toText());
40
- }
41
- /**
42
- * Fetches the account balance for a given principal ID.
43
- * @param principalId - The principal ID of the account.
44
- * @returns Promise resolving to the account balance as a string.
45
- * @throws Error if the balance could not be fetched.
46
- */
47
- async getBalance(principalId) {
48
- try {
49
- if (!principalId) {
50
- throw new Error('Principal ID is required');
51
- }
52
- const ledger = this.getLedger();
53
- const account = {
54
- owner: principal_1.Principal.fromText(principalId),
55
- subaccount: [utils_1.default.hexToBytes(iface_1.DEFAULT_SUBACCOUNT)],
56
- };
57
- const balance = await ledger.call(iface_1.ACCOUNT_BALANCE_CALL, account);
58
- return (0, bignumber_js_1.default)(balance);
59
- }
60
- catch (error) {
61
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
62
- throw new Error(`Error fetching balance for principal ${principalId}: ${errorMessage}`);
63
- }
64
- }
65
- /**
66
- * Fetches the transaction fee from the ledger.
67
- * @returns Promise resolving to the transaction fee as a string.
68
- * @throws Error if the fee could not be fetched.
69
- */
70
- async getFee() {
71
- try {
72
- const ledger = this.getLedger();
73
- const metadata = await ledger.call(iface_1.METADATA_CALL);
74
- const feeEntry = metadata.find((entry) => entry[0] === iface_1.ICRC1_FEE_KEY && entry[1]?.Nat !== undefined);
75
- if (!feeEntry) {
76
- throw new Error(`${iface_1.ICRC1_FEE_KEY} metadata not found or invalid format`);
77
- }
78
- return (0, bignumber_js_1.default)(feeEntry[1].Nat);
79
- }
80
- catch (error) {
81
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
82
- throw new Error(`Error fetching transaction fee: ${errorMessage}`);
83
- }
84
- }
85
- }
86
- exports.IcpAgent = IcpAgent;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwQWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2ljcEFnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUErQztBQUMvQyw2QkFBd0Q7QUFDeEQsb0RBQTRCO0FBQzVCLG1DQUFxSDtBQUNySCxnRUFBcUM7QUFFckMsTUFBYSxRQUFRO0lBR25CLFlBQVksSUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVztRQUNqQixPQUFPLElBQUksZUFBUyxDQUFDO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUs7WUFDTCxxQkFBcUIsRUFBRSxLQUFLO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLFNBQVM7UUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsTUFBTSxFQUFFLEdBQUcsSUFBQSxhQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0MsT0FBTyxFQUFFLENBQUMscUJBQVMsQ0FBQyxjQUFjLENBQUMsMEJBQWtCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBbUI7UUFDekMsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDOUMsQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxNQUFNLE9BQU8sR0FBRztnQkFDZCxLQUFLLEVBQUUscUJBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUN0QyxVQUFVLEVBQUUsQ0FBQyxlQUFLLENBQUMsVUFBVSxDQUFDLDBCQUFrQixDQUFDLENBQUM7YUFDbkQsQ0FBQztZQUVGLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRSxPQUFPLElBQUEsc0JBQVMsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztZQUM5RSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxXQUFXLEtBQUssWUFBWSxFQUFFLENBQUMsQ0FBQztRQUMxRixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsTUFBTTtRQUNqQixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFhLENBQUMsQ0FBQztZQUVsRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUM1QixDQUFDLEtBQUssRUFBc0MsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxxQkFBYSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssU0FBUyxDQUN6RyxDQUFDO1lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxxQkFBYSx1Q0FBdUMsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFFRCxPQUFPLElBQUEsc0JBQVMsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFlBQVksR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7WUFDOUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbkZELDRCQW1GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByaW5jaXBhbCB9IGZyb20gJ0BkZmluaXR5L3ByaW5jaXBhbCc7XG5pbXBvcnQgeyBIdHRwQWdlbnQsIHJlcGxpY2EsIEFnZW50Q2FuaXN0ZXIgfSBmcm9tICdpYzAnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQUNDT1VOVF9CQUxBTkNFX0NBTEwsIExFREdFUl9DQU5JU1RFUl9JRCwgSUNSQzFfRkVFX0tFWSwgTUVUQURBVEFfQ0FMTCwgREVGQVVMVF9TVUJBQ0NPVU5UIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBJY3BBZ2VudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGhvc3Q6IHN0cmluZykge1xuICAgIHRoaXMuaG9zdCA9IGhvc3Q7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBIVFRQIGFnZW50IGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIEludGVybmV0IENvbXB1dGVyLlxuICAgKiBAcmV0dXJucyBBbiBpbnN0YW5jZSBvZiBIdHRwQWdlbnQuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUFnZW50KCk6IEh0dHBBZ2VudCB7XG4gICAgcmV0dXJuIG5ldyBIdHRwQWdlbnQoe1xuICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgZmV0Y2gsXG4gICAgICB2ZXJpZnlRdWVyeVNpZ25hdHVyZXM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBpbnN0YW5jZSBvZiB0aGUgbGVkZ2VyIGNhbmlzdGVyIGFnZW50LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgbmV3IGFnZW50IHVzaW5nIGBjcmVhdGVBZ2VudCgpYCwgaW5pdGlhbGl6ZXMgYSByZXBsaWNhIGludGVyZmFjZVxuICAgKiB3aXRoIHRoZSBhZ2VudCAoY29uZmlndXJlZCBmb3IgbG9jYWwgdXNlKSwgYW5kIHJldHVybnMgYW4gYEFnZW50Q2FuaXN0ZXJgIGluc3RhbmNlXG4gICAqIGZvciB0aGUgbGVkZ2VyIGNhbmlzdGVyIGlkZW50aWZpZWQgYnkgYExFREdFUl9DQU5JU1RFUl9JRGAuXG4gICAqXG4gICAqIEByZXR1cm5zIHtBZ2VudENhbmlzdGVyfSBBbiBhZ2VudCBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGxlZGdlciBjYW5pc3Rlci5cbiAgICovXG4gIHByaXZhdGUgZ2V0TGVkZ2VyKCk6IEFnZW50Q2FuaXN0ZXIge1xuICAgIGNvbnN0IGFnZW50ID0gdGhpcy5jcmVhdGVBZ2VudCgpO1xuICAgIGNvbnN0IGljID0gcmVwbGljYShhZ2VudCwgeyBsb2NhbDogdHJ1ZSB9KTtcbiAgICByZXR1cm4gaWMoUHJpbmNpcGFsLmZyb21VaW50OEFycmF5KExFREdFUl9DQU5JU1RFUl9JRCkudG9UZXh0KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGFjY291bnQgYmFsYW5jZSBmb3IgYSBnaXZlbiBwcmluY2lwYWwgSUQuXG4gICAqIEBwYXJhbSBwcmluY2lwYWxJZCAtIFRoZSBwcmluY2lwYWwgSUQgb2YgdGhlIGFjY291bnQuXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBhY2NvdW50IGJhbGFuY2UgYXMgYSBzdHJpbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGJhbGFuY2UgY291bGQgbm90IGJlIGZldGNoZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QmFsYW5jZShwcmluY2lwYWxJZDogc3RyaW5nKTogUHJvbWlzZTxCaWdOdW1iZXI+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFwcmluY2lwYWxJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ByaW5jaXBhbCBJRCBpcyByZXF1aXJlZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgbGVkZ2VyID0gdGhpcy5nZXRMZWRnZXIoKTtcbiAgICAgIGNvbnN0IGFjY291bnQgPSB7XG4gICAgICAgIG93bmVyOiBQcmluY2lwYWwuZnJvbVRleHQocHJpbmNpcGFsSWQpLFxuICAgICAgICBzdWJhY2NvdW50OiBbdXRpbHMuaGV4VG9CeXRlcyhERUZBVUxUX1NVQkFDQ09VTlQpXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBsZWRnZXIuY2FsbChBQ0NPVU5UX0JBTEFOQ0VfQ0FMTCwgYWNjb3VudCk7XG4gICAgICByZXR1cm4gQmlnTnVtYmVyKGJhbGFuY2UpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJztcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgZmV0Y2hpbmcgYmFsYW5jZSBmb3IgcHJpbmNpcGFsICR7cHJpbmNpcGFsSWR9OiAke2Vycm9yTWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgdHJhbnNhY3Rpb24gZmVlIGZyb20gdGhlIGxlZGdlci5cbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIGZlZSBhcyBhIHN0cmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgZmVlIGNvdWxkIG5vdCBiZSBmZXRjaGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEZlZSgpOiBQcm9taXNlPEJpZ051bWJlcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsZWRnZXIgPSB0aGlzLmdldExlZGdlcigpO1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBsZWRnZXIuY2FsbChNRVRBREFUQV9DQUxMKTtcblxuICAgICAgY29uc3QgZmVlRW50cnkgPSBtZXRhZGF0YS5maW5kKFxuICAgICAgICAoZW50cnkpOiBlbnRyeSBpcyBbc3RyaW5nLCB7IE5hdDogc3RyaW5nIH1dID0+IGVudHJ5WzBdID09PSBJQ1JDMV9GRUVfS0VZICYmIGVudHJ5WzFdPy5OYXQgIT09IHVuZGVmaW5lZFxuICAgICAgKTtcblxuICAgICAgaWYgKCFmZWVFbnRyeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7SUNSQzFfRkVFX0tFWX0gbWV0YWRhdGEgbm90IGZvdW5kIG9yIGludmFsaWQgZm9ybWF0YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBCaWdOdW1iZXIoZmVlRW50cnlbMV0uTmF0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcic7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGZldGNoaW5nIHRyYW5zYWN0aW9uIGZlZTogJHtlcnJvck1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,187 +0,0 @@
1
- import { TransactionExplanation as BaseTransactionExplanation, TransactionType as BitGoTransactionType } from '@bitgo-beta/sdk-core';
2
- export declare const MAX_INGRESS_TTL: number;
3
- export declare const PERMITTED_DRIFT: number;
4
- export declare const LEDGER_CANISTER_ID: Uint8Array<ArrayBuffer>;
5
- export declare const ROOT_PATH = "m/0";
6
- export declare const ACCOUNT_BALANCE_CALL = "icrc1_balance_of";
7
- export declare const PUBLIC_NODE_REQUEST_ENDPOINT = "/api/v3/canister/";
8
- export declare const DEFAULT_MEMO = 0;
9
- export declare const ICRC1_FEE_KEY = "icrc1:fee";
10
- export declare const METADATA_CALL = "icrc1_metadata";
11
- export declare const DEFAULT_SUBACCOUNT = "0000000000000000000000000000000000000000000000000000000000000000";
12
- export declare enum RequestType {
13
- CALL = "call"
14
- }
15
- export declare enum SignatureType {
16
- ECDSA = "ecdsa"
17
- }
18
- export declare enum CurveType {
19
- SECP256K1 = "secp256k1"
20
- }
21
- export declare enum OperationType {
22
- TRANSACTION = "TRANSACTION",
23
- FEE = "FEE"
24
- }
25
- export declare enum MethodName {
26
- SEND_PB = "send_pb"
27
- }
28
- export declare enum Network {
29
- ID = "00000000000000020101"
30
- }
31
- export interface IcpTransactionData {
32
- senderAddress: string;
33
- receiverAddress: string;
34
- amount: string;
35
- fee: string;
36
- senderPublicKeyHex: string;
37
- memo: number | BigInt;
38
- transactionType: OperationType;
39
- expiryTime: number | BigInt;
40
- }
41
- export interface IcpPublicKey {
42
- hex_bytes: string;
43
- curve_type: string;
44
- }
45
- export interface IcpAccount {
46
- address: string;
47
- }
48
- export interface IcpCurrency {
49
- symbol: string;
50
- decimals: number;
51
- }
52
- export interface IcpAmount {
53
- value: string;
54
- currency: IcpCurrency;
55
- }
56
- export interface IcpOperation {
57
- type: string;
58
- account: IcpAccount;
59
- amount: IcpAmount;
60
- }
61
- export interface MetaData {
62
- created_at_time: number;
63
- memo: number | BigInt;
64
- ingress_start?: number | BigInt;
65
- ingress_end?: number | BigInt;
66
- }
67
- export interface IcpTransaction {
68
- public_keys: IcpPublicKey[];
69
- operations: IcpOperation[];
70
- metadata: MetaData;
71
- }
72
- export interface ParsedTransaction {
73
- operations: IcpOperation[];
74
- account_identifier_signers: IcpAccount[];
75
- metadata: MetaData;
76
- }
77
- export interface IcpAccountIdentifier {
78
- address: string;
79
- }
80
- export interface SendArgs {
81
- memo: {
82
- memo: number | BigInt;
83
- };
84
- payment: {
85
- receiverGets: {
86
- e8s: number;
87
- };
88
- };
89
- maxFee: {
90
- e8s: number;
91
- };
92
- to: {
93
- hash: Buffer;
94
- };
95
- createdAtTime: {
96
- timestampNanos: number;
97
- };
98
- }
99
- export interface HttpCanisterUpdate {
100
- canister_id: Uint8Array;
101
- method_name: MethodName;
102
- arg: Uint8Array;
103
- sender: Uint8Array;
104
- ingress_expiry: bigint;
105
- }
106
- export interface SigningPayload {
107
- account_identifier: IcpAccountIdentifier;
108
- hex_bytes: string;
109
- signature_type: SignatureType;
110
- }
111
- export interface PayloadsData {
112
- payloads: SigningPayload[];
113
- unsigned_transaction: string;
114
- }
115
- export interface Signatures {
116
- signing_payload: SigningPayload;
117
- signature_type: SignatureType;
118
- public_key: IcpPublicKey;
119
- hex_bytes: string;
120
- }
121
- export interface CborUnsignedTransaction {
122
- updates: [HttpCanisterUpdate][];
123
- ingress_expiries: bigint[];
124
- }
125
- export interface UpdateEnvelope {
126
- content: HttpCanisterUpdate & {
127
- request_type: RequestType;
128
- };
129
- sender_pubkey: Uint8Array;
130
- sender_sig: Uint8Array;
131
- }
132
- export interface RequestEnvelope {
133
- update: UpdateEnvelope;
134
- }
135
- /**
136
- * The transaction data returned from the toJson() function of a transaction
137
- */
138
- export interface TxData {
139
- id?: string;
140
- sender: string;
141
- senderPublicKey: string;
142
- recipient: string;
143
- memo?: number | BigInt;
144
- feeAmount: string;
145
- expirationTime: number | BigInt;
146
- type?: BitGoTransactionType;
147
- }
148
- export interface IcpTransactionExplanation extends BaseTransactionExplanation {
149
- sender?: string;
150
- type?: BitGoTransactionType;
151
- }
152
- export interface NetworkIdentifier {
153
- blockchain: string;
154
- network: string;
155
- }
156
- export interface RawTransaction {
157
- serializedTxHex: PayloadsData;
158
- publicKey: string;
159
- }
160
- export interface RecoveryOptions {
161
- userKey: string;
162
- backupKey: string;
163
- bitgoKey?: string;
164
- rootAddress?: string;
165
- recoveryDestination: string;
166
- walletPassphrase: string;
167
- memo?: number | BigInt;
168
- }
169
- export interface RecoveryTransaction {
170
- id: string;
171
- tx: string;
172
- }
173
- export interface UnsignedSweepRecoveryTransaction {
174
- txHex: string;
175
- coin: string;
176
- }
177
- export interface PublicNodeSubmitResponse {
178
- status: string;
179
- }
180
- export interface AccountIdentifierHash {
181
- hash: Buffer<ArrayBuffer>;
182
- }
183
- export interface TransactionHexParams {
184
- transactionHex: string;
185
- signableHex?: string;
186
- }
187
- //# sourceMappingURL=iface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Network = exports.MethodName = exports.OperationType = exports.CurveType = exports.SignatureType = exports.RequestType = exports.DEFAULT_SUBACCOUNT = exports.METADATA_CALL = exports.ICRC1_FEE_KEY = exports.DEFAULT_MEMO = exports.PUBLIC_NODE_REQUEST_ENDPOINT = exports.ACCOUNT_BALANCE_CALL = exports.ROOT_PATH = exports.LEDGER_CANISTER_ID = exports.PERMITTED_DRIFT = exports.MAX_INGRESS_TTL = void 0;
4
- exports.MAX_INGRESS_TTL = 5 * 60 * 1000000000; // 5 minutes in nanoseconds
5
- exports.PERMITTED_DRIFT = 60 * 1000000000; // 60 seconds in nanoseconds
6
- exports.LEDGER_CANISTER_ID = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 2, 1, 1]); // Uint8Array value for "00000000000000020101" and the string value is "ryjl3-tyaaa-aaaaa-aaaba-cai"
7
- exports.ROOT_PATH = 'm/0';
8
- exports.ACCOUNT_BALANCE_CALL = 'icrc1_balance_of';
9
- exports.PUBLIC_NODE_REQUEST_ENDPOINT = '/api/v3/canister/';
10
- exports.DEFAULT_MEMO = 0; // default memo value is 0
11
- exports.ICRC1_FEE_KEY = 'icrc1:fee';
12
- exports.METADATA_CALL = 'icrc1_metadata';
13
- exports.DEFAULT_SUBACCOUNT = '0000000000000000000000000000000000000000000000000000000000000000'; // default subaccount value is 0x
14
- var RequestType;
15
- (function (RequestType) {
16
- RequestType["CALL"] = "call";
17
- })(RequestType || (exports.RequestType = RequestType = {}));
18
- var SignatureType;
19
- (function (SignatureType) {
20
- SignatureType["ECDSA"] = "ecdsa";
21
- })(SignatureType || (exports.SignatureType = SignatureType = {}));
22
- var CurveType;
23
- (function (CurveType) {
24
- CurveType["SECP256K1"] = "secp256k1";
25
- })(CurveType || (exports.CurveType = CurveType = {}));
26
- var OperationType;
27
- (function (OperationType) {
28
- OperationType["TRANSACTION"] = "TRANSACTION";
29
- OperationType["FEE"] = "FEE";
30
- })(OperationType || (exports.OperationType = OperationType = {}));
31
- var MethodName;
32
- (function (MethodName) {
33
- MethodName["SEND_PB"] = "send_pb";
34
- })(MethodName || (exports.MethodName = MethodName = {}));
35
- var Network;
36
- (function (Network) {
37
- Network["ID"] = "00000000000000020101";
38
- })(Network || (exports.Network = Network = {}));
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUthLFFBQUEsZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBWSxDQUFDLENBQUMsMkJBQTJCO0FBQ3BFLFFBQUEsZUFBZSxHQUFHLEVBQUUsR0FBRyxVQUFZLENBQUMsQ0FBQyw0QkFBNEI7QUFDakUsUUFBQSxrQkFBa0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvR0FBb0c7QUFDekssUUFBQSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQ2xCLFFBQUEsb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7QUFDMUMsUUFBQSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUNuRCxRQUFBLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7QUFDNUMsUUFBQSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQzVCLFFBQUEsYUFBYSxHQUFHLGdCQUFnQixDQUFDO0FBQ2pDLFFBQUEsa0JBQWtCLEdBQUcsa0VBQWtFLENBQUMsQ0FBQyxpQ0FBaUM7QUFFdkksSUFBWSxXQUVYO0FBRkQsV0FBWSxXQUFXO0lBQ3JCLDRCQUFhLENBQUE7QUFDZixDQUFDLEVBRlcsV0FBVywyQkFBWCxXQUFXLFFBRXRCO0FBRUQsSUFBWSxhQUVYO0FBRkQsV0FBWSxhQUFhO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUZXLGFBQWEsNkJBQWIsYUFBYSxRQUV4QjtBQUVELElBQVksU0FFWDtBQUZELFdBQVksU0FBUztJQUNuQixvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsU0FBUyx5QkFBVCxTQUFTLFFBRXBCO0FBRUQsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLDRDQUEyQixDQUFBO0lBQzNCLDRCQUFXLENBQUE7QUFDYixDQUFDLEVBSFcsYUFBYSw2QkFBYixhQUFhLFFBR3hCO0FBRUQsSUFBWSxVQUVYO0FBRkQsV0FBWSxVQUFVO0lBQ3BCLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGVyxVQUFVLDBCQUFWLFVBQVUsUUFFckI7QUFFRCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0NBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQUZXLE9BQU8sdUJBQVAsT0FBTyxRQUVsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uVHlwZSBhcyBCaXRHb1RyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgY29uc3QgTUFYX0lOR1JFU1NfVFRMID0gNSAqIDYwICogMTAwMF8wMDBfMDAwOyAvLyA1IG1pbnV0ZXMgaW4gbmFub3NlY29uZHNcbmV4cG9ydCBjb25zdCBQRVJNSVRURURfRFJJRlQgPSA2MCAqIDEwMDBfMDAwXzAwMDsgLy8gNjAgc2Vjb25kcyBpbiBuYW5vc2Vjb25kc1xuZXhwb3J0IGNvbnN0IExFREdFUl9DQU5JU1RFUl9JRCA9IG5ldyBVaW50OEFycmF5KFswLCAwLCAwLCAwLCAwLCAwLCAwLCAyLCAxLCAxXSk7IC8vIFVpbnQ4QXJyYXkgdmFsdWUgZm9yIFwiMDAwMDAwMDAwMDAwMDAwMjAxMDFcIiBhbmQgdGhlIHN0cmluZyB2YWx1ZSBpcyBcInJ5amwzLXR5YWFhLWFhYWFhLWFhYWJhLWNhaVwiXG5leHBvcnQgY29uc3QgUk9PVF9QQVRIID0gJ20vMCc7XG5leHBvcnQgY29uc3QgQUNDT1VOVF9CQUxBTkNFX0NBTEwgPSAnaWNyYzFfYmFsYW5jZV9vZic7XG5leHBvcnQgY29uc3QgUFVCTElDX05PREVfUkVRVUVTVF9FTkRQT0lOVCA9ICcvYXBpL3YzL2NhbmlzdGVyLyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NRU1PID0gMDsgLy8gZGVmYXVsdCBtZW1vIHZhbHVlIGlzIDBcbmV4cG9ydCBjb25zdCBJQ1JDMV9GRUVfS0VZID0gJ2ljcmMxOmZlZSc7XG5leHBvcnQgY29uc3QgTUVUQURBVEFfQ0FMTCA9ICdpY3JjMV9tZXRhZGF0YSc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TVUJBQ0NPVU5UID0gJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBkZWZhdWx0IHN1YmFjY291bnQgdmFsdWUgaXMgMHhcblxuZXhwb3J0IGVudW0gUmVxdWVzdFR5cGUge1xuICBDQUxMID0gJ2NhbGwnLFxufVxuXG5leHBvcnQgZW51bSBTaWduYXR1cmVUeXBlIHtcbiAgRUNEU0EgPSAnZWNkc2EnLFxufVxuXG5leHBvcnQgZW51bSBDdXJ2ZVR5cGUge1xuICBTRUNQMjU2SzEgPSAnc2VjcDI1NmsxJyxcbn1cblxuZXhwb3J0IGVudW0gT3BlcmF0aW9uVHlwZSB7XG4gIFRSQU5TQUNUSU9OID0gJ1RSQU5TQUNUSU9OJyxcbiAgRkVFID0gJ0ZFRScsXG59XG5cbmV4cG9ydCBlbnVtIE1ldGhvZE5hbWUge1xuICBTRU5EX1BCID0gJ3NlbmRfcGInLCAvLyBzZW5kX3BiIGlzIHRoZSBtZXRob2QgbmFtZSBmb3IgSUNQIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG59XG5cbmV4cG9ydCBlbnVtIE5ldHdvcmsge1xuICBJRCA9ICcwMDAwMDAwMDAwMDAwMDAyMDEwMScsIC8vIElDUCBkb2VzIG5vdCBoYXZlIGRpZmZlcmVudCBuZXR3b3JrIElEcyBmb3IgbWFpbm5ldCBhbmQgdGVzdG5ldFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcFRyYW5zYWN0aW9uRGF0YSB7XG4gIHNlbmRlckFkZHJlc3M6IHN0cmluZztcbiAgcmVjZWl2ZXJBZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBmZWU6IHN0cmluZztcbiAgc2VuZGVyUHVibGljS2V5SGV4OiBzdHJpbmc7XG4gIG1lbW86IG51bWJlciB8IEJpZ0ludDsgLy8gbWVtbyBpbiBzdHJpbmcgaXMgbm90IGFjY2VwdGVkIGJ5IElDUCBjaGFpbi5cbiAgdHJhbnNhY3Rpb25UeXBlOiBPcGVyYXRpb25UeXBlO1xuICBleHBpcnlUaW1lOiBudW1iZXIgfCBCaWdJbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwUHVibGljS2V5IHtcbiAgaGV4X2J5dGVzOiBzdHJpbmc7XG4gIGN1cnZlX3R5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY3BBY2NvdW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcEN1cnJlbmN5IHtcbiAgc3ltYm9sOiBzdHJpbmc7XG4gIGRlY2ltYWxzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwQW1vdW50IHtcbiAgdmFsdWU6IHN0cmluZztcbiAgY3VycmVuY3k6IEljcEN1cnJlbmN5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcE9wZXJhdGlvbiB7XG4gIHR5cGU6IHN0cmluZztcbiAgYWNjb3VudDogSWNwQWNjb3VudDtcbiAgYW1vdW50OiBJY3BBbW91bnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YURhdGEge1xuICBjcmVhdGVkX2F0X3RpbWU6IG51bWJlcjtcbiAgbWVtbzogbnVtYmVyIHwgQmlnSW50OyAvLyBtZW1vIGluIHN0cmluZyBpcyBub3QgYWNjZXB0ZWQgYnkgSUNQIGNoYWluLlxuICBpbmdyZXNzX3N0YXJ0PzogbnVtYmVyIHwgQmlnSW50OyAvLyBpdCBzaG91bGQgYmUgbmFubyBzZWNvbmRzXG4gIGluZ3Jlc3NfZW5kPzogbnVtYmVyIHwgQmlnSW50OyAvLyBpdCBzaG91bGQgYmUgbmFubyBzZWNvbmRzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwVHJhbnNhY3Rpb24ge1xuICBwdWJsaWNfa2V5czogSWNwUHVibGljS2V5W107XG4gIG9wZXJhdGlvbnM6IEljcE9wZXJhdGlvbltdO1xuICBtZXRhZGF0YTogTWV0YURhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVHJhbnNhY3Rpb24ge1xuICBvcGVyYXRpb25zOiBJY3BPcGVyYXRpb25bXTtcbiAgYWNjb3VudF9pZGVudGlmaWVyX3NpZ25lcnM6IEljcEFjY291bnRbXTtcbiAgbWV0YWRhdGE6IE1ldGFEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcEFjY291bnRJZGVudGlmaWVyIHtcbiAgYWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRBcmdzIHtcbiAgbWVtbzogeyBtZW1vOiBudW1iZXIgfCBCaWdJbnQgfTtcbiAgcGF5bWVudDogeyByZWNlaXZlckdldHM6IHsgZThzOiBudW1iZXIgfSB9O1xuICBtYXhGZWU6IHsgZThzOiBudW1iZXIgfTtcbiAgdG86IHsgaGFzaDogQnVmZmVyIH07XG4gIGNyZWF0ZWRBdFRpbWU6IHsgdGltZXN0YW1wTmFub3M6IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDYW5pc3RlclVwZGF0ZSB7XG4gIGNhbmlzdGVyX2lkOiBVaW50OEFycmF5O1xuICBtZXRob2RfbmFtZTogTWV0aG9kTmFtZTtcbiAgYXJnOiBVaW50OEFycmF5O1xuICBzZW5kZXI6IFVpbnQ4QXJyYXk7XG4gIGluZ3Jlc3NfZXhwaXJ5OiBiaWdpbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmluZ1BheWxvYWQge1xuICBhY2NvdW50X2lkZW50aWZpZXI6IEljcEFjY291bnRJZGVudGlmaWVyO1xuICBoZXhfYnl0ZXM6IHN0cmluZztcbiAgc2lnbmF0dXJlX3R5cGU6IFNpZ25hdHVyZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZHNEYXRhIHtcbiAgcGF5bG9hZHM6IFNpZ25pbmdQYXlsb2FkW107XG4gIHVuc2lnbmVkX3RyYW5zYWN0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlcyB7XG4gIHNpZ25pbmdfcGF5bG9hZDogU2lnbmluZ1BheWxvYWQ7XG4gIHNpZ25hdHVyZV90eXBlOiBTaWduYXR1cmVUeXBlO1xuICBwdWJsaWNfa2V5OiBJY3BQdWJsaWNLZXk7XG4gIGhleF9ieXRlczogc3RyaW5nO1xufVxuXG4vL1RvZG86IHJlbW92ZSB0aGlzIGludGVyZmFjZSB3aGVuIHdlIGhhdmUgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGUgdHJhbnNhY3Rpb25cbmV4cG9ydCBpbnRlcmZhY2UgQ2JvclVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICB1cGRhdGVzOiBbSHR0cENhbmlzdGVyVXBkYXRlXVtdO1xuICBpbmdyZXNzX2V4cGlyaWVzOiBiaWdpbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVFbnZlbG9wZSB7XG4gIGNvbnRlbnQ6IEh0dHBDYW5pc3RlclVwZGF0ZSAmIHtcbiAgICByZXF1ZXN0X3R5cGU6IFJlcXVlc3RUeXBlO1xuICB9O1xuICBzZW5kZXJfcHVia2V5OiBVaW50OEFycmF5O1xuICBzZW5kZXJfc2lnOiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RFbnZlbG9wZSB7XG4gIHVwZGF0ZTogVXBkYXRlRW52ZWxvcGU7XG59XG5cbi8qKlxuICogVGhlIHRyYW5zYWN0aW9uIGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgdG9Kc29uKCkgZnVuY3Rpb24gb2YgYSB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkPzogc3RyaW5nO1xuICBzZW5kZXI6IHN0cmluZztcbiAgc2VuZGVyUHVibGljS2V5OiBzdHJpbmc7XG4gIHJlY2lwaWVudDogc3RyaW5nO1xuICBtZW1vPzogbnVtYmVyIHwgQmlnSW50O1xuICBmZWVBbW91bnQ6IHN0cmluZztcbiAgZXhwaXJhdGlvblRpbWU6IG51bWJlciB8IEJpZ0ludDtcbiAgdHlwZT86IEJpdEdvVHJhbnNhY3Rpb25UeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHNlbmRlcj86IHN0cmluZztcbiAgdHlwZT86IEJpdEdvVHJhbnNhY3Rpb25UeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJZGVudGlmaWVyIHtcbiAgYmxvY2tjaGFpbjogc3RyaW5nO1xuICBuZXR3b3JrOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmF3VHJhbnNhY3Rpb24ge1xuICBzZXJpYWxpemVkVHhIZXg6IFBheWxvYWRzRGF0YTtcbiAgcHVibGljS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleTogc3RyaW5nOyAvLyBCb3ggQVxuICBiYWNrdXBLZXk6IHN0cmluZzsgLy8gQm94IEJcbiAgYml0Z29LZXk/OiBzdHJpbmc7XG4gIHJvb3RBZGRyZXNzPzogc3RyaW5nO1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgbWVtbz86IG51bWJlciB8IEJpZ0ludDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeVRyYW5zYWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdHg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnNpZ25lZFN3ZWVwUmVjb3ZlcnlUcmFuc2FjdGlvbiB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIGNvaW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNOb2RlU3VibWl0UmVzcG9uc2Uge1xuICBzdGF0dXM6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50SWRlbnRpZmllckhhc2gge1xuICBoYXNoOiBCdWZmZXI8QXJyYXlCdWZmZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSGV4UGFyYW1zIHtcbiAgdHJhbnNhY3Rpb25IZXg6IHN0cmluZztcbiAgc2lnbmFibGVIZXg/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- import * as Utils from './utils';
2
- export * from './iface';
3
- export { KeyPair } from './keyPair';
4
- export { TransactionBuilder } from './transactionBuilder';
5
- export { TransferBuilder } from './transferBuilder';
6
- export { TransactionBuilderFactory } from './transactionBuilderFactory';
7
- export { Transaction } from './transaction';
8
- export { Utils };
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.Utils = exports.Transaction = exports.TransactionBuilderFactory = exports.TransferBuilder = exports.TransactionBuilder = exports.KeyPair = void 0;
40
- const Utils = __importStar(require("./utils"));
41
- exports.Utils = Utils;
42
- __exportStar(require("./iface"), exports);
43
- var keyPair_1 = require("./keyPair");
44
- Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
45
- var transactionBuilder_1 = require("./transactionBuilder");
46
- Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
47
- var transferBuilder_1 = require("./transferBuilder");
48
- Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
49
- var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
50
- Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
51
- var transaction_1 = require("./transaction");
52
- Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQVF4QixzQkFBSztBQVBkLDBDQUF3QjtBQUV4QixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQTtBQUNsQyw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgeyBVdGlscyB9O1xuIl19
@@ -1,18 +0,0 @@
1
- import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo-beta/sdk-core';
2
- /**
3
- * ICP keys and address management.
4
- */
5
- export declare class KeyPair extends Secp256k1ExtendedKeyPair {
6
- /**
7
- * Public constructor. By default, creates a key pair with a random master seed.
8
- *
9
- * @param { KeyPairOptions } source Either a master seed, a private key (extended or raw), or a public key
10
- * (extended, compressed, or uncompressed)
11
- */
12
- constructor(source?: KeyPairOptions);
13
- /** @inheritdoc */
14
- getKeys(): DefaultKeys;
15
- /** @inheritdoc */
16
- getAddress(): string;
17
- }
18
- //# sourceMappingURL=keyPair.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EACd,wBAAwB,EAIzB,MAAM,sBAAsB,CAAC;AAO9B;;GAEG;AACH,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAOtB,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAMrB"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.KeyPair = void 0;
7
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
- const utils_1 = __importDefault(require("./utils"));
9
- const secp256k1_1 = require("@bitgo-beta/secp256k1");
10
- const crypto_1 = require("crypto");
11
- const DEFAULT_SEED_SIZE_BYTES = 16;
12
- /**
13
- * ICP keys and address management.
14
- */
15
- class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
16
- /**
17
- * Public constructor. By default, creates a key pair with a random master seed.
18
- *
19
- * @param { KeyPairOptions } source Either a master seed, a private key (extended or raw), or a public key
20
- * (extended, compressed, or uncompressed)
21
- */
22
- constructor(source) {
23
- super(source);
24
- if (!source) {
25
- const seed = (0, crypto_1.randomBytes)(DEFAULT_SEED_SIZE_BYTES);
26
- this.hdNode = secp256k1_1.bip32.fromSeed(seed);
27
- }
28
- else if ((0, sdk_core_1.isSeed)(source)) {
29
- this.hdNode = secp256k1_1.bip32.fromSeed(source.seed);
30
- }
31
- else if ((0, sdk_core_1.isPrivateKey)(source)) {
32
- super.recordKeysFromPrivateKey(source.prv);
33
- }
34
- else if ((0, sdk_core_1.isPublicKey)(source)) {
35
- super.recordKeysFromPublicKey(source.pub);
36
- }
37
- else {
38
- throw new Error('Invalid key pair options');
39
- }
40
- if (this.hdNode) {
41
- this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
42
- }
43
- }
44
- /** @inheritdoc */
45
- getKeys() {
46
- return {
47
- pub: this.getPublicKey({ compressed: true }).toString('hex'),
48
- prv: this.getPrivateKey()?.toString('hex'),
49
- };
50
- }
51
- /** @inheritdoc */
52
- getAddress() {
53
- const principal = utils_1.default.derivePrincipalFromPublicKey(this.getKeys().pub);
54
- const subAccount = new Uint8Array(32);
55
- const accountId = utils_1.default.fromPrincipal(principal, subAccount);
56
- return accountId.toString();
57
- }
58
- }
59
- exports.KeyPair = KeyPair;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFPOEI7QUFDOUIsb0RBQTRCO0FBQzVCLHFEQUE4QztBQUM5QyxtQ0FBcUM7QUFFckMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkM7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxtQ0FBd0I7SUFDbkQ7Ozs7O09BS0c7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsaUJBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksSUFBQSxpQkFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLElBQUksSUFBQSx1QkFBWSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sSUFBSSxJQUFBLHNCQUFXLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLG1DQUF3QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTztRQUNMLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDNUQsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFVBQVU7UUFDUixNQUFNLFNBQVMsR0FBRyxlQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLGVBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELE9BQU8sU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQTFDRCwwQkEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZWZhdWx0S2V5cyxcbiAgS2V5UGFpck9wdGlvbnMsXG4gIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpcixcbiAgaXNTZWVkLFxuICBpc1ByaXZhdGVLZXksXG4gIGlzUHVibGljS2V5LFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3NlY3AyNTZrMSc7XG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5cbmNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gMTY7XG5cbi8qKlxuICogSUNQIGtleXMgYW5kIGFkZHJlc3MgbWFuYWdlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXkgKGV4dGVuZGVkIG9yIHJhdyksIG9yIGEgcHVibGljIGtleVxuICAgKiAgICAgKGV4dGVuZGVkLCBjb21wcmVzc2VkLCBvciB1bmNvbXByZXNzZWQpXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNlZWQgPSByYW5kb21CeXRlcyhERUZBVUxUX1NFRURfU0laRV9CWVRFUyk7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNTZWVkKHNvdXJjZSkpIHtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc291cmNlLnNlZWQpO1xuICAgIH0gZWxzZSBpZiAoaXNQcml2YXRlS2V5KHNvdXJjZSkpIHtcbiAgICAgIHN1cGVyLnJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShzb3VyY2UucHJ2KTtcbiAgICB9IGVsc2UgaWYgKGlzUHVibGljS2V5KHNvdXJjZSkpIHtcbiAgICAgIHN1cGVyLnJlY29yZEtleXNGcm9tUHVibGljS2V5KHNvdXJjZS5wdWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhkTm9kZSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0gU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLnRvS2V5UGFpcih0aGlzLmhkTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIHJldHVybiB7XG4gICAgICBwdWI6IHRoaXMuZ2V0UHVibGljS2V5KHsgY29tcHJlc3NlZDogdHJ1ZSB9KS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcnY6IHRoaXMuZ2V0UHJpdmF0ZUtleSgpPy50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJpbmNpcGFsID0gdXRpbHMuZGVyaXZlUHJpbmNpcGFsRnJvbVB1YmxpY0tleSh0aGlzLmdldEtleXMoKS5wdWIpO1xuICAgIGNvbnN0IHN1YkFjY291bnQgPSBuZXcgVWludDhBcnJheSgzMik7XG4gICAgY29uc3QgYWNjb3VudElkID0gdXRpbHMuZnJvbVByaW5jaXBhbChwcmluY2lwYWwsIHN1YkFjY291bnQpO1xuICAgIHJldHVybiBhY2NvdW50SWQudG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- import { CborUnsignedTransaction, Signatures, RequestEnvelope } from './iface';
2
- export declare class SignedTransactionBuilder {
3
- protected _unsigned_transaction: string;
4
- protected _signaturePayload: Signatures[];
5
- constructor(unsigned_transaction: string, signatures: Signatures[]);
6
- getSignTransaction(): string;
7
- getEnvelopes(unsignedTransaction: CborUnsignedTransaction, signatureMap: Map<string, Signatures>): [RequestEnvelope[]][];
8
- }
9
- //# sourceMappingURL=signedTransactionBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signedTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/signedTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAEvB,UAAU,EAEV,eAAe,EAEhB,MAAM,SAAS,CAAC;AAIjB,qBAAa,wBAAwB;IACnC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;gBAE9B,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE;IAKlE,kBAAkB,IAAI,MAAM;IAwB5B,YAAY,CACV,mBAAmB,EAAE,uBAAuB,EAC5C,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GACpC,CAAC,eAAe,EAAE,CAAC,EAAE;CA8BzB"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SignedTransactionBuilder = void 0;
7
- const iface_1 = require("./iface");
8
- const utils_1 = __importDefault(require("./utils"));
9
- const assert_1 = __importDefault(require("assert"));
10
- class SignedTransactionBuilder {
11
- constructor(unsigned_transaction, signatures) {
12
- this._unsigned_transaction = unsigned_transaction;
13
- this._signaturePayload = signatures;
14
- }
15
- getSignTransaction() {
16
- const combineRequest = {
17
- signatures: this._signaturePayload,
18
- unsigned_transaction: this._unsigned_transaction,
19
- };
20
- const signatureMap = new Map();
21
- for (const sig of combineRequest.signatures) {
22
- signatureMap.set(sig.signing_payload.hex_bytes, sig);
23
- }
24
- const unsignedTransaction = utils_1.default.cborDecode(utils_1.default.blobFromHex(combineRequest.unsigned_transaction));
25
- // at present we expect only one request type and one signature
26
- (0, assert_1.default)(combineRequest.signatures.length === 1);
27
- (0, assert_1.default)(unsignedTransaction.updates.length === 1);
28
- const envelopes = this.getEnvelopes(unsignedTransaction, signatureMap);
29
- const requestEnvelopeArray = envelopes[0];
30
- const requestEnvelopes = requestEnvelopeArray[0];
31
- (0, assert_1.default)(requestEnvelopes.length === 1);
32
- const requestEnvelope = requestEnvelopes[0];
33
- const signedTransaction = utils_1.default.cborEncode(requestEnvelope.update);
34
- return signedTransaction;
35
- }
36
- getEnvelopes(unsignedTransaction, signatureMap) {
37
- const envelopes = [];
38
- for (const [, update] of unsignedTransaction.updates) {
39
- const requestEnvelopes = [];
40
- if (unsignedTransaction.ingress_expiries.length != 1) {
41
- throw new Error('ingress expiry can have only one entry');
42
- }
43
- const ingressExpiry = unsignedTransaction.ingress_expiries[0];
44
- update.ingress_expiry = ingressExpiry;
45
- const transactionSignature = utils_1.default.getTransactionSignature(signatureMap, update);
46
- if (!transactionSignature) {
47
- throw new Error('Transaction signature is invalid');
48
- }
49
- const pk_der = utils_1.default.getPublicKeyInDERFormat(transactionSignature.public_key.hex_bytes);
50
- const updateEnvelope = {
51
- content: { request_type: iface_1.RequestType.CALL, ...update },
52
- sender_pubkey: pk_der,
53
- sender_sig: utils_1.default.blobFromHex(transactionSignature.hex_bytes),
54
- };
55
- requestEnvelopes.push({
56
- update: updateEnvelope,
57
- });
58
- envelopes.push([requestEnvelopes]);
59
- }
60
- return envelopes;
61
- }
62
- }
63
- exports.SignedTransactionBuilder = SignedTransactionBuilder;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBT2lCO0FBQ2pCLG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsTUFBYSx3QkFBd0I7SUFJbkMsWUFBWSxvQkFBNEIsRUFBRSxVQUF3QjtRQUNoRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsb0JBQW9CLENBQUM7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ2xDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7U0FDakQsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsTUFBTSxtQkFBbUIsR0FBRyxlQUFLLENBQUMsVUFBVSxDQUMxQyxlQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUM1QixDQUFDO1FBQzdCLCtEQUErRDtRQUMvRCxJQUFBLGdCQUFNLEVBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBQSxnQkFBTSxFQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2RSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQXdCLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDdEUsSUFBQSxnQkFBTSxFQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQW9CLENBQUM7UUFDL0QsTUFBTSxpQkFBaUIsR0FBRyxlQUFLLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxNQUF3QixDQUFDLENBQUM7UUFDckYsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUNWLG1CQUE0QyxFQUM1QyxZQUFxQztRQUVyQyxNQUFNLFNBQVMsR0FBMEIsRUFBRSxDQUFDO1FBQzVDLEtBQUssTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksbUJBQW1CLENBQUMsT0FBb0QsRUFBRSxDQUFDO1lBQ2xHLE1BQU0sZ0JBQWdCLEdBQXNCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RCxNQUFNLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztZQUV0QyxNQUFNLG9CQUFvQixHQUFHLGVBQUssQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsZUFBSyxDQUFDLHVCQUF1QixDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4RixNQUFNLGNBQWMsR0FBbUI7Z0JBQ3JDLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxtQkFBVyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRTtnQkFDdEQsYUFBYSxFQUFFLE1BQU07Z0JBQ3JCLFVBQVUsRUFBRSxlQUFLLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQzthQUM5RCxDQUFDO1lBRUYsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUNwQixNQUFNLEVBQUUsY0FBYzthQUN2QixDQUFDLENBQUM7WUFFSCxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFsRUQsNERBa0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2JvclVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gIFJlcXVlc3RUeXBlLFxuICBTaWduYXR1cmVzLFxuICBVcGRhdGVFbnZlbG9wZSxcbiAgUmVxdWVzdEVudmVsb3BlLFxuICBIdHRwQ2FuaXN0ZXJVcGRhdGUsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5leHBvcnQgY2xhc3MgU2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF91bnNpZ25lZF90cmFuc2FjdGlvbjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZVBheWxvYWQ6IFNpZ25hdHVyZXNbXTtcblxuICBjb25zdHJ1Y3Rvcih1bnNpZ25lZF90cmFuc2FjdGlvbjogc3RyaW5nLCBzaWduYXR1cmVzOiBTaWduYXR1cmVzW10pIHtcbiAgICB0aGlzLl91bnNpZ25lZF90cmFuc2FjdGlvbiA9IHVuc2lnbmVkX3RyYW5zYWN0aW9uO1xuICAgIHRoaXMuX3NpZ25hdHVyZVBheWxvYWQgPSBzaWduYXR1cmVzO1xuICB9XG5cbiAgZ2V0U2lnblRyYW5zYWN0aW9uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tYmluZVJlcXVlc3QgPSB7XG4gICAgICBzaWduYXR1cmVzOiB0aGlzLl9zaWduYXR1cmVQYXlsb2FkLFxuICAgICAgdW5zaWduZWRfdHJhbnNhY3Rpb246IHRoaXMuX3Vuc2lnbmVkX3RyYW5zYWN0aW9uLFxuICAgIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlTWFwID0gbmV3IE1hcCgpO1xuICAgIGZvciAoY29uc3Qgc2lnIG9mIGNvbWJpbmVSZXF1ZXN0LnNpZ25hdHVyZXMpIHtcbiAgICAgIHNpZ25hdHVyZU1hcC5zZXQoc2lnLnNpZ25pbmdfcGF5bG9hZC5oZXhfYnl0ZXMsIHNpZyk7XG4gICAgfVxuICAgIGNvbnN0IHVuc2lnbmVkVHJhbnNhY3Rpb24gPSB1dGlscy5jYm9yRGVjb2RlKFxuICAgICAgdXRpbHMuYmxvYkZyb21IZXgoY29tYmluZVJlcXVlc3QudW5zaWduZWRfdHJhbnNhY3Rpb24pXG4gICAgKSBhcyBDYm9yVW5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICAvLyBhdCBwcmVzZW50IHdlIGV4cGVjdCBvbmx5IG9uZSByZXF1ZXN0IHR5cGUgYW5kIG9uZSBzaWduYXR1cmVcbiAgICBhc3NlcnQoY29tYmluZVJlcXVlc3Quc2lnbmF0dXJlcy5sZW5ndGggPT09IDEpO1xuICAgIGFzc2VydCh1bnNpZ25lZFRyYW5zYWN0aW9uLnVwZGF0ZXMubGVuZ3RoID09PSAxKTtcbiAgICBjb25zdCBlbnZlbG9wZXMgPSB0aGlzLmdldEVudmVsb3Blcyh1bnNpZ25lZFRyYW5zYWN0aW9uLCBzaWduYXR1cmVNYXApO1xuICAgIGNvbnN0IHJlcXVlc3RFbnZlbG9wZUFycmF5ID0gZW52ZWxvcGVzWzBdIGFzIFtSZXF1ZXN0RW52ZWxvcGVbXV07XG4gICAgY29uc3QgcmVxdWVzdEVudmVsb3BlcyA9IHJlcXVlc3RFbnZlbG9wZUFycmF5WzBdIGFzIFJlcXVlc3RFbnZlbG9wZVtdO1xuICAgIGFzc2VydChyZXF1ZXN0RW52ZWxvcGVzLmxlbmd0aCA9PT0gMSk7XG4gICAgY29uc3QgcmVxdWVzdEVudmVsb3BlID0gcmVxdWVzdEVudmVsb3Blc1swXSBhcyBSZXF1ZXN0RW52ZWxvcGU7XG4gICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb24gPSB1dGlscy5jYm9yRW5jb2RlKHJlcXVlc3RFbnZlbG9wZS51cGRhdGUgYXMgVXBkYXRlRW52ZWxvcGUpO1xuICAgIHJldHVybiBzaWduZWRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldEVudmVsb3BlcyhcbiAgICB1bnNpZ25lZFRyYW5zYWN0aW9uOiBDYm9yVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICBzaWduYXR1cmVNYXA6IE1hcDxzdHJpbmcsIFNpZ25hdHVyZXM+XG4gICk6IFtSZXF1ZXN0RW52ZWxvcGVbXV1bXSB7XG4gICAgY29uc3QgZW52ZWxvcGVzOiBbUmVxdWVzdEVudmVsb3BlW11dW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFssIHVwZGF0ZV0gb2YgdW5zaWduZWRUcmFuc2FjdGlvbi51cGRhdGVzIGFzIHVua25vd24gYXMgW3N0cmluZywgSHR0cENhbmlzdGVyVXBkYXRlXVtdKSB7XG4gICAgICBjb25zdCByZXF1ZXN0RW52ZWxvcGVzOiBSZXF1ZXN0RW52ZWxvcGVbXSA9IFtdO1xuICAgICAgaWYgKHVuc2lnbmVkVHJhbnNhY3Rpb24uaW5ncmVzc19leHBpcmllcy5sZW5ndGggIT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2luZ3Jlc3MgZXhwaXJ5IGNhbiBoYXZlIG9ubHkgb25lIGVudHJ5Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBpbmdyZXNzRXhwaXJ5ID0gdW5zaWduZWRUcmFuc2FjdGlvbi5pbmdyZXNzX2V4cGlyaWVzWzBdO1xuICAgICAgdXBkYXRlLmluZ3Jlc3NfZXhwaXJ5ID0gaW5ncmVzc0V4cGlyeTtcblxuICAgICAgY29uc3QgdHJhbnNhY3Rpb25TaWduYXR1cmUgPSB1dGlscy5nZXRUcmFuc2FjdGlvblNpZ25hdHVyZShzaWduYXR1cmVNYXAsIHVwZGF0ZSk7XG4gICAgICBpZiAoIXRyYW5zYWN0aW9uU2lnbmF0dXJlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHJhbnNhY3Rpb24gc2lnbmF0dXJlIGlzIGludmFsaWQnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGtfZGVyID0gdXRpbHMuZ2V0UHVibGljS2V5SW5ERVJGb3JtYXQodHJhbnNhY3Rpb25TaWduYXR1cmUucHVibGljX2tleS5oZXhfYnl0ZXMpO1xuICAgICAgY29uc3QgdXBkYXRlRW52ZWxvcGU6IFVwZGF0ZUVudmVsb3BlID0ge1xuICAgICAgICBjb250ZW50OiB7IHJlcXVlc3RfdHlwZTogUmVxdWVzdFR5cGUuQ0FMTCwgLi4udXBkYXRlIH0sXG4gICAgICAgIHNlbmRlcl9wdWJrZXk6IHBrX2RlcixcbiAgICAgICAgc2VuZGVyX3NpZzogdXRpbHMuYmxvYkZyb21IZXgodHJhbnNhY3Rpb25TaWduYXR1cmUuaGV4X2J5dGVzKSxcbiAgICAgIH07XG5cbiAgICAgIHJlcXVlc3RFbnZlbG9wZXMucHVzaCh7XG4gICAgICAgIHVwZGF0ZTogdXBkYXRlRW52ZWxvcGUsXG4gICAgICB9KTtcblxuICAgICAgZW52ZWxvcGVzLnB1c2goW3JlcXVlc3RFbnZlbG9wZXNdKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudmVsb3BlcztcbiAgfVxufVxuIl19