@airgap/icp 0.13.11-beta.1 → 0.13.11-beta.10

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 (144) hide show
  1. package/index.d.ts +1 -0
  2. package/index.js +18 -0
  3. package/index.js.map +1 -0
  4. package/package.json +6 -9
  5. package/v1/block-explorer/ICPBlockExplorer.d.ts +9 -0
  6. package/v1/block-explorer/ICPBlockExplorer.js +74 -0
  7. package/v1/block-explorer/ICPBlockExplorer.js.map +1 -0
  8. package/v1/index.d.ts +14 -0
  9. package/v1/index.js +14 -0
  10. package/v1/index.js.map +1 -0
  11. package/v1/module/ICPModule.d.ts +14 -0
  12. package/v1/module/ICPModule.js +119 -0
  13. package/v1/module/ICPModule.js.map +1 -0
  14. package/v1/module.d.ts +3 -0
  15. package/v1/module.js +24 -0
  16. package/v1/module.js.map +1 -0
  17. package/v1/protocol/ICPImplementation.d.ts +34 -0
  18. package/v1/protocol/ICPImplementation.js +376 -0
  19. package/v1/protocol/ICPImplementation.js.map +1 -0
  20. package/v1/protocol/ICPProtocol.d.ts +45 -0
  21. package/v1/protocol/ICPProtocol.js +423 -0
  22. package/v1/protocol/ICPProtocol.js.map +1 -0
  23. package/v1/protocol/icrc/CkBTCProtocol.d.ts +13 -0
  24. package/v1/protocol/icrc/CkBTCProtocol.js +328 -0
  25. package/v1/protocol/icrc/CkBTCProtocol.js.map +1 -0
  26. package/v1/protocol/icrc/ICRC1Protocol.d.ts +95 -0
  27. package/v1/protocol/icrc/ICRC1Protocol.js +717 -0
  28. package/v1/protocol/icrc/ICRC1Protocol.js.map +1 -0
  29. package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +7 -0
  30. package/v1/serializer/v3/schemas/converter/transaction-converter.js +21 -0
  31. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
  32. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-icp.d.ts +4 -0
  33. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-icp.js +3 -0
  34. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-icp.js.map +1 -0
  35. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-icp.d.ts +3 -0
  36. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-icp.js +3 -0
  37. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-icp.js.map +1 -0
  38. package/v1/serializer/v3/schemas/generated/transaction-sign-request-icp.json +32 -0
  39. package/v1/serializer/v3/schemas/generated/transaction-sign-response-icp.json +19 -0
  40. package/v1/serializer/v3/serializer-companion.d.ts +14 -0
  41. package/v1/serializer/v3/serializer-companion.js +190 -0
  42. package/v1/serializer/v3/serializer-companion.js.map +1 -0
  43. package/v1/serializer/v3/validators/transaction-validator.d.ts +10 -0
  44. package/v1/serializer/v3/validators/transaction-validator.js +100 -0
  45. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
  46. package/v1/serializer/v3/validators/validators.d.ts +5 -0
  47. package/v1/serializer/v3/validators/validators.js +106 -0
  48. package/v1/serializer/v3/validators/validators.js.map +1 -0
  49. package/v1/types/ckbtc/metadata.d.ts +4 -0
  50. package/v1/types/ckbtc/metadata.js +3 -0
  51. package/v1/types/ckbtc/metadata.js.map +1 -0
  52. package/v1/types/crypto.d.ts +2 -0
  53. package/v1/types/crypto.js +3 -0
  54. package/v1/types/crypto.js.map +1 -0
  55. package/v1/types/governance.d.ts +580 -0
  56. package/v1/types/governance.js +796 -0
  57. package/v1/types/governance.js.map +1 -0
  58. package/v1/types/icrc/account.d.ts +4 -0
  59. package/v1/types/icrc/account.js +3 -0
  60. package/v1/types/icrc/account.js.map +1 -0
  61. package/v1/types/icrc/ledger.d.ts +15 -0
  62. package/v1/types/icrc/ledger.js +92 -0
  63. package/v1/types/icrc/ledger.js.map +1 -0
  64. package/v1/types/icrc/metadata.d.ts +6 -0
  65. package/v1/types/icrc/metadata.js +3 -0
  66. package/v1/types/icrc/metadata.js.map +1 -0
  67. package/v1/types/icrc/transfer.d.ts +9 -0
  68. package/v1/types/icrc/transfer.js +3 -0
  69. package/v1/types/icrc/transfer.js.map +1 -0
  70. package/v1/types/ledger.d.ts +142 -0
  71. package/v1/types/ledger.js +145 -0
  72. package/v1/types/ledger.js.map +1 -0
  73. package/v1/types/management_idl.d.ts +7 -0
  74. package/v1/types/management_idl.js +72 -0
  75. package/v1/types/management_idl.js.map +1 -0
  76. package/v1/types/protocol.d.ts +37 -0
  77. package/v1/types/protocol.js +3 -0
  78. package/v1/types/protocol.js.map +1 -0
  79. package/v1/types/transaction.d.ts +11 -0
  80. package/v1/types/transaction.js +3 -0
  81. package/v1/types/transaction.js.map +1 -0
  82. package/v1/utils/account.d.ts +24 -0
  83. package/v1/utils/account.js +112 -0
  84. package/v1/utils/account.js.map +1 -0
  85. package/v1/utils/actor.d.ts +246 -0
  86. package/v1/utils/actor.js +458 -0
  87. package/v1/utils/actor.js.map +1 -0
  88. package/v1/utils/agent.d.ts +156 -0
  89. package/v1/utils/agent.js +16 -0
  90. package/v1/utils/agent.js.map +1 -0
  91. package/v1/utils/auth.d.ts +110 -0
  92. package/v1/utils/auth.js +261 -0
  93. package/v1/utils/auth.js.map +1 -0
  94. package/v1/utils/bls.d.ts +38 -0
  95. package/v1/utils/bls.js +204 -0
  96. package/v1/utils/bls.js.map +1 -0
  97. package/v1/utils/buffer.d.ts +70 -0
  98. package/v1/utils/buffer.js +216 -0
  99. package/v1/utils/buffer.js.map +1 -0
  100. package/v1/utils/cbor.d.ts +9 -0
  101. package/v1/utils/cbor.js +178 -0
  102. package/v1/utils/cbor.js.map +1 -0
  103. package/v1/utils/certificate.d.ts +74 -0
  104. package/v1/utils/certificate.js +396 -0
  105. package/v1/utils/certificate.js.map +1 -0
  106. package/v1/utils/convert.d.ts +10 -0
  107. package/v1/utils/convert.js +88 -0
  108. package/v1/utils/convert.js.map +1 -0
  109. package/v1/utils/crypto.d.ts +0 -0
  110. package/v1/utils/crypto.js +104 -0
  111. package/v1/utils/crypto.js.map +1 -0
  112. package/v1/utils/der.d.ts +35 -0
  113. package/v1/utils/der.js +176 -0
  114. package/v1/utils/der.js.map +1 -0
  115. package/v1/utils/errors.d.ts +7 -0
  116. package/v1/utils/errors.js +38 -0
  117. package/v1/utils/errors.js.map +1 -0
  118. package/v1/utils/hdkey.d.ts +13 -0
  119. package/v1/utils/hdkey.js +265 -0
  120. package/v1/utils/hdkey.js.map +1 -0
  121. package/v1/utils/http.d.ts +284 -0
  122. package/v1/utils/http.js +614 -0
  123. package/v1/utils/http.js.map +1 -0
  124. package/v1/utils/icrc1.d.ts +20 -0
  125. package/v1/utils/icrc1.js +171 -0
  126. package/v1/utils/icrc1.js.map +1 -0
  127. package/v1/utils/idl.d.ts +515 -0
  128. package/v1/utils/idl.js +2103 -0
  129. package/v1/utils/idl.js.map +1 -0
  130. package/v1/utils/leb128.d.ts +63 -0
  131. package/v1/utils/leb128.js +224 -0
  132. package/v1/utils/leb128.js.map +1 -0
  133. package/v1/utils/polling.d.ts +59 -0
  134. package/v1/utils/polling.js +325 -0
  135. package/v1/utils/polling.js.map +1 -0
  136. package/v1/utils/principal.d.ts +58 -0
  137. package/v1/utils/principal.js +543 -0
  138. package/v1/utils/principal.js.map +1 -0
  139. package/v1/utils/secp256k1.d.ts +79 -0
  140. package/v1/utils/secp256k1.js +278 -0
  141. package/v1/utils/secp256k1.js.map +1 -0
  142. package/v1/utils/transaction.d.ts +3 -0
  143. package/v1/utils/transaction.js +56 -0
  144. package/v1/utils/transaction.js.map +1 -0
