@airgap/icp 0.13.11-beta.3 → 0.13.11-beta.4

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 (43) hide show
  1. package/package.json +1 -1
  2. package/v1/index.d.ts +3 -2
  3. package/v1/index.js +4 -1
  4. package/v1/index.js.map +1 -1
  5. package/v1/module/ICPModule.d.ts +2 -3
  6. package/v1/module/ICPModule.js +22 -10
  7. package/v1/module/ICPModule.js.map +1 -1
  8. package/v1/protocol/ICPImplementation.d.ts +12 -4
  9. package/v1/protocol/ICPImplementation.js +87 -55
  10. package/v1/protocol/ICPImplementation.js.map +1 -1
  11. package/v1/protocol/ICPProtocol.d.ts +4 -1
  12. package/v1/protocol/ICPProtocol.js +24 -17
  13. package/v1/protocol/ICPProtocol.js.map +1 -1
  14. package/v1/protocol/icrc/CkBTCProtocol.d.ts +16 -0
  15. package/v1/protocol/icrc/CkBTCProtocol.js +366 -0
  16. package/v1/protocol/icrc/CkBTCProtocol.js.map +1 -0
  17. package/v1/protocol/icrc/ICRC1Protocol.d.ts +93 -0
  18. package/v1/protocol/icrc/ICRC1Protocol.js +684 -0
  19. package/v1/protocol/icrc/ICRC1Protocol.js.map +1 -0
  20. package/v1/serializer/v3/serializer-companion.js +16 -0
  21. package/v1/serializer/v3/serializer-companion.js.map +1 -1
  22. package/v1/types/ckbtc/metadata.d.ts +4 -0
  23. package/v1/types/ckbtc/metadata.js +3 -0
  24. package/v1/types/ckbtc/metadata.js.map +1 -0
  25. package/v1/types/icrc/account.d.ts +4 -0
  26. package/v1/types/icrc/account.js +3 -0
  27. package/v1/types/icrc/account.js.map +1 -0
  28. package/v1/types/icrc/ledger.d.ts +15 -0
  29. package/v1/types/icrc/ledger.js +92 -0
  30. package/v1/types/icrc/ledger.js.map +1 -0
  31. package/v1/types/icrc/metadata.d.ts +6 -0
  32. package/v1/types/icrc/metadata.js +3 -0
  33. package/v1/types/icrc/metadata.js.map +1 -0
  34. package/v1/types/icrc/transfer.d.ts +9 -0
  35. package/v1/types/icrc/transfer.js +3 -0
  36. package/v1/types/icrc/transfer.js.map +1 -0
  37. package/v1/types/ledger.d.ts +0 -1
  38. package/v1/types/ledger.js +1 -2
  39. package/v1/types/ledger.js.map +1 -1
  40. package/v1/types/protocol.d.ts +21 -1
  41. package/v1/utils/icrc1.d.ts +16 -0
  42. package/v1/utils/icrc1.js +109 -0
  43. package/v1/utils/icrc1.js.map +1 -0
