@airgap/icp 0.13.11-beta.2 → 0.13.11-beta.20

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 (47) hide show
  1. package/LICENSE.md +7 -7
  2. package/package.json +4 -3
  3. package/v1/index.d.ts +3 -2
  4. package/v1/index.js +4 -1
  5. package/v1/index.js.map +1 -1
  6. package/v1/module/ICPModule.d.ts +1 -2
  7. package/v1/module/ICPModule.js +22 -10
  8. package/v1/module/ICPModule.js.map +1 -1
  9. package/v1/protocol/ICPImplementation.d.ts +12 -4
  10. package/v1/protocol/ICPImplementation.js +88 -56
  11. package/v1/protocol/ICPImplementation.js.map +1 -1
  12. package/v1/protocol/ICPProtocol.d.ts +4 -1
  13. package/v1/protocol/ICPProtocol.js +24 -17
  14. package/v1/protocol/ICPProtocol.js.map +1 -1
  15. package/v1/protocol/icrc/CkBTCProtocol.d.ts +13 -0
  16. package/v1/protocol/icrc/CkBTCProtocol.js +328 -0
  17. package/v1/protocol/icrc/CkBTCProtocol.js.map +1 -0
  18. package/v1/protocol/icrc/ICRC1Protocol.d.ts +92 -0
  19. package/v1/protocol/icrc/ICRC1Protocol.js +678 -0
  20. package/v1/protocol/icrc/ICRC1Protocol.js.map +1 -0
  21. package/v1/serializer/v3/serializer-companion.js +16 -0
  22. package/v1/serializer/v3/serializer-companion.js.map +1 -1
  23. package/v1/types/ckbtc/metadata.d.ts +4 -0
  24. package/v1/types/ckbtc/metadata.js +3 -0
  25. package/v1/types/ckbtc/metadata.js.map +1 -0
  26. package/v1/types/icrc/account.d.ts +4 -0
  27. package/v1/types/icrc/account.js +3 -0
  28. package/v1/types/icrc/account.js.map +1 -0
  29. package/v1/types/icrc/ledger.d.ts +15 -0
  30. package/v1/types/icrc/ledger.js +92 -0
  31. package/v1/types/icrc/ledger.js.map +1 -0
  32. package/v1/types/icrc/metadata.d.ts +6 -0
  33. package/v1/types/icrc/metadata.js +3 -0
  34. package/v1/types/icrc/metadata.js.map +1 -0
  35. package/v1/types/icrc/transfer.d.ts +9 -0
  36. package/v1/types/icrc/transfer.js +3 -0
  37. package/v1/types/icrc/transfer.js.map +1 -0
  38. package/v1/types/ledger.d.ts +0 -1
  39. package/v1/types/ledger.js +1 -2
  40. package/v1/types/ledger.js.map +1 -1
  41. package/v1/types/protocol.d.ts +30 -1
  42. package/v1/utils/convert.d.ts +3 -1
  43. package/v1/utils/convert.js +9 -1
  44. package/v1/utils/convert.js.map +1 -1
  45. package/v1/utils/icrc1.d.ts +20 -0
  46. package/v1/utils/icrc1.js +169 -0
  47. package/v1/utils/icrc1.js.map +1 -0
package/LICENSE.md CHANGED
@@ -1,7 +1,7 @@
1
- Copyright 2019 Papers GmbH
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
-
5
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
-
7
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright 2019 Papers AG
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airgap/icp",
3
- "version": "0.13.11-beta.2",
3
+ "version": "0.13.11-beta.20",
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,11 +24,11 @@
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
  },
