@airgap/icp 0.13.11-beta.5 → 0.13.11-beta.6
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.
- package/package.json +3 -2
- package/v1/index.d.ts +3 -2
- package/v1/index.js +4 -1
- package/v1/index.js.map +1 -1
- package/v1/module/ICPModule.d.ts +2 -3
- package/v1/module/ICPModule.js +22 -10
- package/v1/module/ICPModule.js.map +1 -1
- package/v1/protocol/ICPImplementation.d.ts +12 -4
- package/v1/protocol/ICPImplementation.js +87 -55
- package/v1/protocol/ICPImplementation.js.map +1 -1
- package/v1/protocol/ICPProtocol.d.ts +4 -1
- package/v1/protocol/ICPProtocol.js +24 -17
- package/v1/protocol/ICPProtocol.js.map +1 -1
- package/v1/protocol/icrc/CkBTCProtocol.d.ts +16 -0
- package/v1/protocol/icrc/CkBTCProtocol.js +367 -0
- package/v1/protocol/icrc/CkBTCProtocol.js.map +1 -0
- package/v1/protocol/icrc/ICRC1Protocol.d.ts +91 -0
- package/v1/protocol/icrc/ICRC1Protocol.js +699 -0
- package/v1/protocol/icrc/ICRC1Protocol.js.map +1 -0
- package/v1/serializer/v3/serializer-companion.js +16 -0
- package/v1/serializer/v3/serializer-companion.js.map +1 -1
- package/v1/types/ckbtc/metadata.d.ts +4 -0
- package/v1/types/ckbtc/metadata.js +3 -0
- package/v1/types/ckbtc/metadata.js.map +1 -0
- package/v1/types/icrc/account.d.ts +4 -0
- package/v1/types/icrc/account.js +3 -0
- package/v1/types/icrc/account.js.map +1 -0
- package/v1/types/icrc/ledger.d.ts +15 -0
- package/v1/types/icrc/ledger.js +92 -0
- package/v1/types/icrc/ledger.js.map +1 -0
- package/v1/types/icrc/metadata.d.ts +6 -0
- package/v1/types/icrc/metadata.js +3 -0
- package/v1/types/icrc/metadata.js.map +1 -0
- package/v1/types/icrc/transfer.d.ts +9 -0
- package/v1/types/icrc/transfer.js +3 -0
- package/v1/types/icrc/transfer.js.map +1 -0
- package/v1/types/ledger.d.ts +0 -1
- package/v1/types/ledger.js +1 -2
- package/v1/types/ledger.js.map +1 -1
- package/v1/types/protocol.d.ts +21 -1
- package/v1/utils/convert.d.ts +3 -1
- package/v1/utils/convert.js +12 -1
- package/v1/utils/convert.js.map +1 -1
- package/v1/utils/icrc1.d.ts +20 -0
- package/v1/utils/icrc1.js +171 -0
- package/v1/utils/icrc1.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@airgap/icp",
|
|
3
|
-
"version": "0.13.11-beta.
|
|
3
|
+
"version": "0.13.11-beta.6",
|
|
4
4
|
"description": "The @airgap/icp is an ICP implementation of the ICoinProtocol interface from @airgap/coinlib-core.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"airgap",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"lint:prettier": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
25
25
|
"lint-ci": "tslint -t json -o ../../lint-reports/icp.json --project . || true",
|
|
26
26
|
"lint-ci:prettier": "prettier \"src/**/*.ts\" \"test/**/*.ts\" --list-different",
|
|
27
|
-
"test": "",
|
|
27
|
+
"test": "TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha --bail --require ts-node/register --require tsconfig-paths/register --require source-map-support/register --full-trace --delay --timeout 40000 ./test/**/**.spec.ts",
|
|
28
28
|
"test-ci": "nyc --reporter=lcov npm test",
|
|
29
29
|
"browserify": "browserify ./dist/index.js -s airgapCoinLibICP > ./dist/airgap-coinlib-icp.min.js"
|
|
30
30
|
},
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"base64-arraybuffer": "^1.0.2",
|
|
39
39
|
"bip39": "^3.0.4",
|
|
40
40
|
"borc": "^3.0.0",
|
|
41
|
+
"crc": "4.3.2",
|
|
41
42
|
"crc-32": "1.2.2",
|
|
42
43
|
"isomorphic-fetch": "^3.0.0",
|
|
43
44
|
"js-sha256": "^0.9.0",
|
package/v1/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { ICPBlockExplorer } from './block-explorer/ICPBlockExplorer';
|
|
2
2
|
import { ICPModule } from './module/ICPModule';
|
|
3
|
-
import {
|
|
3
|
+
import { createICPProtocol, createICPProtocolOptions, ICPProtocol } from './protocol/ICPProtocol';
|
|
4
|
+
import { CkBTCOfflineProtocol, CkBTCOnlineProtocol, createCkBTCOfflineProtocol, createCkBTCOnlineProtocol } from './protocol/icrc/CkBTCProtocol';
|
|
4
5
|
import { ICPTransactionSignRequest } from './serializer/v3/schemas/definitions/transaction-sign-request-icp';
|
|
5
6
|
import { ICPTransactionSignResponse } from './serializer/v3/schemas/definitions/transaction-sign-response-icp';
|
|
6
7
|
import { ICPCryptoConfiguration } from './types/crypto';
|
|
7
8
|
import { ICPProtocolNetwork, ICPProtocolOptions, ICPUnits } from './types/protocol';
|
|
8
9
|
import { ICPSignedTransaction, ICPUnsignedTransaction } from './types/transaction';
|
|
9
10
|
export { ICPModule };
|
|
10
|
-
export { ICPProtocol, createICPProtocol, createICPProtocolOptions };
|
|
11
|
+
export { ICPProtocol, createICPProtocol, createICPProtocolOptions, CkBTCOfflineProtocol, CkBTCOnlineProtocol, createCkBTCOfflineProtocol, createCkBTCOnlineProtocol };
|
|
11
12
|
export { ICPBlockExplorer };
|
|
12
13
|
export { ICPCryptoConfiguration, ICPUnits, ICPProtocolOptions, ICPProtocolNetwork, ICPUnsignedTransaction, ICPSignedTransaction };
|
|
13
14
|
export { ICPTransactionSignRequest, ICPTransactionSignResponse };
|
package/v1/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ICPBlockExplorer = exports.createICPProtocolOptions = exports.createICPProtocol = exports.ICPModule = void 0;
|
|
3
|
+
exports.ICPBlockExplorer = exports.createCkBTCOnlineProtocol = exports.createCkBTCOfflineProtocol = exports.createICPProtocolOptions = exports.createICPProtocol = exports.ICPModule = void 0;
|
|
4
4
|
var ICPBlockExplorer_1 = require("./block-explorer/ICPBlockExplorer");
|
|
5
5
|
Object.defineProperty(exports, "ICPBlockExplorer", { enumerable: true, get: function () { return ICPBlockExplorer_1.ICPBlockExplorer; } });
|
|
6
6
|
var ICPModule_1 = require("./module/ICPModule");
|
|
@@ -8,4 +8,7 @@ Object.defineProperty(exports, "ICPModule", { enumerable: true, get: function ()
|
|
|
8
8
|
var ICPProtocol_1 = require("./protocol/ICPProtocol");
|
|
9
9
|
Object.defineProperty(exports, "createICPProtocol", { enumerable: true, get: function () { return ICPProtocol_1.createICPProtocol; } });
|
|
10
10
|
Object.defineProperty(exports, "createICPProtocolOptions", { enumerable: true, get: function () { return ICPProtocol_1.createICPProtocolOptions; } });
|
|
11
|
+
var CkBTCProtocol_1 = require("./protocol/icrc/CkBTCProtocol");
|
|
12
|
+
Object.defineProperty(exports, "createCkBTCOfflineProtocol", { enumerable: true, get: function () { return CkBTCProtocol_1.createCkBTCOfflineProtocol; } });
|
|
13
|
+
Object.defineProperty(exports, "createCkBTCOnlineProtocol", { enumerable: true, get: function () { return CkBTCProtocol_1.createCkBTCOnlineProtocol; } });
|
|
11
14
|
//# sourceMappingURL=index.js.map
|
package/v1/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":";;;AAAA,sEAAoE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":";;;AAAA,sEAAoE;AAiC3D,iGAjCA,mCAAgB,OAiCA;AAhCzB,gDAA8C;AAgBrC,0FAhBA,qBAAS,OAgBA;AAflB,sDAAiG;AAqB/F,kGArBO,+BAAiB,OAqBP;AACjB,yGAtB0B,sCAAwB,OAsB1B;AArB1B,+DAKsC;AAmBpC,2GArBA,0CAA0B,OAqBA;AAC1B,0GArBA,yCAAyB,OAqBA"}
|
package/v1/module/ICPModule.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MainProtocolSymbols } from '@airgap/coinlib-core';
|
|
1
|
+
import { MainProtocolSymbols, SubProtocolSymbols } from '@airgap/coinlib-core';
|
|
2
2
|
import { AirGapBlockExplorer, AirGapModule, AirGapOfflineProtocol, AirGapOnlineProtocol, AirGapV3SerializerCompanion, ProtocolConfiguration } from '@airgap/module-kit';
|
|
3
|
-
declare type SupportedProtocols = MainProtocolSymbols.ICP;
|
|
3
|
+
declare type SupportedProtocols = MainProtocolSymbols.ICP | SubProtocolSymbols.ICP_CKBTC;
|
|
4
4
|
export declare class ICPModule implements AirGapModule<{
|
|
5
5
|
Protocols: SupportedProtocols;
|
|
6
6
|
}> {
|
|
@@ -10,6 +10,5 @@ export declare class ICPModule implements AirGapModule<{
|
|
|
10
10
|
createOfflineProtocol(identifier: SupportedProtocols): Promise<AirGapOfflineProtocol | undefined>;
|
|
11
11
|
createOnlineProtocol(identifier: SupportedProtocols, networkId?: string): Promise<AirGapOnlineProtocol | undefined>;
|
|
12
12
|
createBlockExplorer(identifier: SupportedProtocols, networkId?: string): Promise<AirGapBlockExplorer | undefined>;
|
|
13
|
-
private createProtocol;
|
|
14
13
|
}
|
|
15
14
|
export {};
|
package/v1/module/ICPModule.js
CHANGED
|
@@ -42,6 +42,7 @@ var errors_1 = require("@airgap/coinlib-core/errors");
|
|
|
42
42
|
var module_kit_1 = require("@airgap/module-kit");
|
|
43
43
|
var ICPBlockExplorer_1 = require("../block-explorer/ICPBlockExplorer");
|
|
44
44
|
var ICPProtocol_1 = require("../protocol/ICPProtocol");
|
|
45
|
+
var CkBTCProtocol_1 = require("../protocol/icrc/CkBTCProtocol");
|
|
45
46
|
var serializer_companion_1 = require("../serializer/v3/serializer-companion");
|
|
46
47
|
var ICPModule = /** @class */ (function () {
|
|
47
48
|
function ICPModule() {
|
|
@@ -50,6 +51,9 @@ var ICPModule = /** @class */ (function () {
|
|
|
50
51
|
_a[coinlib_core_1.MainProtocolSymbols.ICP] = new module_kit_1.ModuleNetworkRegistry({
|
|
51
52
|
supportedNetworks: [ICPProtocol_1.ICP_MAINNET_PROTOCOL_NETWORK]
|
|
52
53
|
}),
|
|
54
|
+
_a[coinlib_core_1.SubProtocolSymbols.ICP_CKBTC] = new module_kit_1.ModuleNetworkRegistry({
|
|
55
|
+
supportedNetworks: [CkBTCProtocol_1.CKBTC_MAINNET_PROTOCOL_NETWORK]
|
|
56
|
+
}),
|
|
53
57
|
_a);
|
|
54
58
|
this.supportedProtocols = (0, module_kit_1.createSupportedProtocols)(this.networkRegistries);
|
|
55
59
|
}
|
|
@@ -63,7 +67,15 @@ var ICPModule = /** @class */ (function () {
|
|
|
63
67
|
ICPModule.prototype.createOfflineProtocol = function (identifier) {
|
|
64
68
|
return __awaiter(this, void 0, void 0, function () {
|
|
65
69
|
return __generator(this, function (_a) {
|
|
66
|
-
|
|
70
|
+
switch (identifier) {
|
|
71
|
+
case coinlib_core_1.MainProtocolSymbols.ICP:
|
|
72
|
+
return [2 /*return*/, (0, ICPProtocol_1.createICPProtocol)()];
|
|
73
|
+
case coinlib_core_1.SubProtocolSymbols.ICP_CKBTC:
|
|
74
|
+
return [2 /*return*/, (0, CkBTCProtocol_1.createCkBTCOfflineProtocol)()];
|
|
75
|
+
default:
|
|
76
|
+
throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.ICP, "Protocol ".concat(identifier, " not supported."));
|
|
77
|
+
}
|
|
78
|
+
return [2 /*return*/];
|
|
67
79
|
});
|
|
68
80
|
});
|
|
69
81
|
};
|
|
@@ -76,7 +88,15 @@ var ICPModule = /** @class */ (function () {
|
|
|
76
88
|
if (network === undefined) {
|
|
77
89
|
throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.ICP, 'Protocol network not supported.');
|
|
78
90
|
}
|
|
79
|
-
|
|
91
|
+
switch (identifier) {
|
|
92
|
+
case coinlib_core_1.MainProtocolSymbols.ICP:
|
|
93
|
+
return [2 /*return*/, (0, ICPProtocol_1.createICPProtocol)({ network: network })];
|
|
94
|
+
case coinlib_core_1.SubProtocolSymbols.ICP_CKBTC:
|
|
95
|
+
return [2 /*return*/, (0, CkBTCProtocol_1.createCkBTCOnlineProtocol)({ network: network })];
|
|
96
|
+
default:
|
|
97
|
+
throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.ICP, "Protocol ".concat(identifier, " not supported."));
|
|
98
|
+
}
|
|
99
|
+
return [2 /*return*/];
|
|
80
100
|
});
|
|
81
101
|
});
|
|
82
102
|
};
|
|
@@ -93,14 +113,6 @@ var ICPModule = /** @class */ (function () {
|
|
|
93
113
|
});
|
|
94
114
|
});
|
|
95
115
|
};
|
|
96
|
-
ICPModule.prototype.createProtocol = function (identifier, network) {
|
|
97
|
-
switch (identifier) {
|
|
98
|
-
case coinlib_core_1.MainProtocolSymbols.ICP:
|
|
99
|
-
return (0, ICPProtocol_1.createICPProtocol)({ network: network });
|
|
100
|
-
default:
|
|
101
|
-
throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.ICP, "Protocol ".concat(identifier, " not supported."));
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
116
|
return ICPModule;
|
|
105
117
|
}());
|
|
106
118
|
exports.ICPModule = ICPModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICPModule.js","sourceRoot":"","sources":["../../../src/v1/module/ICPModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ICPModule.js","sourceRoot":"","sources":["../../../src/v1/module/ICPModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsF;AACtF,sDAAqE;AACrE,iDAU2B;AAE3B,uEAAqE;AACrE,uDAAyF;AACzF,gEAAsI;AACtI,8EAAgF;AAIhF;IAAA;;QACmB,sBAAiB;YAChC,GAAC,kCAAmB,CAAC,GAAG,IAAG,IAAI,kCAAqB,CAAC;gBACnD,iBAAiB,EAAE,CAAC,0CAA4B,CAAC;aAClD,CAAC;YACF,GAAC,iCAAkB,CAAC,SAAS,IAAG,IAAI,kCAAqB,CAAC;gBACxD,iBAAiB,EAAE,CAAC,8CAA8B,CAAC;aACpD,CAAC;gBACH;QACe,uBAAkB,GAAsD,IAAA,qCAAwB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAyC1I,CAAC;IAvCc,+CAA2B,GAAxC;;;gBACE,sBAAO,IAAI,+CAAwB,EAAE,EAAA;;;KACtC;IAEY,yCAAqB,GAAlC,UAAmC,UAA8B;;;gBAC/D,QAAQ,UAAU,EAAE;oBAClB,KAAK,kCAAmB,CAAC,GAAG;wBAC1B,sBAAO,IAAA,+BAAiB,GAAE,EAAA;oBAC5B,KAAK,iCAAkB,CAAC,SAAS;wBAC/B,sBAAO,IAAA,0CAA0B,GAAE,EAAA;oBACrC;wBACE,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,GAAG,EAAE,mBAAY,UAAU,oBAAiB,CAAC,CAAA;iBACzF;;;;KACF;IAEY,wCAAoB,GAAjC,UAAkC,UAA8B,EAAE,SAAkB;;;;;gBAC5E,OAAO,GAAgC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,SAAS,CAAC,CAAA;gBACvG,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAA;iBACjF;gBAED,QAAQ,UAAU,EAAE;oBAClB,KAAK,kCAAmB,CAAC,GAAG;wBAC1B,sBAAO,IAAA,+BAAiB,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;oBACvC,KAAK,iCAAkB,CAAC,SAAS;wBAC/B,sBAAO,IAAA,yCAAyB,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;oBAC/C;wBACE,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,GAAG,EAAE,mBAAY,UAAU,oBAAiB,CAAC,CAAA;iBACzF;;;;KACF;IAEY,uCAAmB,GAAhC,UAAiC,UAA8B,EAAE,SAAkB;;;;;gBAC3E,OAAO,GAAgC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,SAAS,CAAC,CAAA;gBACvG,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,SAAS,EAAE;oBAC/B,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAA;iBACvF;gBAED,sBAAO,IAAI,mCAAgB,EAAE,EAAA;;;KAC9B;IACH,gBAAC;AAAD,CAAC,AAlDD,IAkDC;AAlDY,8BAAS"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import 'isomorphic-fetch';
|
|
3
|
+
import { Identity } from '../utils/auth';
|
|
4
|
+
import { HttpAgent } from '../utils/http';
|
|
5
|
+
import { Principal } from '../utils/principal';
|
|
2
6
|
interface Transaction {
|
|
3
7
|
to: string;
|
|
4
8
|
amount: bigint;
|
|
5
9
|
fee: bigint;
|
|
6
10
|
}
|
|
11
|
+
export declare function createHttpAgent(rpcUrl: string, identity?: Identity): HttpAgent;
|
|
7
12
|
export declare function getKeyPairFromExtendedSecretKey(extendedSecretKey: string): {
|
|
8
13
|
publicKey: string;
|
|
9
14
|
privateKey: string;
|
|
10
15
|
};
|
|
11
|
-
export declare function
|
|
16
|
+
export declare function getPrincipalFromPublicKey(publicKey: string): Principal;
|
|
17
|
+
export declare function getAddressFromPublicKey(publicKey: string, subAccount?: string | Buffer | Uint8Array): string;
|
|
18
|
+
export declare function getAddressFromPrincipal(principalOrText: Principal | string, subAccountOrUndefined?: string | Buffer | Uint8Array): string;
|
|
12
19
|
export declare function createUnsignedTransaction(transaction: Transaction): string;
|
|
13
20
|
export declare function getInfoFromUnsignedTransaction(unsignedTransaction: string): {
|
|
14
21
|
to: string;
|
|
@@ -18,9 +25,10 @@ export declare function getInfoFromUnsignedTransaction(unsignedTransaction: stri
|
|
|
18
25
|
created_at_time: any[];
|
|
19
26
|
amount: bigint;
|
|
20
27
|
};
|
|
21
|
-
export declare function
|
|
28
|
+
export declare function signICPTransaction(unsignedTransaction: string, privateKey: string, canisterId: string): Promise<string>;
|
|
29
|
+
export declare function signTransaction(privateKey: string, canisterId: string, arg: any): Promise<string>;
|
|
22
30
|
export declare function getInfoFromSignedTransaction(signedTransaction: string): any;
|
|
23
31
|
export declare function decodeArguments(args: ArrayBuffer): any;
|
|
24
|
-
export declare function getBalanceFromAddress(address: string, host: string): Promise<bigint>;
|
|
25
|
-
export declare function broadcastTransaction(signedTransaction: string, host: string): Promise<string>;
|
|
32
|
+
export declare function getBalanceFromAddress(address: string, host: string, canisterId: string): Promise<bigint>;
|
|
33
|
+
export declare function broadcastTransaction(signedTransaction: string, host: string, canisterId: string): Promise<string>;
|
|
26
34
|
export {};
|
|
@@ -98,21 +98,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
98
98
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
99
99
|
};
|
|
100
100
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
101
|
-
exports.broadcastTransaction = exports.getBalanceFromAddress = exports.decodeArguments = exports.getInfoFromSignedTransaction = exports.signTransaction = exports.getInfoFromUnsignedTransaction = exports.createUnsignedTransaction = exports.getAddressFromPublicKey = exports.getKeyPairFromExtendedSecretKey = void 0;
|
|
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");
|
|
102
104
|
require("isomorphic-fetch");
|
|
103
|
-
var convert_1 = require("../utils/convert");
|
|
104
105
|
var js_sha256_1 = require("js-sha256");
|
|
105
106
|
var ledger_1 = require("../types/ledger");
|
|
106
|
-
var index_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/axios-0.19.0/index"));
|
|
107
|
-
var IDL = __importStar(require("../utils/idl"));
|
|
108
|
-
var principal_1 = require("../utils/principal");
|
|
109
|
-
var secp256k1_1 = __importDefault(require("../utils/secp256k1"));
|
|
110
|
-
var http_1 = require("../utils/http");
|
|
111
107
|
var account_1 = require("../utils/account");
|
|
112
108
|
// import { requestIdOf } from '../utils/auth'
|
|
113
109
|
var actor_1 = require("../utils/actor");
|
|
110
|
+
var auth_1 = require("../utils/auth");
|
|
114
111
|
var Cbor = __importStar(require("../utils/cbor"));
|
|
112
|
+
var convert_1 = require("../utils/convert");
|
|
115
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;
|
|
116
127
|
// MNEMONIC -> KEY PAIR
|
|
117
128
|
function getKeyPairFromExtendedSecretKey(extendedSecretKey) {
|
|
118
129
|
var hdKey = hdkey_1.default.fromExtendedKey(extendedSecretKey);
|
|
@@ -126,20 +137,38 @@ function getKeyPairFromExtendedSecretKey(extendedSecretKey) {
|
|
|
126
137
|
}
|
|
127
138
|
exports.getKeyPairFromExtendedSecretKey = getKeyPairFromExtendedSecretKey;
|
|
128
139
|
// PUBLIC KEY -> ADDRESS
|
|
140
|
+
function getPrincipalFromPublicKey(publicKey) {
|
|
141
|
+
return principal_1.Principal.selfAuthenticating((0, convert_1.hexStringToUint8Array)(publicKey));
|
|
142
|
+
}
|
|
143
|
+
exports.getPrincipalFromPublicKey = getPrincipalFromPublicKey;
|
|
129
144
|
function getAddressFromPublicKey(publicKey, subAccount) {
|
|
130
145
|
// Get principal from public key
|
|
131
|
-
var principal =
|
|
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;
|
|
132
161
|
// Hash (sha224) the principal, the subAccount and some padding
|
|
133
162
|
var padding = (0, convert_1.asciiStringToByteArray)('\x0Aaccount-id');
|
|
134
163
|
var shaObj = js_sha256_1.sha224.create();
|
|
135
|
-
shaObj.update(__spreadArray(__spreadArray(__spreadArray([], __read(padding), false), __read(principal.toUint8Array()), false), __read(
|
|
164
|
+
shaObj.update(__spreadArray(__spreadArray(__spreadArray([], __read(padding), false), __read(principal.toUint8Array()), false), __read(subAccount), false));
|
|
136
165
|
var hash = new Uint8Array(shaObj.array());
|
|
137
166
|
// Prepend the checksum of the hash and convert to a hex string
|
|
138
167
|
var checksum = (0, convert_1.calculateCrc32)(hash);
|
|
139
168
|
var bytes = new Uint8Array(__spreadArray(__spreadArray([], __read(checksum), false), __read(hash), false));
|
|
140
169
|
return (0, convert_1.uint8ArrayToHexString)(bytes);
|
|
141
170
|
}
|
|
142
|
-
exports.
|
|
171
|
+
exports.getAddressFromPrincipal = getAddressFromPrincipal;
|
|
143
172
|
// TRANSACTION OBJECT -> UNSIGNED TRANSACTION HEX
|
|
144
173
|
function createUnsignedTransaction(transaction) {
|
|
145
174
|
var to = account_1.AccountIdentifier.fromHex(transaction.to);
|
|
@@ -174,50 +203,57 @@ function getInfoFromUnsignedTransaction(unsignedTransaction) {
|
|
|
174
203
|
}
|
|
175
204
|
exports.getInfoFromUnsignedTransaction = getInfoFromUnsignedTransaction;
|
|
176
205
|
// UNSIGNED TRANSACTION, PRIVATE KEY -> SIGNED TRANSACTION
|
|
177
|
-
function
|
|
206
|
+
function signICPTransaction(unsignedTransaction, privateKey, canisterId) {
|
|
178
207
|
return __awaiter(this, void 0, void 0, function () {
|
|
179
|
-
var
|
|
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;
|
|
180
247
|
var _this = this;
|
|
181
248
|
return __generator(this, function (_a) {
|
|
182
249
|
switch (_a.label) {
|
|
183
250
|
case 0:
|
|
184
251
|
identity = secp256k1_1.default.fromSecretKey((0, convert_1.hexStringToArrayBuffer)(privateKey));
|
|
185
|
-
transactionDetails = getInfoFromUnsignedTransaction(unsignedTransaction);
|
|
186
|
-
Address = IDL.Vec(IDL.Nat8);
|
|
187
|
-
ICP = IDL.Record({ e8s: IDL.Nat64 });
|
|
188
|
-
Memo = IDL.Nat64;
|
|
189
|
-
SubAccount = IDL.Vec(IDL.Nat8);
|
|
190
|
-
TimeStamp = IDL.Record({ timestamp_nanos: IDL.Nat64 });
|
|
191
|
-
TransferArgs = IDL.Record({
|
|
192
|
-
to: Address,
|
|
193
|
-
fee: ICP,
|
|
194
|
-
memo: Memo,
|
|
195
|
-
from_subaccount: IDL.Opt(SubAccount),
|
|
196
|
-
created_at_time: IDL.Opt(TimeStamp),
|
|
197
|
-
amount: ICP
|
|
198
|
-
});
|
|
199
|
-
DEFAULT_TRANSACTION_FEE = BigInt(10000);
|
|
200
|
-
toTransferRawRequest = function (_a) {
|
|
201
|
-
var to = _a.to, amount = _a.amount, memo = _a.memo, fee = _a.fee, fromSubAccount = _a.fromSubAccount;
|
|
202
|
-
return {
|
|
203
|
-
to: to.toNumbers(),
|
|
204
|
-
fee: (0, convert_1.e8sToTokens)(fee !== null && fee !== void 0 ? fee : DEFAULT_TRANSACTION_FEE),
|
|
205
|
-
amount: (0, convert_1.e8sToTokens)(amount),
|
|
206
|
-
// Always explicitly set the memo for compatibility with ledger wallet - hardware wallet
|
|
207
|
-
memo: memo !== null && memo !== void 0 ? memo : BigInt(0),
|
|
208
|
-
created_at_time: [],
|
|
209
|
-
from_subaccount: fromSubAccount === undefined ? [] : [fromSubAccount]
|
|
210
|
-
};
|
|
211
|
-
};
|
|
212
|
-
rawRequestBody = toTransferRawRequest(__assign(__assign({}, transactionDetails), { to: account_1.AccountIdentifier.fromHex(transactionDetails.to) }));
|
|
213
|
-
args = IDL.encode([TransferArgs], [rawRequestBody]);
|
|
214
252
|
submit = {
|
|
215
253
|
request_type: http_1.SubmitRequestType.Call,
|
|
216
|
-
|
|
217
|
-
canister_id: principal_1.Principal.from(ledger_1.canisterId),
|
|
254
|
+
canister_id: principal_1.Principal.from(canisterId),
|
|
218
255
|
method_name: 'transfer',
|
|
219
|
-
arg:
|
|
220
|
-
//@ts-ignore
|
|
256
|
+
arg: arg,
|
|
221
257
|
sender: identity.getPrincipal(),
|
|
222
258
|
ingress_expiry: new http_1.Expiry(5 * 60 * 1000)
|
|
223
259
|
};
|
|
@@ -274,20 +310,16 @@ function decodeArguments(args) {
|
|
|
274
310
|
}
|
|
275
311
|
exports.decodeArguments = decodeArguments;
|
|
276
312
|
// ADDRESS -> BALANCE
|
|
277
|
-
function getBalanceFromAddress(address, host) {
|
|
313
|
+
function getBalanceFromAddress(address, host, canisterId) {
|
|
278
314
|
return __awaiter(this, void 0, void 0, function () {
|
|
279
|
-
var
|
|
315
|
+
var agent, actor, acc, b;
|
|
280
316
|
return __generator(this, function (_a) {
|
|
281
317
|
switch (_a.label) {
|
|
282
318
|
case 0:
|
|
283
|
-
|
|
284
|
-
agent = new http_1.HttpAgent({
|
|
285
|
-
identity: identity,
|
|
286
|
-
host: host
|
|
287
|
-
});
|
|
319
|
+
agent = createHttpAgent(host, secp256k1_1.default.generate());
|
|
288
320
|
actor = actor_1.Actor.createActor(ledger_1.idlFactory, {
|
|
289
321
|
agent: agent,
|
|
290
|
-
canisterId:
|
|
322
|
+
canisterId: canisterId
|
|
291
323
|
});
|
|
292
324
|
acc = Uint8Array.from(Buffer.from(address, 'hex'));
|
|
293
325
|
return [4 /*yield*/, actor.account_balance({
|
|
@@ -301,13 +333,13 @@ function getBalanceFromAddress(address, host) {
|
|
|
301
333
|
});
|
|
302
334
|
}
|
|
303
335
|
exports.getBalanceFromAddress = getBalanceFromAddress;
|
|
304
|
-
function broadcastTransaction(signedTransaction, host) {
|
|
336
|
+
function broadcastTransaction(signedTransaction, host, canisterId) {
|
|
305
337
|
return __awaiter(this, void 0, void 0, function () {
|
|
306
338
|
var canister, body, error_1;
|
|
307
339
|
return __generator(this, function (_a) {
|
|
308
340
|
switch (_a.label) {
|
|
309
341
|
case 0:
|
|
310
|
-
canister = principal_1.Principal.from(
|
|
342
|
+
canister = principal_1.Principal.from(canisterId);
|
|
311
343
|
body = (0, convert_1.hexStringToArrayBuffer)(signedTransaction);
|
|
312
344
|
_a.label = 1;
|
|
313
345
|
case 1:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICPImplementation.js","sourceRoot":"","sources":["../../../src/v1/protocol/ICPImplementation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAAyB;
|
|
1
|
+
{"version":3,"file":"ICPImplementation.js","sourceRoot":"","sources":["../../../src/v1/protocol/ICPImplementation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, FeeDefaults, KeyPair, ProtocolMetadata, PublicKey, RecursivePartial, SecretKey, TransactionConfiguration, TransactionDetails } from '@airgap/module-kit';
|
|
1
|
+
import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, FeeDefaults, KeyPair, ProtocolAccountMetadata, ProtocolMetadata, ProtocolTransactionMetadata, PublicKey, RecursivePartial, SecretKey, TransactionConfiguration, TransactionDetails } from '@airgap/module-kit';
|
|
2
2
|
import { ICPCryptoConfiguration } from '../types/crypto';
|
|
3
3
|
import { ICPProtocolNetwork, ICPProtocolOptions, ICPUnits } from '../types/protocol';
|
|
4
4
|
import { ICPSignedTransaction, ICPTransactionCursor, ICPUnsignedTransaction } from '../types/transaction';
|
|
@@ -13,6 +13,9 @@ export interface ICPProtocol extends AirGapProtocol<{
|
|
|
13
13
|
UnsignedTransaction: ICPUnsignedTransaction;
|
|
14
14
|
}, 'FetchDataForAddress'> {
|
|
15
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>;
|
|
16
19
|
export declare class ICPProtocolImpl implements ICPProtocol {
|
|
17
20
|
private readonly options;
|
|
18
21
|
constructor(options?: RecursivePartial<ICPProtocolOptions>);
|
|
@@ -50,7 +50,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
50
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
51
|
};
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
exports.createICPProtocolOptions = exports.ICP_MAINNET_PROTOCOL_NETWORK = exports.createICPProtocol = exports.ICPProtocolImpl = void 0;
|
|
53
|
+
exports.createICPProtocolOptions = exports.ICP_MAINNET_PROTOCOL_NETWORK = exports.createICPProtocol = exports.ICPProtocolImpl = exports.ICP_TRANSACTION_METADATA = exports.ICP_ACCOUNT_METADATA = exports.ICP_DERIVATION_PATH = void 0;
|
|
54
54
|
var coinlib_core_1 = require("@airgap/coinlib-core");
|
|
55
55
|
var index_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/axios-0.19.0/index"));
|
|
56
56
|
var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
|
|
@@ -60,6 +60,23 @@ var module_kit_1 = require("@airgap/module-kit");
|
|
|
60
60
|
var convert_1 = require("../utils/convert");
|
|
61
61
|
var ICPImplementation_1 = require("./ICPImplementation");
|
|
62
62
|
// Implementation
|
|
63
|
+
exports.ICP_DERIVATION_PATH = "m/44'/223'/0'/0/0";
|
|
64
|
+
exports.ICP_ACCOUNT_METADATA = {
|
|
65
|
+
standardDerivationPath: exports.ICP_DERIVATION_PATH,
|
|
66
|
+
address: {
|
|
67
|
+
isCaseSensitive: true,
|
|
68
|
+
placeholder: '',
|
|
69
|
+
regex: '^[a-f0-9]{64}$'
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
function ICP_TRANSACTION_METADATA() {
|
|
73
|
+
return {
|
|
74
|
+
arbitraryData: {
|
|
75
|
+
inner: { name: 'payload' }
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
exports.ICP_TRANSACTION_METADATA = ICP_TRANSACTION_METADATA;
|
|
63
80
|
var ICPProtocolImpl = /** @class */ (function () {
|
|
64
81
|
function ICPProtocolImpl(options) {
|
|
65
82
|
if (options === void 0) { options = {}; }
|
|
@@ -83,19 +100,8 @@ var ICPProtocolImpl = /** @class */ (function () {
|
|
|
83
100
|
fee: {
|
|
84
101
|
defaults: this.feeDefaults
|
|
85
102
|
},
|
|
86
|
-
account:
|
|
87
|
-
|
|
88
|
-
address: {
|
|
89
|
-
isCaseSensitive: true,
|
|
90
|
-
placeholder: '',
|
|
91
|
-
regex: '^[a-f0-9]{64}$'
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
transaction: {
|
|
95
|
-
arbitraryData: {
|
|
96
|
-
inner: { name: 'payload' }
|
|
97
|
-
}
|
|
98
|
-
}
|
|
103
|
+
account: exports.ICP_ACCOUNT_METADATA,
|
|
104
|
+
transaction: ICP_TRANSACTION_METADATA()
|
|
99
105
|
};
|
|
100
106
|
// Offline
|
|
101
107
|
this.cryptoConfiguration = {
|
|
@@ -184,7 +190,7 @@ var ICPProtocolImpl = /** @class */ (function () {
|
|
|
184
190
|
if (secretKey.format !== 'hex') {
|
|
185
191
|
throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.ICP, 'Secret key is of an unexpected format.');
|
|
186
192
|
}
|
|
187
|
-
return [4 /*yield*/, (0, ICPImplementation_1.
|
|
193
|
+
return [4 /*yield*/, (0, ICPImplementation_1.signICPTransaction)(transaction.transaction, secretKey.value, this.options.network.canisterId)];
|
|
188
194
|
case 1:
|
|
189
195
|
signedTransaction = _a.sent();
|
|
190
196
|
return [2 /*return*/, (0, module_kit_1.newSignedTransaction)({ transaction: signedTransaction })];
|
|
@@ -282,7 +288,7 @@ var ICPProtocolImpl = /** @class */ (function () {
|
|
|
282
288
|
case 0:
|
|
283
289
|
if (!address)
|
|
284
290
|
return [2 /*return*/, { total: (0, module_kit_1.newAmount)(0, 'blockchain') }];
|
|
285
|
-
return [4 /*yield*/, (0, ICPImplementation_1.getBalanceFromAddress)(address, this.options.network.rpcUrl)];
|
|
291
|
+
return [4 /*yield*/, (0, ICPImplementation_1.getBalanceFromAddress)(address, this.options.network.rpcUrl, this.options.network.canisterId)];
|
|
286
292
|
case 1:
|
|
287
293
|
balance = _a.sent();
|
|
288
294
|
return [2 /*return*/, { total: (0, module_kit_1.newAmount)(balance.toString(10), 'blockchain') }];
|
|
@@ -384,7 +390,7 @@ var ICPProtocolImpl = /** @class */ (function () {
|
|
|
384
390
|
return __awaiter(this, void 0, void 0, function () {
|
|
385
391
|
return __generator(this, function (_a) {
|
|
386
392
|
switch (_a.label) {
|
|
387
|
-
case 0: return [4 /*yield*/, (0, ICPImplementation_1.broadcastTransaction)(transaction.transaction, this.options.network.rpcUrl)];
|
|
393
|
+
case 0: return [4 /*yield*/, (0, ICPImplementation_1.broadcastTransaction)(transaction.transaction, this.options.network.rpcUrl, this.options.network.canisterId)];
|
|
388
394
|
case 1: return [2 /*return*/, _a.sent()];
|
|
389
395
|
}
|
|
390
396
|
});
|
|
@@ -403,6 +409,7 @@ exports.ICP_MAINNET_PROTOCOL_NETWORK = {
|
|
|
403
409
|
name: 'Mainnet',
|
|
404
410
|
type: 'mainnet',
|
|
405
411
|
rpcUrl: 'https://boundary.ic0.app/',
|
|
412
|
+
canisterId: 'ryjl3-tyaaa-aaaaa-aaaba-cai',
|
|
406
413
|
explorerUrl: 'https://ledger-api.internetcomputer.org'
|
|
407
414
|
};
|
|
408
415
|
var DEFAULT_ICP_PROTOCOL_NETWORK = exports.ICP_MAINNET_PROTOCOL_NETWORK;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICPProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/ICPProtocol.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA+E;AAC/E,mGAA4E;AAC5E,iHAA0F;AAC1F,sDAAqG;AACrG,yCAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"ICPProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/ICPProtocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RecursivePartial } from '@airgap/module-kit';
|
|
2
|
+
import { CkBTCMetadata } from '../../types/ckbtc/metadata';
|
|
3
|
+
import { CkBTCUnits, ICRC1OfflineProtocolOptions, ICRC1OnlineProtocolOptions, ICRC1ProtocolNetwork } from '../../types/protocol';
|
|
4
|
+
import { ICRC1OfflineProtocol, ICRC1OnlineProtocol } from './ICRC1Protocol';
|
|
5
|
+
export interface CkBTCOfflineProtocol extends ICRC1OfflineProtocol<CkBTCUnits> {
|
|
6
|
+
}
|
|
7
|
+
export interface CkBTCOnlineProtocol extends ICRC1OnlineProtocol<CkBTCUnits, CkBTCMetadata> {
|
|
8
|
+
}
|
|
9
|
+
declare type CkBTCOfflineProtcolOptions = Pick<ICRC1OfflineProtocolOptions, 'canisterId'>;
|
|
10
|
+
declare type CkBTCOnlineProtcolOptions = Pick<ICRC1OnlineProtocolOptions, 'network'>;
|
|
11
|
+
export declare function createCkBTCOfflineProtocol(options?: RecursivePartial<CkBTCOfflineProtcolOptions>): CkBTCOfflineProtocol;
|
|
12
|
+
export declare function createCkBTCOnlineProtocol(options?: RecursivePartial<CkBTCOnlineProtcolOptions>): CkBTCOnlineProtocol;
|
|
13
|
+
export declare const CKBTC_MAINNET_PROTOCOL_NETWORK: ICRC1ProtocolNetwork;
|
|
14
|
+
export declare function createCkBTCOfflineProtocolOptions(canisterId?: string): CkBTCOfflineProtcolOptions;
|
|
15
|
+
export declare function createCkBTCOnlineProtocolOptions(network?: Partial<ICRC1ProtocolNetwork>): CkBTCOnlineProtcolOptions;
|
|
16
|
+
export {};
|