@ledgerhq/coin-algorand 0.5.7 → 0.5.8-next.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @ledgerhq/coin-algorand
2
2
 
3
+ ## 0.5.8-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - [#8004](https://github.com/LedgerHQ/ledger-live/pull/8004) [`28ab0bc`](https://github.com/LedgerHQ/ledger-live/commit/28ab0bc6b441d8dac1d7c8dc4d5bd6b88031eeb5) Thanks [@qperrot](https://github.com/qperrot)! - Tezos send full balance and fix algorand format issue
8
+
9
+ - [#8029](https://github.com/LedgerHQ/ledger-live/pull/8029) [`b122a53`](https://github.com/LedgerHQ/ledger-live/commit/b122a536feb06cdf011fbbd2cc8d82d1c54a8439) Thanks [@sprohaszka-ledger](https://github.com/sprohaszka-ledger)! - Fix Algorand lint issue
10
+
11
+ - Updated dependencies [[`642c714`](https://github.com/LedgerHQ/ledger-live/commit/642c714d52eaaccb1b8ac3a2ee0391b641d19303), [`ced792c`](https://github.com/LedgerHQ/ledger-live/commit/ced792c37b42135f2b7596228c14ccd0783a803f), [`1b3a21d`](https://github.com/LedgerHQ/ledger-live/commit/1b3a21d5d8496c42f4dec4116fdcf59ad6f038cd), [`0a16ae4`](https://github.com/LedgerHQ/ledger-live/commit/0a16ae4cb58ad9f2e67c7f3494b0dc52cb7423a1), [`00cab1d`](https://github.com/LedgerHQ/ledger-live/commit/00cab1db1d67eb0cf35059eeeb9e2d8bd328f8f3)]:
12
+ - @ledgerhq/types-live@6.52.1-next.0
13
+ - @ledgerhq/live-env@2.4.0-next.0
14
+ - @ledgerhq/coin-framework@0.18.3-next.0
15
+ - @ledgerhq/cryptoassets@13.6.1-next.0
16
+ - @ledgerhq/live-network@2.0.2-next.0
17
+
3
18
  ## 0.5.7
4
19
 
5
20
  ### Patch Changes
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
- import { NetworkRequestCall } from "@ledgerhq/coin-framework/network";
3
2
  import { AlgoAccount, AlgoTransactionParams } from "./algodv2.types";
4
- export declare const getAccount: (network: NetworkRequestCall) => (address: string) => Promise<AlgoAccount>;
5
- export declare const getTransactionParams: (network: NetworkRequestCall) => () => Promise<AlgoTransactionParams>;
6
- export declare const broadcastTransaction: (network: NetworkRequestCall) => (payload: Buffer) => Promise<string>;
3
+ export declare const getAccount: (address: string) => Promise<AlgoAccount>;
4
+ export declare const getTransactionParams: () => Promise<AlgoTransactionParams>;
5
+ export declare const broadcastTransaction: (payload: Buffer) => Promise<string>;
7
6
  //# sourceMappingURL=algodv2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"algodv2.d.ts","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EACL,WAAW,EAGX,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAOzB,eAAO,MAAM,UAAU,YACX,kBAAkB,eACZ,MAAM,KAAG,QAAQ,WAAW,CAuB3C,CAAC;AAEJ,eAAO,MAAM,oBAAoB,YACrB,kBAAkB,WAAe,QAAQ,qBAAqB,CAcvE,CAAC;AAEJ,eAAO,MAAM,oBAAoB,YACrB,kBAAkB,eACZ,MAAM,KAAG,QAAQ,MAAM,CAStC,CAAC"}
1
+ {"version":3,"file":"algodv2.d.ts","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";AAGA,OAAO,EACL,WAAW,EAGX,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAkBzB,eAAO,MAAM,UAAU,YAAmB,MAAM,KAAG,QAAQ,WAAW,CAsBrE,CAAC;AAYF,eAAO,MAAM,oBAAoB,QAAa,QAAQ,qBAAqB,CAa1E,CAAC;AAIF,eAAO,MAAM,oBAAoB,YAAmB,MAAM,KAAG,QAAQ,MAAM,CAY1E,CAAC"}
@@ -8,16 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.broadcastTransaction = exports.getTransactionParams = exports.getAccount = void 0;
16
+ const live_network_1 = __importDefault(require("@ledgerhq/live-network"));
13
17
  const live_env_1 = require("@ledgerhq/live-env");
14
18
  const bignumber_js_1 = require("bignumber.js");
15
19
  const BASE_URL = (0, live_env_1.getEnv)("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
16
20
  const NODE_URL = `${BASE_URL}/ps2/v2`;
17
21
  const fullUrl = (route) => `${NODE_URL}${route}`;
18
- const getAccount = (network) => (address) => __awaiter(void 0, void 0, void 0, function* () {
19
- const { data } = yield network({
20
- method: "GET",
22
+ const getAccount = (address) => __awaiter(void 0, void 0, void 0, function* () {
23
+ const { data } = yield (0, live_network_1.default)({
21
24
  url: fullUrl(`/accounts/${address}`),
22
25
  });
23
26
  const assets = data.assets
@@ -38,10 +41,9 @@ const getAccount = (network) => (address) => __awaiter(void 0, void 0, void 0, f
38
41
  };
39
42
  });
40
43
  exports.getAccount = getAccount;
41
- const getTransactionParams = (network) => () => __awaiter(void 0, void 0, void 0, function* () {
44
+ const getTransactionParams = () => __awaiter(void 0, void 0, void 0, function* () {
42
45
  var _a;
43
- const { data } = yield network({
44
- method: "GET",
46
+ const { data } = yield (0, live_network_1.default)({
45
47
  url: fullUrl(`/transactions/params`),
46
48
  });
47
49
  return {
@@ -54,8 +56,8 @@ const getTransactionParams = (network) => () => __awaiter(void 0, void 0, void 0
54
56
  };
55
57
  });
56
58
  exports.getTransactionParams = getTransactionParams;
57
- const broadcastTransaction = (network) => (payload) => __awaiter(void 0, void 0, void 0, function* () {
58
- const { data } = yield network({
59
+ const broadcastTransaction = (payload) => __awaiter(void 0, void 0, void 0, function* () {
60
+ const { data } = yield (0, live_network_1.default)({
59
61
  method: "POST",
60
62
  url: fullUrl(`/transactions`),
61
63
  data: payload,
@@ -1 +1 @@
1
- {"version":3,"file":"algodv2.js","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA4C;AAC5C,+CAAyC;AAQzC,MAAM,QAAQ,GAAG,IAAA,iBAAM,EAAC,+CAA+C,CAAC,CAAC;AACzE,MAAM,QAAQ,GAAG,GAAG,QAAQ,SAAS,CAAC;AAEtC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;AAE1D,MAAM,UAAU,GACrB,CAAC,OAA2B,EAAE,EAAE,CAChC,CAAO,OAAe,EAAwB,EAAE;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC;QAC7B,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,OAAO,CAAC,aAAa,OAAO,EAAE,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAgB,IAAI,CAAC,MAAM;QACrC,CAAC,CAAC,kCAAkC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAa,EAAE;gBACpC,OAAO;oBACL,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;oBACjC,OAAO,EAAE,IAAI,wBAAS,CAAC,CAAC,CAAC,MAAM,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,wBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,cAAc,EAAE,IAAI,wBAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM;KACP,CAAC;AACJ,CAAC,CAAA,CAAC;AAzBS,QAAA,UAAU,cAyBnB;AAEG,MAAM,oBAAoB,GAC/B,CAAC,OAA2B,EAAE,EAAE,CAAC,GAAyC,EAAE;;IAC1E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC;QAC7B,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC;KACrC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;KAClC,CAAC;AACJ,CAAC,CAAA,CAAC;AAfS,QAAA,oBAAoB,wBAe7B;AAEG,MAAM,oBAAoB,GAC/B,CAAC,OAA2B,EAAE,EAAE,CAChC,CAAO,OAAe,EAAmB,EAAE;IACzC,MAAM,EAAE,IAAI,EAAE,GAA+C,MAAM,OAAO,CAAC;QACzE,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC;QAC7B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE;KACpD,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC,CAAA,CAAC;AAXS,QAAA,oBAAoB,wBAW7B"}
1
+ {"version":3,"file":"algodv2.js","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0EAA6C;AAC7C,iDAA4C;AAC5C,+CAAyC;AAQzC,MAAM,QAAQ,GAAG,IAAA,iBAAM,EAAC,+CAA+C,CAAC,CAAC;AACzE,MAAM,QAAQ,GAAG,GAAG,QAAQ,SAAS,CAAC;AAEtC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;AAa1D,MAAM,UAAU,GAAG,CAAO,OAAe,EAAwB,EAAE;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAO,EAAkB;QAC9C,GAAG,EAAE,OAAO,CAAC,aAAa,OAAO,EAAE,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAgB,IAAI,CAAC,MAAM;QACrC,CAAC,CAAC,kCAAkC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAa,EAAE;gBAC/B,OAAO;oBACL,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;oBACjC,OAAO,EAAE,IAAI,wBAAS,CAAC,CAAC,CAAC,MAAM,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,wBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,cAAc,EAAE,IAAI,wBAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM;KACP,CAAC;AACJ,CAAC,CAAA,CAAC;AAtBW,QAAA,UAAU,cAsBrB;AAYK,MAAM,oBAAoB,GAAG,GAAyC,EAAE;;IAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAO,EAA2B;QACvD,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC;KACrC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;KAClC,CAAC;AACJ,CAAC,CAAA,CAAC;AAbW,QAAA,oBAAoB,wBAa/B;AAIK,MAAM,oBAAoB,GAAG,CAAO,OAAe,EAAmB,EAAE;IAC7E,MAAM,EAAE,IAAI,EAAE,GAA+C,MAAM,IAAA,sBAAO,EAGxE;QACA,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC;QAC7B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE;KACpD,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC,CAAA,CAAC;AAZW,QAAA,oBAAoB,wBAY/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;;0BAGF,MAAM,KAAG,QAAQ,WAAW,CAAC;gCAEzB,QAAQ,qBAAqB,CAAC;oCAExB,MAAM,KAAG,QAAQ,MAAM,CAAC;sCAGtB,MAAM,YAAY,MAAM,KAAG,QAAQ,eAAe,EAAE,CAAC;;AAR/F,wBAUE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;;0BAGF,MAAM,KAAG,QAAQ,WAAW,CAAC;gCAEzB,QAAQ,qBAAqB,CAAC;oCAExB,MAAM,KAAG,QAAQ,MAAM,CAAC;sCAEtB,MAAM,YAAY,MAAM,KAAG,QAAQ,eAAe,EAAE,CAAC;;AAP/F,wBASE"}
package/lib/api/index.js CHANGED
@@ -22,19 +22,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
22
22
  step((generator = generator.apply(thisArg, _arguments || [])).next());
23
23
  });
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const network_1 = __importDefault(require("@ledgerhq/live-network/network"));
30
26
  const algodv2_1 = require("./algodv2");
31
27
  const indexer_1 = require("./indexer");
32
28
  __exportStar(require("./algodv2.types"), exports);
33
29
  __exportStar(require("./indexer.types"), exports);
34
30
  exports.default = {
35
- getAccount: (address) => __awaiter(void 0, void 0, void 0, function* () { return (0, algodv2_1.getAccount)(network_1.default)(address); }),
36
- getTransactionParams: () => __awaiter(void 0, void 0, void 0, function* () { return (0, algodv2_1.getTransactionParams)(network_1.default)(); }),
37
- broadcastTransaction: (payload) => __awaiter(void 0, void 0, void 0, function* () { return (0, algodv2_1.broadcastTransaction)(network_1.default)(payload); }),
38
- getAccountTransactions: (address, startAt) => __awaiter(void 0, void 0, void 0, function* () { return (0, indexer_1.getAccountTransactions)(network_1.default)(address, startAt); }),
31
+ getAccount: (address) => __awaiter(void 0, void 0, void 0, function* () { return (0, algodv2_1.getAccount)(address); }),
32
+ getTransactionParams: () => __awaiter(void 0, void 0, void 0, function* () { return (0, algodv2_1.getTransactionParams)(); }),
33
+ broadcastTransaction: (payload) => __awaiter(void 0, void 0, void 0, function* () { return (0, algodv2_1.broadcastTransaction)(payload); }),
34
+ getAccountTransactions: (address, startAt) => __awaiter(void 0, void 0, void 0, function* () { return (0, indexer_1.getAccountTransactions)(address, startAt); }),
39
35
  };
40
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6EAAqD;AAGrD,uCAAmF;AAEnF,uCAAmD;AAGnD,kDAAgC;AAChC,kDAAgC;AAEhC,kBAAe;IACb,UAAU,EAAE,CAAO,OAAe,EAAwB,EAAE,kDAAC,OAAA,IAAA,oBAAU,EAAC,iBAAO,CAAC,CAAC,OAAO,CAAC,CAAA,GAAA;IAEzF,oBAAoB,EAAE,GAAyC,EAAE,kDAAC,OAAA,IAAA,8BAAoB,EAAC,iBAAO,CAAC,EAAE,CAAA,GAAA;IAEjG,oBAAoB,EAAE,CAAO,OAAe,EAAmB,EAAE,kDAC/D,OAAA,IAAA,8BAAoB,EAAC,iBAAO,CAAC,CAAC,OAAO,CAAC,CAAA,GAAA;IAExC,sBAAsB,EAAE,CAAO,OAAe,EAAE,OAAgB,EAA8B,EAAE,kDAC9F,OAAA,IAAA,gCAAsB,EAAC,iBAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA,GAAA;CACpD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAmF;AAEnF,uCAAmD;AAGnD,kDAAgC;AAChC,kDAAgC;AAEhC,kBAAe;IACb,UAAU,EAAE,CAAO,OAAe,EAAwB,EAAE,kDAAC,OAAA,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAA,GAAA;IAEhF,oBAAoB,EAAE,GAAyC,EAAE,kDAAC,OAAA,IAAA,8BAAoB,GAAE,CAAA,GAAA;IAExF,oBAAoB,EAAE,CAAO,OAAe,EAAmB,EAAE,kDAAC,OAAA,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAA,GAAA;IAE/F,sBAAsB,EAAE,CAAO,OAAe,EAAE,OAAgB,EAA8B,EAAE,kDAC9F,OAAA,IAAA,gCAAsB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA,GAAA;CAC3C,CAAC"}
@@ -1,4 +1,3 @@
1
- import { NetworkRequestCall } from "@ledgerhq/coin-framework/network";
2
1
  import { AlgoTransaction } from "./indexer.types";
3
- export declare const getAccountTransactions: (network: NetworkRequestCall) => (address: string, startAt?: number) => Promise<AlgoTransaction[]>;
2
+ export declare const getAccountTransactions: (address: string, startAt?: number) => Promise<AlgoTransaction[]>;
4
3
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EAGL,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,sBAAsB,YACvB,kBAAkB,eACZ,MAAM,YAAY,MAAM,KAAG,QAAQ,eAAe,EAAE,CA4BnE,CAAC"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAoFzB,eAAO,MAAM,sBAAsB,YACxB,MAAM,YACL,MAAM,KACf,QAAQ,eAAe,EAAE,CA2B3B,CAAC"}
@@ -8,15 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.getAccountTransactions = void 0;
16
+ const live_network_1 = __importDefault(require("@ledgerhq/live-network"));
13
17
  const live_env_1 = require("@ledgerhq/live-env");
14
18
  const bignumber_js_1 = require("bignumber.js");
15
19
  const LIMIT = 100; // Max nb of transactions per request
16
20
  const BASE_URL = (0, live_env_1.getEnv)("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
17
21
  const INDEXER_URL = `${BASE_URL}/idx2/v2`;
18
22
  const fullUrl = (route) => `${INDEXER_URL}${route}?limit=${LIMIT}`;
19
- const getAccountTransactions = (network) => (address, startAt) => __awaiter(void 0, void 0, void 0, function* () {
23
+ const getAccountTransactions = (address, startAt) => __awaiter(void 0, void 0, void 0, function* () {
20
24
  const url = fullUrl(`/accounts/${address}/transactions`);
21
25
  let nextToken;
22
26
  let newRawTxs = [];
@@ -29,8 +33,7 @@ const getAccountTransactions = (network) => (address, startAt) => __awaiter(void
29
33
  if (nextToken) {
30
34
  nextUrl = nextUrl.concat(`&next=${nextToken}`);
31
35
  }
32
- const { data } = yield network({
33
- method: "GET",
36
+ const { data } = yield (0, live_network_1.default)({
34
37
  url: nextUrl,
35
38
  });
36
39
  // FIXME: what is the correct type? Properly type response from api above (data)
@@ -46,6 +49,7 @@ exports.getAccountTransactions = getAccountTransactions;
46
49
  const parseRawTransaction = (tx) => {
47
50
  let details = undefined;
48
51
  if (tx["tx-type"] === "pay") {
52
+ // If "tx-type" is "pay", we know we received a "payment-transaction"
49
53
  const info = tx["payment-transaction"];
50
54
  const paymentInfo = {
51
55
  amount: new bignumber_js_1.BigNumber(info.amount),
@@ -56,20 +60,21 @@ const parseRawTransaction = (tx) => {
56
60
  details = paymentInfo;
57
61
  }
58
62
  else if (tx["tx-type"] === "axfer") {
63
+ // If "tx-type" is "axfer", we know we received a "asset-transfer-transaction"
59
64
  const info = tx["asset-transfer-transaction"];
60
65
  const assetTransferInfo = {
61
66
  assetAmount: new bignumber_js_1.BigNumber(info.amount),
62
- assetId: info["asset-id"],
67
+ assetId: info["asset-id"].toString(),
63
68
  assetRecipientAddress: info.receiver,
64
- assetSenderAddress: info.sender,
69
+ assetSenderAddress: tx.sender,
65
70
  assetCloseAmount: info["close-amount"] === undefined ? undefined : new bignumber_js_1.BigNumber(info["close-amount"]),
66
- assetCloseToAddress: tx["close-to"],
71
+ assetCloseToAddress: info["close-to"],
67
72
  };
68
73
  details = assetTransferInfo;
69
74
  }
70
75
  return {
71
76
  id: tx.id,
72
- timestamp: tx["round-time"],
77
+ timestamp: tx["round-time"].toString(),
73
78
  round: tx["confirmed-round"],
74
79
  senderAddress: tx.sender,
75
80
  senderRewards: new bignumber_js_1.BigNumber(tx["sender-rewards"]),
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
- import { NetworkRequestCall } from "@ledgerhq/coin-framework/network";
3
2
  import { AlgoAccount, AlgoTransactionParams } from "./algodv2.types";
4
- export declare const getAccount: (network: NetworkRequestCall) => (address: string) => Promise<AlgoAccount>;
5
- export declare const getTransactionParams: (network: NetworkRequestCall) => () => Promise<AlgoTransactionParams>;
6
- export declare const broadcastTransaction: (network: NetworkRequestCall) => (payload: Buffer) => Promise<string>;
3
+ export declare const getAccount: (address: string) => Promise<AlgoAccount>;
4
+ export declare const getTransactionParams: () => Promise<AlgoTransactionParams>;
5
+ export declare const broadcastTransaction: (payload: Buffer) => Promise<string>;
7
6
  //# sourceMappingURL=algodv2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"algodv2.d.ts","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EACL,WAAW,EAGX,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAOzB,eAAO,MAAM,UAAU,YACX,kBAAkB,eACZ,MAAM,KAAG,QAAQ,WAAW,CAuB3C,CAAC;AAEJ,eAAO,MAAM,oBAAoB,YACrB,kBAAkB,WAAe,QAAQ,qBAAqB,CAcvE,CAAC;AAEJ,eAAO,MAAM,oBAAoB,YACrB,kBAAkB,eACZ,MAAM,KAAG,QAAQ,MAAM,CAStC,CAAC"}
1
+ {"version":3,"file":"algodv2.d.ts","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";AAGA,OAAO,EACL,WAAW,EAGX,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAkBzB,eAAO,MAAM,UAAU,YAAmB,MAAM,KAAG,QAAQ,WAAW,CAsBrE,CAAC;AAYF,eAAO,MAAM,oBAAoB,QAAa,QAAQ,qBAAqB,CAa1E,CAAC;AAIF,eAAO,MAAM,oBAAoB,YAAmB,MAAM,KAAG,QAAQ,MAAM,CAY1E,CAAC"}
@@ -7,14 +7,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import network from "@ledgerhq/live-network";
10
11
  import { getEnv } from "@ledgerhq/live-env";
11
12
  import { BigNumber } from "bignumber.js";
12
13
  const BASE_URL = getEnv("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
13
14
  const NODE_URL = `${BASE_URL}/ps2/v2`;
14
15
  const fullUrl = (route) => `${NODE_URL}${route}`;
15
- export const getAccount = (network) => (address) => __awaiter(void 0, void 0, void 0, function* () {
16
+ export const getAccount = (address) => __awaiter(void 0, void 0, void 0, function* () {
16
17
  const { data } = yield network({
17
- method: "GET",
18
18
  url: fullUrl(`/accounts/${address}`),
19
19
  });
20
20
  const assets = data.assets
@@ -34,10 +34,9 @@ export const getAccount = (network) => (address) => __awaiter(void 0, void 0, vo
34
34
  assets,
35
35
  };
36
36
  });
37
- export const getTransactionParams = (network) => () => __awaiter(void 0, void 0, void 0, function* () {
37
+ export const getTransactionParams = () => __awaiter(void 0, void 0, void 0, function* () {
38
38
  var _a;
39
39
  const { data } = yield network({
40
- method: "GET",
41
40
  url: fullUrl(`/transactions/params`),
42
41
  });
43
42
  return {
@@ -49,7 +48,7 @@ export const getTransactionParams = (network) => () => __awaiter(void 0, void 0,
49
48
  genesisHash: data["genesis-hash"],
50
49
  };
51
50
  });
52
- export const broadcastTransaction = (network) => (payload) => __awaiter(void 0, void 0, void 0, function* () {
51
+ export const broadcastTransaction = (payload) => __awaiter(void 0, void 0, void 0, function* () {
53
52
  const { data } = yield network({
54
53
  method: "POST",
55
54
  url: fullUrl(`/transactions`),
@@ -1 +1 @@
1
- {"version":3,"file":"algodv2.js","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC,MAAM,QAAQ,GAAG,MAAM,CAAC,+CAA+C,CAAC,CAAC;AACzE,MAAM,QAAQ,GAAG,GAAG,QAAQ,SAAS,CAAC;AAEtC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;AAEjE,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,OAA2B,EAAE,EAAE,CAChC,CAAO,OAAe,EAAwB,EAAE;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC;QAC7B,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,OAAO,CAAC,aAAa,OAAO,EAAE,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAgB,IAAI,CAAC,MAAM;QACrC,CAAC,CAAC,kCAAkC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAa,EAAE;gBACpC,OAAO;oBACL,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;oBACjC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,cAAc,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM;KACP,CAAC;AACJ,CAAC,CAAA,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAC/B,CAAC,OAA2B,EAAE,EAAE,CAAC,GAAyC,EAAE;;IAC1E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC;QAC7B,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC;KACrC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;KAClC,CAAC;AACJ,CAAC,CAAA,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAC/B,CAAC,OAA2B,EAAE,EAAE,CAChC,CAAO,OAAe,EAAmB,EAAE;IACzC,MAAM,EAAE,IAAI,EAAE,GAA+C,MAAM,OAAO,CAAC;QACzE,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC;QAC7B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE;KACpD,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"algodv2.js","sourceRoot":"","sources":["../../src/api/algodv2.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC,MAAM,QAAQ,GAAG,MAAM,CAAC,+CAA+C,CAAC,CAAC;AACzE,MAAM,QAAQ,GAAG,GAAG,QAAQ,SAAS,CAAC;AAEtC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;AAajE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAO,OAAe,EAAwB,EAAE;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAkB;QAC9C,GAAG,EAAE,OAAO,CAAC,aAAa,OAAO,EAAE,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAgB,IAAI,CAAC,MAAM;QACrC,CAAC,CAAC,kCAAkC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAa,EAAE;gBAC/B,OAAO;oBACL,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;oBACjC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,cAAc,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM;KACP,CAAC;AACJ,CAAC,CAAA,CAAC;AAYF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAyC,EAAE;;IAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAA2B;QACvD,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC;KACrC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;QAC7B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;KAClC,CAAC;AACJ,CAAC,CAAA,CAAC;AAIF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAO,OAAe,EAAmB,EAAE;IAC7E,MAAM,EAAE,IAAI,EAAE,GAA+C,MAAM,OAAO,CAGxE;QACA,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC;QAC7B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE;KACpD,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC,CAAA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;;0BAGF,MAAM,KAAG,QAAQ,WAAW,CAAC;gCAEzB,QAAQ,qBAAqB,CAAC;oCAExB,MAAM,KAAG,QAAQ,MAAM,CAAC;sCAGtB,MAAM,YAAY,MAAM,KAAG,QAAQ,eAAe,EAAE,CAAC;;AAR/F,wBAUE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;;0BAGF,MAAM,KAAG,QAAQ,WAAW,CAAC;gCAEzB,QAAQ,qBAAqB,CAAC;oCAExB,MAAM,KAAG,QAAQ,MAAM,CAAC;sCAEtB,MAAM,YAAY,MAAM,KAAG,QAAQ,eAAe,EAAE,CAAC;;AAP/F,wBASE"}
@@ -7,15 +7,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import network from "@ledgerhq/live-network/network";
11
10
  import { broadcastTransaction, getAccount, getTransactionParams } from "./algodv2";
12
11
  import { getAccountTransactions } from "./indexer";
13
12
  export * from "./algodv2.types";
14
13
  export * from "./indexer.types";
15
14
  export default {
16
- getAccount: (address) => __awaiter(void 0, void 0, void 0, function* () { return getAccount(network)(address); }),
17
- getTransactionParams: () => __awaiter(void 0, void 0, void 0, function* () { return getTransactionParams(network)(); }),
18
- broadcastTransaction: (payload) => __awaiter(void 0, void 0, void 0, function* () { return broadcastTransaction(network)(payload); }),
19
- getAccountTransactions: (address, startAt) => __awaiter(void 0, void 0, void 0, function* () { return getAccountTransactions(network)(address, startAt); }),
15
+ getAccount: (address) => __awaiter(void 0, void 0, void 0, function* () { return getAccount(address); }),
16
+ getTransactionParams: () => __awaiter(void 0, void 0, void 0, function* () { return getTransactionParams(); }),
17
+ broadcastTransaction: (payload) => __awaiter(void 0, void 0, void 0, function* () { return broadcastTransaction(payload); }),
18
+ getAccountTransactions: (address, startAt) => __awaiter(void 0, void 0, void 0, function* () { return getAccountTransactions(address, startAt); }),
20
19
  };
21
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAGrD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,eAAe;IACb,UAAU,EAAE,CAAO,OAAe,EAAwB,EAAE,kDAAC,OAAA,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA,GAAA;IAEzF,oBAAoB,EAAE,GAAyC,EAAE,kDAAC,OAAA,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAA,GAAA;IAEjG,oBAAoB,EAAE,CAAO,OAAe,EAAmB,EAAE,kDAC/D,OAAA,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA,GAAA;IAExC,sBAAsB,EAAE,CAAO,OAAe,EAAE,OAAgB,EAA8B,EAAE,kDAC9F,OAAA,sBAAsB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA,GAAA;CACpD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,eAAe;IACb,UAAU,EAAE,CAAO,OAAe,EAAwB,EAAE,kDAAC,OAAA,UAAU,CAAC,OAAO,CAAC,CAAA,GAAA;IAEhF,oBAAoB,EAAE,GAAyC,EAAE,kDAAC,OAAA,oBAAoB,EAAE,CAAA,GAAA;IAExF,oBAAoB,EAAE,CAAO,OAAe,EAAmB,EAAE,kDAAC,OAAA,oBAAoB,CAAC,OAAO,CAAC,CAAA,GAAA;IAE/F,sBAAsB,EAAE,CAAO,OAAe,EAAE,OAAgB,EAA8B,EAAE,kDAC9F,OAAA,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA,GAAA;CAC3C,CAAC"}
@@ -1,4 +1,3 @@
1
- import { NetworkRequestCall } from "@ledgerhq/coin-framework/network";
2
1
  import { AlgoTransaction } from "./indexer.types";
3
- export declare const getAccountTransactions: (network: NetworkRequestCall) => (address: string, startAt?: number) => Promise<AlgoTransaction[]>;
2
+ export declare const getAccountTransactions: (address: string, startAt?: number) => Promise<AlgoTransaction[]>;
4
3
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EAGL,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,sBAAsB,YACvB,kBAAkB,eACZ,MAAM,YAAY,MAAM,KAAG,QAAQ,eAAe,EAAE,CA4BnE,CAAC"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAoFzB,eAAO,MAAM,sBAAsB,YACxB,MAAM,YACL,MAAM,KACf,QAAQ,eAAe,EAAE,CA2B3B,CAAC"}
@@ -7,13 +7,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import network from "@ledgerhq/live-network";
10
11
  import { getEnv } from "@ledgerhq/live-env";
11
12
  import { BigNumber } from "bignumber.js";
12
13
  const LIMIT = 100; // Max nb of transactions per request
13
14
  const BASE_URL = getEnv("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
14
15
  const INDEXER_URL = `${BASE_URL}/idx2/v2`;
15
16
  const fullUrl = (route) => `${INDEXER_URL}${route}?limit=${LIMIT}`;
16
- export const getAccountTransactions = (network) => (address, startAt) => __awaiter(void 0, void 0, void 0, function* () {
17
+ export const getAccountTransactions = (address, startAt) => __awaiter(void 0, void 0, void 0, function* () {
17
18
  const url = fullUrl(`/accounts/${address}/transactions`);
18
19
  let nextToken;
19
20
  let newRawTxs = [];
@@ -27,7 +28,6 @@ export const getAccountTransactions = (network) => (address, startAt) => __await
27
28
  nextUrl = nextUrl.concat(`&next=${nextToken}`);
28
29
  }
29
30
  const { data } = yield network({
30
- method: "GET",
31
31
  url: nextUrl,
32
32
  });
33
33
  // FIXME: what is the correct type? Properly type response from api above (data)
@@ -42,6 +42,7 @@ export const getAccountTransactions = (network) => (address, startAt) => __await
42
42
  const parseRawTransaction = (tx) => {
43
43
  let details = undefined;
44
44
  if (tx["tx-type"] === "pay") {
45
+ // If "tx-type" is "pay", we know we received a "payment-transaction"
45
46
  const info = tx["payment-transaction"];
46
47
  const paymentInfo = {
47
48
  amount: new BigNumber(info.amount),
@@ -52,20 +53,21 @@ const parseRawTransaction = (tx) => {
52
53
  details = paymentInfo;
53
54
  }
54
55
  else if (tx["tx-type"] === "axfer") {
56
+ // If "tx-type" is "axfer", we know we received a "asset-transfer-transaction"
55
57
  const info = tx["asset-transfer-transaction"];
56
58
  const assetTransferInfo = {
57
59
  assetAmount: new BigNumber(info.amount),
58
- assetId: info["asset-id"],
60
+ assetId: info["asset-id"].toString(),
59
61
  assetRecipientAddress: info.receiver,
60
- assetSenderAddress: info.sender,
62
+ assetSenderAddress: tx.sender,
61
63
  assetCloseAmount: info["close-amount"] === undefined ? undefined : new BigNumber(info["close-amount"]),
62
- assetCloseToAddress: tx["close-to"],
64
+ assetCloseToAddress: info["close-to"],
63
65
  };
64
66
  details = assetTransferInfo;
65
67
  }
66
68
  return {
67
69
  id: tx.id,
68
- timestamp: tx["round-time"],
70
+ timestamp: tx["round-time"].toString(),
69
71
  round: tx["confirmed-round"],
70
72
  senderAddress: tx.sender,
71
73
  senderRewards: new BigNumber(tx["sender-rewards"]),
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/api/indexer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-algorand",
3
- "version": "0.5.7",
3
+ "version": "0.5.8-next.0",
4
4
  "description": "Ledger Algorand Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -52,15 +52,15 @@
52
52
  "lodash": "^4.17.21",
53
53
  "prando": "^6.0.1",
54
54
  "rxjs": "^7.8.1",
55
- "@ledgerhq/coin-framework": "^0.18.2",
56
- "@ledgerhq/cryptoassets": "^13.6.0",
55
+ "@ledgerhq/coin-framework": "^0.18.3-next.0",
56
+ "@ledgerhq/cryptoassets": "^13.6.1-next.0",
57
57
  "@ledgerhq/devices": "^8.4.4",
58
58
  "@ledgerhq/errors": "^6.19.1",
59
- "@ledgerhq/live-env": "^2.3.0",
60
- "@ledgerhq/live-network": "^2.0.1",
59
+ "@ledgerhq/live-env": "^2.4.0-next.0",
60
+ "@ledgerhq/live-network": "^2.0.2-next.0",
61
61
  "@ledgerhq/live-promise": "^0.1.0",
62
62
  "@ledgerhq/types-cryptoassets": "^7.16.0",
63
- "@ledgerhq/types-live": "^6.52.0"
63
+ "@ledgerhq/types-live": "^6.52.1-next.0"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/invariant": "^2.2.2",
@@ -1,4 +1,4 @@
1
- import { NetworkRequestCall } from "@ledgerhq/coin-framework/network";
1
+ import network from "@ledgerhq/live-network";
2
2
  import { getEnv } from "@ledgerhq/live-env";
3
3
  import { BigNumber } from "bignumber.js";
4
4
  import {
@@ -13,59 +13,78 @@ const NODE_URL = `${BASE_URL}/ps2/v2`;
13
13
 
14
14
  const fullUrl = (route: string): string => `${NODE_URL}${route}`;
15
15
 
16
- export const getAccount =
17
- (network: NetworkRequestCall) =>
18
- async (address: string): Promise<AlgoAccount> => {
19
- const { data } = await network({
20
- method: "GET",
21
- url: fullUrl(`/accounts/${address}`),
22
- });
16
+ type ExplorerAccount = {
17
+ assets: {
18
+ "asset-id": number;
19
+ amount: number;
20
+ }[];
21
+ round: number;
22
+ address: string;
23
+ amount: number;
24
+ "pending-rewards": number;
25
+ };
23
26
 
24
- const assets: AlgoAsset[] = data.assets
25
- ? // FIXME: what is the type of `a`?
26
- data.assets.map((a: any): AlgoAsset => {
27
- return {
28
- assetId: a["asset-id"].toString(),
29
- balance: new BigNumber(a.amount),
30
- };
31
- })
32
- : [];
27
+ export const getAccount = async (address: string): Promise<AlgoAccount> => {
28
+ const { data } = await network<ExplorerAccount>({
29
+ url: fullUrl(`/accounts/${address}`),
30
+ });
33
31
 
34
- return {
35
- round: data.round,
36
- address: data.address,
37
- balance: new BigNumber(data.amount),
38
- pendingRewards: new BigNumber(data["pending-rewards"]),
39
- assets,
40
- };
32
+ const assets: AlgoAsset[] = data.assets
33
+ ? // FIXME: what is the type of `a`?
34
+ data.assets.map((a): AlgoAsset => {
35
+ return {
36
+ assetId: a["asset-id"].toString(),
37
+ balance: new BigNumber(a.amount),
38
+ };
39
+ })
40
+ : [];
41
+
42
+ return {
43
+ round: data.round,
44
+ address: data.address,
45
+ balance: new BigNumber(data.amount),
46
+ pendingRewards: new BigNumber(data["pending-rewards"]),
47
+ assets,
41
48
  };
49
+ };
50
+
51
+ type ExplorerTransactioParams = {
52
+ "consensus-version": string;
53
+ fee: number;
54
+ "genesis-hash": string;
55
+ "genesis-id": string;
56
+ "first-round"?: number;
57
+ "last-round": number;
58
+ "min-fee": number;
59
+ };
42
60
 
43
- export const getTransactionParams =
44
- (network: NetworkRequestCall) => async (): Promise<AlgoTransactionParams> => {
45
- const { data } = await network({
46
- method: "GET",
47
- url: fullUrl(`/transactions/params`),
48
- });
61
+ export const getTransactionParams = async (): Promise<AlgoTransactionParams> => {
62
+ const { data } = await network<ExplorerTransactioParams>({
63
+ url: fullUrl(`/transactions/params`),
64
+ });
49
65
 
50
- return {
51
- fee: data["fee"],
52
- minFee: data["min-fee"],
53
- firstRound: data["first-round"] ?? 0,
54
- lastRound: data["last-round"],
55
- genesisID: data["genesis-id"],
56
- genesisHash: data["genesis-hash"],
57
- };
66
+ return {
67
+ fee: data["fee"],
68
+ minFee: data["min-fee"],
69
+ firstRound: data["first-round"] ?? 0,
70
+ lastRound: data["last-round"],
71
+ genesisID: data["genesis-id"],
72
+ genesisHash: data["genesis-hash"],
58
73
  };
74
+ };
59
75
 
60
- export const broadcastTransaction =
61
- (network: NetworkRequestCall) =>
62
- async (payload: Buffer): Promise<string> => {
63
- const { data }: { data: AlgoTransactionBroadcastResponse } = await network({
64
- method: "POST",
65
- url: fullUrl(`/transactions`),
66
- data: payload,
67
- headers: { "Content-Type": "application/x-binary" },
68
- });
76
+ type ExplorerBroadcastReturn = { txId: string };
69
77
 
70
- return data.txId;
71
- };
78
+ export const broadcastTransaction = async (payload: Buffer): Promise<string> => {
79
+ const { data }: { data: AlgoTransactionBroadcastResponse } = await network<
80
+ ExplorerBroadcastReturn,
81
+ Buffer
82
+ >({
83
+ method: "POST",
84
+ url: fullUrl(`/transactions`),
85
+ data: payload,
86
+ headers: { "Content-Type": "application/x-binary" },
87
+ });
88
+
89
+ return data.txId;
90
+ };
package/src/api/index.ts CHANGED
@@ -1,4 +1,3 @@
1
- import network from "@ledgerhq/live-network/network";
2
1
  import { AlgoAccount, AlgoTransactionParams } from "./algodv2.types";
3
2
 
4
3
  import { broadcastTransaction, getAccount, getTransactionParams } from "./algodv2";
@@ -10,13 +9,12 @@ export * from "./algodv2.types";
10
9
  export * from "./indexer.types";
11
10
 
12
11
  export default {
13
- getAccount: async (address: string): Promise<AlgoAccount> => getAccount(network)(address),
12
+ getAccount: async (address: string): Promise<AlgoAccount> => getAccount(address),
14
13
 
15
- getTransactionParams: async (): Promise<AlgoTransactionParams> => getTransactionParams(network)(),
14
+ getTransactionParams: async (): Promise<AlgoTransactionParams> => getTransactionParams(),
16
15
 
17
- broadcastTransaction: async (payload: Buffer): Promise<string> =>
18
- broadcastTransaction(network)(payload),
16
+ broadcastTransaction: async (payload: Buffer): Promise<string> => broadcastTransaction(payload),
19
17
 
20
18
  getAccountTransactions: async (address: string, startAt?: number): Promise<AlgoTransaction[]> =>
21
- getAccountTransactions(network)(address, startAt),
19
+ getAccountTransactions(address, startAt),
22
20
  };
@@ -1,4 +1,4 @@
1
- import { NetworkRequestCall } from "@ledgerhq/coin-framework/network";
1
+ import network from "@ledgerhq/live-network";
2
2
  import { getEnv } from "@ledgerhq/live-env";
3
3
  import { BigNumber } from "bignumber.js";
4
4
  import {
@@ -15,42 +15,118 @@ const INDEXER_URL = `${BASE_URL}/idx2/v2`;
15
15
 
16
16
  const fullUrl = (route: string): string => `${INDEXER_URL}${route}?limit=${LIMIT}`;
17
17
 
18
- export const getAccountTransactions =
19
- (network: NetworkRequestCall) =>
20
- async (address: string, startAt?: number): Promise<AlgoTransaction[]> => {
21
- const url = fullUrl(`/accounts/${address}/transactions`);
18
+ type ExplorerTransactions = {
19
+ "current-round": number;
20
+ "next-token": string;
21
+ transactions: ExplorerTransaction[];
22
+ };
22
23
 
23
- let nextToken: string | undefined;
24
- let newRawTxs: any[] = [];
25
- const mergedTxs: AlgoTransaction[] = [];
26
- do {
27
- let nextUrl: string = url;
28
- if (startAt) {
29
- nextUrl = nextUrl.concat(`&min-round=${startAt}`);
30
- }
31
- if (nextToken) {
32
- nextUrl = nextUrl.concat(`&next=${nextToken}`);
33
- }
34
- const { data }: { data: { transactions: any[] } } = await network({
35
- method: "GET",
36
- url: nextUrl,
37
- });
24
+ type ExplorerTransaction = {
25
+ "application-transaction"?: {
26
+ accounts: string[];
27
+ "application-args": string[];
28
+ "application-id": number;
29
+ "foreign-apps": unknown[];
30
+ "foreign-assets": number[];
31
+ "global-state-schema": {
32
+ "num-byte-slice": number;
33
+ "num-uint": number;
34
+ };
35
+ "local-state-schema": {
36
+ "num-byte-slice": number;
37
+ "num-uint": number;
38
+ };
39
+ "on-completion": string;
40
+ };
41
+ "asset-transfer-transaction"?: {
42
+ amount: number;
43
+ "asset-id": number;
44
+ "close-amount": number;
45
+ "close-to"?: string;
46
+ receiver: string;
47
+ };
48
+ "close-rewards": number;
49
+ "closing-amount": number;
50
+ "confirmed-round": number;
51
+ fee: number;
52
+ "first-valid": number;
53
+ "genesis-hash": string;
54
+ "genesis-id": string;
55
+ "global-state-delta": {
56
+ key: string;
57
+ value: {
58
+ action: number;
59
+ uint: number;
60
+ bytes?: string;
61
+ };
62
+ }[];
63
+ id: string;
64
+ "intra-round-offset": number;
65
+ "last-valid": number;
66
+ "local-state-delta": {
67
+ address: string;
68
+ delta: {
69
+ key: string;
70
+ value: {
71
+ action: number;
72
+ uint: number;
73
+ };
74
+ }[];
75
+ }[];
76
+ note: string;
77
+ "payment-transaction"?: {
78
+ amount: number;
79
+ "close-amount": number;
80
+ "close-remainder-to"?: string;
81
+ receiver: string;
82
+ };
83
+ "receiver-rewards": number;
84
+ "round-time": number;
85
+ sender: string;
86
+ "sender-rewards": number;
87
+ signature: {
88
+ sig: string;
89
+ };
90
+ "tx-type": string;
91
+ };
38
92
 
39
- // FIXME: what is the correct type? Properly type response from api above (data)
40
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
41
- // @ts-ignore
42
- nextToken = data["next-token"];
43
- newRawTxs = data.transactions;
44
- newRawTxs.map(parseRawTransaction).forEach(tx => mergedTxs.push(tx));
45
- } while (newRawTxs.length >= LIMIT);
93
+ export const getAccountTransactions = async (
94
+ address: string,
95
+ startAt?: number,
96
+ ): Promise<AlgoTransaction[]> => {
97
+ const url = fullUrl(`/accounts/${address}/transactions`);
46
98
 
47
- return mergedTxs;
48
- };
99
+ let nextToken: string | undefined;
100
+ let newRawTxs: any[] = [];
101
+ const mergedTxs: AlgoTransaction[] = [];
102
+ do {
103
+ let nextUrl: string = url;
104
+ if (startAt) {
105
+ nextUrl = nextUrl.concat(`&min-round=${startAt}`);
106
+ }
107
+ if (nextToken) {
108
+ nextUrl = nextUrl.concat(`&next=${nextToken}`);
109
+ }
110
+ const { data }: { data: { transactions: any[] } } = await network<ExplorerTransactions>({
111
+ url: nextUrl,
112
+ });
113
+
114
+ // FIXME: what is the correct type? Properly type response from api above (data)
115
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
116
+ // @ts-ignore
117
+ nextToken = data["next-token"];
118
+ newRawTxs = data.transactions;
119
+ newRawTxs.map(parseRawTransaction).forEach(tx => mergedTxs.push(tx));
120
+ } while (newRawTxs.length >= LIMIT);
121
+
122
+ return mergedTxs;
123
+ };
49
124
 
50
- const parseRawTransaction = (tx: any): AlgoTransaction => {
125
+ const parseRawTransaction = (tx: ExplorerTransaction): AlgoTransaction => {
51
126
  let details: AlgoTransactionDetails | undefined = undefined;
52
127
  if (tx["tx-type"] === "pay") {
53
- const info = tx["payment-transaction"];
128
+ // If "tx-type" is "pay", we know we received a "payment-transaction"
129
+ const info = tx["payment-transaction"]!;
54
130
  const paymentInfo: AlgoPaymentInfo = {
55
131
  amount: new BigNumber(info.amount),
56
132
  recipientAddress: info.receiver,
@@ -60,22 +136,23 @@ const parseRawTransaction = (tx: any): AlgoTransaction => {
60
136
  };
61
137
  details = paymentInfo;
62
138
  } else if (tx["tx-type"] === "axfer") {
63
- const info = tx["asset-transfer-transaction"];
139
+ // If "tx-type" is "axfer", we know we received a "asset-transfer-transaction"
140
+ const info = tx["asset-transfer-transaction"]!;
64
141
  const assetTransferInfo: AlgoAssetTransferInfo = {
65
142
  assetAmount: new BigNumber(info.amount),
66
- assetId: info["asset-id"],
143
+ assetId: info["asset-id"].toString(),
67
144
  assetRecipientAddress: info.receiver,
68
- assetSenderAddress: info.sender,
145
+ assetSenderAddress: tx.sender,
69
146
  assetCloseAmount:
70
147
  info["close-amount"] === undefined ? undefined : new BigNumber(info["close-amount"]),
71
- assetCloseToAddress: tx["close-to"],
148
+ assetCloseToAddress: info["close-to"],
72
149
  };
73
150
  details = assetTransferInfo;
74
151
  }
75
152
 
76
153
  return {
77
154
  id: tx.id,
78
- timestamp: tx["round-time"],
155
+ timestamp: tx["round-time"].toString(),
79
156
  round: tx["confirmed-round"],
80
157
  senderAddress: tx.sender,
81
158
  senderRewards: new BigNumber(tx["sender-rewards"]),