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

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 +91 -0
  27. package/v1/protocol/icrc/ICRC1Protocol.js +672 -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,614 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
52
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
53
+ return new (P || (P = Promise))(function (resolve, reject) {
54
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
55
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
56
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
57
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
58
+ });
59
+ };
60
+ var __generator = (this && this.__generator) || function (thisArg, body) {
61
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
62
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
63
+ function verb(n) { return function (v) { return step([n, v]); }; }
64
+ function step(op) {
65
+ if (f) throw new TypeError("Generator is already executing.");
66
+ while (_) try {
67
+ 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;
68
+ if (y = 0, t) op = [op[0] & 2, t.value];
69
+ switch (op[0]) {
70
+ case 0: case 1: t = op; break;
71
+ case 4: _.label++; return { value: op[1], done: false };
72
+ case 5: _.label++; y = op[1]; op = [0]; continue;
73
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
74
+ default:
75
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
76
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
77
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
78
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
79
+ if (t[2]) _.ops.pop();
80
+ _.trys.pop(); continue;
81
+ }
82
+ op = body.call(thisArg, _);
83
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
84
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
85
+ }
86
+ };
87
+ var __read = (this && this.__read) || function (o, n) {
88
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
89
+ if (!m) return o;
90
+ var i = m.call(o), r, ar = [], e;
91
+ try {
92
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
93
+ }
94
+ catch (error) { e = { error: error }; }
95
+ finally {
96
+ try {
97
+ if (r && !r.done && (m = i["return"])) m.call(i);
98
+ }
99
+ finally { if (e) throw e.error; }
100
+ }
101
+ return ar;
102
+ };
103
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
104
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
105
+ if (ar || !(i in from)) {
106
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
107
+ ar[i] = from[i];
108
+ }
109
+ }
110
+ return to.concat(ar || Array.prototype.slice.call(from));
111
+ };
112
+ var __values = (this && this.__values) || function(o) {
113
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
114
+ if (m) return m.call(o);
115
+ if (o && typeof o.length === "number") return {
116
+ next: function () {
117
+ if (o && i >= o.length) o = void 0;
118
+ return { value: o && o[i++], done: !o };
119
+ }
120
+ };
121
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
122
+ };
123
+ Object.defineProperty(exports, "__esModule", { value: true });
124
+ exports.HttpAgent = exports.IdentityInvalidError = exports.RequestStatusResponseStatus = exports.makeNonce = exports.SubmitRequestType = exports.Expiry = exports.ReplicaRejectCode = void 0;
125
+ var principal_1 = require("./principal");
126
+ var auth_1 = require("./auth");
127
+ var buffer_1 = require("./buffer");
128
+ var Cbor = __importStar(require("./cbor"));
129
+ var cbor = __importStar(require("simple-cbor"));
130
+ var leb128_1 = require("./leb128");
131
+ var errors_1 = require("./errors");
132
+ var NANOSECONDS_PER_MILLISECONDS = BigInt(1000000);
133
+ var REPLICA_PERMITTED_DRIFT_MILLISECONDS = BigInt(60 * 1000);
134
+ var ReplicaRejectCode;
135
+ (function (ReplicaRejectCode) {
136
+ ReplicaRejectCode[ReplicaRejectCode["SysFatal"] = 1] = "SysFatal";
137
+ ReplicaRejectCode[ReplicaRejectCode["SysTransient"] = 2] = "SysTransient";
138
+ ReplicaRejectCode[ReplicaRejectCode["DestinationInvalid"] = 3] = "DestinationInvalid";
139
+ ReplicaRejectCode[ReplicaRejectCode["CanisterReject"] = 4] = "CanisterReject";
140
+ ReplicaRejectCode[ReplicaRejectCode["CanisterError"] = 5] = "CanisterError";
141
+ })(ReplicaRejectCode = exports.ReplicaRejectCode || (exports.ReplicaRejectCode = {}));
142
+ var Expiry = /** @class */ (function () {
143
+ function Expiry(deltaInMSec) {
144
+ // Use bigint because it can overflow the maximum number allowed in a double float.
145
+ this._value = (BigInt(Date.now()) + BigInt(deltaInMSec) - REPLICA_PERMITTED_DRIFT_MILLISECONDS) * NANOSECONDS_PER_MILLISECONDS;
146
+ }
147
+ //@ts-ignore
148
+ Expiry.prototype.toCBOR = function () {
149
+ // TODO: change this to take the minimum amount of space (it always takes 8 bytes now).
150
+ return cbor.value.u64(this._value.toString(16), 16);
151
+ };
152
+ Expiry.prototype.toHash = function () {
153
+ return (0, leb128_1.lebEncode)(this._value);
154
+ };
155
+ return Expiry;
156
+ }());
157
+ exports.Expiry = Expiry;
158
+ // tslint:enable:camel-case
159
+ // The types of values allowed in the `request_type` field for submit requests.
160
+ var SubmitRequestType;
161
+ (function (SubmitRequestType) {
162
+ SubmitRequestType["Call"] = "call";
163
+ })(SubmitRequestType = exports.SubmitRequestType || (exports.SubmitRequestType = {}));
164
+ /**
165
+ * Create a random Nonce, based on date and a random suffix.
166
+ */
167
+ function makeNonce() {
168
+ // Encode 128 bits.
169
+ var buffer = new ArrayBuffer(16);
170
+ var view = new DataView(buffer);
171
+ var now = BigInt(+Date.now());
172
+ var randHi = Math.floor(Math.random() * 0xffffffff);
173
+ var randLo = Math.floor(Math.random() * 0xffffffff);
174
+ // Fix for IOS < 14.8 setBigUint64 absence
175
+ if (typeof view.setBigUint64 === 'function') {
176
+ view.setBigUint64(0, now);
177
+ }
178
+ else {
179
+ var TWO_TO_THE_32 = BigInt(1) << BigInt(32);
180
+ view.setUint32(0, Number(now >> BigInt(32)));
181
+ view.setUint32(4, Number(now % TWO_TO_THE_32));
182
+ }
183
+ view.setUint32(8, randHi);
184
+ view.setUint32(12, randLo);
185
+ return buffer;
186
+ }
187
+ exports.makeNonce = makeNonce;
188
+ var RequestStatusResponseStatus;
189
+ (function (RequestStatusResponseStatus) {
190
+ RequestStatusResponseStatus["Received"] = "received";
191
+ RequestStatusResponseStatus["Processing"] = "processing";
192
+ RequestStatusResponseStatus["Replied"] = "replied";
193
+ RequestStatusResponseStatus["Rejected"] = "rejected";
194
+ RequestStatusResponseStatus["Unknown"] = "unknown";
195
+ RequestStatusResponseStatus["Done"] = "done";
196
+ })(RequestStatusResponseStatus = exports.RequestStatusResponseStatus || (exports.RequestStatusResponseStatus = {}));
197
+ // Default delta for ingress expiry is 5 minutes.
198
+ var DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS = 5 * 60 * 1000;
199
+ // Root public key for the IC, encoded as hex
200
+ var IC_ROOT_KEY = '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814' +
201
+ 'c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d968' +
202
+ '5f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484' +
203
+ 'b01291091c5f87b98883463f98091a0baaae';
204
+ // IC0 domain info
205
+ var IC0_DOMAIN = 'ic0.app';
206
+ var IC0_SUB_DOMAIN = '.ic0.app';
207
+ var HttpDefaultFetchError = /** @class */ (function (_super) {
208
+ __extends(HttpDefaultFetchError, _super);
209
+ function HttpDefaultFetchError(message) {
210
+ var _this = _super.call(this, message) || this;
211
+ _this.message = message;
212
+ return _this;
213
+ }
214
+ return HttpDefaultFetchError;
215
+ }(errors_1.AgentError));
216
+ var IdentityInvalidError = /** @class */ (function (_super) {
217
+ __extends(IdentityInvalidError, _super);
218
+ function IdentityInvalidError(message) {
219
+ var _this = _super.call(this, message) || this;
220
+ _this.message = message;
221
+ return _this;
222
+ }
223
+ return IdentityInvalidError;
224
+ }(errors_1.AgentError));
225
+ exports.IdentityInvalidError = IdentityInvalidError;
226
+ function getDefaultFetch() {
227
+ var defaultFetch;
228
+ if (typeof window !== 'undefined') {
229
+ // Browser context
230
+ if (window.fetch) {
231
+ defaultFetch = window.fetch.bind(window);
232
+ }
233
+ else {
234
+ throw new HttpDefaultFetchError('Fetch implementation was not available. You appear to be in a browser context, but window.fetch was not present.');
235
+ }
236
+ }
237
+ else if (typeof global !== 'undefined') {
238
+ // Node context
239
+ if (global.fetch) {
240
+ defaultFetch = global.fetch.bind(global);
241
+ }
242
+ else {
243
+ throw new HttpDefaultFetchError('Fetch implementation was not available. You appear to be in a Node.js context, but global.fetch was not available.');
244
+ }
245
+ }
246
+ else if (typeof self !== 'undefined') {
247
+ if (self.fetch) {
248
+ defaultFetch = self.fetch.bind(self);
249
+ }
250
+ }
251
+ if (defaultFetch) {
252
+ return defaultFetch;
253
+ }
254
+ throw new HttpDefaultFetchError('Fetch implementation was not available. Please provide fetch to the HttpAgent constructor, or ensure it is available in the window or global context.');
255
+ }
256
+ // A HTTP agent allows users to interact with a client of the internet computer
257
+ // using the available methods. It exposes an API that closely follows the
258
+ // public view of the internet computer, and is not intended to be exposed
259
+ // directly to the majority of users due to its low-level interface.
260
+ //
261
+ // There is a pipeline to apply transformations to the request before sending
262
+ // it to the client. This is to decouple signature, nonce generation and
263
+ // other computations so that this class can stay as simple as possible while
264
+ // allowing extensions.
265
+ var HttpAgent = /** @class */ (function () {
266
+ function HttpAgent(options) {
267
+ if (options === void 0) { options = {}; }
268
+ this.rootKey = (0, buffer_1.fromHex)(IC_ROOT_KEY);
269
+ this._pipeline = [];
270
+ this._rootKeyFetched = false;
271
+ if (options.source) {
272
+ if (!(options.source instanceof HttpAgent)) {
273
+ throw new Error("An Agent's source can only be another HttpAgent");
274
+ }
275
+ this._pipeline = __spreadArray([], __read(options.source._pipeline), false);
276
+ this._identity = options.source._identity;
277
+ this._fetch = options.source._fetch;
278
+ this._host = options.source._host;
279
+ this._credentials = options.source._credentials;
280
+ }
281
+ else {
282
+ this._fetch = options.fetch || getDefaultFetch() || fetch.bind(global);
283
+ }
284
+ if (options.host !== undefined) {
285
+ if (!options.host.match(/^[a-z]+:/) && typeof window !== 'undefined') {
286
+ this._host = new URL(window.location.protocol + '//' + options.host);
287
+ }
288
+ else {
289
+ this._host = new URL(options.host);
290
+ }
291
+ }
292
+ else if (options.source !== undefined) {
293
+ // Safe to ignore here.
294
+ this._host = options.source._host;
295
+ }
296
+ else {
297
+ var location_1 = typeof window !== 'undefined' ? window.location : undefined;
298
+ if (!location_1) {
299
+ throw new Error('Must specify a host to connect to.');
300
+ }
301
+ this._host = new URL(location_1 + '');
302
+ }
303
+ // Rewrite to avoid redirects
304
+ if (this._host.hostname.endsWith(IC0_SUB_DOMAIN)) {
305
+ this._host.hostname = IC0_DOMAIN;
306
+ }
307
+ if (options.credentials) {
308
+ var _a = options.credentials, name_1 = _a.name, password = _a.password;
309
+ this._credentials = "".concat(name_1).concat(password ? ':' + password : '');
310
+ }
311
+ this._identity = Promise.resolve(options.identity || new auth_1.AnonymousIdentity());
312
+ }
313
+ HttpAgent.prototype.addTransform = function (fn, priority) {
314
+ if (priority === void 0) { priority = fn.priority || 0; }
315
+ // Keep the pipeline sorted at all time, by priority.
316
+ var i = this._pipeline.findIndex(function (x) { return (x.priority || 0) < priority; });
317
+ this._pipeline.splice(i >= 0 ? i : this._pipeline.length, 0, Object.assign(fn, { priority: priority }));
318
+ };
319
+ HttpAgent.prototype.getPrincipal = function () {
320
+ return __awaiter(this, void 0, void 0, function () {
321
+ return __generator(this, function (_a) {
322
+ switch (_a.label) {
323
+ case 0:
324
+ if (!this._identity) {
325
+ throw new IdentityInvalidError("This identity has expired due this application's security policy. Please refresh your authentication.");
326
+ }
327
+ return [4 /*yield*/, this._identity];
328
+ case 1:
329
+ //@ts-ignore
330
+ return [2 /*return*/, (_a.sent()).getPrincipal()];
331
+ }
332
+ });
333
+ });
334
+ };
335
+ HttpAgent.prototype.call = function (canisterId, options, identity) {
336
+ return __awaiter(this, void 0, void 0, function () {
337
+ var id, _a, canister, ecid, sender, submit, transformedRequest, body, _b, response, requestId, _c, _d, _e;
338
+ return __generator(this, function (_f) {
339
+ switch (_f.label) {
340
+ case 0:
341
+ if (!(identity !== undefined)) return [3 /*break*/, 2];
342
+ return [4 /*yield*/, identity];
343
+ case 1:
344
+ _a = _f.sent();
345
+ return [3 /*break*/, 4];
346
+ case 2: return [4 /*yield*/, this._identity];
347
+ case 3:
348
+ _a = _f.sent();
349
+ _f.label = 4;
350
+ case 4: return [4 /*yield*/, (_a)];
351
+ case 5:
352
+ id = _f.sent();
353
+ if (!id) {
354
+ throw new IdentityInvalidError("This identity has expired due this application's security policy. Please refresh your authentication.");
355
+ }
356
+ canister = principal_1.Principal.from(canisterId);
357
+ ecid = options.effectiveCanisterId ? principal_1.Principal.from(options.effectiveCanisterId) : canister;
358
+ sender = id.getPrincipal() || principal_1.Principal.anonymous();
359
+ submit = {
360
+ request_type: SubmitRequestType.Call,
361
+ canister_id: canister,
362
+ method_name: options.methodName,
363
+ arg: options.arg,
364
+ sender: sender,
365
+ ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS)
366
+ };
367
+ return [4 /*yield*/, this._transform({
368
+ request: {
369
+ body: null,
370
+ method: 'POST',
371
+ headers: __assign({ 'Content-Type': 'application/cbor' }, (this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}))
372
+ },
373
+ endpoint: "call" /* Endpoint.Call */,
374
+ body: submit
375
+ })];
376
+ case 6:
377
+ transformedRequest = (_f.sent());
378
+ return [4 /*yield*/, id.transformRequest(transformedRequest)];
379
+ case 7:
380
+ // Apply transform for identity.
381
+ transformedRequest = _f.sent();
382
+ body = Cbor.encode(transformedRequest.body);
383
+ return [4 /*yield*/, Promise.all([
384
+ this._fetch('' + new URL("/api/v2/canister/".concat(ecid.toText(), "/call"), this._host), __assign(__assign({}, transformedRequest.request), { body: body })),
385
+ (0, auth_1.requestIdOf)(submit)
386
+ ])];
387
+ case 8:
388
+ _b = __read.apply(void 0, [_f.sent(), 2]), response = _b[0], requestId = _b[1];
389
+ if (!!response.ok) return [3 /*break*/, 10];
390
+ _c = Error.bind;
391
+ _d = "Server returned an error:\n" + " Code: ".concat(response.status, " (").concat(response.statusText, ")\n");
392
+ _e = " Body: ".concat;
393
+ return [4 /*yield*/, response.text()];
394
+ case 9: throw new (_c.apply(Error, [void 0, _d + _e.apply(" Body: ", [_f.sent(), "\n"])]))();
395
+ case 10: return [2 /*return*/, {
396
+ requestId: requestId,
397
+ response: {
398
+ ok: response.ok,
399
+ status: response.status,
400
+ statusText: response.statusText
401
+ }
402
+ }];
403
+ }
404
+ });
405
+ });
406
+ };
407
+ HttpAgent.prototype.query = function (canisterId, fields, identity) {
408
+ return __awaiter(this, void 0, void 0, function () {
409
+ var id, _a, canister, sender, request, transformedRequest, body, response, _b, _c, _d, _e, _f;
410
+ return __generator(this, function (_g) {
411
+ switch (_g.label) {
412
+ case 0:
413
+ if (!(identity !== undefined)) return [3 /*break*/, 2];
414
+ return [4 /*yield*/, identity];
415
+ case 1:
416
+ _a = _g.sent();
417
+ return [3 /*break*/, 4];
418
+ case 2: return [4 /*yield*/, this._identity];
419
+ case 3:
420
+ _a = _g.sent();
421
+ _g.label = 4;
422
+ case 4: return [4 /*yield*/, (_a)];
423
+ case 5:
424
+ id = _g.sent();
425
+ if (!id) {
426
+ throw new IdentityInvalidError("This identity has expired due this application's security policy. Please refresh your authentication.");
427
+ }
428
+ canister = typeof canisterId === 'string' ? principal_1.Principal.fromText(canisterId) : canisterId;
429
+ sender = (id === null || id === void 0 ? void 0 : id.getPrincipal()) || principal_1.Principal.anonymous();
430
+ request = {
431
+ request_type: "query" /* ReadRequestType.Query */,
432
+ canister_id: canister,
433
+ method_name: fields.methodName,
434
+ arg: fields.arg,
435
+ //@ts-ignore
436
+ sender: sender,
437
+ ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS)
438
+ };
439
+ return [4 /*yield*/, this._transform({
440
+ request: {
441
+ method: 'POST',
442
+ headers: __assign({ 'Content-Type': 'application/cbor' }, (this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}))
443
+ },
444
+ endpoint: "read" /* Endpoint.Query */,
445
+ body: request
446
+ })
447
+ // Apply transform for identity.
448
+ ];
449
+ case 6:
450
+ transformedRequest = _g.sent();
451
+ return [4 /*yield*/, (id === null || id === void 0 ? void 0 : id.transformRequest(transformedRequest))];
452
+ case 7:
453
+ // Apply transform for identity.
454
+ transformedRequest = _g.sent();
455
+ body = Cbor.encode(transformedRequest.body);
456
+ return [4 /*yield*/, this._fetch('' + new URL("/api/v2/canister/".concat(canister.toText(), "/query"), this._host), __assign(__assign({}, transformedRequest.request), { body: body }))];
457
+ case 8:
458
+ response = _g.sent();
459
+ if (!!response.ok) return [3 /*break*/, 10];
460
+ _b = Error.bind;
461
+ _c = "Server returned an error:\n" + " Code: ".concat(response.status, " (").concat(response.statusText, ")\n");
462
+ _d = " Body: ".concat;
463
+ return [4 /*yield*/, response.text()];
464
+ case 9: throw new (_b.apply(Error, [void 0, _c + _d.apply(" Body: ", [_g.sent(), "\n"])]))();
465
+ case 10:
466
+ _f = (_e = Cbor).decode;
467
+ return [4 /*yield*/, response.arrayBuffer()];
468
+ case 11: return [2 /*return*/, _f.apply(_e, [_g.sent()])];
469
+ }
470
+ });
471
+ });
472
+ };
473
+ HttpAgent.prototype.readState = function (canisterId, fields, identity) {
474
+ return __awaiter(this, void 0, void 0, function () {
475
+ var canister, id, _a, sender, transformedRequest, body, response, _b, _c, _d, _e, _f;
476
+ return __generator(this, function (_g) {
477
+ switch (_g.label) {
478
+ case 0:
479
+ canister = typeof canisterId === 'string' ? principal_1.Principal.fromText(canisterId) : canisterId;
480
+ if (!(identity !== undefined)) return [3 /*break*/, 2];
481
+ return [4 /*yield*/, identity];
482
+ case 1:
483
+ _a = _g.sent();
484
+ return [3 /*break*/, 4];
485
+ case 2: return [4 /*yield*/, this._identity];
486
+ case 3:
487
+ _a = _g.sent();
488
+ _g.label = 4;
489
+ case 4: return [4 /*yield*/, (_a)];
490
+ case 5:
491
+ id = _g.sent();
492
+ if (!id) {
493
+ throw new IdentityInvalidError("This identity has expired due this application's security policy. Please refresh your authentication.");
494
+ }
495
+ sender = (id === null || id === void 0 ? void 0 : id.getPrincipal()) || principal_1.Principal.anonymous();
496
+ return [4 /*yield*/, this._transform({
497
+ request: {
498
+ method: 'POST',
499
+ headers: __assign({ 'Content-Type': 'application/cbor' }, (this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}))
500
+ },
501
+ endpoint: "read_state" /* Endpoint.ReadState */,
502
+ body: {
503
+ request_type: "read_state" /* ReadRequestType.ReadState */,
504
+ paths: fields.paths,
505
+ //@ts-ignore
506
+ sender: sender,
507
+ ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS)
508
+ }
509
+ })
510
+ // Apply transform for identity.
511
+ ];
512
+ case 6:
513
+ transformedRequest = _g.sent();
514
+ return [4 /*yield*/, (id === null || id === void 0 ? void 0 : id.transformRequest(transformedRequest))];
515
+ case 7:
516
+ // Apply transform for identity.
517
+ transformedRequest = _g.sent();
518
+ body = Cbor.encode(transformedRequest.body);
519
+ return [4 /*yield*/, this._fetch('' + new URL("/api/v2/canister/".concat(canister, "/read_state"), this._host), __assign(__assign({}, transformedRequest.request), { body: body }))];
520
+ case 8:
521
+ response = _g.sent();
522
+ if (!!response.ok) return [3 /*break*/, 10];
523
+ _b = Error.bind;
524
+ _c = "Server returned an error:\n" + " Code: ".concat(response.status, " (").concat(response.statusText, ")\n");
525
+ _d = " Body: ".concat;
526
+ return [4 /*yield*/, response.text()];
527
+ case 9: throw new (_b.apply(Error, [void 0, _c + _d.apply(" Body: ", [_g.sent(), "\n"])]))();
528
+ case 10:
529
+ _f = (_e = Cbor).decode;
530
+ return [4 /*yield*/, response.arrayBuffer()];
531
+ case 11: return [2 /*return*/, _f.apply(_e, [_g.sent()])];
532
+ }
533
+ });
534
+ });
535
+ };
536
+ HttpAgent.prototype.status = function () {
537
+ return __awaiter(this, void 0, void 0, function () {
538
+ var headers, response, _a, _b, _c, _d, _e;
539
+ return __generator(this, function (_f) {
540
+ switch (_f.label) {
541
+ case 0:
542
+ headers = this._credentials
543
+ ? {
544
+ Authorization: 'Basic ' + btoa(this._credentials)
545
+ }
546
+ : {};
547
+ return [4 /*yield*/, this._fetch('' + new URL("/api/v2/status", this._host), { headers: headers })];
548
+ case 1:
549
+ response = _f.sent();
550
+ if (!!response.ok) return [3 /*break*/, 3];
551
+ _a = Error.bind;
552
+ _b = "Server returned an error:\n" + " Code: ".concat(response.status, " (").concat(response.statusText, ")\n");
553
+ _c = " Body: ".concat;
554
+ return [4 /*yield*/, response.text()];
555
+ case 2: throw new (_a.apply(Error, [void 0, _b + _c.apply(" Body: ", [_f.sent(), "\n"])]))();
556
+ case 3:
557
+ _e = (_d = Cbor).decode;
558
+ return [4 /*yield*/, response.arrayBuffer()];
559
+ case 4: return [2 /*return*/, _e.apply(_d, [_f.sent()])];
560
+ }
561
+ });
562
+ });
563
+ };
564
+ HttpAgent.prototype.fetchRootKey = function () {
565
+ return __awaiter(this, void 0, void 0, function () {
566
+ var _a;
567
+ return __generator(this, function (_b) {
568
+ switch (_b.label) {
569
+ case 0:
570
+ if (!!this._rootKeyFetched) return [3 /*break*/, 2];
571
+ // Hex-encoded version of the replica root key
572
+ _a = this;
573
+ return [4 /*yield*/, this.status()];
574
+ case 1:
575
+ // Hex-encoded version of the replica root key
576
+ _a.rootKey = (_b.sent()).root_key;
577
+ this._rootKeyFetched = true;
578
+ _b.label = 2;
579
+ case 2: return [2 /*return*/, this.rootKey];
580
+ }
581
+ });
582
+ });
583
+ };
584
+ HttpAgent.prototype.invalidateIdentity = function () {
585
+ this._identity = null;
586
+ };
587
+ HttpAgent.prototype.replaceIdentity = function (identity) {
588
+ this._identity = Promise.resolve(identity);
589
+ };
590
+ HttpAgent.prototype._transform = function (request) {
591
+ var e_1, _a;
592
+ var p = Promise.resolve(request);
593
+ var _loop_1 = function (fn) {
594
+ p = p.then(function (r) { return fn(r).then(function (r2) { return r2 || r; }); });
595
+ };
596
+ try {
597
+ for (var _b = __values(this._pipeline), _c = _b.next(); !_c.done; _c = _b.next()) {
598
+ var fn = _c.value;
599
+ _loop_1(fn);
600
+ }
601
+ }
602
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
603
+ finally {
604
+ try {
605
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
606
+ }
607
+ finally { if (e_1) throw e_1.error; }
608
+ }
609
+ return p;
610
+ };
611
+ return HttpAgent;
612
+ }());
613
+ exports.HttpAgent = HttpAgent;
614
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/v1/utils/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" />
2
+ import { AirGapTransaction, Amount } from '@airgap/module-kit';
3
+ import { ICRC1Account } from '../types/icrc/account';
4
+ import { ICRC1Metadata } from '../types/icrc/metadata';
5
+ import { ICRC1TransferArgs } from '../types/icrc/transfer';
6
+ import { ICRC1ProtocolNetwork } from '../types/protocol';
7
+ import { Principal } from './principal';
8
+ export declare function encodeICRC1Account(account: ICRC1Account): {
9
+ owner: Principal;
10
+ subaccount: [] | [Uint8Array];
11
+ };
12
+ export declare function decodeOptionalICRC1Account(account: any): ICRC1Account | undefined;
13
+ export declare function decodeICRC1Account(account: any): ICRC1Account;
14
+ export declare function decodeICRC1Metadata(metadata: any): ICRC1Metadata & Record<string, any>;
15
+ export declare function decodeICRC1TransferArgs(transaction: Buffer): ICRC1TransferArgs;
16
+ export declare function getDetailsFromTransferArgs<_Units extends string>(transferArgs: ICRC1TransferArgs, publicKey: string, network: ICRC1ProtocolNetwork, defaultFee: Amount<_Units>): AirGapTransaction<_Units>[];
17
+ export declare function getICRC1AddressFromPublicKey(publicKey: string, subAccount?: string | Buffer | Uint8Array): string;
18
+ export declare function getICRC1AddressFromPrincipal(principalOrText: Principal | string, subAccountOrUndefined?: string | Buffer | Uint8Array): string;
19
+ export declare function getICRC1AddressFromAccount(account: ICRC1Account): string;
20
+ export declare function getICRC1AccountFromAddress(address: string): ICRC1Account;