@@ -0,0 +1,376 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (_) try {
52
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
72
+ var __read = (this && this.__read) || function (o, n) {
73
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
74
+ if (!m) return o;
75
+ var i = m.call(o), r, ar = [], e;
76
+ try {
77
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
78
+ }
79
+ catch (error) { e = { error: error }; }
80
+ finally {
81
+ try {
82
+ if (r && !r.done && (m = i["return"])) m.call(i);
83
+ }
84
+ finally { if (e) throw e.error; }
85
+ }
86
+ return ar;
87
+ };
88
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
89
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
90
+ if (ar || !(i in from)) {
91
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
92
+ ar[i] = from[i];
93
+ }
94
+ }
95
+ return to.concat(ar || Array.prototype.slice.call(from));
96
+ };
97
+ var __importDefault = (this && this.__importDefault) || function (mod) {
98
+ return (mod && mod.__esModule) ? mod : { "default": mod };
99
+ };
100
+ Object.defineProperty(exports, "__esModule", { value: true });
101
+ exports.broadcastTransaction = exports.getBalanceFromAddress = exports.decodeArguments = exports.getInfoFromSignedTransaction = exports.signTransaction = exports.signICPTransaction = exports.getInfoFromUnsignedTransaction = exports.createUnsignedTransaction = exports.getAddressFromPrincipal = exports.getAddressFromPublicKey = exports.getPrincipalFromPublicKey = exports.getKeyPairFromExtendedSecretKey = exports.createHttpAgent = void 0;
102
+ var index_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/axios-0.19.0/index"));
103
+ var hex_1 = require("@airgap/coinlib-core/utils/hex");
104
+ require("isomorphic-fetch");
105
+ var js_sha256_1 = require("js-sha256");
106
+ var ledger_1 = require("../types/ledger");
107
+ var account_1 = require("../utils/account");
108
+ // import { requestIdOf } from '../utils/auth'
109
+ var actor_1 = require("../utils/actor");
110
+ var auth_1 = require("../utils/auth");
111
+ var Cbor = __importStar(require("../utils/cbor"));
112
+ var convert_1 = require("../utils/convert");
113
+ var hdkey_1 = __importDefault(require("../utils/hdkey"));
114
+ var http_1 = require("../utils/http");
115
+ var IDL = __importStar(require("../utils/idl"));
116
+ var principal_1 = require("../utils/principal");
117
+ var secp256k1_1 = __importDefault(require("../utils/secp256k1"));
118
+ // Agent
119
+ function createHttpAgent(rpcUrl, identity) {
120
+ if (identity === void 0) { identity = new auth_1.AnonymousIdentity(); }
121
+ return new http_1.HttpAgent({
122
+ identity: identity,
123
+ host: rpcUrl
124
+ });
125
+ }
126
+ exports.createHttpAgent = createHttpAgent;
127
+ // MNEMONIC -> KEY PAIR
128
+ function getKeyPairFromExtendedSecretKey(extendedSecretKey) {
129
+ var hdKey = hdkey_1.default.fromExtendedKey(extendedSecretKey);
130
+ var identity = secp256k1_1.default.fromSecretKey(hdKey.privateKey);
131
+ var publicKey = new Uint8Array(identity.getPublicKey().toDer());
132
+ var privateKey = new Uint8Array(identity.getKeyPair().secretKey);
133
+ return {
134
+ publicKey: (0, convert_1.uint8ArrayToHexString)(publicKey),
135
+ privateKey: (0, convert_1.uint8ArrayToHexString)(privateKey)
136
+ };
137
+ }
138
+ exports.getKeyPairFromExtendedSecretKey = getKeyPairFromExtendedSecretKey;
139
+ // PUBLIC KEY -> ADDRESS
140
+ function getPrincipalFromPublicKey(publicKey) {
141
+ return principal_1.Principal.selfAuthenticating((0, convert_1.hexStringToUint8Array)(publicKey));
142
+ }
143
+ exports.getPrincipalFromPublicKey = getPrincipalFromPublicKey;
144
+ function getAddressFromPublicKey(publicKey, subAccount) {
145
+ // Get principal from public key
146
+ var principal = getPrincipalFromPublicKey(publicKey);
147
+ return getAddressFromPrincipal(principal, subAccount);
148
+ }
149
+ exports.getAddressFromPublicKey = getAddressFromPublicKey;
150
+ function getAddressFromPrincipal(principalOrText, subAccountOrUndefined) {
151
+ var principal = typeof principalOrText === 'string'
152
+ ? (0, hex_1.isHex)(principalOrText)
153
+ ? principal_1.Principal.fromHex(principalOrText)
154
+ : principal_1.Principal.from(principalOrText)
155
+ : principalOrText;
156
+ var subAccount = typeof subAccountOrUndefined === 'string'
157
+ ? Buffer.from(subAccountOrUndefined, 'hex')
158
+ : typeof subAccountOrUndefined === 'undefined' || subAccountOrUndefined.length === 0
159
+ ? Buffer.alloc(32, 0)
160
+ : subAccountOrUndefined;
161
+ // Hash (sha224) the principal, the subAccount and some padding
162
+ var padding = (0, convert_1.asciiStringToByteArray)('\x0Aaccount-id');
163
+ var shaObj = js_sha256_1.sha224.create();
164
+ shaObj.update(__spreadArray(__spreadArray(__spreadArray([], __read(padding), false), __read(principal.toUint8Array()), false), __read(subAccount), false));
165
+ var hash = new Uint8Array(shaObj.array());
166
+ // Prepend the checksum of the hash and convert to a hex string
167
+ var checksum = (0, convert_1.calculateCrc32)(hash);
168
+ var bytes = new Uint8Array(__spreadArray(__spreadArray([], __read(checksum), false), __read(hash), false));
169
+ return (0, convert_1.uint8ArrayToHexString)(bytes);
170
+ }
171
+ exports.getAddressFromPrincipal = getAddressFromPrincipal;
172
+ // TRANSACTION OBJECT -> UNSIGNED TRANSACTION HEX
173
+ function createUnsignedTransaction(transaction) {
174
+ var to = account_1.AccountIdentifier.fromHex(transaction.to);
175
+ // Create raw request body
176
+ var rawRequestBody = {
177
+ to: to.toNumbers(),
178
+ fee: (0, convert_1.e8sToTokens)(transaction.fee),
179
+ amount: (0, convert_1.e8sToTokens)(transaction.amount),
180
+ // Always explicitly set the memo for compatibility with ledger wallet - hardware wallet
181
+ memo: BigInt(0),
182
+ created_at_time: [],
183
+ from_subaccount: []
184
+ };
185
+ // Encode raw request
186
+ //@ts-ignore
187
+ var unsignedTransaction = IDL.encode(ledger_1.TransferFn.argTypes, [rawRequestBody]);
188
+ return (0, convert_1.arrayBufferToHexString)(unsignedTransaction);
189
+ }
190
+ exports.createUnsignedTransaction = createUnsignedTransaction;
191
+ // UNSIGNED TRANSACTION -> TRANSACTION DETAILS
192
+ function getInfoFromUnsignedTransaction(unsignedTransaction) {
193
+ //@ts-ignore
194
+ var transaction = IDL.decode(ledger_1.TransferFn.argTypes, Buffer.from(unsignedTransaction, 'hex'))[0];
195
+ return {
196
+ to: (0, convert_1.uint8ArrayToHexString)(transaction.to),
197
+ fee: transaction.fee.e8s,
198
+ memo: transaction.memo,
199
+ from_subaccount: transaction.from_subaccount,
200
+ created_at_time: transaction.created_at_time,
201
+ amount: transaction.amount.e8s
202
+ };
203
+ }
204
+ exports.getInfoFromUnsignedTransaction = getInfoFromUnsignedTransaction;
205
+ // UNSIGNED TRANSACTION, PRIVATE KEY -> SIGNED TRANSACTION
206
+ function signICPTransaction(unsignedTransaction, privateKey, canisterId) {
207
+ return __awaiter(this, void 0, void 0, function () {
208
+ var transactionDetails, Address, ICP, Memo, SubAccount, TimeStamp, TransferArgs, DEFAULT_TRANSACTION_FEE, toTransferRawRequest, rawRequestBody, args;
209
+ return __generator(this, function (_a) {
210
+ transactionDetails = getInfoFromUnsignedTransaction(unsignedTransaction);
211
+ Address = IDL.Vec(IDL.Nat8);
212
+ ICP = IDL.Record({ e8s: IDL.Nat64 });
213
+ Memo = IDL.Nat64;
214
+ SubAccount = IDL.Vec(IDL.Nat8);
215
+ TimeStamp = IDL.Record({ timestamp_nanos: IDL.Nat64 });
216
+ TransferArgs = IDL.Record({
217
+ to: Address,
218
+ fee: ICP,
219
+ memo: Memo,
220
+ from_subaccount: IDL.Opt(SubAccount),
221
+ created_at_time: IDL.Opt(TimeStamp),
222
+ amount: ICP
223
+ });
224
+ DEFAULT_TRANSACTION_FEE = BigInt(10000);
225
+ toTransferRawRequest = function (_a) {
226
+ var to = _a.to, amount = _a.amount, memo = _a.memo, fee = _a.fee, fromSubAccount = _a.fromSubAccount;
227
+ return {
228
+ to: to.toNumbers(),
229
+ fee: (0, convert_1.e8sToTokens)(fee !== null && fee !== void 0 ? fee : DEFAULT_TRANSACTION_FEE),
230
+ amount: (0, convert_1.e8sToTokens)(amount),
231
+ // Always explicitly set the memo for compatibility with ledger wallet - hardware wallet
232
+ memo: memo !== null && memo !== void 0 ? memo : BigInt(0),
233
+ created_at_time: [],
234
+ from_subaccount: fromSubAccount === undefined ? [] : [fromSubAccount]
235
+ };
236
+ };
237
+ rawRequestBody = toTransferRawRequest(__assign(__assign({}, transactionDetails), { to: account_1.AccountIdentifier.fromHex(transactionDetails.to) }));
238
+ args = IDL.encode([TransferArgs], [rawRequestBody]);
239
+ return [2 /*return*/, signTransaction(privateKey, canisterId, args)];
240
+ });
241
+ });
242
+ }
243
+ exports.signICPTransaction = signICPTransaction;
244
+ function signTransaction(privateKey, canisterId, arg) {
245
+ return __awaiter(this, void 0, void 0, function () {
246
+ var identity, submit, transform, request, transformedRequest, encoded;
247
+ var _this = this;
248
+ return __generator(this, function (_a) {
249
+ switch (_a.label) {
250
+ case 0:
251
+ identity = secp256k1_1.default.fromSecretKey((0, convert_1.hexStringToArrayBuffer)(privateKey));
252
+ submit = {
253
+ request_type: http_1.SubmitRequestType.Call,
254
+ canister_id: principal_1.Principal.from(canisterId),
255
+ method_name: 'transfer',
256
+ arg: arg,
257
+ sender: identity.getPrincipal(),
258
+ ingress_expiry: new http_1.Expiry(5 * 60 * 1000)
259
+ };
260
+ transform = function (request) { return __awaiter(_this, void 0, void 0, function () {
261
+ var p;
262
+ return __generator(this, function (_a) {
263
+ p = Promise.resolve(request);
264
+ return [2 /*return*/, p];
265
+ });
266
+ }); };
267
+ return [4 /*yield*/, transform({
268
+ request: {
269
+ body: null,
270
+ method: 'POST',
271
+ headers: {
272
+ 'Content-Type': 'application/cbor'
273
+ }
274
+ },
275
+ endpoint: "call" /* Endpoint.Call */,
276
+ body: submit
277
+ })];
278
+ case 1:
279
+ request = (_a.sent());
280
+ return [4 /*yield*/, identity.transformRequest(request)];
281
+ case 2:
282
+ transformedRequest = (_a.sent());
283
+ encoded = Cbor.encode(transformedRequest.body);
284
+ return [2 /*return*/, (0, convert_1.arrayBufferToHexString)(encoded)];
285
+ }
286
+ });
287
+ });
288
+ }
289
+ exports.signTransaction = signTransaction;
290
+ // SIGNED TRANSACTION -> TRANSACTION DETAILS
291
+ function getInfoFromSignedTransaction(signedTransaction) {
292
+ return Cbor.decode((0, convert_1.hexStringToArrayBuffer)(signedTransaction));
293
+ }
294
+ exports.getInfoFromSignedTransaction = getInfoFromSignedTransaction;
295
+ function decodeArguments(args) {
296
+ var Address = IDL.Vec(IDL.Nat8);
297
+ var ICP = IDL.Record({ e8s: IDL.Nat64 });
298
+ var Memo = IDL.Nat64;
299
+ var SubAccount = IDL.Vec(IDL.Nat8);
300
+ var TimeStamp = IDL.Record({ timestamp_nanos: IDL.Nat64 });
301
+ var TransferArgs = IDL.Record({
302
+ to: Address,
303
+ fee: ICP,
304
+ memo: Memo,
305
+ from_subaccount: IDL.Opt(SubAccount),
306
+ created_at_time: IDL.Opt(TimeStamp),
307
+ amount: ICP
308
+ });
309
+ return IDL.decode([TransferArgs], args);
310
+ }
311
+ exports.decodeArguments = decodeArguments;
312
+ // ADDRESS -> BALANCE
313
+ function getBalanceFromAddress(address, host, canisterId) {
314
+ return __awaiter(this, void 0, void 0, function () {
315
+ var agent, actor, acc, b;
316
+ return __generator(this, function (_a) {
317
+ switch (_a.label) {
318
+ case 0:
319
+ agent = createHttpAgent(host, secp256k1_1.default.generate());
320
+ actor = actor_1.Actor.createActor(ledger_1.idlFactory, {
321
+ agent: agent,
322
+ canisterId: canisterId
323
+ });
324
+ acc = Uint8Array.from(Buffer.from(address, 'hex'));
325
+ return [4 /*yield*/, actor.account_balance({
326
+ account: __spreadArray([], __read(acc), false)
327
+ })];
328
+ case 1:
329
+ b = (_a.sent());
330
+ return [2 /*return*/, b.e8s];
331
+ }
332
+ });
333
+ });
334
+ }
335
+ exports.getBalanceFromAddress = getBalanceFromAddress;
336
+ function broadcastTransaction(signedTransaction, host, canisterId) {
337
+ return __awaiter(this, void 0, void 0, function () {
338
+ var canister, body, error_1;
339
+ return __generator(this, function (_a) {
340
+ switch (_a.label) {
341
+ case 0:
342
+ canister = principal_1.Principal.from(canisterId);
343
+ body = (0, convert_1.hexStringToArrayBuffer)(signedTransaction);
344
+ _a.label = 1;
345
+ case 1:
346
+ _a.trys.push([1, 3, , 4]);
347
+ /*const request = */ return [4 /*yield*/, index_1.default.post('' + new URL("/api/v2/canister/".concat(canister.toText(), "/call"), host), body, {
348
+ headers: {
349
+ 'Content-Type': 'application/cbor'
350
+ }
351
+ })
352
+ // const submit: CallRequest = {
353
+ // ...signedTransactionInfo.content,
354
+ // ingress_expiry: new Expiry(1000)
355
+ // }
356
+ // await Promise.all([request, requestIdOf(submit)])
357
+ ];
358
+ case 2:
359
+ /*const request = */ _a.sent();
360
+ // const submit: CallRequest = {
361
+ // ...signedTransactionInfo.content,
362
+ // ingress_expiry: new Expiry(1000)
363
+ // }
364
+ // await Promise.all([request, requestIdOf(submit)])
365
+ return [2 /*return*/, ''];
366
+ case 3:
367
+ error_1 = _a.sent();
368
+ console.error('Error: ', error_1);
369
+ return [2 /*return*/, ''];
370
+ case 4: return [2 /*return*/];
371
+ }
372
+ });
373
+ });
374
+ }
375
+ exports.broadcastTransaction = broadcastTransaction;
376
+ //# sourceMappingURL=ICPImplementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICPImplementation.js","sourceRoot":"","sources":["../../../src/v1/protocol/ICPImplementation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, FeeDefaults, KeyPair, ProtocolAccountMetadata, ProtocolMetadata, ProtocolTransactionMetadata, PublicKey, RecursivePartial, SecretKey, TransactionConfiguration, TransactionDetails } from '@airgap/module-kit';
2
+ import { ICPCryptoConfiguration } from '../types/crypto';
3
+ import { ICPProtocolNetwork, ICPProtocolOptions, ICPUnits } from '../types/protocol';
4
+ import { ICPSignedTransaction, ICPTransactionCursor, ICPUnsignedTransaction } from '../types/transaction';
5
+ export interface ICPProtocol extends AirGapProtocol<{
6
+ AddressResult: Address;
7
+ ProtocolNetwork: ICPProtocolNetwork;
8
+ CryptoConfiguration: ICPCryptoConfiguration;
9
+ SignedTransaction: ICPSignedTransaction;
10
+ TransactionCursor: ICPTransactionCursor;
11
+ Units: ICPUnits;
12
+ FeeEstimation: FeeDefaults<ICPUnits>;
13
+ UnsignedTransaction: ICPUnsignedTransaction;
14
+ }, 'FetchDataForAddress'> {
15
+ }
16
+ export declare const ICP_DERIVATION_PATH: string;
17
+ export declare const ICP_ACCOUNT_METADATA: ProtocolAccountMetadata;
18
+ export declare function ICP_TRANSACTION_METADATA<_Units extends string = ICPUnits>(): ProtocolTransactionMetadata<_Units>;
19
+ export declare class ICPProtocolImpl implements ICPProtocol {
20
+ private readonly options;
21
+ constructor(options?: RecursivePartial<ICPProtocolOptions>);
22
+ private readonly units;
23
+ private readonly feeDefaults;
24
+ private readonly metadata;
25
+ getMetadata(): Promise<ProtocolMetadata<ICPUnits>>;
26
+ getAddressFromPublicKey(publicKey: PublicKey): Promise<string>;
27
+ getDetailsFromTransaction(transaction: ICPSignedTransaction | ICPUnsignedTransaction, _publicKey: PublicKey): Promise<AirGapTransaction<ICPUnits>[]>;
28
+ private readonly cryptoConfiguration;
29
+ getCryptoConfiguration(): Promise<ICPCryptoConfiguration>;
30
+ getKeyPairFromDerivative(derivative: CryptoDerivative): Promise<KeyPair>;
31
+ signTransactionWithSecretKey(transaction: ICPUnsignedTransaction, secretKey: SecretKey): Promise<ICPSignedTransaction>;
32
+ getNetwork(): Promise<ICPProtocolNetwork>;
33
+ getTransactionsForPublicKey(publicKey: PublicKey, limit: number, cursor?: ICPTransactionCursor): Promise<AirGapTransactionsWithCursor<ICPTransactionCursor, ICPUnits>>;
34
+ getTransactionsForAddress(address: string, limit: number, cursor?: ICPTransactionCursor): Promise<AirGapTransactionsWithCursor<ICPTransactionCursor, ICPUnits>>;
35
+ getBalanceOfPublicKey(publicKey: PublicKey): Promise<Balance<ICPUnits>>;
36
+ getBalanceOfAddress(address: string): Promise<Balance<ICPUnits>>;
37
+ getTransactionMaxAmountWithPublicKey(publicKey: PublicKey, to: string[], configuration?: TransactionConfiguration<ICPUnits>): Promise<Amount<ICPUnits>>;
38
+ getTransactionFeeWithPublicKey(_publicKey: PublicKey, _details: TransactionDetails<ICPUnits>[]): Promise<FeeDefaults<ICPUnits>>;
39
+ prepareTransactionWithPublicKey(publicKey: PublicKey, details: TransactionDetails<ICPUnits>[], configuration?: TransactionConfiguration<ICPUnits>): Promise<ICPUnsignedTransaction>;
40
+ private networkId;
41
+ broadcastTransaction(transaction: ICPSignedTransaction): Promise<string>;
42
+ }
43
+ export declare function createICPProtocol(options?: RecursivePartial<ICPProtocolOptions>): ICPProtocol;
44
+ export declare const ICP_MAINNET_PROTOCOL_NETWORK: ICPProtocolNetwork;
45
+ export declare function createICPProtocolOptions(network?: Partial<ICPProtocolNetwork>): ICPProtocolOptions;