@ledgerhq/coin-algorand 0.15.0-nightly.20251211024123 → 0.15.0-nightly.20251213023821

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,22 +1,24 @@
1
1
  # @ledgerhq/coin-algorand
2
2
 
3
- ## 0.15.0-nightly.20251211024123
3
+ ## 0.15.0-nightly.20251213023821
4
4
 
5
5
  ### Minor Changes
6
6
 
7
+ - [#12967](https://github.com/LedgerHQ/ledger-live/pull/12967) [`5e8d6be`](https://github.com/LedgerHQ/ledger-live/commit/5e8d6be609dd37c48d747890e56189e0716d5273) Thanks [@Moustafa-Koterba](https://github.com/Moustafa-Koterba)! - Validate address implementation on all currencies
8
+
7
9
  - [#13155](https://github.com/LedgerHQ/ledger-live/pull/13155) [`aadb3d5`](https://github.com/LedgerHQ/ledger-live/commit/aadb3d57f5719cc2cc397975eafec8094b160afe) Thanks [@gre-ledger](https://github.com/gre-ledger)! - rxjs@7.8.2 everywhere
8
10
 
9
11
  ### Patch Changes
10
12
 
11
- - Updated dependencies [[`480a08a`](https://github.com/LedgerHQ/ledger-live/commit/480a08ae190119829910b46ecc6d2a9fb11bb7c2), [`19a54fd`](https://github.com/LedgerHQ/ledger-live/commit/19a54fd89a2d3c7481aebc28817870875f9d44dc), [`bc76d51`](https://github.com/LedgerHQ/ledger-live/commit/bc76d5154d35f8340b6b282c4909cd26920b8d40), [`7ae71b6`](https://github.com/LedgerHQ/ledger-live/commit/7ae71b64161424b398b63f77da5127085143fcdc), [`5fa83e4`](https://github.com/LedgerHQ/ledger-live/commit/5fa83e49c5fb103da7ecf0777b7e75bb35d5ed61), [`c5da2ce`](https://github.com/LedgerHQ/ledger-live/commit/c5da2cef7cded2b53c1af9aa3174cd27e5c92e0a), [`450f518`](https://github.com/LedgerHQ/ledger-live/commit/450f518d4cedb828c5fe1e7ccffaabd483f53226), [`30be235`](https://github.com/LedgerHQ/ledger-live/commit/30be2354822b3497c69322294ff1dab43375be50), [`bdacedf`](https://github.com/LedgerHQ/ledger-live/commit/bdacedfe32bea8ffce96ab675a44c0d7cf395143), [`768718d`](https://github.com/LedgerHQ/ledger-live/commit/768718df029bc8799b88c0299925dc56302b0c53), [`a5ad7d4`](https://github.com/LedgerHQ/ledger-live/commit/a5ad7d4578c06db3e40f260451b644c27e20cb62), [`3e70677`](https://github.com/LedgerHQ/ledger-live/commit/3e706774f8c4e9b768ab18b67abc3471cf61b6b6), [`aadb3d5`](https://github.com/LedgerHQ/ledger-live/commit/aadb3d57f5719cc2cc397975eafec8094b160afe), [`e44d216`](https://github.com/LedgerHQ/ledger-live/commit/e44d216d516df87e13f033ed64fedc1ce96380f4), [`d4bad44`](https://github.com/LedgerHQ/ledger-live/commit/d4bad4433c3fb083d95820d2927a9e8beeaf244f), [`8d8e1b7`](https://github.com/LedgerHQ/ledger-live/commit/8d8e1b7bb26305af326ea21710248223d1e8653b), [`07de7a8`](https://github.com/LedgerHQ/ledger-live/commit/07de7a87415ae4d1126e751d6a4d521ced3065e3), [`d37fa4b`](https://github.com/LedgerHQ/ledger-live/commit/d37fa4baf4534161bffe5033ce44fc7780c79d89), [`5e0556a`](https://github.com/LedgerHQ/ledger-live/commit/5e0556a3bd0ea60277462eed10c997b17b09d299), [`bce6610`](https://github.com/LedgerHQ/ledger-live/commit/bce6610ca8554a85f8f17b6014e921fdecd3fa4f), [`2a60165`](https://github.com/LedgerHQ/ledger-live/commit/2a601656b7a23a424a29f006ec53090648fdae4f), [`2d9f320`](https://github.com/LedgerHQ/ledger-live/commit/2d9f32087eea12ae9d5ea2347b277b8bf4e60f55), [`c56ab86`](https://github.com/LedgerHQ/ledger-live/commit/c56ab86ab65597caf87a09b7596faa54f3104bd4)]:
12
- - @ledgerhq/coin-framework@6.11.0-nightly.20251211024123
13
- - @ledgerhq/types-live@6.91.0-nightly.20251211024123
14
- - @ledgerhq/cryptoassets@13.35.0-nightly.20251211024123
15
- - @ledgerhq/errors@6.28.0-nightly.20251211024123
16
- - @ledgerhq/live-env@2.23.0-nightly.20251211024123
17
- - @ledgerhq/devices@8.8.0-nightly.20251211024123
18
- - @ledgerhq/types-cryptoassets@7.31.0-nightly.20251211024123
19
- - @ledgerhq/live-network@2.1.3-nightly.20251211024123
13
+ - Updated dependencies [[`480a08a`](https://github.com/LedgerHQ/ledger-live/commit/480a08ae190119829910b46ecc6d2a9fb11bb7c2), [`19a54fd`](https://github.com/LedgerHQ/ledger-live/commit/19a54fd89a2d3c7481aebc28817870875f9d44dc), [`e63194f`](https://github.com/LedgerHQ/ledger-live/commit/e63194f7dbd5ff2b0135c26aac3842a2be676b0a), [`bc76d51`](https://github.com/LedgerHQ/ledger-live/commit/bc76d5154d35f8340b6b282c4909cd26920b8d40), [`4be69a7`](https://github.com/LedgerHQ/ledger-live/commit/4be69a71dcd7624a1cba8dd1b1847ef009eb2d83), [`7ae71b6`](https://github.com/LedgerHQ/ledger-live/commit/7ae71b64161424b398b63f77da5127085143fcdc), [`5fa83e4`](https://github.com/LedgerHQ/ledger-live/commit/5fa83e49c5fb103da7ecf0777b7e75bb35d5ed61), [`c5da2ce`](https://github.com/LedgerHQ/ledger-live/commit/c5da2cef7cded2b53c1af9aa3174cd27e5c92e0a), [`450f518`](https://github.com/LedgerHQ/ledger-live/commit/450f518d4cedb828c5fe1e7ccffaabd483f53226), [`30be235`](https://github.com/LedgerHQ/ledger-live/commit/30be2354822b3497c69322294ff1dab43375be50), [`bdacedf`](https://github.com/LedgerHQ/ledger-live/commit/bdacedfe32bea8ffce96ab675a44c0d7cf395143), [`5e8d6be`](https://github.com/LedgerHQ/ledger-live/commit/5e8d6be609dd37c48d747890e56189e0716d5273), [`768718d`](https://github.com/LedgerHQ/ledger-live/commit/768718df029bc8799b88c0299925dc56302b0c53), [`a5ad7d4`](https://github.com/LedgerHQ/ledger-live/commit/a5ad7d4578c06db3e40f260451b644c27e20cb62), [`3e70677`](https://github.com/LedgerHQ/ledger-live/commit/3e706774f8c4e9b768ab18b67abc3471cf61b6b6), [`aadb3d5`](https://github.com/LedgerHQ/ledger-live/commit/aadb3d57f5719cc2cc397975eafec8094b160afe), [`e44d216`](https://github.com/LedgerHQ/ledger-live/commit/e44d216d516df87e13f033ed64fedc1ce96380f4), [`d4bad44`](https://github.com/LedgerHQ/ledger-live/commit/d4bad4433c3fb083d95820d2927a9e8beeaf244f), [`8d8e1b7`](https://github.com/LedgerHQ/ledger-live/commit/8d8e1b7bb26305af326ea21710248223d1e8653b), [`07de7a8`](https://github.com/LedgerHQ/ledger-live/commit/07de7a87415ae4d1126e751d6a4d521ced3065e3), [`d37fa4b`](https://github.com/LedgerHQ/ledger-live/commit/d37fa4baf4534161bffe5033ce44fc7780c79d89), [`5e0556a`](https://github.com/LedgerHQ/ledger-live/commit/5e0556a3bd0ea60277462eed10c997b17b09d299), [`bce6610`](https://github.com/LedgerHQ/ledger-live/commit/bce6610ca8554a85f8f17b6014e921fdecd3fa4f), [`2a60165`](https://github.com/LedgerHQ/ledger-live/commit/2a601656b7a23a424a29f006ec53090648fdae4f), [`2d9f320`](https://github.com/LedgerHQ/ledger-live/commit/2d9f32087eea12ae9d5ea2347b277b8bf4e60f55), [`c56ab86`](https://github.com/LedgerHQ/ledger-live/commit/c56ab86ab65597caf87a09b7596faa54f3104bd4)]:
14
+ - @ledgerhq/coin-framework@6.11.0-nightly.20251213023821
15
+ - @ledgerhq/types-live@6.91.0-nightly.20251213023821
16
+ - @ledgerhq/cryptoassets@13.35.0-nightly.20251213023821
17
+ - @ledgerhq/errors@6.28.0-nightly.20251213023821
18
+ - @ledgerhq/live-env@2.23.0-nightly.20251213023821
19
+ - @ledgerhq/devices@8.8.0-nightly.20251213023821
20
+ - @ledgerhq/types-cryptoassets@7.31.0-nightly.20251213023821
21
+ - @ledgerhq/live-network@2.1.3-nightly.20251213023821
20
22
 
21
23
  ## 0.14.0
22
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASnG,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAU3C,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,cAAc,CAahG;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAC3C,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CA4BnF;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;;;EAKzE"}
1
+ {"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASnG,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAW3C,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,cAAc,CAahG;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAC3C,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CA6BnF;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;;;EAKzE"}
package/lib/bridge/js.js CHANGED
@@ -17,6 +17,7 @@ const initAccount_1 = require("../initAccount");
17
17
  const broadcast_1 = require("../broadcast");
18
18
  const hw_getAddress_1 = __importDefault(require("../hw-getAddress"));
19
19
  const serialization_1 = require("../serialization");
20
+ const validateAddress_1 = require("../validateAddress");
20
21
  function buildCurrencyBridge(signerContext) {
21
22
  const getAddress = (0, hw_getAddress_1.default)(signerContext);
22
23
  const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
@@ -55,6 +56,7 @@ function buildAccountBridge(signerContext) {
55
56
  formatAccountSpecifics: formatters_1.default.formatAccountSpecifics,
56
57
  formatOperationSpecifics: formatters_1.default.formatOperationSpecifics,
57
58
  getSerializedAddressParameters: jsHelpers_1.getSerializedAddressParameters,
59
+ validateAddress: validateAddress_1.validateAddress,
58
60
  };
59
61
  }
60
62
  exports.buildAccountBridge = buildAccountBridge;
@@ -1 +1 @@
1
- {"version":3,"file":"js.js","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":";;;;;;AAAA,yEAKmD;AAGnD,0GAAkF;AAElF,kEAA+D;AAC/D,+DAAuC;AACvC,kEAA+D;AAC/D,wDAA2D;AAC3D,8DAA2D;AAC3D,4DAAyD;AACzD,oDAAsD;AACtD,gDAA6C;AAE7C,4CAAyC;AACzC,qEAAwC;AACxC,oDAK0B;AAE1B,SAAgB,mBAAmB,CAAC,aAA4C;IAC9E,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,IAAA,4BAAgB,EAAC;QACpC,eAAe,EAAf,iCAAe;QACf,YAAY,EAAE,UAAU;KACzB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,YAAY;KACb,CAAC;AACJ,CAAC;AAbD,kDAaC;AAED,SAAgB,kBAAkB,CAChC,aAA4C;IAE5C,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAA,oCAAwB,EAAC,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,IAAA,kCAAkB,EAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACL,iBAAiB,EAAjB,qCAAiB;QACjB,iBAAiB,EAAjB,6BAAiB;QACjB,kBAAkB,EAAlB,uCAAkB;QAClB,oBAAoB,EAApB,2CAAoB;QACpB,IAAI,EAAJ,sBAAI;QACJ,OAAO;QACP,kBAAkB,EAAlB,kCAAkB;QAClB,oBAAoB,EAApB,oCAAoB;QACpB,WAAW,EAAX,yBAAW;QACX,aAAa;QACb,gBAAgB,EAAE,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,EAAT,qBAAS;QACT,oBAAoB,EAApB,2CAAoB;QACpB,qBAAqB,EAArB,qCAAqB;QACrB,mBAAmB,EAAnB,mCAAmB;QACnB,sBAAsB,EAAE,oBAAU,CAAC,sBAAsB;QACzD,wBAAwB,EAAE,oBAAU,CAAC,wBAAwB;QAC7D,8BAA8B,EAA9B,0CAA8B;KAC/B,CAAC;AACJ,CAAC;AA9BD,gDA8BC;AAED,SAAgB,aAAa,CAAC,aAA4C;IACxE,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC;AALD,sCAKC"}
1
+ {"version":3,"file":"js.js","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":";;;;;;AAAA,yEAKmD;AAGnD,0GAAkF;AAElF,kEAA+D;AAC/D,+DAAuC;AACvC,kEAA+D;AAC/D,wDAA2D;AAC3D,8DAA2D;AAC3D,4DAAyD;AACzD,oDAAsD;AACtD,gDAA6C;AAE7C,4CAAyC;AACzC,qEAAwC;AACxC,oDAK0B;AAC1B,wDAAqD;AAErD,SAAgB,mBAAmB,CAAC,aAA4C;IAC9E,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,IAAA,4BAAgB,EAAC;QACpC,eAAe,EAAf,iCAAe;QACf,YAAY,EAAE,UAAU;KACzB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,YAAY;KACb,CAAC;AACJ,CAAC;AAbD,kDAaC;AAED,SAAgB,kBAAkB,CAChC,aAA4C;IAE5C,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAA,oCAAwB,EAAC,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,IAAA,kCAAkB,EAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACL,iBAAiB,EAAjB,qCAAiB;QACjB,iBAAiB,EAAjB,6BAAiB;QACjB,kBAAkB,EAAlB,uCAAkB;QAClB,oBAAoB,EAApB,2CAAoB;QACpB,IAAI,EAAJ,sBAAI;QACJ,OAAO;QACP,kBAAkB,EAAlB,kCAAkB;QAClB,oBAAoB,EAApB,oCAAoB;QACpB,WAAW,EAAX,yBAAW;QACX,aAAa;QACb,gBAAgB,EAAE,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,EAAT,qBAAS;QACT,oBAAoB,EAApB,2CAAoB;QACpB,qBAAqB,EAArB,qCAAqB;QACrB,mBAAmB,EAAnB,mCAAmB;QACnB,sBAAsB,EAAE,oBAAU,CAAC,sBAAsB;QACzD,wBAAwB,EAAE,oBAAU,CAAC,wBAAwB;QAC7D,8BAA8B,EAA9B,0CAA8B;QAC9B,eAAe,EAAf,iCAAe;KAChB,CAAC;AACJ,CAAC;AA/BD,gDA+BC;AAED,SAAgB,aAAa,CAAC,aAA4C;IACxE,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC;AALD,sCAKC"}
@@ -0,0 +1,3 @@
1
+ import type { AddressValidationCurrencyParameters } from "@ledgerhq/types-live";
2
+ export declare function validateAddress(address: string, _parameters: Partial<AddressValidationCurrencyParameters>): Promise<boolean>;
3
+ //# sourceMappingURL=validateAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.d.ts","sourceRoot":"","sources":["../src/validateAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAGhF,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,CAAC,mCAAmC,CAAC,GACxD,OAAO,CAAC,OAAO,CAAC,CAElB"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAddress = void 0;
4
+ const algosdk_1 = require("algosdk");
5
+ async function validateAddress(address, _parameters) {
6
+ return (0, algosdk_1.isValidAddress)(address);
7
+ }
8
+ exports.validateAddress = validateAddress;
9
+ //# sourceMappingURL=validateAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.js","sourceRoot":"","sources":["../src/validateAddress.ts"],"names":[],"mappings":";;;AACA,qCAAyC;AAElC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,WAAyD;IAEzD,OAAO,IAAA,wBAAc,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AALD,0CAKC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validateAddress.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.test.d.ts","sourceRoot":"","sources":["../src/validateAddress.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const algosdk_1 = require("algosdk");
4
+ const validateAddress_1 = require("./validateAddress");
5
+ jest.mock("algosdk");
6
+ describe("validateAddress", () => {
7
+ const mockedIsValidAddress = jest.mocked(algosdk_1.isValidAddress);
8
+ beforeEach(() => {
9
+ mockedIsValidAddress.mockClear();
10
+ });
11
+ it.each([true, false])("should call isValidAddress from algosdk and return expected value (%s)", async (expectedValue) => {
12
+ mockedIsValidAddress.mockReturnValueOnce(expectedValue);
13
+ const address = "some random address";
14
+ const parameters = {};
15
+ const result = await (0, validateAddress_1.validateAddress)(address, parameters);
16
+ expect(result).toEqual(expectedValue);
17
+ expect(mockedIsValidAddress).toHaveBeenCalledTimes(1);
18
+ expect(mockedIsValidAddress).toHaveBeenCalledWith(address);
19
+ });
20
+ });
21
+ //# sourceMappingURL=validateAddress.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.test.js","sourceRoot":"","sources":["../src/validateAddress.test.ts"],"names":[],"mappings":";;AAAA,qCAAyC;AACzC,uDAAoD;AAEpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAErB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,wBAAc,CAAC,CAAC;IAEzD,UAAU,CAAC,GAAG,EAAE;QACd,oBAAoB,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CACpB,wEAAwE,EACxE,KAAK,EAAE,aAAsB,EAAE,EAAE;QAC/B,oBAAoB,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAe,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAEtC,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASnG,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAU3C,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,cAAc,CAahG;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAC3C,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CA4BnF;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;;;EAKzE"}
1
+ {"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASnG,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAW3C,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,cAAc,CAahG;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,GAC3C,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CA6BnF;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC;;;EAKzE"}
@@ -11,6 +11,7 @@ import { initAccount } from "../initAccount";
11
11
  import { broadcast } from "../broadcast";
12
12
  import resolver from "../hw-getAddress";
13
13
  import { assignFromAccountRaw, assignToAccountRaw, fromOperationExtraRaw, toOperationExtraRaw, } from "../serialization";
14
+ import { validateAddress } from "../validateAddress";
14
15
  export function buildCurrencyBridge(signerContext) {
15
16
  const getAddress = resolver(signerContext);
16
17
  const scanAccounts = makeScanAccounts({
@@ -48,6 +49,7 @@ export function buildAccountBridge(signerContext) {
48
49
  formatAccountSpecifics: formatters.formatAccountSpecifics,
49
50
  formatOperationSpecifics: formatters.formatOperationSpecifics,
50
51
  getSerializedAddressParameters,
52
+ validateAddress,
51
53
  };
52
54
  }
53
55
  export function createBridges(signerContext) {
@@ -1 +1 @@
1
- {"version":3,"file":"js.js","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,iBAAiB,MAAM,mDAAmD,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,mBAAmB,CAAC,aAA4C;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,gBAAgB,CAAC;QACpC,eAAe;QACf,YAAY,EAAE,UAAU;KACzB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,aAA4C;IAE5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACL,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,IAAI;QACJ,OAAO;QACP,kBAAkB;QAClB,oBAAoB;QACpB,WAAW;QACX,aAAa;QACb,gBAAgB,EAAE,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,SAAS;QACT,oBAAoB;QACpB,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;QACzD,wBAAwB,EAAE,UAAU,CAAC,wBAAwB;QAC7D,8BAA8B;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAA4C;IACxE,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"js.js","sourceRoot":"","sources":["../../src/bridge/js.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,iBAAiB,MAAM,mDAAmD,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,UAAU,mBAAmB,CAAC,aAA4C;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,gBAAgB,CAAC;QACpC,eAAe;QACf,YAAY,EAAE,UAAU;KACzB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,aAA4C;IAE5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACL,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,IAAI;QACJ,OAAO;QACP,kBAAkB;QAClB,oBAAoB;QACpB,WAAW;QACX,aAAa;QACb,gBAAgB,EAAE,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,SAAS;QACT,oBAAoB;QACpB,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;QACzD,wBAAwB,EAAE,UAAU,CAAC,wBAAwB;QAC7D,8BAA8B;QAC9B,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAA4C;IACxE,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AddressValidationCurrencyParameters } from "@ledgerhq/types-live";
2
+ export declare function validateAddress(address: string, _parameters: Partial<AddressValidationCurrencyParameters>): Promise<boolean>;
3
+ //# sourceMappingURL=validateAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.d.ts","sourceRoot":"","sources":["../src/validateAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAGhF,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,CAAC,mCAAmC,CAAC,GACxD,OAAO,CAAC,OAAO,CAAC,CAElB"}
@@ -0,0 +1,5 @@
1
+ import { isValidAddress } from "algosdk";
2
+ export async function validateAddress(address, _parameters) {
3
+ return isValidAddress(address);
4
+ }
5
+ //# sourceMappingURL=validateAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.js","sourceRoot":"","sources":["../src/validateAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,WAAyD;IAEzD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validateAddress.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.test.d.ts","sourceRoot":"","sources":["../src/validateAddress.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { isValidAddress } from "algosdk";
2
+ import { validateAddress } from "./validateAddress";
3
+ jest.mock("algosdk");
4
+ describe("validateAddress", () => {
5
+ const mockedIsValidAddress = jest.mocked(isValidAddress);
6
+ beforeEach(() => {
7
+ mockedIsValidAddress.mockClear();
8
+ });
9
+ it.each([true, false])("should call isValidAddress from algosdk and return expected value (%s)", async (expectedValue) => {
10
+ mockedIsValidAddress.mockReturnValueOnce(expectedValue);
11
+ const address = "some random address";
12
+ const parameters = {};
13
+ const result = await validateAddress(address, parameters);
14
+ expect(result).toEqual(expectedValue);
15
+ expect(mockedIsValidAddress).toHaveBeenCalledTimes(1);
16
+ expect(mockedIsValidAddress).toHaveBeenCalledWith(address);
17
+ });
18
+ });
19
+ //# sourceMappingURL=validateAddress.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAddress.test.js","sourceRoot":"","sources":["../src/validateAddress.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAErB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzD,UAAU,CAAC,GAAG,EAAE;QACd,oBAAoB,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CACpB,wEAAwE,EACxE,KAAK,EAAE,aAAsB,EAAE,EAAE;QAC/B,oBAAoB,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAEtC,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-algorand",
3
- "version": "0.15.0-nightly.20251211024123",
3
+ "version": "0.15.0-nightly.20251213023821",
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.2",
55
- "@ledgerhq/coin-framework": "^6.11.0-nightly.20251211024123",
56
- "@ledgerhq/cryptoassets": "^13.35.0-nightly.20251211024123",
57
- "@ledgerhq/devices": "8.8.0-nightly.20251211024123",
58
- "@ledgerhq/errors": "^6.28.0-nightly.20251211024123",
59
- "@ledgerhq/live-env": "^2.23.0-nightly.20251211024123",
60
- "@ledgerhq/live-network": "^2.1.3-nightly.20251211024123",
55
+ "@ledgerhq/coin-framework": "^6.11.0-nightly.20251213023821",
56
+ "@ledgerhq/cryptoassets": "^13.35.0-nightly.20251213023821",
57
+ "@ledgerhq/devices": "8.8.0-nightly.20251213023821",
58
+ "@ledgerhq/errors": "^6.28.0-nightly.20251213023821",
59
+ "@ledgerhq/live-env": "^2.23.0-nightly.20251213023821",
60
+ "@ledgerhq/live-network": "^2.1.3-nightly.20251213023821",
61
61
  "@ledgerhq/live-promise": "^0.1.1",
62
- "@ledgerhq/types-cryptoassets": "^7.31.0-nightly.20251211024123",
63
- "@ledgerhq/types-live": "^6.91.0-nightly.20251211024123"
62
+ "@ledgerhq/types-cryptoassets": "^7.31.0-nightly.20251213023821",
63
+ "@ledgerhq/types-live": "^6.91.0-nightly.20251213023821"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/invariant": "^2.2.2",
package/src/bridge/js.ts CHANGED
@@ -25,6 +25,7 @@ import {
25
25
  fromOperationExtraRaw,
26
26
  toOperationExtraRaw,
27
27
  } from "../serialization";
28
+ import { validateAddress } from "../validateAddress";
28
29
 
29
30
  export function buildCurrencyBridge(signerContext: SignerContext<AlgorandSigner>): CurrencyBridge {
30
31
  const getAddress = resolver(signerContext);
@@ -70,6 +71,7 @@ export function buildAccountBridge(
70
71
  formatAccountSpecifics: formatters.formatAccountSpecifics,
71
72
  formatOperationSpecifics: formatters.formatOperationSpecifics,
72
73
  getSerializedAddressParameters,
74
+ validateAddress,
73
75
  };
74
76
  }
75
77
 
@@ -0,0 +1,27 @@
1
+ import { isValidAddress } from "algosdk";
2
+ import { validateAddress } from "./validateAddress";
3
+
4
+ jest.mock("algosdk");
5
+
6
+ describe("validateAddress", () => {
7
+ const mockedIsValidAddress = jest.mocked(isValidAddress);
8
+
9
+ beforeEach(() => {
10
+ mockedIsValidAddress.mockClear();
11
+ });
12
+
13
+ it.each([true, false])(
14
+ "should call isValidAddress from algosdk and return expected value (%s)",
15
+ async (expectedValue: boolean) => {
16
+ mockedIsValidAddress.mockReturnValueOnce(expectedValue);
17
+
18
+ const address = "some random address";
19
+ const parameters = {};
20
+ const result = await validateAddress(address, parameters);
21
+ expect(result).toEqual(expectedValue);
22
+
23
+ expect(mockedIsValidAddress).toHaveBeenCalledTimes(1);
24
+ expect(mockedIsValidAddress).toHaveBeenCalledWith(address);
25
+ },
26
+ );
27
+ });
@@ -0,0 +1,9 @@
1
+ import type { AddressValidationCurrencyParameters } from "@ledgerhq/types-live";
2
+ import { isValidAddress } from "algosdk";
3
+
4
+ export async function validateAddress(
5
+ address: string,
6
+ _parameters: Partial<AddressValidationCurrencyParameters>,
7
+ ): Promise<boolean> {
8
+ return isValidAddress(address);
9
+ }