@ledgerhq/coin-internet_computer 1.9.0 → 1.9.1-nightly.1

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 (106) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/lib/api/api.d.ts +6 -11
  4. package/lib/api/api.d.ts.map +1 -1
  5. package/lib/api/api.js +84 -64
  6. package/lib/api/api.js.map +1 -1
  7. package/lib/bridge/bridgeHelpers/account.d.ts.map +1 -1
  8. package/lib/bridge/bridgeHelpers/account.js +52 -33
  9. package/lib/bridge/bridgeHelpers/account.js.map +1 -1
  10. package/lib/bridge/bridgeHelpers/addresses.d.ts +0 -6
  11. package/lib/bridge/bridgeHelpers/addresses.d.ts.map +1 -1
  12. package/lib/bridge/bridgeHelpers/addresses.js +1 -29
  13. package/lib/bridge/bridgeHelpers/addresses.js.map +1 -1
  14. package/lib/bridge/broadcast.d.ts.map +1 -1
  15. package/lib/bridge/broadcast.js +22 -6
  16. package/lib/bridge/broadcast.js.map +1 -1
  17. package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
  18. package/lib/bridge/getTransactionStatus.js +4 -3
  19. package/lib/bridge/getTransactionStatus.js.map +1 -1
  20. package/lib/bridge/prepareTransaction.d.ts.map +1 -1
  21. package/lib/bridge/prepareTransaction.js +2 -1
  22. package/lib/bridge/prepareTransaction.js.map +1 -1
  23. package/lib/bridge/signOperation.d.ts +2 -2
  24. package/lib/bridge/signOperation.d.ts.map +1 -1
  25. package/lib/bridge/signOperation.js +44 -13
  26. package/lib/bridge/signOperation.js.map +1 -1
  27. package/lib/consts.d.ts +2 -0
  28. package/lib/consts.d.ts.map +1 -1
  29. package/lib/consts.js +8 -1
  30. package/lib/consts.js.map +1 -1
  31. package/lib/hw-signMessage.d.ts.map +1 -1
  32. package/lib/hw-signMessage.js +1 -2
  33. package/lib/hw-signMessage.js.map +1 -1
  34. package/lib/types/signer.d.ts +1 -1
  35. package/lib/types/signer.d.ts.map +1 -1
  36. package/lib-es/api/api.d.ts +6 -11
  37. package/lib-es/api/api.d.ts.map +1 -1
  38. package/lib-es/api/api.js +81 -60
  39. package/lib-es/api/api.js.map +1 -1
  40. package/lib-es/bridge/bridgeHelpers/account.d.ts.map +1 -1
  41. package/lib-es/bridge/bridgeHelpers/account.js +52 -33
  42. package/lib-es/bridge/bridgeHelpers/account.js.map +1 -1
  43. package/lib-es/bridge/bridgeHelpers/addresses.d.ts +0 -6
  44. package/lib-es/bridge/bridgeHelpers/addresses.d.ts.map +1 -1
  45. package/lib-es/bridge/bridgeHelpers/addresses.js +0 -23
  46. package/lib-es/bridge/bridgeHelpers/addresses.js.map +1 -1
  47. package/lib-es/bridge/broadcast.d.ts.map +1 -1
  48. package/lib-es/bridge/broadcast.js +19 -6
  49. package/lib-es/bridge/broadcast.js.map +1 -1
  50. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
  51. package/lib-es/bridge/getTransactionStatus.js +2 -1
  52. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  53. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
  54. package/lib-es/bridge/prepareTransaction.js +2 -1
  55. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  56. package/lib-es/bridge/signOperation.d.ts +2 -2
  57. package/lib-es/bridge/signOperation.d.ts.map +1 -1
  58. package/lib-es/bridge/signOperation.js +41 -13
  59. package/lib-es/bridge/signOperation.js.map +1 -1
  60. package/lib-es/consts.d.ts +2 -0
  61. package/lib-es/consts.d.ts.map +1 -1
  62. package/lib-es/consts.js +3 -0
  63. package/lib-es/consts.js.map +1 -1
  64. package/lib-es/hw-signMessage.d.ts.map +1 -1
  65. package/lib-es/hw-signMessage.js +1 -2
  66. package/lib-es/hw-signMessage.js.map +1 -1
  67. package/lib-es/types/signer.d.ts +1 -1
  68. package/lib-es/types/signer.d.ts.map +1 -1
  69. package/package.json +7 -13
  70. package/src/api/api.ts +126 -71
  71. package/src/bridge/bridgeHelpers/account.ts +70 -43
  72. package/src/bridge/bridgeHelpers/addresses.ts +0 -25
  73. package/src/bridge/broadcast.ts +31 -6
  74. package/src/bridge/getTransactionStatus.ts +2 -1
  75. package/src/bridge/prepareTransaction.ts +2 -1
  76. package/src/bridge/signOperation.ts +68 -18
  77. package/src/consts.ts +10 -0
  78. package/src/hw-signMessage.ts +1 -6
  79. package/src/types/signer.ts +1 -1
  80. package/lib/bridge/bridgeHelpers/icpRosetta/index.d.ts +0 -30
  81. package/lib/bridge/bridgeHelpers/icpRosetta/index.d.ts.map +0 -1
  82. package/lib/bridge/bridgeHelpers/icpRosetta/index.js +0 -88
  83. package/lib/bridge/bridgeHelpers/icpRosetta/index.js.map +0 -1
  84. package/lib/bridge/bridgeHelpers/icpRosetta/types.d.ts +0 -145
  85. package/lib/bridge/bridgeHelpers/icpRosetta/types.d.ts.map +0 -1
  86. package/lib/bridge/bridgeHelpers/icpRosetta/types.js +0 -3
  87. package/lib/bridge/bridgeHelpers/icpRosetta/types.js.map +0 -1
  88. package/lib/bridge/bridgeHelpers/icpRosetta/utils.d.ts +0 -17
  89. package/lib/bridge/bridgeHelpers/icpRosetta/utils.d.ts.map +0 -1
  90. package/lib/bridge/bridgeHelpers/icpRosetta/utils.js +0 -155
  91. package/lib/bridge/bridgeHelpers/icpRosetta/utils.js.map +0 -1
  92. package/lib-es/bridge/bridgeHelpers/icpRosetta/index.d.ts +0 -30
  93. package/lib-es/bridge/bridgeHelpers/icpRosetta/index.d.ts.map +0 -1
  94. package/lib-es/bridge/bridgeHelpers/icpRosetta/index.js +0 -76
  95. package/lib-es/bridge/bridgeHelpers/icpRosetta/index.js.map +0 -1
  96. package/lib-es/bridge/bridgeHelpers/icpRosetta/types.d.ts +0 -145
  97. package/lib-es/bridge/bridgeHelpers/icpRosetta/types.d.ts.map +0 -1
  98. package/lib-es/bridge/bridgeHelpers/icpRosetta/types.js +0 -2
  99. package/lib-es/bridge/bridgeHelpers/icpRosetta/types.js.map +0 -1
  100. package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.d.ts +0 -17
  101. package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.d.ts.map +0 -1
  102. package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.js +0 -123
  103. package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.js.map +0 -1
  104. package/src/bridge/bridgeHelpers/icpRosetta/index.ts +0 -154
  105. package/src/bridge/bridgeHelpers/icpRosetta/types.ts +0 -166
  106. package/src/bridge/bridgeHelpers/icpRosetta/utils.ts +0 -151
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-internet_computer@1.9.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-internet_computer
2
+ > @ledgerhq/coin-internet_computer@1.9.1-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-internet_computer
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @ledgerhq/coin-internet_computer
2
2
 
