@ledgerhq/coin-canton 0.3.0 → 0.4.0-nightly.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/.env.integ.test.example +2 -2
- package/.eslintrc.js +1 -0
- package/.unimportedrc.json +5 -10
- package/CHANGELOG.md +17 -0
- package/README.md +11 -0
- package/jest.config.js +1 -0
- package/lib/api/getBalance.integ.test.d.ts +2 -0
- package/lib/api/getBalance.integ.test.d.ts.map +1 -0
- package/lib/api/getBalance.integ.test.js +24 -0
- package/lib/api/getBalance.integ.test.js.map +1 -0
- package/lib/api/lastBlock.integ.test.d.ts +2 -0
- package/lib/api/lastBlock.integ.test.d.ts.map +1 -0
- package/lib/api/lastBlock.integ.test.js +35 -0
- package/lib/api/lastBlock.integ.test.js.map +1 -0
- package/lib/bridge/createTransaction.test.js +1 -1
- package/lib/bridge/createTransaction.test.js.map +1 -1
- package/lib/bridge/getTransactionStatus.js +1 -1
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/sync.d.ts.map +1 -1
- package/lib/bridge/sync.js +3 -3
- package/lib/bridge/sync.js.map +1 -1
- package/lib/common-logic/account/getBalance.d.ts +1 -1
- package/lib/common-logic/account/getBalance.d.ts.map +1 -1
- package/lib/common-logic/account/getBalance.js +21 -5
- package/lib/common-logic/account/getBalance.js.map +1 -1
- package/lib/common-logic/account/getBalance.unit.test.d.ts +2 -0
- package/lib/common-logic/account/getBalance.unit.test.d.ts.map +1 -0
- package/lib/common-logic/account/getBalance.unit.test.js +88 -0
- package/lib/common-logic/account/getBalance.unit.test.js.map +1 -0
- package/lib/common-logic/history/lastBlock.d.ts.map +1 -1
- package/lib/common-logic/history/lastBlock.js +7 -4
- package/lib/common-logic/history/lastBlock.js.map +1 -1
- package/lib/common-logic/history/lastBlock.test.d.ts +2 -0
- package/lib/common-logic/history/lastBlock.test.d.ts.map +1 -0
- package/lib/common-logic/history/lastBlock.test.js +43 -0
- package/lib/common-logic/history/lastBlock.test.js.map +1 -0
- package/lib/config.d.ts +11 -5
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/network/gateway.d.ts +77 -0
- package/lib/network/gateway.d.ts.map +1 -0
- package/lib/network/gateway.integ.test.d.ts +2 -0
- package/lib/network/gateway.integ.test.d.ts.map +1 -0
- package/lib/network/gateway.integ.test.js +61 -0
- package/lib/network/gateway.integ.test.js.map +1 -0
- package/lib/network/gateway.js +77 -0
- package/lib/network/gateway.js.map +1 -0
- package/lib/network/node.d.ts +2 -6
- package/lib/network/node.d.ts.map +1 -1
- package/lib/network/node.integ.test.d.ts +2 -0
- package/lib/network/node.integ.test.d.ts.map +1 -0
- package/lib/network/node.integ.test.js +42 -0
- package/lib/network/node.integ.test.js.map +1 -0
- package/lib/network/node.js +47 -24
- package/lib/network/node.js.map +1 -1
- package/lib/network/node.unit.test.d.ts +2 -0
- package/lib/network/node.unit.test.d.ts.map +1 -0
- package/lib/network/node.unit.test.js +31 -0
- package/lib/network/node.unit.test.js.map +1 -0
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib-es/api/getBalance.integ.test.d.ts +2 -0
- package/lib-es/api/getBalance.integ.test.d.ts.map +1 -0
- package/lib-es/api/getBalance.integ.test.js +22 -0
- package/lib-es/api/getBalance.integ.test.js.map +1 -0
- package/lib-es/api/lastBlock.integ.test.d.ts +2 -0
- package/lib-es/api/lastBlock.integ.test.d.ts.map +1 -0
- package/lib-es/api/lastBlock.integ.test.js +33 -0
- package/lib-es/api/lastBlock.integ.test.js.map +1 -0
- package/lib-es/bridge/createTransaction.test.js +1 -1
- package/lib-es/bridge/createTransaction.test.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +1 -1
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/sync.d.ts.map +1 -1
- package/lib-es/bridge/sync.js +4 -4
- package/lib-es/bridge/sync.js.map +1 -1
- package/lib-es/common-logic/account/getBalance.d.ts +1 -1
- package/lib-es/common-logic/account/getBalance.d.ts.map +1 -1
- package/lib-es/common-logic/account/getBalance.js +18 -5
- package/lib-es/common-logic/account/getBalance.js.map +1 -1
- package/lib-es/common-logic/account/getBalance.unit.test.d.ts +2 -0
- package/lib-es/common-logic/account/getBalance.unit.test.d.ts.map +1 -0
- package/lib-es/common-logic/account/getBalance.unit.test.js +53 -0
- package/lib-es/common-logic/account/getBalance.unit.test.js.map +1 -0
- package/lib-es/common-logic/history/lastBlock.d.ts.map +1 -1
- package/lib-es/common-logic/history/lastBlock.js +5 -5
- package/lib-es/common-logic/history/lastBlock.js.map +1 -1
- package/lib-es/common-logic/history/lastBlock.test.d.ts +2 -0
- package/lib-es/common-logic/history/lastBlock.test.d.ts.map +1 -0
- package/lib-es/common-logic/history/lastBlock.test.js +38 -0
- package/lib-es/common-logic/history/lastBlock.test.js.map +1 -0
- package/lib-es/config.d.ts +11 -5
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js.map +1 -1
- package/lib-es/network/gateway.d.ts +77 -0
- package/lib-es/network/gateway.d.ts.map +1 -0
- package/lib-es/network/gateway.integ.test.d.ts +2 -0
- package/lib-es/network/gateway.integ.test.d.ts.map +1 -0
- package/lib-es/network/gateway.integ.test.js +56 -0
- package/lib-es/network/gateway.integ.test.js.map +1 -0
- package/lib-es/network/gateway.js +65 -0
- package/lib-es/network/gateway.js.map +1 -0
- package/lib-es/network/node.d.ts +2 -6
- package/lib-es/network/node.d.ts.map +1 -1
- package/lib-es/network/node.integ.test.d.ts +2 -0
- package/lib-es/network/node.integ.test.d.ts.map +1 -0
- package/lib-es/network/node.integ.test.js +37 -0
- package/lib-es/network/node.integ.test.js.map +1 -0
- package/lib-es/network/node.js +40 -17
- package/lib-es/network/node.js.map +1 -1
- package/lib-es/network/node.unit.test.d.ts +2 -0
- package/lib-es/network/node.unit.test.d.ts.map +1 -0
- package/lib-es/network/node.unit.test.js +26 -0
- package/lib-es/network/node.unit.test.js.map +1 -0
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/api/getBalance.integ.test.ts +28 -0
- package/src/api/lastBlock.integ.test.ts +39 -0
- package/src/bridge/createTransaction.test.ts +1 -1
- package/src/bridge/getTransactionStatus.ts +1 -1
- package/src/bridge/sync.ts +6 -4
- package/src/common-logic/account/getBalance.ts +20 -5
- package/src/common-logic/account/getBalance.unit.test.ts +63 -0
- package/src/common-logic/history/lastBlock.test.ts +47 -0
- package/src/common-logic/history/lastBlock.ts +6 -5
- package/src/config.ts +14 -4
- package/src/network/gateway.integ.test.ts +76 -0
- package/src/network/gateway.ts +168 -0
- package/src/network/node.integ.test.ts +40 -0
- package/src/network/node.ts +45 -23
- package/src/network/node.unit.test.ts +29 -0
- package/src/types/bridge.ts +0 -1
package/.env.integ.test.example
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
DEVNET_JWT = "jwt"
|
|
2
|
+
MAINNET_JWT = "jwt"
|
package/.eslintrc.js
CHANGED
package/.unimportedrc.json
CHANGED
|
@@ -14,16 +14,11 @@
|
|
|
14
14
|
"**/*.mock.ts",
|
|
15
15
|
"**/*.test.{js,jsx,ts,tsx}"
|
|
16
16
|
],
|
|
17
|
-
"ignoreUnresolved": [
|
|
18
|
-
"jest-get-type",
|
|
19
|
-
"jest-matcher-utils",
|
|
20
|
-
"jest-message-util"
|
|
21
|
-
],
|
|
17
|
+
"ignoreUnresolved": ["jest-get-type", "jest-matcher-utils", "jest-message-util"],
|
|
22
18
|
"ignoreUnimported": [
|
|
23
19
|
"src/network/mock-network.ts",
|
|
24
|
-
"src/test/bot-specs.ts"
|
|
20
|
+
"src/test/bot-specs.ts",
|
|
21
|
+
"src/network/gateway.ts"
|
|
25
22
|
],
|
|
26
|
-
"ignoreUnused": [
|
|
27
|
-
|
|
28
|
-
]
|
|
29
|
-
}
|
|
23
|
+
"ignoreUnused": ["@ledgerhq/devices"]
|
|
24
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @ledgerhq/coin-canton
|
|
2
2
|
|
|
3
|
+
## 0.4.0-nightly.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#11509](https://github.com/LedgerHQ/ledger-live/pull/11509) [`12277dc`](https://github.com/LedgerHQ/ledger-live/commit/12277dcb478f24152060e3e11e2eb37d650b5b60) Thanks [@hedi-edelbloute](https://github.com/hedi-edelbloute)! - Canton lastblock + onboarding init
|
|
8
|
+
|
|
9
|
+
- [#11542](https://github.com/LedgerHQ/ledger-live/pull/11542) [`c1209a7`](https://github.com/LedgerHQ/ledger-live/commit/c1209a70f6362fe8a52139ad5ad0b4705aac00fb) Thanks [@hedi-edelbloute](https://github.com/hedi-edelbloute)! - Canton getbalance
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#11531](https://github.com/LedgerHQ/ledger-live/pull/11531) [`58ef394`](https://github.com/LedgerHQ/ledger-live/commit/58ef39468870e56745a3a4bc95a1292a1e1f64ca) Thanks [@hedi-edelbloute](https://github.com/hedi-edelbloute)! - Move lastblock canton to gateway
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [[`12277dc`](https://github.com/LedgerHQ/ledger-live/commit/12277dcb478f24152060e3e11e2eb37d650b5b60)]:
|
|
16
|
+
- @ledgerhq/cryptoassets@13.27.0-nightly.0
|
|
17
|
+
- @ledgerhq/coin-framework@6.2.1-nightly.0
|
|
18
|
+
- @ledgerhq/types-live@6.82.0
|
|
19
|
+
|
|
3
20
|
## 0.3.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
package/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# coin-canton
|
|
2
|
+
|
|
3
|
+
This repository contains the Coin Canton module for Ledger Live.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The Coin Canton module provides support for the Canton blockchain within the Ledger Live application
|
|
8
|
+
|
|
9
|
+
## Test setup
|
|
10
|
+
|
|
11
|
+
Create .env.integ.test file based on .env.integ.test.example
|
package/jest.config.js
CHANGED
|
@@ -11,6 +11,7 @@ module.exports = {
|
|
|
11
11
|
"!src/**/*.spec.ts",
|
|
12
12
|
"!src/test/**/*.ts",
|
|
13
13
|
],
|
|
14
|
+
coveragePathIgnorePatterns: ["/types/"],
|
|
14
15
|
coverageReporters: ["json", ["lcov", { file: "lcov.info", projectRoot: "../../../" }], "text"],
|
|
15
16
|
testPathIgnorePatterns: ["lib/", "lib-es/", ".*\\.integ\\.test\\.[tj]s"],
|
|
16
17
|
workerThreads: true,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBalance.integ.test.d.ts","sourceRoot":"","sources":["../../src/api/getBalance.integ.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const _1 = require(".");
|
|
4
|
+
let api;
|
|
5
|
+
describe("devnet", () => {
|
|
6
|
+
beforeAll(() => {
|
|
7
|
+
api = (0, _1.createApi)({
|
|
8
|
+
nodeUrl: "https://wallet-validator-devnet-canton.ledger-test.com/v2",
|
|
9
|
+
networkType: "devnet",
|
|
10
|
+
gatewayUrl: "https://canton-gateway.api.live.ledger-test.com",
|
|
11
|
+
useGateway: true,
|
|
12
|
+
nativeInstrumentId: "6e9fc50fb94e56751b49f09ba2dc84da53a9d7cff08115ebb4f6b7a12d0c990c:Splice.Amulet:Amulet",
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
describe("getBalance", () => {
|
|
16
|
+
it("should return user balance", async () => {
|
|
17
|
+
const balance = await api.getBalance("party-4f2e1485107adf5f::122027c6dbbbdbffe0fa3122ae05175f3b9328e879e9ce96b670354deb64a45683c1");
|
|
18
|
+
expect(balance.length).toBeGreaterThanOrEqual(1);
|
|
19
|
+
const nativeBalance = balance.find(b => b.asset.type === "native");
|
|
20
|
+
expect(nativeBalance?.value).toBeGreaterThanOrEqual(0);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=getBalance.integ.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBalance.integ.test.js","sourceRoot":"","sources":["../../src/api/getBalance.integ.test.ts"],"names":[],"mappings":";;AACA,wBAA8B;AAE9B,IAAI,GAAc,CAAC;AAEnB,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,IAAA,YAAS,EAAC;YACd,OAAO,EAAE,2DAA2D;YACpE,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,iDAAiD;YAC7D,UAAU,EAAE,IAAI;YAChB,kBAAkB,EAChB,uFAAuF;SAC1F,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAClC,8FAA8F,CAC/F,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACnE,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lastBlock.integ.test.d.ts","sourceRoot":"","sources":["../../src/api/lastBlock.integ.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const _1 = require(".");
|
|
4
|
+
let api;
|
|
5
|
+
describe.skip("localnet", () => {
|
|
6
|
+
beforeAll(() => {
|
|
7
|
+
api = (0, _1.createApi)({
|
|
8
|
+
nodeUrl: "http://localhost:2975/v2",
|
|
9
|
+
networkType: "localnet",
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
describe("lastBlock", () => {
|
|
13
|
+
it("should return ledger end", async () => {
|
|
14
|
+
const lastBlock = await api.lastBlock();
|
|
15
|
+
expect(lastBlock.height).toBeGreaterThan(0);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe("devnet", () => {
|
|
20
|
+
beforeAll(() => {
|
|
21
|
+
api = (0, _1.createApi)({
|
|
22
|
+
nodeUrl: "https://wallet-validator-devnet-canton.ledger-test.com/v2",
|
|
23
|
+
networkType: "devnet",
|
|
24
|
+
gatewayUrl: "https://canton-gateway.api.live.ledger-test.com",
|
|
25
|
+
useGateway: true,
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe("lastBlock", () => {
|
|
29
|
+
it("should return ledger end", async () => {
|
|
30
|
+
const lastBlock = await api.lastBlock();
|
|
31
|
+
expect(lastBlock.height).toBeGreaterThan(0);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=lastBlock.integ.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lastBlock.integ.test.js","sourceRoot":"","sources":["../../src/api/lastBlock.integ.test.ts"],"names":[],"mappings":";;AACA,wBAA8B;AAG9B,IAAI,GAAc,CAAC;AAEnB,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,IAAA,YAAS,EAAC;YACd,OAAO,EAAE,0BAA0B;YACnC,WAAW,EAAE,UAAU;SACY,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,IAAA,YAAS,EAAC;YACd,OAAO,EAAE,2DAA2D;YACpE,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,iDAAiD;YAC7D,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -6,7 +6,7 @@ describe("createTransaction", () => {
|
|
|
6
6
|
expect((0, createTransaction_1.createTransaction)({}).amount.toNumber()).toEqual(0);
|
|
7
7
|
});
|
|
8
8
|
it("should create a transaction with boilerplate family", () => {
|
|
9
|
-
expect((0, createTransaction_1.createTransaction)({}).family).toEqual("
|
|
9
|
+
expect((0, createTransaction_1.createTransaction)({}).family).toEqual("canton");
|
|
10
10
|
});
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=createTransaction.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/createTransaction.test.ts"],"names":[],"mappings":";;AACA,2DAAwD;AAExD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAA,qCAAiB,EAAC,EAA0B,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,IAAA,qCAAiB,EAAC,EAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"createTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/createTransaction.test.ts"],"names":[],"mappings":";;AACA,2DAAwD;AAExD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAA,qCAAiB,EAAC,EAA0B,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,IAAA,qCAAiB,EAAC,EAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -13,7 +13,7 @@ const getTransactionStatus = async (account, transaction) => {
|
|
|
13
13
|
const errors = {};
|
|
14
14
|
const warnings = {};
|
|
15
15
|
// reserveAmount is the minimum amount of currency that an account must hold in order to stay activated
|
|
16
|
-
const reserveAmount = new bignumber_js_1.default(config_1.default.getCoinConfig().minReserve);
|
|
16
|
+
const reserveAmount = new bignumber_js_1.default(config_1.default.getCoinConfig().minReserve || 0);
|
|
17
17
|
const estimatedFees = new bignumber_js_1.default(transaction.fee || 0);
|
|
18
18
|
const totalSpent = new bignumber_js_1.default(transaction.amount).plus(estimatedFees);
|
|
19
19
|
const amount = new bignumber_js_1.default(transaction.amount);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":";;;;;;AAAA,6CAU0B;AAC1B,gEAAqC;AAErC,qEAA+E;AAE/E,iDAAyD;AACzD,uDAAmC;AAE5B,MAAM,oBAAoB,GAIL,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACzD,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,uGAAuG;IACvG,MAAM,aAAa,GAAG,IAAI,sBAAS,CAAC,gBAAU,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"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"}
|
package/lib/bridge/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AA4DtF,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AA4DtF,eAAO,MAAM,eAAe,EAAE,eA4C7B,CAAC"}
|
package/lib/bridge/sync.js
CHANGED
|
@@ -55,12 +55,12 @@ const getAccountShape = async (info) => {
|
|
|
55
55
|
derivationMode,
|
|
56
56
|
});
|
|
57
57
|
// blockheight retrieval
|
|
58
|
-
const blockHeight = await (0, node_1.
|
|
58
|
+
const blockHeight = await (0, node_1.getLedgerEnd)();
|
|
59
59
|
// Account info retrieval + spendable balance calculation
|
|
60
60
|
const accountInfo = await (0, node_1.getAccountInfo)(address);
|
|
61
61
|
const balance = new bignumber_js_1.default(accountInfo.account_data.Balance);
|
|
62
|
-
const reserveMin = config_1.default.getCoinConfig().minReserve;
|
|
63
|
-
const spendableBalance = new bignumber_js_1.default(accountInfo.account_data.Balance).minus(reserveMin);
|
|
62
|
+
const reserveMin = config_1.default.getCoinConfig().minReserve || 0;
|
|
63
|
+
const spendableBalance = new bignumber_js_1.default(accountInfo.account_data.Balance).minus((0, bignumber_js_1.default)(reserveMin));
|
|
64
64
|
// Tx history fetching
|
|
65
65
|
const oldOperations = initialAccount?.operations || [];
|
|
66
66
|
const startAt = oldOperations.length ? (oldOperations[0].blockHeight || 0) + 1 : 0;
|
package/lib/bridge/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAErC,kEAAyE;AACzE,yEAAsF;AACtF,gDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAkB7D,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAIpE"}
|
|
@@ -1,10 +1,26 @@
|
|
|
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.getBalance = getBalance;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const gateway_1 = require("../../network/gateway");
|
|
8
|
+
const config_1 = __importDefault(require("../../config"));
|
|
9
|
+
const useGateway = () => config_1.default.getCoinConfig().useGateway === true;
|
|
10
|
+
const getNativeId = () => config_1.default.getCoinConfig().nativeInstrumentId;
|
|
11
|
+
function adaptInstrument(instrument) {
|
|
12
|
+
return {
|
|
13
|
+
value: BigInt(instrument.amount),
|
|
14
|
+
locked: instrument.locked === true ? BigInt(instrument.amount) : BigInt(0),
|
|
15
|
+
asset: getNativeId() === instrument.instrumentId
|
|
16
|
+
? { type: "native" }
|
|
17
|
+
: { type: "token", assetReference: instrument.instrumentId },
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async function getBalance(partyId) {
|
|
21
|
+
if (useGateway())
|
|
22
|
+
return (await (0, gateway_1.getBalance)(partyId)).map(instrument => adaptInstrument(instrument));
|
|
23
|
+
else
|
|
24
|
+
throw new Error("Not implemented");
|
|
9
25
|
}
|
|
10
26
|
//# sourceMappingURL=getBalance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.ts"],"names":[],"mappings":";;;;;AAkBA,gCAIC;AArBD,mDAAgG;AAChG,0DAAsC;AAEtC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,gBAAU,CAAC,aAAa,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;AACxE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,gBAAU,CAAC,aAAa,EAAE,CAAC,kBAAkB,CAAC;AAExE,SAAS,eAAe,CAAC,UAA6B;IACpD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAChC,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,KAAK,EACH,WAAW,EAAE,KAAK,UAAU,CAAC,YAAY;YACvC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,YAAY,EAAE;KACjE,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,IAAI,UAAU,EAAE;QACd,OAAO,CAAC,MAAM,IAAA,oBAAiB,EAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;;QACtF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBalance.unit.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const gateway_1 = require("../../network/gateway");
|
|
37
|
+
const coinConfigModule = __importStar(require("../../config"));
|
|
38
|
+
const getBalance_1 = require("./getBalance");
|
|
39
|
+
jest.mock("../../network/gateway", () => ({
|
|
40
|
+
getBalance: jest.fn(),
|
|
41
|
+
}));
|
|
42
|
+
describe("getBalance", () => {
|
|
43
|
+
const mockGetCoinConfig = jest.spyOn(coinConfigModule.default, "getCoinConfig");
|
|
44
|
+
afterEach(() => {
|
|
45
|
+
jest.clearAllMocks();
|
|
46
|
+
});
|
|
47
|
+
it("should return adapted balances when useGateway is true", async () => {
|
|
48
|
+
mockGetCoinConfig.mockReturnValue({
|
|
49
|
+
useGateway: true,
|
|
50
|
+
nativeInstrumentId: "native-id",
|
|
51
|
+
});
|
|
52
|
+
const mockInstruments = [
|
|
53
|
+
{
|
|
54
|
+
instrumentId: "native-id",
|
|
55
|
+
amount: "1000",
|
|
56
|
+
locked: false,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
instrumentId: "token-123",
|
|
60
|
+
amount: "5000",
|
|
61
|
+
locked: true,
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
gateway_1.getBalance.mockResolvedValue(mockInstruments);
|
|
65
|
+
const result = await (0, getBalance_1.getBalance)("party-id");
|
|
66
|
+
expect(gateway_1.getBalance).toHaveBeenCalledWith("party-id");
|
|
67
|
+
expect(result).toEqual([
|
|
68
|
+
{
|
|
69
|
+
value: BigInt(1000),
|
|
70
|
+
locked: BigInt(0),
|
|
71
|
+
asset: { type: "native" },
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
value: BigInt(5000),
|
|
75
|
+
locked: BigInt(5000),
|
|
76
|
+
asset: { type: "token", assetReference: "token-123" },
|
|
77
|
+
},
|
|
78
|
+
]);
|
|
79
|
+
});
|
|
80
|
+
it("should throw an error when useGateway is false (not implemented with node)", async () => {
|
|
81
|
+
mockGetCoinConfig.mockReturnValue({
|
|
82
|
+
useGateway: false,
|
|
83
|
+
});
|
|
84
|
+
await expect((0, getBalance_1.getBalance)("party-id")).rejects.toThrow("Not implemented");
|
|
85
|
+
expect(gateway_1.getBalance).not.toHaveBeenCalled();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=getBalance.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBalance.unit.test.js","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.unit.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA4E;AAC5E,+DAAiD;AACjD,6CAA0C;AAG1C,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEhF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,iBAAiB,CAAC,eAAe,CAAC;YAChC,UAAU,EAAE,IAAI;YAChB,kBAAkB,EAAE,WAAW;SACzB,CAAC,CAAC;QAEV,MAAM,eAAe,GAAG;YACtB;gBACE,YAAY,EAAE,WAAW;gBACzB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;aACd;YACD;gBACE,YAAY,EAAE,WAAW;gBACzB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAED,oBAAmC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAExE,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC,UAAU,CAAC,CAAC;QAE5C,MAAM,CAAC,oBAAqB,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAY;YAChC;gBACE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD;gBACE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE;aACtD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,iBAAiB,CAAC,eAAe,CAAC;YAChC,UAAU,EAAE,KAAK;SACX,CAAC,CAAC;QAEV,MAAM,MAAM,CAAC,IAAA,uBAAU,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACxE,MAAM,CAAC,oBAAqB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lastBlock.d.ts","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"lastBlock.d.ts","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAOpE,wBAAsB,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,CAIpD"}
|
|
@@ -1,13 +1,16 @@
|
|
|
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.lastBlock = lastBlock;
|
|
4
7
|
const node_1 = require("../../network/node");
|
|
8
|
+
const gateway_1 = require("../../network/gateway");
|
|
9
|
+
const config_1 = __importDefault(require("../../config"));
|
|
10
|
+
const useGateway = () => config_1.default.getCoinConfig().useGateway === true;
|
|
5
11
|
async function lastBlock() {
|
|
6
|
-
const result = await (0, node_1.getLastBlock)();
|
|
7
12
|
return {
|
|
8
|
-
height:
|
|
9
|
-
hash: result.blockHash,
|
|
10
|
-
time: new Date(result.timestamp),
|
|
13
|
+
height: useGateway() ? await (0, gateway_1.getLedgerEnd)() : await (0, node_1.getLedgerEnd)(),
|
|
11
14
|
};
|
|
12
15
|
}
|
|
13
16
|
//# sourceMappingURL=lastBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lastBlock.js","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lastBlock.js","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.ts"],"names":[],"mappings":";;;;;AAOA,8BAIC;AAVD,6CAAsE;AACtE,mDAAqD;AACrD,0DAAsC;AAEtC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,gBAAU,CAAC,aAAa,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;AAEjE,KAAK,UAAU,SAAS;IAC7B,OAAO;QACL,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,IAAA,sBAAY,GAAE,CAAC,CAAC,CAAC,MAAM,IAAA,mBAAgB,GAAE;KACvE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lastBlock.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const lastBlock_1 = require("./lastBlock");
|
|
7
|
+
const gateway_1 = require("../../network/gateway");
|
|
8
|
+
const node_1 = require("../../network/node");
|
|
9
|
+
jest.mock("../../network/gateway", () => ({
|
|
10
|
+
getLedgerEnd: jest.fn(),
|
|
11
|
+
}));
|
|
12
|
+
jest.mock("../../network/node", () => ({
|
|
13
|
+
getLedgerEnd: jest.fn(),
|
|
14
|
+
}));
|
|
15
|
+
jest.mock("../../config", () => ({
|
|
16
|
+
__esModule: true,
|
|
17
|
+
default: {
|
|
18
|
+
getCoinConfig: jest.fn(),
|
|
19
|
+
},
|
|
20
|
+
}));
|
|
21
|
+
const config_1 = __importDefault(require("../../config"));
|
|
22
|
+
describe("lastBlock", () => {
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
jest.clearAllMocks();
|
|
25
|
+
});
|
|
26
|
+
it("should use gateway.getLedgerEnd when useGateway is true", async () => {
|
|
27
|
+
config_1.default.getCoinConfig.mockReturnValue({ useGateway: true });
|
|
28
|
+
gateway_1.getLedgerEnd.mockResolvedValue(100);
|
|
29
|
+
const result = await (0, lastBlock_1.lastBlock)();
|
|
30
|
+
expect(result).toEqual({ height: 100 });
|
|
31
|
+
expect(gateway_1.getLedgerEnd).toHaveBeenCalledTimes(1);
|
|
32
|
+
expect(node_1.getLedgerEnd).not.toHaveBeenCalled();
|
|
33
|
+
});
|
|
34
|
+
it("should use node.getLedgerEnd when useGateway is false", async () => {
|
|
35
|
+
config_1.default.getCoinConfig.mockReturnValue({ useGateway: false });
|
|
36
|
+
node_1.getLedgerEnd.mockResolvedValue(200);
|
|
37
|
+
const result = await (0, lastBlock_1.lastBlock)();
|
|
38
|
+
expect(result).toEqual({ height: 200 });
|
|
39
|
+
expect(node_1.getLedgerEnd).toHaveBeenCalledTimes(1);
|
|
40
|
+
expect(gateway_1.getLedgerEnd).not.toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=lastBlock.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lastBlock.test.js","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAwC;AACxC,mDAA4E;AAC5E,6CAAsE;AAEtE,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AACJ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;KACzB;CACF,CAAC,CAAC,CAAC;AAEJ,0DAAsC;AAEtC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACtE,gBAAU,CAAC,aAA2B,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,sBAAiC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,sBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,mBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACpE,gBAAU,CAAC,aAA2B,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,mBAA8B,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,mBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,sBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/config.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import { type CurrencyConfig } from "@ledgerhq/coin-framework/config";
|
|
1
|
+
import { CoinConfig, type CurrencyConfig } from "@ledgerhq/coin-framework/config";
|
|
2
|
+
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
2
3
|
export type CantonConfig = {
|
|
3
|
-
nodeUrl
|
|
4
|
-
|
|
4
|
+
nodeUrl?: string;
|
|
5
|
+
nodeId?: string;
|
|
6
|
+
gatewayUrl?: string;
|
|
7
|
+
minReserve?: number;
|
|
8
|
+
networkType: "mainnet" | "devnet" | "localnet";
|
|
9
|
+
useGateway?: boolean;
|
|
10
|
+
nativeInstrumentId?: string;
|
|
5
11
|
};
|
|
6
12
|
export type CantonCoinConfig = CurrencyConfig & CantonConfig;
|
|
7
13
|
declare const coinConfig: {
|
|
8
|
-
setCoinConfig: (config:
|
|
9
|
-
getCoinConfig: (currency?:
|
|
14
|
+
setCoinConfig: (config: CoinConfig<CantonCoinConfig>) => void;
|
|
15
|
+
getCoinConfig: (currency?: CryptoCurrency) => CantonCoinConfig;
|
|
10
16
|
};
|
|
11
17
|
export default coinConfig;
|
|
12
18
|
//# sourceMappingURL=config.d.ts.map
|
package/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAwB,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,YAAY,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE;IAChB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC9D,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,cAAc,KAAK,gBAAgB,CAAC;CAC1B,CAAC;AAExC,eAAe,UAAU,CAAC"}
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAAA,6EAAmG;AAgBnG,MAAM,UAAU,GAGZ,IAAA,gBAAe,GAAoB,CAAC;AAExC,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
type OnboardingPrepareResponse = {
|
|
2
|
+
party_id: string;
|
|
3
|
+
party_name: string;
|
|
4
|
+
public_key_fingerprint: string;
|
|
5
|
+
topology_transactions_hash: string;
|
|
6
|
+
};
|
|
7
|
+
type OnboardingPrepareRequest = {
|
|
8
|
+
public_key: string;
|
|
9
|
+
public_key_type: string;
|
|
10
|
+
};
|
|
11
|
+
type OnboardingSubmitResponse = {
|
|
12
|
+
party: {
|
|
13
|
+
party_id: string;
|
|
14
|
+
public_key: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type InstrumentBalance = {
|
|
18
|
+
instrumentId: string;
|
|
19
|
+
amount: number;
|
|
20
|
+
locked: boolean;
|
|
21
|
+
};
|
|
22
|
+
type PartyInfo = {
|
|
23
|
+
party_id: string;
|
|
24
|
+
public_key: string;
|
|
25
|
+
};
|
|
26
|
+
type Timestamp = {
|
|
27
|
+
seconds: number;
|
|
28
|
+
nanos: number;
|
|
29
|
+
};
|
|
30
|
+
type BaseEvent = {
|
|
31
|
+
type: string;
|
|
32
|
+
contractId: string;
|
|
33
|
+
details: string;
|
|
34
|
+
};
|
|
35
|
+
type CreatedEvent = BaseEvent & {
|
|
36
|
+
templateId: {
|
|
37
|
+
packageId: string;
|
|
38
|
+
moduleName: string;
|
|
39
|
+
entityName: string;
|
|
40
|
+
};
|
|
41
|
+
signatories: string[];
|
|
42
|
+
observers: string[];
|
|
43
|
+
};
|
|
44
|
+
type ExercisedEvent = BaseEvent & {
|
|
45
|
+
templateId: {
|
|
46
|
+
packageId: string;
|
|
47
|
+
moduleName: string;
|
|
48
|
+
entityName: string;
|
|
49
|
+
};
|
|
50
|
+
choice: string;
|
|
51
|
+
consuming: boolean;
|
|
52
|
+
actingParties: string[];
|
|
53
|
+
};
|
|
54
|
+
type Event = BaseEvent | CreatedEvent | ExercisedEvent;
|
|
55
|
+
type TxInfo = {
|
|
56
|
+
updateId: string;
|
|
57
|
+
commandId: string;
|
|
58
|
+
workflowId: string;
|
|
59
|
+
effectiveAt: Timestamp;
|
|
60
|
+
offset: number;
|
|
61
|
+
synchronizerId: string;
|
|
62
|
+
recordTime: Timestamp;
|
|
63
|
+
events: Event[];
|
|
64
|
+
traceContext: string;
|
|
65
|
+
};
|
|
66
|
+
export declare function prepareOnboarding(pubKey: string, pubKeyType: string): Promise<OnboardingPrepareResponse>;
|
|
67
|
+
export declare function submitOnboarding(prepareRequest: OnboardingPrepareRequest, prepareResponse: OnboardingPrepareResponse, signature: string): Promise<OnboardingSubmitResponse>;
|
|
68
|
+
export declare function getBalance(partyId: string): Promise<InstrumentBalance[]>;
|
|
69
|
+
export declare function getPartyById(partyId: string): Promise<PartyInfo>;
|
|
70
|
+
export declare function getPartyByPubKey(pubKey: string): Promise<PartyInfo>;
|
|
71
|
+
export declare function getTransactions(partyId: string): Promise<{
|
|
72
|
+
next: number;
|
|
73
|
+
transactions: TxInfo[];
|
|
74
|
+
}>;
|
|
75
|
+
export declare function getLedgerEnd(): Promise<number>;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"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"}
|