31
- "author": "Papers GmbH <contact@papers.ch> (https://papers.ch)",
31
+ "author": "Papers AG <contact@papers.ch> (https://papers.ch)",
32
32
  "dependencies": {
33
33
  "@airgap/coinlib-core": "*",
34
34
  "@airgap/crypto": "*",
@@ -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 { ICPProtocol, createICPProtocol, createICPProtocolOptions } from './protocol/ICPProtocol';
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;AAmB3D,iGAnBA,mCAAgB,OAmBA;AAlBzB,gDAA8C;AAUrC,0FAVA,qBAAS,OAUA;AATlB,sDAAiG;AAa3E,kGAbA,+BAAiB,OAaA;AAAE,yGAbA,sCAAwB,OAaA"}
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"}
@@ -1,6 +1,6 @@
1
1
  import { MainProtocolSymbols } 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 | MainProtocolSymbols.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 {};
@@ -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.MainProtocolSymbols.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
- return [2 /*return*/, this.createProtocol(identifier)];
70
+ switch (identifier) {
71
+ case coinlib_core_1.MainProtocolSymbols.ICP:
72
+ return [2 /*return*/, (0, ICPProtocol_1.createICPProtocol)()];
73
+ case coinlib_core_1.MainProtocolSymbols.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
- return [2 /*return*/, this.createProtocol(identifier, network)];
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.MainProtocolSymbols.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,qDAAkE;AAClE,sDAAqE;AACrE,iDAW2B;AAE3B,uEAAqE;AACrE,uDAAyF;AACzF,8EAAgF;AAIhF;IAAA;;QACmB,sBAAiB;YAChC,GAAC,kCAAmB,CAAC,GAAG,IAAG,IAAI,kCAAqB,CAAC;gBACnD,iBAAiB,EAAE,CAAC,0CAA4B,CAAC;aAClD,CAAC;gBACH;QACe,uBAAkB,GAAsD,IAAA,qCAAwB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAoC1I,CAAC;IAlCc,+CAA2B,GAAxC;;;gBACE,sBAAO,IAAI,+CAAwB,EAAE,EAAA;;;KACtC;IAEY,yCAAqB,GAAlC,UAAmC,UAA8B;;;gBAC/D,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAA;;;KACvC;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,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;;KAChD;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;IAEO,kCAAc,GAAtB,UAAuB,UAA8B,EAAE,OAAyB;QAC9E,QAAQ,UAAU,EAAE;YAClB,KAAK,kCAAmB,CAAC,GAAG;gBAC1B,OAAO,IAAA,+BAAiB,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;YACvC;gBACE,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,GAAG,EAAE,mBAAY,UAAU,oBAAiB,CAAC,CAAA;SACzF;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,AA1CD,IA0CC;AA1CY,8BAAS"}
1
+ {"version":3,"file":"ICPModule.js","sourceRoot":"","sources":["../../../src/v1/module/ICPModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAkE;AAClE,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,kCAAmB,CAAC,SAAS,IAAG,IAAI,kCAAqB,CAAC;gBACzD,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,kCAAmB,CAAC,SAAS;wBAChC,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,kCAAmB,CAAC,SAAS;wBAChC,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 getAddressFromPublicKey(publicKey: string, subAccount?: Uint8Array): string;
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 signTransaction(unsignedTransaction: string, privateKey: string): Promise<string>;
28
+ export declare function signICPTransaction(unsignedTransaction: string, privateKey: string, canisterId: string): Promise<string>;
29
+ export declare function signTransaction(privateKey: string, canisterId: string, arg: any, methodName: string): 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 = principal_1.Principal.selfAuthenticating((0, convert_1.hexStringToUint8Array)(publicKey));
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((subAccount !== null && subAccount !== void 0 ? subAccount : Array(32).fill(0))), false));
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.getAddressFromPublicKey = getAddressFromPublicKey;
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 signTransaction(unsignedTransaction, privateKey) {
206
+ function signICPTransaction(unsignedTransaction, privateKey, canisterId) {
178
207
  return __awaiter(this, void 0, void 0, function () {
179
- var identity, transactionDetails, Address, ICP, Memo, SubAccount, TimeStamp, TransferArgs, DEFAULT_TRANSACTION_FEE, toTransferRawRequest, rawRequestBody, args, submit, transform, request, transformedRequest, encoded;
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, 'transfer')];
240
+ });
241
+ });
242
+ }
243
+ exports.signICPTransaction = signICPTransaction;
244
+ function signTransaction(privateKey, canisterId, arg, methodName) {
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
- //@ts-ignore
217
- canister_id: principal_1.Principal.from(ledger_1.canisterId),
218
- method_name: 'transfer',
219
- arg: args,
220
- //@ts-ignore
254
+ canister_id: principal_1.Principal.from(canisterId),
255
+ method_name: methodName,
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 identity, agent, actor, acc, b;
315
+ var agent, actor, acc, b;
280
316
  return __generator(this, function (_a) {
281
317
  switch (_a.label) {
282
318
  case 0:
283
- identity = secp256k1_1.default.generate();
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: ledger_1.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(ledger_1.canisterId);
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":"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"}
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
- standardDerivationPath: "m/44'/223'/0'/0/0",
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.signTransaction)(transaction.transaction, secretKey.value)];
193
+ return [4 /*yield*/, (0, ICPImplementation_1.signICPTransaction)(transaction.transaction, secretKey.value, this.options.network.ledgerCanisterId)];
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.ledgerCanisterId)];
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.ledgerCanisterId)];
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
+ ledgerCanisterId: '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;