3
+ ## 1.9.1-nightly.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`a731c4c`](https://github.com/LedgerHQ/ledger-live/commit/a731c4cd492a968eb7baa981fdd8aaddedd21f25)]:
8
+ - @ledgerhq/coin-framework@6.8.0-nightly.1
9
+
10
+ ## 1.9.1-nightly.0
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies [[`2c6a198`](https://github.com/LedgerHQ/ledger-live/commit/2c6a198ba28391695202a0787ce168c53768ff37)]:
15
+ - @ledgerhq/types-live@6.88.0-nightly.0
16
+ - @ledgerhq/coin-framework@6.7.1-nightly.0
17
+ - @ledgerhq/cryptoassets@13.31.1-nightly.0
18
+
3
19
  ## 1.9.0
4
20
 
5
21
  ### Minor Changes
package/lib/api/api.d.ts CHANGED
@@ -1,12 +1,7 @@
1
- import { ICPRosettaBlockHeightResponse, ICPRosettaGetBalancesResponse, ICPRosettaGetTxnsHistoryResponse } from "../bridge/bridgeHelpers/icpRosetta/types";
2
- export declare const getICPRosettaNetworkIdentifier: () => {
3
- network_identifier: {
4
- blockchain: string;
5
- network: string;
6
- };
7
- };
8
- export declare const fetchBlockHeight: () => Promise<ICPRosettaBlockHeightResponse>;
9
- export declare const fetchBalances: (accountId: string) => Promise<ICPRosettaGetBalancesResponse>;
10
- export declare const fetchTxns: (accountId: string) => Promise<ICPRosettaGetTxnsHistoryResponse>;
11
- export declare const constructionInvoke: <TRequest, TResponse>(opts: TRequest, method: string) => Promise<TResponse>;
1
+ import { TransactionWithId } from "@zondax/ledger-live-icp";
2
+ import BigNumber from "bignumber.js";
3
+ export declare const fetchBlockHeight: () => Promise<BigNumber>;
4
+ export declare const broadcastTxn: (payload: Buffer, canisterId: string, type: "call" | "read_state") => Promise<ArrayBuffer>;
5
+ export declare const fetchBalance: (address: string) => Promise<BigNumber>;
6
+ export declare const fetchTxns: (address: string, startBlockHeight: bigint, stopBlockHeight?: bigint) => Promise<TransactionWithId[]>;
12
7
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EACjC,MAAM,0CAA0C,CAAC;AA8BlD,eAAO,MAAM,8BAA8B;;;;;CAO1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAa,QAAQ,6BAA6B,CAM9E,CAAC;AAEF,eAAO,MAAM,aAAa,cAAqB,MAAM,KAAG,QAAQ,6BAA6B,CAU5F,CAAC;AAEF,eAAO,MAAM,SAAS,cAAqB,MAAM,KAAG,QAAQ,gCAAgC,CAU3F,CAAC;AAEF,eAAO,MAAM,kBAAkB,8BACvB,QAAQ,UACN,MAAM,KACb,QAAQ,SAAS,CAQnB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAQA,OAAO,EAQL,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,SAAS,MAAM,cAAc,CAAC;AAKrC,eAAO,MAAM,gBAAgB,QAAa,QAAQ,SAAS,CA0B1D,CAAC;AAEF,eAAO,MAAM,YAAY,YACd,MAAM,cACH,MAAM,QACZ,MAAM,GAAG,YAAY,yBAgB5B,CAAC;AAEF,eAAO,MAAM,YAAY,YAAmB,MAAM,KAAG,QAAQ,SAAS,CAuBrE,CAAC;AAEF,eAAO,MAAM,SAAS,YACX,MAAM,oBACG,MAAM,+BAEvB,QAAQ,iBAAiB,EAAE,CA6C7B,CAAC"}
package/lib/api/api.js CHANGED
@@ -3,78 +3,98 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.constructionInvoke = exports.fetchTxns = exports.fetchBalances = exports.fetchBlockHeight = exports.getICPRosettaNetworkIdentifier = void 0;
6
+ exports.fetchTxns = exports.fetchBalance = exports.broadcastTxn = exports.fetchBlockHeight = void 0;
7
7
  const logs_1 = require("@ledgerhq/logs");
8
- const live_env_1 = require("@ledgerhq/live-env");
9
- const network_1 = __importDefault(require("@ledgerhq/live-network/network"));
10
8
  const consts_1 = require("../consts");
11
- const getICPURL = (path) => {
12
- const baseUrl = (0, live_env_1.getEnv)("API_ICP_ENDPOINT");
13
- if (!baseUrl)
14
- throw new Error("API base URL not available");
15
- return `${baseUrl}${path ? path : ""}`;
16
- };
17
- const ICPFetchWrapper = async (path, body) => {
18
- const url = getICPURL(path);
19
- // We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
20
- const opts = {
21
- method: "POST",
22
- data: body,
23
- url,
24
- };
25
- const rawResponse = await (0, network_1.default)(opts);
26
- if (rawResponse && rawResponse.data && rawResponse.data.details?.error_message) {
27
- (0, logs_1.log)("error", rawResponse.data.details?.error_message);
28
- }
29
- // We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
30
- const { data } = rawResponse;
31
- (0, logs_1.log)("http", url);
32
- return data;
33
- };
34
- const getICPRosettaNetworkIdentifier = () => {
35
- return {
36
- network_identifier: {
37
- blockchain: consts_1.ICP_BLK_NAME_ROSETTA,
38
- network: consts_1.ICP_NET_ID_ROSETTA,
39
- },
40
- };
41
- };
42
- exports.getICPRosettaNetworkIdentifier = getICPRosettaNetworkIdentifier;
9
+ const ledger_live_icp_1 = require("@zondax/ledger-live-icp");
10
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
11
+ const utils_1 = require("@zondax/ledger-live-icp/utils");
12
+ const agent_1 = require("@zondax/ledger-live-icp/agent");
13
+ const invariant_1 = __importDefault(require("invariant"));
43
14
  const fetchBlockHeight = async () => {
44
- const data = await ICPFetchWrapper("network/status", (0, exports.getICPRosettaNetworkIdentifier)());
45
- return data;
15
+ const canisterId = ledger_live_icp_1.Principal.fromText(consts_1.MAINNET_LEDGER_CANISTER_ID);
16
+ const queryBlocksRawRequest = {
17
+ start: BigInt(0),
18
+ length: BigInt(1),
19
+ };
20
+ const queryBlocksIdlFunc = (0, ledger_live_icp_1.getCanisterIdlFunc)(ledger_live_icp_1.ledgerIdlFactory, "query_blocks");
21
+ const queryBlocksargs = (0, ledger_live_icp_1.encodeCanisterIdlFunc)(queryBlocksIdlFunc, [queryBlocksRawRequest]);
22
+ const agent = await (0, agent_1.getAgent)(consts_1.ICP_NETWORK_URL);
23
+ const blockHeightRes = await agent.query(canisterId, {
24
+ arg: queryBlocksargs,
25
+ methodName: "query_blocks",
26
+ });
27
+ (0, invariant_1.default)(blockHeightRes.status === "replied", "[ICP](fetchBlockHeight) Query failed");
28
+ const decodedIdl = (0, ledger_live_icp_1.decodeCanisterIdlFunc)(queryBlocksIdlFunc, blockHeightRes.reply.arg);
29
+ const decoded = (0, utils_1.fromNullable)(decodedIdl);
30
+ (0, invariant_1.default)(decoded, "[ICP](fetchBlockHeight) Decoding failed");
31
+ return (0, bignumber_js_1.default)(decoded.chain_length.toString());
46
32
  };
47
33
  exports.fetchBlockHeight = fetchBlockHeight;
48
- const fetchBalances = async (accountId) => {
49
- const body = {
50
- ...(0, exports.getICPRosettaNetworkIdentifier)(),
51
- account_identifier: {
52
- address: accountId,
53
- metadata: {},
34
+ const broadcastTxn = async (payload, canisterId, type) => {
35
+ (0, logs_1.log)("debug", `[ICP] Broadcasting ${type} to ${canisterId}, body: ${payload.toString("hex")}`);
36
+ const res = await fetch(`${consts_1.ICP_NETWORK_URL}/api/v3/canister/${canisterId}/${type}`, {
37
+ body: payload,
38
+ method: "POST",
39
+ headers: {
40
+ "Content-Type": "application/cbor",
54
41
  },
55
- };
56
- const data = await ICPFetchWrapper("account/balance", body);
57
- return data;
42
+ });
43
+ if (res.status === 200) {
44
+ return await res.arrayBuffer();
45
+ }
46
+ throw new Error(`Failed to broadcast transaction: ${res.text()}`);
58
47
  };
59
- exports.fetchBalances = fetchBalances;
60
- const fetchTxns = async (accountId) => {
61
- const body = {
62
- ...(0, exports.getICPRosettaNetworkIdentifier)(),
63
- account_identifier: {
64
- address: accountId,
65
- metadata: {},
66
- },
67
- };
68
- const data = await ICPFetchWrapper("search/transactions", body);
69
- return data;
48
+ exports.broadcastTxn = broadcastTxn;
49
+ const fetchBalance = async (address) => {
50
+ const agent = await (0, agent_1.getAgent)(consts_1.ICP_NETWORK_URL);
51
+ const indexCanister = ledger_live_icp_1.Principal.fromText(consts_1.MAINNET_INDEX_CANISTER_ID);
52
+ const getBalanceIdlFunc = (0, ledger_live_icp_1.getCanisterIdlFunc)(ledger_live_icp_1.indexIdlFactory, "get_account_identifier_balance");
53
+ const getBalanceArgs = (0, ledger_live_icp_1.encodeCanisterIdlFunc)(getBalanceIdlFunc, [address]);
54
+ const balanceRes = await agent.query(indexCanister, {
55
+ arg: getBalanceArgs,
56
+ methodName: "get_account_identifier_balance",
57
+ });
58
+ if (balanceRes.status !== "replied") {
59
+ (0, logs_1.log)("debug", `[ICP](fetchBalance) Query failed: ${balanceRes.status}`);
60
+ return (0, bignumber_js_1.default)(0);
61
+ }
62
+ const decodedBalance = (0, ledger_live_icp_1.decodeCanisterIdlFunc)(getBalanceIdlFunc, balanceRes.reply.arg);
63
+ const balance = (0, utils_1.fromNullable)(decodedBalance);
64
+ if (!balance) {
65
+ return (0, bignumber_js_1.default)(0);
66
+ }
67
+ return (0, bignumber_js_1.default)(balance.toString());
70
68
  };
71
- exports.fetchTxns = fetchTxns;
72
- const constructionInvoke = async (opts, method) => {
73
- const body = {
74
- ...opts,
69
+ exports.fetchBalance = fetchBalance;
70
+ const fetchTxns = async (address, startBlockHeight, stopBlockHeight = BigInt(0)) => {
71
+ if (startBlockHeight <= stopBlockHeight) {
72
+ return [];
73
+ }
74
+ const agent = await (0, agent_1.getAgent)(consts_1.ICP_NETWORK_URL);
75
+ const canisterId = ledger_live_icp_1.Principal.fromText(consts_1.MAINNET_INDEX_CANISTER_ID);
76
+ const transactionsRawRequest = {
77
+ account_identifier: address,
78
+ start: [startBlockHeight],
79
+ max_results: BigInt(consts_1.FETCH_TXNS_LIMIT),
75
80
  };
76
- const data = await ICPFetchWrapper(`construction/${method}`, body);
77
- return data;
81
+ const getTransactionsIdlFunc = (0, ledger_live_icp_1.getCanisterIdlFunc)(ledger_live_icp_1.indexIdlFactory, "get_account_identifier_transactions");
82
+ const getTransactionsArgs = (0, ledger_live_icp_1.encodeCanisterIdlFunc)(getTransactionsIdlFunc, [
83
+ transactionsRawRequest,
84
+ ]);
85
+ const transactionsRes = await agent.query(canisterId, {
86
+ arg: getTransactionsArgs,
87
+ methodName: "get_account_identifier_transactions",
88
+ });
89
+ (0, invariant_1.default)(transactionsRes.status === "replied", "[ICP](fetchTxns) Query failed");
90
+ const decodedTransactions = (0, ledger_live_icp_1.decodeCanisterIdlFunc)(getTransactionsIdlFunc, transactionsRes.reply.arg);
91
+ const response = (0, utils_1.fromNullable)(decodedTransactions);
92
+ (0, invariant_1.default)(response, "[ICP](fetchTxns) Decoding failed");
93
+ if (response.Ok.transactions.length === 0) {
94
+ return [];
95
+ }
96
+ const nextTxns = await (0, exports.fetchTxns)(address, response.Ok.transactions.at(-1)?.id ?? BigInt(0), stopBlockHeight);
97
+ return [...response.Ok.transactions, ...nextTxns];
78
98
  };
79
- exports.constructionInvoke = constructionInvoke;
99
+ exports.fetchTxns = fetchTxns;
80
100
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAcjF,eAAO,MAAM,eAAe,EAAE,eAmC7B,CAAC"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAiBjF,eAAO,MAAM,eAAe,EAAE,eAyC7B,CAAC"}
@@ -12,13 +12,13 @@ const consts_1 = require("../../consts");
12
12
  const operation_1 = require("@ledgerhq/coin-framework/operation");
13
13
  const utils_1 = require("../../common-logic/utils");
14
14
  const invariant_1 = __importDefault(require("invariant"));
15
- const icpRosetta_1 = require("./icpRosetta");
15
+ const ledger_live_icp_1 = require("@zondax/ledger-live-icp");
16
16
  const getAccountShape = async (info) => {
17
17
  const { currency, derivationMode, rest = {}, initialAccount } = info;
18
18
  const publicKey = reconciliatePublicKey(rest.publicKey, initialAccount);
19
19
  (0, invariant_1.default)(publicKey, "publicKey is required");
20
20
  // deriving address from public key
21
- const address = await (0, icpRosetta_1.deriveAddressFromPubkey)(publicKey);
21
+ const address = await (0, ledger_live_icp_1.deriveAddressFromPubkey)(publicKey);
22
22
  (0, invariant_1.default)(address, "address is required");
23
23
  const accountId = (0, index_1.encodeAccountId)({
24
24
  type: "js",
@@ -29,16 +29,15 @@ const getAccountShape = async (info) => {
29
29
  });
30
30
  // log("debug", `Generation account shape for ${address}`);
31
31
  const blockHeight = await (0, api_1.fetchBlockHeight)();
32
- const balanceResp = await (0, api_1.fetchBalances)(address);
33
- const balance = balanceResp.balances[0];
34
- const txns = await (0, api_1.fetchTxns)(address);
32
+ const balance = await (0, api_1.fetchBalance)(address);
33
+ const txns = await (0, api_1.fetchTxns)(address, BigInt(blockHeight.toString()), initialAccount ? BigInt(initialAccount.blockHeight.toString()) : undefined);
35
34
  const result = {
36
35
  id: accountId,
37
- balance: (0, bignumber_js_1.default)(balance.value),
38
- spendableBalance: (0, bignumber_js_1.default)(balance.value),
39
- operations: (0, flatMap_1.default)(txns.transactions.reverse(), mapTxToOps(accountId, address)),
40
- blockHeight: blockHeight.current_block_identifier.index,
41
- operationsCount: txns.transactions.length,
36
+ balance,
37
+ spendableBalance: balance,
38
+ operations: (0, flatMap_1.default)(txns, mapTxToOps(accountId, address)),
39
+ blockHeight: blockHeight.toNumber(),
40
+ operationsCount: (initialAccount?.operations.length ?? 0) + txns.length,
42
41
  xpub: publicKey,
43
42
  };
44
43
  return result;
@@ -55,36 +54,56 @@ function reconciliatePublicKey(publicKey, initialAccount) {
55
54
  }
56
55
  const mapTxToOps = (accountId, address, fee = consts_1.ICP_FEES) => {
57
56
  return (txInfo) => {
57
+ const { transaction: txn } = txInfo;
58
58
  const ops = [];
59
- const ownerOperation = txInfo.transaction.operations.find(cur => cur.account.address === address);
60
- const counterOperation = txInfo.transaction.operations.find(cur => cur.account.address !== address);
61
- if (!ownerOperation || !counterOperation)
62
- return ops;
63
- const timeStamp = txInfo.transaction.metadata.timestamp;
64
- const amount = (0, bignumber_js_1.default)(ownerOperation.amount.value);
65
- const hash = txInfo.transaction.transaction_identifier.hash;
66
- const fromAccount = amount.isPositive()
67
- ? counterOperation.account.address
68
- : ownerOperation.account.address;
69
- const toAccount = amount.isNegative()
70
- ? counterOperation.account.address
71
- : ownerOperation.account.address;
72
- const memo = txInfo.transaction.metadata.memo.toString();
73
- const blockHeight = txInfo.transaction.metadata.block_height;
59
+ if (txn.operation === undefined) {
60
+ return [];
61
+ }
62
+ if ("Transfer" in txn.operation === undefined) {
63
+ return [];
64
+ }
65
+ const timeStamp = txn.timestamp[0]?.timestamp_nanos ?? Date.now();
66
+ let amount = (0, bignumber_js_1.default)(0);
67
+ let fromAccount = "";
68
+ let toAccount = "";
69
+ let hash = "";
70
+ if ("Transfer" in txn.operation) {
71
+ amount = (0, bignumber_js_1.default)(txn.operation.Transfer.amount.e8s.toString());
72
+ fromAccount = txn.operation.Transfer.from;
73
+ toAccount = txn.operation.Transfer.to;
74
+ hash = (0, ledger_live_icp_1.hashTransaction)({
75
+ from: fromAccount,
76
+ to: toAccount,
77
+ amount: txn.operation.Transfer.amount.e8s,
78
+ fee: txn.operation.Transfer.fee.e8s,
79
+ memo: txn.memo,
80
+ created_at_time: txn.created_at_time[0]?.timestamp_nanos ?? BigInt(0),
81
+ });
82
+ }
83
+ const blockHeight = Number(txInfo.id);
84
+ const blockHash = "";
85
+ const memo = txInfo.transaction.memo.toString();
74
86
  const date = new Date((0, utils_1.normalizeEpochTimestamp)(timeStamp.toString()));
75
87
  const value = amount.abs();
76
88
  const feeToUse = (0, bignumber_js_1.default)(fee);
77
- const isSending = amount.isNegative();
78
- const isReceiving = amount.isPositive();
89
+ const isSending = address === fromAccount;
90
+ const isReceiving = address === toAccount;
91
+ let type;
92
+ if (isSending) {
93
+ type = "OUT";
94
+ }
95
+ else {
96
+ type = "IN";
97
+ }
79
98
  if (isSending) {
80
99
  ops.push({
81
- id: (0, operation_1.encodeOperationId)(accountId, hash, "OUT"),
100
+ id: (0, operation_1.encodeOperationId)(accountId, hash, type),
82
101
  hash,
83
- type: "OUT",
102
+ type,
84
103
  value: value.plus(feeToUse),
85
104
  fee: feeToUse,
86
105
  blockHeight,
87
- blockHash: null,
106
+ blockHash,
88
107
  accountId,
89
108
  senders: [fromAccount],
90
109
  recipients: [toAccount],
@@ -96,13 +115,13 @@ const mapTxToOps = (accountId, address, fee = consts_1.ICP_FEES) => {
96
115
  }
97
116
  if (isReceiving) {
98
117
  ops.push({
99
- id: (0, operation_1.encodeOperationId)(accountId, hash, "IN"),
118
+ id: (0, operation_1.encodeOperationId)(accountId, hash, type),
100
119
  hash,
101
- type: "IN",
120
+ type,
102
121
  value,
103
122
  fee: feeToUse,
104
123
  blockHeight,
105
- blockHash: null,
124
+ blockHash,
106
125
  accountId,
107
126
  senders: [fromAccount],
108
127
  recipients: [toAccount],
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/account.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,4 @@ export declare const getAddress: (a: Account) => {
3
3
  address: string;
4
4
  derivationPath: string;
5
5
  };
6
- export declare function validateAddress(address: string): Promise<{
7
- isValid: boolean;
8
- }>;
9
- export declare function validateMemo(memo?: string): {
10
- isValid: boolean;
11
- };
12
6
  //# sourceMappingURL=addresses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/addresses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/C,eAAO,MAAM,UAAU,MAClB,OAAO,KACT;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CAC6C,CAAC;AAEvE,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CASpF;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAQhE"}
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,eAAO,MAAM,UAAU,MAClB,OAAO,KACT;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CAC6C,CAAC"}
@@ -1,34 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateMemo = exports.validateAddress = exports.getAddress = void 0;
7
- const logs_1 = require("@ledgerhq/logs");
8
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- const consts_1 = require("../../consts");
10
- const api_1 = require("../../api");
3
+ exports.getAddress = void 0;
11
4
  const getAddress = (a) => ({ address: a.freshAddress, derivationPath: a.freshAddressPath });
12
5
  exports.getAddress = getAddress;
13
- async function validateAddress(address) {
14
- try {
15
- const res = await (0, api_1.fetchBalances)(address);
16
- if (!res.balances)
17
- throw Error(res.details?.error_message);
18
- return { isValid: true };
19
- }
20
- catch (e) {
21
- (0, logs_1.log)("error", e.message ?? "Failed to validate address");
22
- return { isValid: false };
23
- }
24
- }
25
- exports.validateAddress = validateAddress;
26
- function validateMemo(memo) {
27
- const res = (0, bignumber_js_1.default)(memo ?? 0);
28
- if (res.isNaN() || res.lt(0) || res.gt((0, bignumber_js_1.default)(consts_1.MAX_MEMO_VALUE))) {
29
- return { isValid: false };
30
- }
31
- return { isValid: true };
32
- }
33
- exports.validateMemo = validateMemo;
34
6
  //# sourceMappingURL=addresses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/addresses.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAqC;AAErC,gEAAqC;AACrC,yCAA8C;AAC9C,mCAA0C;AAEnC,MAAM,UAAU,GAAG,CACxB,CAAU,EAIV,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAL1D,QAAA,UAAU,cAKgD;AAEhE,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAa,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAA,UAAG,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,4BAA4B,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AATD,0CASC;AAED,SAAgB,YAAY,CAAC,IAAa;IACxC,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAEjC,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAA,sBAAS,EAAC,uBAAc,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AARD,oCAQC"}
1
+ {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/addresses.ts"],"names":[],"mappings":";;;AAEO,MAAM,UAAU,GAAG,CACxB,CAAU,EAIV,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAL1D,QAAA,UAAU,cAKgD"}
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAU7D,CAAC"}
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAqBvC,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAgB7D,CAAC"}
@@ -1,12 +1,28 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.broadcast = void 0;
4
- const icpRosetta_1 = require("./bridgeHelpers/icpRosetta");
5
- const broadcast = async ({ signedOperation: { signature, operation }, }) => {
6
- // log("debug", "[broadcast] start fn");
7
- await (0, icpRosetta_1.broadcastTxn)(signature);
8
- const result = { ...operation };
9
- return result;
7
+ const api_1 = require("../api");
8
+ const logs_1 = require("@ledgerhq/logs");
9
+ const invariant_1 = __importDefault(require("invariant"));
10
+ const consts_1 = require("../consts");
11
+ // Type guard to validate rawData shape
12
+ function isBroadcastRawData(data) {
13
+ return (typeof data === "object" &&
14
+ data !== null &&
15
+ "encodedSignedCallBlob" in data &&
16
+ typeof data.encodedSignedCallBlob === "string");
17
+ }
18
+ // Main broadcast function for handling Internet Computer transactions
19
+ const broadcast = async ({ signedOperation: { operation, rawData }, }) => {
20
+ (0, logs_1.log)("debug", "[broadcast] Internet Computer transaction broadcast initiated");
21
+ // Validate rawData with type guard
22
+ (0, invariant_1.default)(isBroadcastRawData(rawData), "[ICP](broadcast) Invalid rawData format");
23
+ (0, invariant_1.default)(operation.extra, "[ICP](broadcast) Missing operation extra");
24
+ await (0, api_1.broadcastTxn)(Buffer.from(rawData.encodedSignedCallBlob, "hex"), consts_1.MAINNET_LEDGER_CANISTER_ID, "call");
25
+ return operation;
10
26
  };
11
27
  exports.broadcast = broadcast;
12
28
  //# sourceMappingURL=broadcast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":";;;AACA,2DAA0D;AAGnD,MAAM,SAAS,GAA4C,KAAK,EAAE,EACvE,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAC1C,EAAE,EAAE;IACH,wCAAwC;IAExC,MAAM,IAAA,yBAAY,EAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAVW,QAAA,SAAS,aAUpB"}
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":";;;;;;AACA,gCAAsC;AAEtC,yCAAqC;AACrC,0DAAkC;AAClC,sCAAuD;AAOvD,uCAAuC;AACvC,SAAS,kBAAkB,CAAC,IAAa;IACvC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,uBAAuB,IAAI,IAAI;QAC/B,OAAQ,IAAY,CAAC,qBAAqB,KAAK,QAAQ,CACxD,CAAC;AACJ,CAAC;AAED,sEAAsE;AAC/D,MAAM,SAAS,GAA4C,KAAK,EAAE,EACvE,eAAe,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,GACxC,EAAE,EAAE;IACH,IAAA,UAAG,EAAC,OAAO,EAAE,+DAA+D,CAAC,CAAC;IAE9E,mCAAmC;IACnC,IAAA,mBAAS,EAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,yCAAyC,CAAC,CAAC;IAClF,IAAA,mBAAS,EAAC,SAAS,CAAC,KAAK,EAAE,0CAA0C,CAAC,CAAC;IAEvE,MAAM,IAAA,kBAAY,EAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,EACjD,mCAA0B,EAC1B,MAAM,CACP,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAqB,MAAM,UAAU,CAAC;AAG1D,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,sBAAsB,CA6DnF,CAAC"}
1
+ {"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAqB,MAAM,UAAU,CAAC;AAG1D,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,sBAAsB,CA6DnF,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTransactionStatus = void 0;
4
4
  const errors_1 = require("@ledgerhq/errors");
5
5
  const addresses_1 = require("./bridgeHelpers/addresses");
6
+ const utils_1 = require("@zondax/ledger-live-icp/utils");
6
7
  const errors_2 = require("../errors");
7
8
  const getTransactionStatus = async (account, transaction) => {
8
9
  const errors = {};
@@ -14,7 +15,7 @@ const getTransactionStatus = async (account, transaction) => {
14
15
  if (!recipient) {
15
16
  errors.recipient = new errors_1.RecipientRequired();
16
17
  }
17
- else if (!(await (0, addresses_1.validateAddress)(recipient)).isValid) {
18
+ else if (!(await (0, utils_1.validateAddress)(recipient)).isValid) {
18
19
  errors.recipient = new errors_1.InvalidAddress("", {
19
20
  currencyName: account.currency.name,
20
21
  });
@@ -22,12 +23,12 @@ const getTransactionStatus = async (account, transaction) => {
22
23
  else if (recipient.toLowerCase() === address.toLowerCase()) {
23
24
  errors.recipient = new errors_1.InvalidAddressBecauseDestinationIsAlsoSource();
24
25
  }
25
- if (!(await (0, addresses_1.validateAddress)(address)).isValid) {
26
+ if (!(await (0, utils_1.validateAddress)(address)).isValid) {
26
27
  errors.sender = new errors_1.InvalidAddress("", {
27
28
  currencyName: account.currency.name,
28
29
  });
29
30
  }
30
- if (!(0, addresses_1.validateMemo)(transaction.memo).isValid) {
31
+ if (!(0, utils_1.validateMemo)(transaction.memo).isValid) {
31
32
  errors.transaction = new errors_2.InvalidMemoICP();
32
33
  }
33
34
  // This is the worst case scenario (the tx won't cost more than this value)
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":";;;AAAA,6CAM0B;AAG1B,yDAAsF;AAEtF,sCAA2C;AAEpC,MAAM,oBAAoB,GAAuD,KAAK,EAC3F,OAAO,EACP,WAAW,EACX,EAAE;IACF,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAkC,EAAE,CAAC;IAEnD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,sBAAU,EAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;IAChD,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAE7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,SAAS,GAAG,IAAI,0BAAiB,EAAE,CAAC;IAC7C,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,IAAA,2BAAe,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,CAAC,SAAS,GAAG,IAAI,uBAAc,CAAC,EAAE,EAAE;YACxC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;SACpC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7D,MAAM,CAAC,SAAS,GAAG,IAAI,qDAA4C,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAA,2BAAe,EAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,uBAAc,CAAC,EAAE,EAAE;YACrC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;SACpC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAA,wBAAY,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,CAAC,WAAW,GAAG,IAAI,uBAAc,EAAE,CAAC;IAC5C,CAAC;IAED,2EAA2E;IAC3E,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC;IAEvC,IAAI,UAAqB,CAAC;IAE1B,IAAI,YAAY,EAAE,CAAC;QACjB,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACtC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,IAAI,uBAAc,EAAE,CAAC;QACvC,CAAC;aAAM,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAED,oDAAoD;IAEpD,OAAO;QACL,MAAM;QACN,QAAQ;QACR,aAAa;QACb,MAAM;QACN,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AA7DW,QAAA,oBAAoB,wBA6D/B"}
1
+ {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":";;;AAAA,6CAM0B;AAG1B,yDAAuD;AACvD,yDAA8E;AAE9E,sCAA2C;AAEpC,MAAM,oBAAoB,GAAuD,KAAK,EAC3F,OAAO,EACP,WAAW,EACX,EAAE;IACF,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAkC,EAAE,CAAC;IAEnD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,sBAAU,EAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;IAChD,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAE7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,SAAS,GAAG,IAAI,0BAAiB,EAAE,CAAC;IAC7C,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,CAAC,SAAS,GAAG,IAAI,uBAAc,CAAC,EAAE,EAAE;YACxC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;SACpC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7D,MAAM,CAAC,SAAS,GAAG,IAAI,qDAA4C,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,uBAAc,CAAC,EAAE,EAAE;YACrC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;SACpC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAA,oBAAY,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,CAAC,WAAW,GAAG,IAAI,uBAAc,EAAE,CAAC;IAC5C,CAAC;IAED,2EAA2E;IAC3E,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC;IAEvC,IAAI,UAAqB,CAAC;IAE1B,IAAI,YAAY,EAAE,CAAC;QACjB,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACtC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,IAAI,uBAAc,EAAE,CAAC;QACvC,CAAC;aAAM,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAED,oDAAoD;IAEpD,OAAO;QACL,MAAM;QACN,QAAQ;QACR,aAAa;QACb,MAAM;QACN,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AA7DW,QAAA,oBAAoB,wBA6D/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAuB/E,CAAC"}
1
+ {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIvC,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAuB/E,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareTransaction = void 0;
4
4
  const addresses_1 = require("./bridgeHelpers/addresses");
5
+ const ledger_live_icp_1 = require("@zondax/ledger-live-icp");
5
6
  const prepareTransaction = async (account, transaction) => {
6
7
  // log("debug", "[prepareTransaction] start fn");
7
8
  const { address } = (0, addresses_1.getAddress)(account);
@@ -9,7 +10,7 @@ const prepareTransaction = async (account, transaction) => {
9
10
  let amount = transaction.amount;
10
11
  if (recipient && address) {
11
12
  // log("debug", "[prepareTransaction] fetching estimated fees");
12
- if ((await (0, addresses_1.validateAddress)(recipient)).isValid && (await (0, addresses_1.validateAddress)(address)).isValid) {
13
+ if ((await (0, ledger_live_icp_1.validateAddress)(recipient)).isValid && (await (0, ledger_live_icp_1.validateAddress)(address)).isValid) {
13
14
  if (transaction.useAllAmount) {
14
15
  amount = account.spendableBalance.minus(transaction.fees);
15
16
  return { ...transaction, amount };
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":";;;AAEA,yDAAwE;AAEjE,MAAM,kBAAkB,GAAqD,KAAK,EACvF,OAAO,EACP,WAAW,EACX,EAAE;IACF,iDAAiD;IAEjD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,sBAAU,EAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAElC,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAChC,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACzB,gEAAgE;QAEhE,IAAI,CAAC,MAAM,IAAA,2BAAe,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,IAAA,2BAAe,EAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3F,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1D,OAAO,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAvBW,QAAA,kBAAkB,sBAuB7B"}
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":";;;AAEA,yDAAuD;AACvD,6DAA0D;AAEnD,MAAM,kBAAkB,GAAqD,KAAK,EACvF,OAAO,EACP,WAAW,EACX,EAAE;IACF,iDAAiD;IAEjD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,sBAAU,EAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAElC,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAChC,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACzB,gEAAgE;QAEhE,IAAI,CAAC,MAAM,IAAA,iCAAe,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3F,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1D,OAAO,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAvBW,QAAA,kBAAkB,sBAuB7B"}