@ledgerhq/coin-canton 0.5.0-nightly.3 → 0.5.0-nightly.5
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +24 -0
- package/lib/api/getBalance.integ.test.js +8 -4
- package/lib/api/getBalance.integ.test.js.map +1 -1
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +20 -28
- package/lib/api/index.js.map +1 -1
- package/lib/api/lastBlock.integ.test.js +1 -1
- package/lib/api/lastBlock.integ.test.js.map +1 -1
- package/lib/api/listOperations.integ.test.js +1 -1
- package/lib/api/listOperations.integ.test.js.map +1 -1
- package/lib/bridge/broadcast.d.ts.map +1 -1
- package/lib/bridge/broadcast.js +2 -2
- package/lib/bridge/broadcast.js.map +1 -1
- package/lib/bridge/broadcast.test.js +9 -0
- package/lib/bridge/broadcast.test.js.map +1 -1
- package/lib/bridge/createTransaction.js +1 -1
- package/lib/bridge/createTransaction.js.map +1 -1
- package/lib/bridge/getTransactionStatus.js +1 -1
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/index.d.ts.map +1 -1
- package/lib/bridge/index.js +3 -0
- package/lib/bridge/index.js.map +1 -1
- package/lib/bridge/onboard.d.ts +7 -5
- package/lib/bridge/onboard.d.ts.map +1 -1
- package/lib/bridge/onboard.integ.test.js +13 -10
- package/lib/bridge/onboard.integ.test.js.map +1 -1
- package/lib/bridge/onboard.js +110 -42
- package/lib/bridge/onboard.js.map +1 -1
- package/lib/bridge/prepareTransaction.js +1 -1
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/serialization.d.ts +4 -0
- package/lib/bridge/serialization.d.ts.map +1 -0
- package/lib/bridge/serialization.js +31 -0
- package/lib/bridge/serialization.js.map +1 -0
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +10 -5
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/sync.d.ts +2 -1
- package/lib/bridge/sync.d.ts.map +1 -1
- package/lib/bridge/sync.integ.test.js +2 -2
- package/lib/bridge/sync.integ.test.js.map +1 -1
- package/lib/bridge/sync.js +33 -20
- package/lib/bridge/sync.js.map +1 -1
- package/lib/common-logic/account/getBalance.d.ts +2 -1
- package/lib/common-logic/account/getBalance.d.ts.map +1 -1
- package/lib/common-logic/account/getBalance.js +7 -7
- package/lib/common-logic/account/getBalance.js.map +1 -1
- package/lib/common-logic/account/getBalance.unit.test.js +6 -3
- package/lib/common-logic/account/getBalance.unit.test.js.map +1 -1
- package/lib/common-logic/history/lastBlock.d.ts +2 -1
- package/lib/common-logic/history/lastBlock.d.ts.map +1 -1
- package/lib/common-logic/history/lastBlock.js +3 -3
- package/lib/common-logic/history/lastBlock.js.map +1 -1
- package/lib/common-logic/history/lastBlock.test.js +5 -2
- package/lib/common-logic/history/lastBlock.test.js.map +1 -1
- package/lib/common-logic/history/listOperations.d.ts +2 -1
- package/lib/common-logic/history/listOperations.d.ts.map +1 -1
- package/lib/common-logic/history/listOperations.js +2 -2
- package/lib/common-logic/history/listOperations.js.map +1 -1
- package/lib/common-logic/transaction/broadcast.d.ts +2 -1
- package/lib/common-logic/transaction/broadcast.d.ts.map +1 -1
- package/lib/common-logic/transaction/broadcast.js +4 -4
- package/lib/common-logic/transaction/broadcast.js.map +1 -1
- package/lib/common-logic/transaction/broadcast.test.js +6 -3
- package/lib/common-logic/transaction/broadcast.test.js.map +1 -1
- package/lib/common-logic/transaction/craftTransaction.d.ts +3 -1
- package/lib/common-logic/transaction/craftTransaction.d.ts.map +1 -1
- package/lib/common-logic/transaction/craftTransaction.js +8 -4
- package/lib/common-logic/transaction/craftTransaction.js.map +1 -1
- package/lib/common-logic/transaction/estimateFees.d.ts +2 -1
- package/lib/common-logic/transaction/estimateFees.d.ts.map +1 -1
- package/lib/common-logic/transaction/estimateFees.js +7 -3
- package/lib/common-logic/transaction/estimateFees.js.map +1 -1
- package/lib/config.d.ts +1 -0
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/network/gateway.d.ts +28 -26
- package/lib/network/gateway.d.ts.map +1 -1
- package/lib/network/gateway.integ.test.js +19 -15
- package/lib/network/gateway.integ.test.js.map +1 -1
- package/lib/network/gateway.js +40 -33
- package/lib/network/gateway.js.map +1 -1
- package/lib/signer/getAddress.d.ts.map +1 -1
- package/lib/signer/getAddress.js +2 -2
- package/lib/signer/getAddress.js.map +1 -1
- package/lib/types/bridge.d.ts +18 -3
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib/types/onboard.d.ts +2 -0
- package/lib/types/onboard.d.ts.map +1 -1
- package/lib/types/onboard.js.map +1 -1
- package/lib/types/signer.d.ts +2 -1
- package/lib/types/signer.d.ts.map +1 -1
- package/lib-es/api/getBalance.integ.test.js +8 -4
- package/lib-es/api/getBalance.integ.test.js.map +1 -1
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +19 -27
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/api/lastBlock.integ.test.js +1 -1
- package/lib-es/api/lastBlock.integ.test.js.map +1 -1
- package/lib-es/api/listOperations.integ.test.js +1 -1
- package/lib-es/api/listOperations.integ.test.js.map +1 -1
- package/lib-es/bridge/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/broadcast.js +2 -2
- package/lib-es/bridge/broadcast.js.map +1 -1
- package/lib-es/bridge/broadcast.test.js +9 -0
- package/lib-es/bridge/broadcast.test.js.map +1 -1
- package/lib-es/bridge/createTransaction.js +1 -1
- package/lib-es/bridge/createTransaction.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/index.d.ts.map +1 -1
- package/lib-es/bridge/index.js +3 -0
- package/lib-es/bridge/index.js.map +1 -1
- package/lib-es/bridge/onboard.d.ts +7 -5
- package/lib-es/bridge/onboard.d.ts.map +1 -1
- package/lib-es/bridge/onboard.integ.test.js +13 -10
- package/lib-es/bridge/onboard.integ.test.js.map +1 -1
- package/lib-es/bridge/onboard.js +107 -42
- package/lib-es/bridge/onboard.js.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +1 -1
- package/lib-es/bridge/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/serialization.d.ts +4 -0
- package/lib-es/bridge/serialization.d.ts.map +1 -0
- package/lib-es/bridge/serialization.js +27 -0
- package/lib-es/bridge/serialization.js.map +1 -0
- package/lib-es/bridge/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/signOperation.js +10 -5
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/sync.d.ts +2 -1
- package/lib-es/bridge/sync.d.ts.map +1 -1
- package/lib-es/bridge/sync.integ.test.js +2 -2
- package/lib-es/bridge/sync.integ.test.js.map +1 -1
- package/lib-es/bridge/sync.js +34 -21
- package/lib-es/bridge/sync.js.map +1 -1
- package/lib-es/common-logic/account/getBalance.d.ts +2 -1
- package/lib-es/common-logic/account/getBalance.d.ts.map +1 -1
- package/lib-es/common-logic/account/getBalance.js +7 -7
- package/lib-es/common-logic/account/getBalance.js.map +1 -1
- package/lib-es/common-logic/account/getBalance.unit.test.js +6 -3
- package/lib-es/common-logic/account/getBalance.unit.test.js.map +1 -1
- package/lib-es/common-logic/history/lastBlock.d.ts +2 -1
- package/lib-es/common-logic/history/lastBlock.d.ts.map +1 -1
- package/lib-es/common-logic/history/lastBlock.js +3 -3
- package/lib-es/common-logic/history/lastBlock.js.map +1 -1
- package/lib-es/common-logic/history/lastBlock.test.js +5 -2
- package/lib-es/common-logic/history/lastBlock.test.js.map +1 -1
- package/lib-es/common-logic/history/listOperations.d.ts +2 -1
- package/lib-es/common-logic/history/listOperations.d.ts.map +1 -1
- package/lib-es/common-logic/history/listOperations.js +2 -2
- package/lib-es/common-logic/history/listOperations.js.map +1 -1
- package/lib-es/common-logic/transaction/broadcast.d.ts +2 -1
- package/lib-es/common-logic/transaction/broadcast.d.ts.map +1 -1
- package/lib-es/common-logic/transaction/broadcast.js +4 -4
- package/lib-es/common-logic/transaction/broadcast.js.map +1 -1
- package/lib-es/common-logic/transaction/broadcast.test.js +6 -3
- package/lib-es/common-logic/transaction/broadcast.test.js.map +1 -1
- package/lib-es/common-logic/transaction/craftTransaction.d.ts +3 -1
- package/lib-es/common-logic/transaction/craftTransaction.d.ts.map +1 -1
- package/lib-es/common-logic/transaction/craftTransaction.js +9 -5
- package/lib-es/common-logic/transaction/craftTransaction.js.map +1 -1
- package/lib-es/common-logic/transaction/estimateFees.d.ts +2 -1
- package/lib-es/common-logic/transaction/estimateFees.d.ts.map +1 -1
- package/lib-es/common-logic/transaction/estimateFees.js +4 -3
- package/lib-es/common-logic/transaction/estimateFees.js.map +1 -1
- package/lib-es/config.d.ts +1 -0
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js.map +1 -1
- package/lib-es/network/gateway.d.ts +28 -26
- package/lib-es/network/gateway.d.ts.map +1 -1
- package/lib-es/network/gateway.integ.test.js +19 -15
- package/lib-es/network/gateway.integ.test.js.map +1 -1
- package/lib-es/network/gateway.js +40 -33
- package/lib-es/network/gateway.js.map +1 -1
- package/lib-es/signer/getAddress.d.ts.map +1 -1
- package/lib-es/signer/getAddress.js +2 -2
- package/lib-es/signer/getAddress.js.map +1 -1
- package/lib-es/types/bridge.d.ts +18 -3
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/lib-es/types/onboard.d.ts +2 -0
- package/lib-es/types/onboard.d.ts.map +1 -1
- package/lib-es/types/onboard.js.map +1 -1
- package/lib-es/types/signer.d.ts +2 -1
- package/lib-es/types/signer.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/getBalance.integ.test.ts +8 -4
- package/src/api/index.ts +22 -51
- package/src/api/lastBlock.integ.test.ts +1 -1
- package/src/api/listOperations.integ.test.ts +1 -1
- package/src/bridge/broadcast.test.ts +11 -0
- package/src/bridge/broadcast.ts +5 -2
- package/src/bridge/createTransaction.ts +1 -1
- package/src/bridge/getTransactionStatus.ts +1 -1
- package/src/bridge/index.ts +3 -0
- package/src/bridge/onboard.integ.test.ts +24 -12
- package/src/bridge/onboard.ts +143 -51
- package/src/bridge/prepareTransaction.ts +1 -1
- package/src/bridge/serialization.ts +36 -0
- package/src/bridge/signOperation.ts +20 -7
- package/src/bridge/sync.integ.test.ts +2 -2
- package/src/bridge/sync.ts +40 -29
- package/src/common-logic/account/getBalance.ts +12 -7
- package/src/common-logic/account/getBalance.unit.test.ts +8 -3
- package/src/common-logic/history/lastBlock.test.ts +7 -2
- package/src/common-logic/history/lastBlock.ts +5 -3
- package/src/common-logic/history/listOperations.ts +3 -2
- package/src/common-logic/transaction/broadcast.test.ts +8 -3
- package/src/common-logic/transaction/broadcast.ts +6 -3
- package/src/common-logic/transaction/craftTransaction.ts +22 -5
- package/src/common-logic/transaction/estimateFees.ts +7 -3
- package/src/config.ts +1 -0
- package/src/network/gateway.integ.test.ts +31 -12
- package/src/network/gateway.ts +78 -53
- package/src/signer/getAddress.ts +6 -4
- package/src/types/bridge.ts +21 -0
- package/src/types/onboard.ts +3 -0
- package/src/types/signer.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../src/types/onboard.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,KAAK,IAAA;CACN;AAED,oBAAY,iBAAiB;IAC3B,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,KAAK,IAAA;CACN;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../src/types/onboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,oBAAY,aAAa;IACvB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,KAAK,IAAA;CACN;AAED,oBAAY,iBAAiB;IAC3B,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,KAAK,IAAA;CACN;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AAEH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,gCAAgC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/types/onboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/types/onboard.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,iDAAI,CAAA;IACJ,uDAAO,CAAA;IACP,iDAAI,CAAA;IACJ,qDAAM,CAAA;IACN,uDAAO,CAAA;IACP,mDAAK,CAAA;AACP,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,yDAAI,CAAA;IACJ,+DAAO,CAAA;IACP,yDAAI,CAAA;IACJ,6DAAM,CAAA;IACN,+DAAO,CAAA;IACP,2DAAK,CAAA;AACP,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B"}
|
package/lib-es/types/signer.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export type CantonAddress = {
|
|
2
2
|
publicKey: string;
|
|
3
3
|
address: string;
|
|
4
|
+
path: string;
|
|
4
5
|
};
|
|
5
6
|
export type CantonSignature = string;
|
|
6
7
|
export interface CantonSigner {
|
|
7
|
-
getAddress(path: string): Promise<CantonAddress>;
|
|
8
|
+
getAddress(path: string, display?: boolean): Promise<CantonAddress>;
|
|
8
9
|
signTransaction(path: string, rawTx: string): Promise<CantonSignature>;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/types/signer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/types/signer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACxE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-canton",
|
|
3
|
-
"version": "0.5.0-nightly.
|
|
3
|
+
"version": "0.5.0-nightly.5",
|
|
4
4
|
"description": "Canton coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -101,13 +101,13 @@
|
|
|
101
101
|
"bignumber.js": "^9.1.2",
|
|
102
102
|
"invariant": "^2.2.4",
|
|
103
103
|
"rxjs": "^7.8.1",
|
|
104
|
-
"@ledgerhq/coin-framework": "^6.4.0-nightly.
|
|
105
|
-
"@ledgerhq/cryptoassets": "^13.28.0-nightly.
|
|
104
|
+
"@ledgerhq/coin-framework": "^6.4.0-nightly.5",
|
|
105
|
+
"@ledgerhq/cryptoassets": "^13.28.0-nightly.3",
|
|
106
106
|
"@ledgerhq/devices": "8.5.1",
|
|
107
107
|
"@ledgerhq/errors": "^6.25.0",
|
|
108
108
|
"@ledgerhq/live-env": "^2.16.0-nightly.1",
|
|
109
109
|
"@ledgerhq/live-network": "^2.0.17-nightly.1",
|
|
110
|
-
"@ledgerhq/types-live": "^6.
|
|
110
|
+
"@ledgerhq/types-live": "^6.84.0-nightly.1"
|
|
111
111
|
},
|
|
112
112
|
"devDependencies": {
|
|
113
113
|
"@types/invariant": "^2.2.37",
|
|
@@ -3,7 +3,7 @@ import { createApi } from ".";
|
|
|
3
3
|
|
|
4
4
|
let api: AlpacaApi;
|
|
5
5
|
|
|
6
|
-
describe("devnet", () => {
|
|
6
|
+
describe.skip("devnet", () => {
|
|
7
7
|
beforeAll(() => {
|
|
8
8
|
api = createApi({
|
|
9
9
|
nodeUrl: "https://wallet-validator-devnet-canton.ledger-test.com/v2",
|
|
@@ -19,9 +19,13 @@ describe("devnet", () => {
|
|
|
19
19
|
const balance = await api.getBalance(
|
|
20
20
|
"party-4f2e1485107adf5f::122027c6dbbbdbffe0fa3122ae05175f3b9328e879e9ce96b670354deb64a45683c1",
|
|
21
21
|
);
|
|
22
|
-
expect(balance.length).toBeGreaterThanOrEqual(
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
expect(balance.length).toBeGreaterThanOrEqual(0);
|
|
23
|
+
if (balance.length > 0) {
|
|
24
|
+
const nativeBalance = balance.find(b => b.asset.type === "native");
|
|
25
|
+
if (nativeBalance) {
|
|
26
|
+
expect(nativeBalance.value).toBeGreaterThanOrEqual(BigInt(0));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
25
29
|
});
|
|
26
30
|
});
|
|
27
31
|
});
|
package/src/api/index.ts
CHANGED
|
@@ -8,31 +8,36 @@ import {
|
|
|
8
8
|
Reward,
|
|
9
9
|
Stake,
|
|
10
10
|
TransactionIntent,
|
|
11
|
-
|
|
11
|
+
Operation,
|
|
12
|
+
Balance,
|
|
13
|
+
Pagination,
|
|
12
14
|
} from "@ledgerhq/coin-framework/api/index";
|
|
13
15
|
import coinConfig, { type CantonConfig } from "../config";
|
|
14
|
-
import {
|
|
15
|
-
broadcast,
|
|
16
|
-
combine,
|
|
17
|
-
craftTransaction,
|
|
18
|
-
estimateFees,
|
|
19
|
-
getBalance,
|
|
20
|
-
lastBlock,
|
|
21
|
-
listOperations,
|
|
22
|
-
} from "../common-logic";
|
|
23
|
-
import BigNumber from "bignumber.js";
|
|
16
|
+
import { combine } from "../common-logic/transaction/combine";
|
|
24
17
|
|
|
25
18
|
export function createApi(config: CantonConfig): AlpacaApi {
|
|
26
19
|
coinConfig.setCoinConfig(() => ({ ...config, status: { type: "active" } }));
|
|
27
20
|
|
|
28
21
|
return {
|
|
29
|
-
broadcast
|
|
22
|
+
broadcast: (_tx: string): Promise<string> => {
|
|
23
|
+
throw new Error("broadcast is not supported");
|
|
24
|
+
},
|
|
30
25
|
combine,
|
|
31
|
-
craftTransaction:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
craftTransaction(_transactionIntent: TransactionIntent, _customFees?: FeeEstimation) {
|
|
27
|
+
throw new Error("craftTransaction is not supported");
|
|
28
|
+
},
|
|
29
|
+
estimateFees(_transactionIntent: TransactionIntent): Promise<FeeEstimation> {
|
|
30
|
+
throw new Error("estimateFees is not supported");
|
|
31
|
+
},
|
|
32
|
+
getBalance(_address: string): Promise<Balance[]> {
|
|
33
|
+
throw new Error("getBalance is not supported");
|
|
34
|
+
},
|
|
35
|
+
lastBlock(): Promise<BlockInfo> {
|
|
36
|
+
throw new Error("listOperations is not supported");
|
|
37
|
+
},
|
|
38
|
+
listOperations(_address: string, _pagination: Pagination): Promise<[Operation[], string]> {
|
|
39
|
+
throw new Error("listOperations is not supported");
|
|
40
|
+
},
|
|
36
41
|
getBlock(_height): Promise<Block> {
|
|
37
42
|
throw new Error("getBlock is not supported");
|
|
38
43
|
},
|
|
@@ -47,37 +52,3 @@ export function createApi(config: CantonConfig): AlpacaApi {
|
|
|
47
52
|
},
|
|
48
53
|
};
|
|
49
54
|
}
|
|
50
|
-
|
|
51
|
-
const craft =
|
|
52
|
-
(tokenId: string) =>
|
|
53
|
-
async (transactionIntent: TransactionIntent): Promise<CraftedTransaction> => {
|
|
54
|
-
const tx = await craftTransaction(
|
|
55
|
-
{ address: transactionIntent.sender },
|
|
56
|
-
{
|
|
57
|
-
recipient: transactionIntent.recipient,
|
|
58
|
-
amount: new BigNumber(transactionIntent.amount.toString()),
|
|
59
|
-
tokenId,
|
|
60
|
-
expireInSeconds: 24 * 60 * 60,
|
|
61
|
-
},
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
return { transaction: tx.serializedTransaction };
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const estimate =
|
|
68
|
-
(tokenId: string) =>
|
|
69
|
-
async (transactionIntent: TransactionIntent): Promise<FeeEstimation> => {
|
|
70
|
-
const { serializedTransaction } = await craftTransaction(
|
|
71
|
-
{ address: transactionIntent.sender },
|
|
72
|
-
{
|
|
73
|
-
recipient: transactionIntent.recipient,
|
|
74
|
-
amount: new BigNumber(transactionIntent.amount.toString()),
|
|
75
|
-
tokenId,
|
|
76
|
-
expireInSeconds: 24 * 60 * 60,
|
|
77
|
-
},
|
|
78
|
-
);
|
|
79
|
-
|
|
80
|
-
const value = await estimateFees(serializedTransaction);
|
|
81
|
-
|
|
82
|
-
return { value };
|
|
83
|
-
};
|
|
@@ -4,6 +4,11 @@ jest.mock("@ledgerhq/coin-framework/operation");
|
|
|
4
4
|
jest.mock("../common-logic");
|
|
5
5
|
import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
|
|
6
6
|
import { broadcast as broadcastLogic } from "../common-logic";
|
|
7
|
+
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
8
|
+
|
|
9
|
+
const mockCurrency = {
|
|
10
|
+
id: "canton_network",
|
|
11
|
+
} as unknown as CryptoCurrency;
|
|
7
12
|
|
|
8
13
|
describe("broadcast", () => {
|
|
9
14
|
let patchOperationSpy: jest.SpyInstance;
|
|
@@ -16,6 +21,9 @@ describe("broadcast", () => {
|
|
|
16
21
|
|
|
17
22
|
it("should broadcast", () => {
|
|
18
23
|
broadcast({
|
|
24
|
+
account: {
|
|
25
|
+
currency: mockCurrency,
|
|
26
|
+
},
|
|
19
27
|
signedOperation: {
|
|
20
28
|
signature: undefined,
|
|
21
29
|
operation: undefined,
|
|
@@ -26,6 +34,9 @@ describe("broadcast", () => {
|
|
|
26
34
|
|
|
27
35
|
it("should patch operation with hash", () => {
|
|
28
36
|
broadcast({
|
|
37
|
+
account: {
|
|
38
|
+
currency: mockCurrency,
|
|
39
|
+
},
|
|
29
40
|
signedOperation: {
|
|
30
41
|
signature: undefined,
|
|
31
42
|
operation: undefined,
|
package/src/bridge/broadcast.ts
CHANGED
|
@@ -3,8 +3,11 @@ import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
|
|
|
3
3
|
import { broadcast as broadcastLogic } from "../common-logic";
|
|
4
4
|
import { Transaction } from "../types";
|
|
5
5
|
|
|
6
|
-
export const broadcast: AccountBridge<Transaction>["broadcast"] = async ({
|
|
6
|
+
export const broadcast: AccountBridge<Transaction>["broadcast"] = async ({
|
|
7
|
+
account,
|
|
8
|
+
signedOperation,
|
|
9
|
+
}) => {
|
|
7
10
|
const { operation, signature } = signedOperation;
|
|
8
|
-
const hash = await broadcastLogic(signature);
|
|
11
|
+
const hash = await broadcastLogic(account.currency, signature);
|
|
9
12
|
return patchOperationWithHash(operation, hash);
|
|
10
13
|
};
|
|
@@ -25,7 +25,7 @@ export const getTransactionStatus: AccountBridge<
|
|
|
25
25
|
const warnings: Record<string, Error> = {};
|
|
26
26
|
|
|
27
27
|
// reserveAmount is the minimum amount of currency that an account must hold in order to stay activated
|
|
28
|
-
const reserveAmount = new BigNumber(coinConfig.getCoinConfig().minReserve || 0);
|
|
28
|
+
const reserveAmount = new BigNumber(coinConfig.getCoinConfig(account.currency).minReserve || 0);
|
|
29
29
|
const estimatedFees = new BigNumber(transaction.fee || 0);
|
|
30
30
|
const totalSpent = new BigNumber(transaction.amount).plus(estimatedFees);
|
|
31
31
|
const amount = new BigNumber(transaction.amount);
|
package/src/bridge/index.ts
CHANGED
|
@@ -21,6 +21,7 @@ import { buildSignOperation } from "./signOperation";
|
|
|
21
21
|
import { getAccountShape } from "./sync";
|
|
22
22
|
import { updateTransaction } from "./updateTransaction";
|
|
23
23
|
import { buildOnboardAccount, buildAuthorizePreapproval } from "./onboard";
|
|
24
|
+
import { assignFromAccountRaw, assignToAccountRaw } from "./serialization";
|
|
24
25
|
|
|
25
26
|
export function createBridges(
|
|
26
27
|
signerContext: SignerContext<CantonSigner>,
|
|
@@ -62,6 +63,8 @@ export function createBridges(
|
|
|
62
63
|
sync,
|
|
63
64
|
receive,
|
|
64
65
|
signOperation,
|
|
66
|
+
assignToAccountRaw,
|
|
67
|
+
assignFromAccountRaw,
|
|
65
68
|
getSerializedAddressParameters,
|
|
66
69
|
};
|
|
67
70
|
|
|
@@ -10,10 +10,14 @@ import {
|
|
|
10
10
|
CantonPreApprovalResult,
|
|
11
11
|
} from "../types/onboard";
|
|
12
12
|
import coinConfig from "../config";
|
|
13
|
+
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
13
14
|
|
|
14
15
|
describe("onboard (devnet)", () => {
|
|
15
16
|
const mockDeviceId = "test-device-id";
|
|
16
17
|
const mockDerivationPath = "44'/6767'/0'/0'/0'";
|
|
18
|
+
const mockCurrency = {
|
|
19
|
+
id: "canton_network",
|
|
20
|
+
} as unknown as CryptoCurrency;
|
|
17
21
|
|
|
18
22
|
let onboardedAccount: {
|
|
19
23
|
keyPair: ReturnType<typeof generateMockKeyPair>;
|
|
@@ -53,7 +57,7 @@ describe("onboard (devnet)", () => {
|
|
|
53
57
|
|
|
54
58
|
const onboardObservable = buildOnboardAccount(mockSignerContext);
|
|
55
59
|
const onboardValues = await firstValueFrom(
|
|
56
|
-
onboardObservable(mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
60
|
+
onboardObservable(mockCurrency, mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
57
61
|
);
|
|
58
62
|
const onboardResult = onboardValues.find(
|
|
59
63
|
(value): value is CantonOnboardResult => "partyId" in value,
|
|
@@ -72,7 +76,7 @@ describe("onboard (devnet)", () => {
|
|
|
72
76
|
};
|
|
73
77
|
|
|
74
78
|
// WHEN
|
|
75
|
-
const result = await isAccountOnboarded(keyPair.publicKeyHex);
|
|
79
|
+
const result = await isAccountOnboarded(mockCurrency, keyPair.publicKeyHex);
|
|
76
80
|
|
|
77
81
|
// THEN
|
|
78
82
|
expect(result).not.toBe(false);
|
|
@@ -87,10 +91,10 @@ describe("onboard (devnet)", () => {
|
|
|
87
91
|
const keyPair = generateMockKeyPair();
|
|
88
92
|
|
|
89
93
|
// WHEN
|
|
90
|
-
const result = await isAccountOnboarded(keyPair.publicKeyHex);
|
|
94
|
+
const result = await isAccountOnboarded(mockCurrency, keyPair.publicKeyHex);
|
|
91
95
|
|
|
92
96
|
// THEN
|
|
93
|
-
expect(result).
|
|
97
|
+
expect(result).toEqual({ isOnboarded: false });
|
|
94
98
|
}, 15000);
|
|
95
99
|
|
|
96
100
|
it("should handle errors gracefully when checking non-existent party", async () => {
|
|
@@ -98,10 +102,10 @@ describe("onboard (devnet)", () => {
|
|
|
98
102
|
const keyPair = generateMockKeyPair();
|
|
99
103
|
|
|
100
104
|
// WHEN
|
|
101
|
-
const result = await isAccountOnboarded(keyPair.publicKeyHex);
|
|
105
|
+
const result = await isAccountOnboarded(mockCurrency, keyPair.publicKeyHex);
|
|
102
106
|
|
|
103
107
|
// THEN
|
|
104
|
-
expect(result).
|
|
108
|
+
expect(result).toEqual({ isOnboarded: false });
|
|
105
109
|
}, 15000);
|
|
106
110
|
});
|
|
107
111
|
|
|
@@ -117,7 +121,7 @@ describe("onboard (devnet)", () => {
|
|
|
117
121
|
|
|
118
122
|
// WHEN
|
|
119
123
|
const allValues = await firstValueFrom(
|
|
120
|
-
onboardObservable(mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
124
|
+
onboardObservable(mockCurrency, mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
121
125
|
);
|
|
122
126
|
const progressValues = allValues.filter(
|
|
123
127
|
(value): value is CantonOnboardProgress => "status" in value && !("partyId" in value),
|
|
@@ -149,7 +153,7 @@ describe("onboard (devnet)", () => {
|
|
|
149
153
|
|
|
150
154
|
// WHEN
|
|
151
155
|
const secondOnboardValues = await firstValueFrom(
|
|
152
|
-
secondOnboardObservable(mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
156
|
+
secondOnboardObservable(mockCurrency, mockDeviceId, mockDerivationPath).pipe(toArray()),
|
|
153
157
|
);
|
|
154
158
|
const secondResult = secondOnboardValues.find(
|
|
155
159
|
(value): value is CantonOnboardResult => "partyId" in value,
|
|
@@ -170,9 +174,12 @@ describe("onboard (devnet)", () => {
|
|
|
170
174
|
|
|
171
175
|
// WHEN
|
|
172
176
|
const preapprovalValues = await firstValueFrom(
|
|
173
|
-
preapprovalObservable(
|
|
174
|
-
|
|
175
|
-
|
|
177
|
+
preapprovalObservable(
|
|
178
|
+
mockCurrency,
|
|
179
|
+
mockDeviceId,
|
|
180
|
+
mockDerivationPath,
|
|
181
|
+
onboardResult.partyId,
|
|
182
|
+
).pipe(toArray()),
|
|
176
183
|
);
|
|
177
184
|
|
|
178
185
|
const progressValues = preapprovalValues.filter(
|
|
@@ -208,7 +215,12 @@ describe("onboard (devnet)", () => {
|
|
|
208
215
|
// WHEN & THEN
|
|
209
216
|
try {
|
|
210
217
|
await firstValueFrom(
|
|
211
|
-
preapprovalObservable(
|
|
218
|
+
preapprovalObservable(
|
|
219
|
+
mockCurrency,
|
|
220
|
+
mockDeviceId,
|
|
221
|
+
mockDerivationPath,
|
|
222
|
+
"invalid-party-id-123",
|
|
223
|
+
),
|
|
212
224
|
);
|
|
213
225
|
expect(true).toBe(true);
|
|
214
226
|
} catch (error) {
|