@@ -0,0 +1,366 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (_) try {
44
+ 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;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ var __read = (this && this.__read) || function (o, n) {
65
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
66
+ if (!m) return o;
67
+ var i = m.call(o), r, ar = [], e;
68
+ try {
69
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
70
+ }
71
+ catch (error) { e = { error: error }; }
72
+ finally {
73
+ try {
74
+ if (r && !r.done && (m = i["return"])) m.call(i);
75
+ }
76
+ finally { if (e) throw e.error; }
77
+ }
78
+ return ar;
79
+ };
80
+ var __importDefault = (this && this.__importDefault) || function (mod) {
81
+ return (mod && mod.__esModule) ? mod : { "default": mod };
82
+ };
83
+ Object.defineProperty(exports, "__esModule", { value: true });
84
+ exports.createCkBTCOnlineProtocolOptions = exports.createCkBTCOfflineProtocolOptions = exports.CKBTC_MAINNET_PROTOCOL_NETWORK = exports.createCkBTCOnlineProtocol = exports.createCkBTCOfflineProtocol = void 0;
85
+ // tslint:disable: max-classes-per-file
86
+ var coinlib_core_1 = require("@airgap/coinlib-core");
87
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
88
+ var module_kit_1 = require("@airgap/module-kit");
89
+ var ICPImplementation_1 = require("../ICPImplementation");
90
+ var ICRC1Protocol_1 = require("./ICRC1Protocol");
91
+ // Implementation
92
+ var CKBTC_METADATA = {
93
+ identifier: coinlib_core_1.SubProtocolSymbols.ICP_CKBTC,
94
+ name: 'ckBTC',
95
+ units: {
96
+ ckBTC: {
97
+ symbol: { value: 'ckBTC' },
98
+ decimals: 8
99
+ }
100
+ },
101
+ mainUnit: 'ckBTC',
102
+ feeDefaults: {
103
+ low: (0, module_kit_1.newAmount)(10, 'blockchain'),
104
+ medium: (0, module_kit_1.newAmount)(10, 'blockchain'),
105
+ high: (0, module_kit_1.newAmount)(10, 'blockchain')
106
+ }
107
+ };
108
+ var CkBTCOfflineProtocolImpl = /** @class */ (function (_super) {
109
+ __extends(CkBTCOfflineProtocolImpl, _super);
110
+ function CkBTCOfflineProtocolImpl(options) {
111
+ var completeOptions = createCkBTCOfflineProtocolOptions(options.canisterId);
112
+ return _super.call(this, __assign(__assign({}, completeOptions), CKBTC_METADATA)) || this;
113
+ }
114
+ return CkBTCOfflineProtocolImpl;
115
+ }(ICRC1Protocol_1.ICRC1OfflineProtocolImpl));
116
+ var CkBTCOnlineProtocolImpl = /** @class */ (function (_super) {
117
+ __extends(CkBTCOnlineProtocolImpl, _super);
118
+ function CkBTCOnlineProtocolImpl(options) {
119
+ var completeOptions = createCkBTCOnlineProtocolOptions(options.network);
120
+ return _super.call(this, __assign(__assign({}, completeOptions), CKBTC_METADATA)) || this;
121
+ }
122
+ CkBTCOnlineProtocolImpl.prototype.getTransactionsForPublicKey = function (publicKey, limit, cursor) {
123
+ return __awaiter(this, void 0, void 0, function () {
124
+ var actor, start, empty, transactions, next, hasNext, _loop_1, this_1;
125
+ var _this = this;
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0:
129
+ actor = this.createActor(function (_a) {
130
+ var IDL = _a.IDL;
131
+ var GetTransactionsRequest = IDL.Record({
132
+ start: IDL.Nat,
133
+ length: IDL.Nat
134
+ });
135
+ var Account = IDL.Record({
136
+ owner: IDL.Principal,
137
+ subaccount: IDL.Opt(IDL.Vec(IDL.Nat8))
138
+ });
139
+ var Burn = IDL.Record({
140
+ from: Account,
141
+ memo: IDL.Opt(IDL.Vec(IDL.Nat8)),
142
+ created_at_time: IDL.Opt(IDL.Nat64),
143
+ amount: IDL.Nat
144
+ });
145
+ var Mint = IDL.Record({
146
+ to: Account,
147
+ memo: IDL.Opt(IDL.Vec(IDL.Nat8)),
148
+ created_at_time: IDL.Opt(IDL.Nat64),
149
+ amount: IDL.Nat
150
+ });
151
+ var Transfer = IDL.Record({
152
+ to: Account,
153
+ fee: IDL.Opt(IDL.Nat),
154
+ from: Account,
155
+ memo: IDL.Opt(IDL.Vec(IDL.Nat8)),
156
+ created_at_time: IDL.Opt(IDL.Nat64),
157
+ amount: IDL.Nat
158
+ });
159
+ var Transaction = IDL.Record({
160
+ burn: IDL.Opt(Burn),
161
+ kind: IDL.Text,
162
+ mint: IDL.Opt(Mint),
163
+ timestamp: IDL.Nat64,
164
+ transfer: IDL.Opt(Transfer)
165
+ });
166
+ var ArchivedTransactionRange = IDL.Record({
167
+ callback: IDL.Func([GetTransactionsRequest], [IDL.Record({ transactions: IDL.Vec(Transaction) })], ['query']),
168
+ start: IDL.Nat,
169
+ length: IDL.Nat
170
+ });
171
+ var GetTransactionsResponse = IDL.Record({
172
+ first_index: IDL.Nat,
173
+ log_length: IDL.Nat,
174
+ transactions: IDL.Vec(Transaction),
175
+ archived_transactions: IDL.Vec(ArchivedTransactionRange)
176
+ });
177
+ return IDL.Service({
178
+ get_transactions: IDL.Func([GetTransactionsRequest], [GetTransactionsResponse], ['query'])
179
+ });
180
+ });
181
+ start = cursor === null || cursor === void 0 ? void 0 : cursor.next;
182
+ if (!!start) return [3 /*break*/, 2];
183
+ return [4 /*yield*/, actor.get_transactions({
184
+ start: BigInt(0),
185
+ length: BigInt(0)
186
+ })];
187
+ case 1:
188
+ empty = _a.sent();
189
+ start = empty.first_index.toString();
190
+ _a.label = 2;
191
+ case 2:
192
+ next = new bignumber_1.default(start !== null && start !== void 0 ? start : 0);
193
+ hasNext = false;
194
+ _loop_1 = function () {
195
+ var canisterTransactions, ownAddress, defaultFee, transactionsWithIndices, reachedLimit;
196
+ return __generator(this, function (_b) {
197
+ switch (_b.label) {
198
+ case 0: return [4 /*yield*/, actor.get_transactions({
199
+ start: BigInt(next.toString()),
200
+ length: BigInt(limit < 1000 ? limit * 100 : limit)
201
+ })];
202
+ case 1:
203
+ canisterTransactions = _b.sent();
204
+ ownAddress = (0, ICPImplementation_1.getAddressFromPublicKey)(publicKey.value);
205
+ return [4 /*yield*/, this_1.fee()];
206
+ case 2:
207
+ defaultFee = _b.sent();
208
+ transactionsWithIndices = canisterTransactions.transactions
209
+ .map(function (tx, index) {
210
+ var transaction;
211
+ if (tx.kind === 'transfer' && tx.transfer[0]) {
212
+ var transfer = tx.transfer[0];
213
+ var fromOwner = (0, ICPImplementation_1.getAddressFromPrincipal)(transfer.from.owner);
214
+ var toOwner = (0, ICPImplementation_1.getAddressFromPrincipal)(transfer.to.owner);
215
+ if (fromOwner !== ownAddress || toOwner !== ownAddress) {
216
+ return undefined;
217
+ }
218
+ var from = (0, ICPImplementation_1.getAddressFromPrincipal)(transfer.from.owner, transfer.from.subaccount);
219
+ var to = (0, ICPImplementation_1.getAddressFromPrincipal)(transfer.to.owner, transfer.to.subaccount);
220
+ transaction = {
221
+ from: [from],
222
+ to: [to],
223
+ isInbound: toOwner === ownAddress,
224
+ amount: (0, module_kit_1.newAmount)(transfer.amount.toString(), 'blockchain'),
225
+ fee: transfer.fee && transfer.fee[0]
226
+ ? (0, module_kit_1.newAmount)(transfer.fee[0].toString(), 'blockchain')
227
+ : (0, module_kit_1.newAmount)(defaultFee, 'blockchain'),
228
+ network: _this.options.network,
229
+ status: {
230
+ type: 'applied'
231
+ },
232
+ timestamp: Number(tx.timestamp),
233
+ arbitraryData: transfer.memo && transfer.memo[0] ? Buffer.from(transfer.memo[0]).toString('hex') : undefined
234
+ };
235
+ }
236
+ else if (tx.kind === 'burn' && tx.burn[0]) {
237
+ var burn = tx.burn[0];
238
+ var fromOwner = (0, ICPImplementation_1.getAddressFromPrincipal)(burn.from.owner);
239
+ if (fromOwner !== ownAddress) {
240
+ return undefined;
241
+ }
242
+ transaction = {
243
+ from: [(0, ICPImplementation_1.getAddressFromPrincipal)(burn.from.owner, burn.from.subaccount)],
244
+ to: ['Burn'],
245
+ isInbound: false,
246
+ amount: (0, module_kit_1.newAmount)(burn.amount.toString(), 'blockchain'),
247
+ fee: (0, module_kit_1.newAmount)(0, 'blockchain'),
248
+ type: 'burn',
249
+ network: _this.options.network,
250
+ status: {
251
+ type: 'applied'
252
+ },
253
+ timestamp: Number(tx.timestamp),
254
+ arbitraryData: burn.memo && burn.memo[0] ? Buffer.from(burn.memo[0]).toString('hex') : undefined
255
+ };
256
+ }
257
+ else if (tx.kind === 'mint' && tx.mint[0]) {
258
+ var mint = tx.mint[0];
259
+ var toOwner = (0, ICPImplementation_1.getAddressFromPrincipal)(mint.to.owner);
260
+ if (toOwner !== ownAddress) {
261
+ return undefined;
262
+ }
263
+ transaction = {
264
+ from: ['Mint'],
265
+ to: [(0, ICPImplementation_1.getAddressFromPrincipal)(mint.to.owner, mint.to.subaccount)],
266
+ isInbound: false,
267
+ amount: (0, module_kit_1.newAmount)(mint.amount.toString(), 'blockchain'),
268
+ fee: (0, module_kit_1.newAmount)(0, 'blockchain'),
269
+ type: 'mint',
270
+ network: _this.options.network,
271
+ status: {
272
+ type: 'applied'
273
+ },
274
+ timestamp: Number(tx.timestamp),
275
+ arbitraryData: mint.memo && mint.memo[0] ? Buffer.from(mint.memo[0]).toString('hex') : undefined
276
+ };
277
+ }
278
+ return transaction ? [transaction, index] : undefined;
279
+ })
280
+ .filter(function (tx) { return tx !== undefined; });
281
+ reachedLimit = transactionsWithIndices.length > limit;
282
+ transactions = transactionsWithIndices.slice(0, limit).map(function (_a) {
283
+ var _b = __read(_a, 2), tx = _b[0], _ = _b[1];
284
+ return tx;
285
+ });
286
+ next = next.plus(reachedLimit ? transactionsWithIndices[limit - 1][1] + 1 : limit);
287
+ hasNext = next.gte(canisterTransactions.log_length.toString());
288
+ return [2 /*return*/];
289
+ }
290
+ });
291
+ };
292
+ this_1 = this;
293
+ _a.label = 3;
294
+ case 3: return [5 /*yield**/, _loop_1()];
295
+ case 4:
296
+ _a.sent();
297
+ _a.label = 5;
298
+ case 5:
299
+ if (transactions.length === 0 && hasNext) return [3 /*break*/, 3];
300
+ _a.label = 6;
301
+ case 6: // TODO: collect requested (limit) number of transactions
302
+ return [2 /*return*/, {
303
+ transactions: transactions,
304
+ cursor: {
305
+ hasNext: hasNext,
306
+ next: next.toString()
307
+ }
308
+ }];
309
+ }
310
+ });
311
+ });
312
+ };
313
+ CkBTCOnlineProtocolImpl.prototype.metadata = function () {
314
+ return __awaiter(this, void 0, void 0, function () {
315
+ var baseMetadata, symbol, name, decimals, fee;
316
+ return __generator(this, function (_a) {
317
+ switch (_a.label) {
318
+ case 0: return [4 /*yield*/, this.baseMetadata()];
319
+ case 1:
320
+ baseMetadata = _a.sent();
321
+ symbol = baseMetadata.symbol, name = baseMetadata.name, decimals = baseMetadata.decimals, fee = baseMetadata.fee;
322
+ return [2 /*return*/, {
323
+ symbol: symbol,
324
+ name: name,
325
+ decimals: decimals,
326
+ fee: fee,
327
+ logo: baseMetadata['icrc1:logo'].Text
328
+ }];
329
+ }
330
+ });
331
+ });
332
+ };
333
+ return CkBTCOnlineProtocolImpl;
334
+ }(ICRC1Protocol_1.ICRC1OnlineProtocolImpl));
335
+ function createCkBTCOfflineProtocol(options) {
336
+ if (options === void 0) { options = {}; }
337
+ return new CkBTCOfflineProtocolImpl(options);
338
+ }
339
+ exports.createCkBTCOfflineProtocol = createCkBTCOfflineProtocol;
340
+ function createCkBTCOnlineProtocol(options) {
341
+ if (options === void 0) { options = {}; }
342
+ return new CkBTCOnlineProtocolImpl(options);
343
+ }
344
+ exports.createCkBTCOnlineProtocol = createCkBTCOnlineProtocol;
345
+ exports.CKBTC_MAINNET_PROTOCOL_NETWORK = {
346
+ name: 'Mainnet',
347
+ type: 'mainnet',
348
+ rpcUrl: 'https://boundary.ic0.app/',
349
+ canisterId: 'mxzaz-hqaaa-aaaar-qaada-cai',
350
+ explorerUrl: 'https://ledger-api.internetcomputer.org'
351
+ };
352
+ var DEFAULT_CKBTC_PROTOCOL_NETWORK = exports.CKBTC_MAINNET_PROTOCOL_NETWORK;
353
+ function createCkBTCOfflineProtocolOptions(canisterId) {
354
+ return {
355
+ canisterId: canisterId !== null && canisterId !== void 0 ? canisterId : DEFAULT_CKBTC_PROTOCOL_NETWORK.canisterId
356
+ };
357
+ }
358
+ exports.createCkBTCOfflineProtocolOptions = createCkBTCOfflineProtocolOptions;
359
+ function createCkBTCOnlineProtocolOptions(network) {
360
+ if (network === void 0) { network = {}; }
361
+ return {
362
+ network: __assign(__assign({}, DEFAULT_CKBTC_PROTOCOL_NETWORK), network)
363
+ };
364
+ }
365
+ exports.createCkBTCOnlineProtocolOptions = createCkBTCOnlineProtocolOptions;
366
+ //# sourceMappingURL=CkBTCProtocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CkBTCProtocol.js","sourceRoot":"","sources":["../../../../src/v1/protocol/icrc/CkBTCProtocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { Address, AirGapOfflineProtocol, AirGapOnlineProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, KeyPair, ProtocolMetadata, PublicKey, SecretKey, TransactionConfiguration, TransactionDetails } from '@airgap/module-kit';
2
+ import { ICPCryptoConfiguration } from '../../types/crypto';
3
+ import { ICRC1Account } from '../../types/icrc/account';
4
+ import { ICRC1Metadata } from '../../types/icrc/metadata';
5
+ import { ICRC1TransferArgs } from '../../types/icrc/transfer';
6
+ import { ICRC1OfflineProtocolOptions, ICRC1OnlineProtocolOptions, ICRC1ProtocolNetwork } from '../../types/protocol';
7
+ import { ICPSignedTransaction, ICPTransactionCursor, ICPUnsignedTransaction } from '../../types/transaction';
8
+ import { ActorSubclass } from '../../utils/actor';
9
+ import { Identity } from '../../utils/auth';
10
+ import * as IDL from '../../utils/idl';
11
+ import { ICPProtocol } from '../ICPProtocol';
12
+ export interface ICRC1OfflineProtocol<_Units extends string = string> extends AirGapOfflineProtocol<{
13
+ AddressResult: Address;
14
+ CryptoConfiguration: ICPCryptoConfiguration;
15
+ Units: _Units;
16
+ SignedTransaction: ICPSignedTransaction;
17
+ UnsignedTransaction: ICPUnsignedTransaction;
18
+ }, 'SingleTokenSubProtocol'> {
19
+ }
20
+ export interface ICRC1OnlineProtocol<_Units extends string = string, _ICRC1Metadata extends ICRC1Metadata = ICRC1Metadata, _ProtocolNetwork extends ICRC1ProtocolNetwork = ICRC1ProtocolNetwork> extends AirGapOnlineProtocol<{
21
+ AddressResult: Address;
22
+ ProtocolNetwork: _ProtocolNetwork;
23
+ Units: _Units;
24
+ FeeEstimation: Amount<_Units>;
25
+ SignedTransaction: ICPSignedTransaction;
26
+ UnsignedTransaction: ICPUnsignedTransaction;
27
+ TransactionCursor: ICPTransactionCursor;
28
+ }, 'SingleTokenSubProtocol'> {
29
+ name(): Promise<string>;
30
+ symbol(): Promise<string>;
31
+ decimals(): Promise<number>;
32
+ fee(): Promise<string>;
33
+ metadata(): Promise<_ICRC1Metadata>;
34
+ totalSupply(): Promise<string>;
35
+ mintingAccount(): Promise<ICRC1Account | undefined>;
36
+ balanceOf(account: ICRC1Account): Promise<string>;
37
+ transfer(privateKey: string, args: ICRC1TransferArgs): Promise<string>;
38
+ }
39
+ export declare abstract class ICRC1OfflineProtocolImpl<_Units extends string = string> implements ICRC1OfflineProtocol<_Units> {
40
+ private readonly options;
41
+ private readonly commonImpl;
42
+ protected readonly icp: ICPProtocol;
43
+ protected constructor(options: ICRC1OfflineProtocolOptions<_Units>);
44
+ getType(): Promise<'token'>;
45
+ getContractAddress(): Promise<string>;
46
+ mainProtocol(): Promise<string>;
47
+ private readonly metadata;
48
+ getMetadata(): Promise<ProtocolMetadata<_Units>>;
49
+ getAddressFromPublicKey(publicKey: PublicKey): Promise<string>;
50
+ getDetailsFromTransaction(transaction: ICPSignedTransaction | ICPUnsignedTransaction, publicKey: PublicKey): Promise<AirGapTransaction<_Units>[]>;
51
+ getCryptoConfiguration(): Promise<ICPCryptoConfiguration>;
52
+ getKeyPairFromDerivative(derivative: CryptoDerivative): Promise<KeyPair>;
53
+ signTransactionWithSecretKey(transaction: ICPUnsignedTransaction, secretKey: SecretKey): Promise<ICPSignedTransaction>;
54
+ }
55
+ export declare abstract class ICRC1OnlineProtocolImpl<_Units extends string = string, _ICRC1Metadata extends ICRC1Metadata = ICRC1Metadata, _ProtocolNetwork extends ICRC1ProtocolNetwork = ICRC1ProtocolNetwork> implements ICRC1OnlineProtocol<_Units, _ICRC1Metadata, _ProtocolNetwork> {
56
+ protected readonly options: ICRC1OnlineProtocolOptions<_ProtocolNetwork, _Units>;
57
+ private readonly commonImpl;
58
+ protected readonly icp: ICPProtocol;
59
+ protected constructor(options: ICRC1OnlineProtocolOptions<_ProtocolNetwork, _Units>);
60
+ getType(): Promise<'token'>;
61
+ getContractAddress(): Promise<string>;
62
+ mainProtocol(): Promise<string>;
63
+ private _metadata;
64
+ getMetadata(): Promise<ProtocolMetadata<_Units>>;
65
+ private getPartialMetadata;
66
+ getAddressFromPublicKey(publicKey: PublicKey): Promise<string>;
67
+ getDetailsFromTransaction(transaction: ICPSignedTransaction | ICPUnsignedTransaction, publicKey: PublicKey): Promise<AirGapTransaction<_Units>[]>;
68
+ getNetwork(): Promise<_ProtocolNetwork>;
69
+ abstract getTransactionsForPublicKey(publicKey: PublicKey, limit: number, cursor?: ICPTransactionCursor): Promise<AirGapTransactionsWithCursor<ICPTransactionCursor, _Units>>;
70
+ getBalanceOfPublicKey(publicKey: PublicKey): Promise<Balance<_Units>>;
71
+ getTransactionMaxAmountWithPublicKey(publicKey: PublicKey, to: string[], configuration?: TransactionConfiguration<_Units>): Promise<Amount<_Units>>;
72
+ getTransactionFeeWithPublicKey(publicKey: PublicKey, details: TransactionDetails<_Units>[]): Promise<Amount<_Units>>;
73
+ prepareTransactionWithPublicKey(publicKey: PublicKey, details: TransactionDetails<_Units>[], configuration?: TransactionConfiguration<_Units>): Promise<ICPUnsignedTransaction>;
74
+ broadcastTransaction(transaction: ICPSignedTransaction): Promise<string>;
75
+ private _name;
76
+ name(): Promise<string>;
77
+ private _symbol;
78
+ symbol(): Promise<string>;
79
+ private _decimals;
80
+ decimals(): Promise<number>;
81
+ private _fee;
82
+ fee(): Promise<string>;
83
+ abstract metadata(): Promise<_ICRC1Metadata>;
84
+ private _baseMetadata;
85
+ protected baseMetadata(): Promise<ICRC1Metadata & Record<string, any>>;
86
+ private _totalSupply;
87
+ totalSupply(): Promise<string>;
88
+ private _mintingAccount;
89
+ mintingAccount(): Promise<ICRC1Account | undefined>;
90
+ balanceOf(account: ICRC1Account): Promise<string>;
91
+ transfer(privateKey: string, args: ICRC1TransferArgs): Promise<string>;
92
+ protected createActor(idlFactory?: IDL.InterfaceFactory, identity?: Identity): ActorSubclass;
93
+ }