@ledgerhq/coin-canton 0.4.0-nightly.1 → 0.4.0-nightly.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +20 -0
  3. package/lib/bridge/signOperation.js +1 -1
  4. package/lib/bridge/signOperation.js.map +1 -1
  5. package/lib/common-logic/account/getBalance.js +2 -2
  6. package/lib/common-logic/account/getBalance.js.map +1 -1
  7. package/lib/common-logic/account/getBalance.unit.test.js +2 -2
  8. package/lib/common-logic/account/getBalance.unit.test.js.map +1 -1
  9. package/lib/common-logic/transaction/broadcast.d.ts.map +1 -1
  10. package/lib/common-logic/transaction/broadcast.js +11 -3
  11. package/lib/common-logic/transaction/broadcast.js.map +1 -1
  12. package/lib/common-logic/transaction/broadcast.test.d.ts +2 -0
  13. package/lib/common-logic/transaction/broadcast.test.d.ts.map +1 -0
  14. package/lib/common-logic/transaction/broadcast.test.js +68 -0
  15. package/lib/common-logic/transaction/broadcast.test.js.map +1 -0
  16. package/lib/common-logic/transaction/combine.d.ts +1 -1
  17. package/lib/common-logic/transaction/combine.d.ts.map +1 -1
  18. package/lib/common-logic/transaction/combine.js +6 -3
  19. package/lib/common-logic/transaction/combine.js.map +1 -1
  20. package/lib/common-logic/transaction/combine.test.d.ts +2 -0
  21. package/lib/common-logic/transaction/combine.test.d.ts.map +1 -0
  22. package/lib/common-logic/transaction/combine.test.js +28 -0
  23. package/lib/common-logic/transaction/combine.test.js.map +1 -0
  24. package/lib/common-logic/transaction/estimateFees.d.ts.map +1 -1
  25. package/lib/common-logic/transaction/estimateFees.js +2 -15
  26. package/lib/common-logic/transaction/estimateFees.js.map +1 -1
  27. package/lib/common-logic/utils.d.ts +0 -1
  28. package/lib/common-logic/utils.d.ts.map +1 -1
  29. package/lib/common-logic/utils.js +1 -6
  30. package/lib/common-logic/utils.js.map +1 -1
  31. package/lib/network/gateway.d.ts +5 -1
  32. package/lib/network/gateway.d.ts.map +1 -1
  33. package/lib/network/gateway.integ.test.js +1 -1
  34. package/lib/network/gateway.integ.test.js.map +1 -1
  35. package/lib/network/gateway.js +12 -0
  36. package/lib/network/gateway.js.map +1 -1
  37. package/lib-es/bridge/signOperation.js +1 -1
  38. package/lib-es/bridge/signOperation.js.map +1 -1
  39. package/lib-es/common-logic/account/getBalance.js +2 -2
  40. package/lib-es/common-logic/account/getBalance.js.map +1 -1
  41. package/lib-es/common-logic/account/getBalance.unit.test.js +2 -2
  42. package/lib-es/common-logic/account/getBalance.unit.test.js.map +1 -1
  43. package/lib-es/common-logic/transaction/broadcast.d.ts.map +1 -1
  44. package/lib-es/common-logic/transaction/broadcast.js +8 -3
  45. package/lib-es/common-logic/transaction/broadcast.js.map +1 -1
  46. package/lib-es/common-logic/transaction/broadcast.test.d.ts +2 -0
  47. package/lib-es/common-logic/transaction/broadcast.test.d.ts.map +1 -0
  48. package/lib-es/common-logic/transaction/broadcast.test.js +33 -0
  49. package/lib-es/common-logic/transaction/broadcast.test.js.map +1 -0
  50. package/lib-es/common-logic/transaction/combine.d.ts +1 -1
  51. package/lib-es/common-logic/transaction/combine.d.ts.map +1 -1
  52. package/lib-es/common-logic/transaction/combine.js +6 -3
  53. package/lib-es/common-logic/transaction/combine.js.map +1 -1
  54. package/lib-es/common-logic/transaction/combine.test.d.ts +2 -0
  55. package/lib-es/common-logic/transaction/combine.test.d.ts.map +1 -0
  56. package/lib-es/common-logic/transaction/combine.test.js +26 -0
  57. package/lib-es/common-logic/transaction/combine.test.js.map +1 -0
  58. package/lib-es/common-logic/transaction/estimateFees.d.ts.map +1 -1
  59. package/lib-es/common-logic/transaction/estimateFees.js +2 -15
  60. package/lib-es/common-logic/transaction/estimateFees.js.map +1 -1
  61. package/lib-es/common-logic/utils.d.ts +0 -1
  62. package/lib-es/common-logic/utils.d.ts.map +1 -1
  63. package/lib-es/common-logic/utils.js +0 -4
  64. package/lib-es/common-logic/utils.js.map +1 -1
  65. package/lib-es/network/gateway.d.ts +5 -1
  66. package/lib-es/network/gateway.d.ts.map +1 -1
  67. package/lib-es/network/gateway.integ.test.js +1 -1
  68. package/lib-es/network/gateway.integ.test.js.map +1 -1
  69. package/lib-es/network/gateway.js +11 -0
  70. package/lib-es/network/gateway.js.map +1 -1
  71. package/package.json +3 -3
  72. package/src/bridge/signOperation.ts +1 -1
  73. package/src/common-logic/account/getBalance.ts +2 -2
  74. package/src/common-logic/account/getBalance.unit.test.ts +2 -2
  75. package/src/common-logic/transaction/broadcast.test.ts +42 -0
  76. package/src/common-logic/transaction/broadcast.ts +7 -3
  77. package/src/common-logic/transaction/combine.test.ts +28 -0
  78. package/src/common-logic/transaction/combine.ts +7 -4
  79. package/src/common-logic/transaction/estimateFees.ts +2 -14
  80. package/src/common-logic/utils.ts +0 -5
  81. package/src/network/gateway.integ.test.ts +3 -1
  82. package/src/network/gateway.ts +20 -1
@@ -0,0 +1,33 @@
1
+ import { submit } from "../../network/gateway";
2
+ import * as coinConfigModule from "../../config";
3
+ import { broadcast } from "./broadcast";
4
+ jest.mock("../../network/gateway", () => ({
5
+ submit: jest.fn(),
6
+ }));
7
+ const mockSerialized = JSON.stringify({
8
+ serialized: "serialized-tx",
9
+ signature: "signature",
10
+ });
11
+ describe("broadcast", () => {
12
+ const mockGetCoinConfig = jest.spyOn(coinConfigModule.default, "getCoinConfig");
13
+ afterEach(() => {
14
+ jest.clearAllMocks();
15
+ });
16
+ it("should broadcast", async () => {
17
+ mockGetCoinConfig.mockReturnValue({
18
+ useGateway: true,
19
+ });
20
+ submit.mockResolvedValue({ updateId: "my-update-id" });
21
+ const result = await broadcast(mockSerialized);
22
+ expect(submit).toHaveBeenCalledWith("serialized-tx", "signature");
23
+ expect(result).toEqual("my-update-id");
24
+ });
25
+ it("should throw an error when useGateway is false (not implemented with node)", async () => {
26
+ mockGetCoinConfig.mockReturnValue({
27
+ useGateway: false,
28
+ });
29
+ await expect(broadcast(mockSerialized)).rejects.toThrow("Not implemented");
30
+ expect(submit).not.toHaveBeenCalled();
31
+ });
32
+ });
33
+ //# sourceMappingURL=broadcast.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.test.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/broadcast.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,UAAU,EAAE,eAAe;IAC3B,SAAS,EAAE,WAAW;CACvB,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,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,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,iBAAiB,CAAC,eAAe,CAAC;YAChC,UAAU,EAAE,IAAI;SACV,CAAC,CAAC;QAET,MAAoB,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,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,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function combine(transaction: string, signature: string, publicKey?: string): string;
1
+ export declare function combine(transaction: string, signature: string): string;
2
2
  //# sourceMappingURL=combine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F"}
1
+ {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.ts"],"names":[],"mappings":"AACA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOtE"}
@@ -1,6 +1,9 @@
1
- import { encode } from "../utils";
2
1
  // Combines signature with raw transaction
3
- export function combine(transaction, signature, publicKey) {
4
- return encode(transaction, signature, publicKey || "");
2
+ export function combine(transaction, signature) {
3
+ const tx = JSON.parse(transaction);
4
+ return JSON.stringify({
5
+ ...tx,
6
+ signature,
7
+ });
5
8
  }
6
9
  //# sourceMappingURL=combine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB;IAChF,OAAO,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,SAAiB;IAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,GAAG,EAAE;QACL,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=combine.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.test.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { combine } from "./combine";
2
+ describe("combine", () => {
3
+ it("responds with a Stringify version of the payload to broadcast", () => {
4
+ // GIVEN
5
+ const transaction = {
6
+ transaction: {
7
+ serialized: "SERIALIZED",
8
+ json: "JSON",
9
+ hash: "HASH",
10
+ },
11
+ };
12
+ const signature = "SIGNATURE";
13
+ // WHEN
14
+ const result = combine(JSON.stringify(transaction), signature);
15
+ // THEN
16
+ expect(JSON.parse(result)).toEqual({
17
+ transaction: {
18
+ serialized: "SERIALIZED",
19
+ json: "JSON",
20
+ hash: "HASH",
21
+ },
22
+ signature: "SIGNATURE",
23
+ });
24
+ });
25
+ });
26
+ //# sourceMappingURL=combine.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.test.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,QAAQ;QACR,MAAM,WAAW,GAAG;YAClB,WAAW,EAAE;gBACX,UAAU,EAAE,YAAY;gBACxB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QACF,MAAM,SAAS,GAAG,WAAW,CAAC;QAE9B,OAAO;QACP,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;QAE/D,OAAO;QACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACjC,WAAW,EAAE;gBACX,UAAU,EAAE,YAAY;gBACxB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;YACD,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"estimateFees.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYjF"}
1
+ {"version":3,"file":"estimateFees.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.ts"],"names":[],"mappings":"AACA,wBAAsB,YAAY,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjF"}
@@ -1,18 +1,5 @@
1
- import { simulate } from "../../network/node";
2
- import { SimulationError } from "../../types/errors";
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
3
2
  export async function estimateFees(serializedTransaction) {
4
- try {
5
- // We call the node to do a dry run and estimate fees
6
- return BigInt(await simulate(serializedTransaction));
7
- }
8
- catch (e) {
9
- // default value is required in case of simulation error, else user will encounter an error in the flow
10
- if (e instanceof SimulationError) {
11
- return BigInt(1000);
12
- }
13
- else {
14
- throw new Error("Unexpected error while estimating fees.");
15
- }
16
- }
3
+ return Promise.resolve(BigInt(10_000)); // TODO replace with real implementation
17
4
  }
18
5
  //# sourceMappingURL=estimateFees.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"estimateFees.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,qBAA6B;IAC9D,IAAI,CAAC;QACH,qDAAqD;QACrD,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,uGAAuG;QACvG,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"estimateFees.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,qBAA6B;IAC9D,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wCAAwC;AAClF,CAAC"}
@@ -2,5 +2,4 @@ import BigNumber from "bignumber.js";
2
2
  export declare const UINT32_MAX: BigNumber;
3
3
  export declare const validateTag: (tag: BigNumber) => boolean;
4
4
  export declare function isRecipientValid(recipient: string): boolean;
5
- export declare const encode: (transaction: string, signature: string, publicKey?: string) => string;
6
5
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,UAAU,WAAoC,CAAC;AAE5D,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,YAIzC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,eAAO,MAAM,MAAM,GAAI,aAAa,MAAM,EAAE,WAAW,MAAM,EAAE,YAAY,MAAM,WAGhF,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,UAAU,WAAoC,CAAC;AAE5D,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,YAIzC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -6,8 +6,4 @@ export const validateTag = (tag) => {
6
6
  export function isRecipientValid(recipient) {
7
7
  return recipient.length > 0;
8
8
  }
9
- export const encode = (transaction, signature, publicKey) => {
10
- // sample encoding
11
- return `${transaction}${publicKey}${signature}encodedTx`;
12
- };
13
9
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAc,EAAE,EAAE;IAC5C,OAAO,CACL,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAC7F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB,EAAE,EAAE;IACnF,kBAAkB;IAClB,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,WAAW,CAAC;AAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAc,EAAE,EAAE;IAC5C,OAAO,CACL,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAC7F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC"}
@@ -14,8 +14,11 @@ type OnboardingSubmitResponse = {
14
14
  public_key: string;
15
15
  };
16
16
  };
17
+ type TransactionSubmitResponse = {
18
+ updateId: string;
19
+ };
17
20
  export type InstrumentBalance = {
18
- instrumentId: string;
21
+ instrument_id: string;
19
22
  amount: number;
20
23
  locked: boolean;
21
24
  };
@@ -65,6 +68,7 @@ export type TxInfo = {
65
68
  };
66
69
  export declare function prepareOnboarding(pubKey: string, pubKeyType: string): Promise<OnboardingPrepareResponse>;
67
70
  export declare function submitOnboarding(prepareRequest: OnboardingPrepareRequest, prepareResponse: OnboardingPrepareResponse, signature: string): Promise<OnboardingSubmitResponse>;
71
+ export declare function submit(serializedTx: string, signature: string): Promise<TransactionSubmitResponse>;
68
72
  export declare function getBalance(partyId: string): Promise<InstrumentBalance[]>;
69
73
  export declare function getPartyById(partyId: string): Promise<PartyInfo>;
70
74
  export declare function getPartyByPubKey(pubKey: string): Promise<PartyInfo>;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"AAGA,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAQF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IACrC,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GAAG,SAAS,GAAG;IAChC,WAAW,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,KAAK,KAAK,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC;AAEvD,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAKF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,yBAAyB,CAAC,CAUpC;AAED,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,wBAAwB,EACxC,eAAe,EAAE,yBAAyB,EAC1C,SAAS,EAAE,MAAM,qCAYlB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAM9E;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEtE;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEzE;AAaD,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,GACA,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CAUD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAMpD"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ describe("gateway (devnet)", () => {
31
31
  const balance = await getBalance("party-4f2e1485107adf5f::122027c6dbbbdbffe0fa3122ae05175f3b9328e879e9ce96b670354deb64a45683c1");
32
32
  expect(balance.length).toBeGreaterThanOrEqual(1);
33
33
  expect(balance[0].amount).toBeGreaterThanOrEqual(0);
34
- expect(balance[0].instrumentId.includes("Splice")).toBe(true);
34
+ expect(balance[0].instrument_id.includes("Splice")).toBe(true);
35
35
  });
36
36
  });
37
37
  describe("getPartyById", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.integ.test.js","sourceRoot":"","sources":["../../src/network/gateway.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.integ.test.js","sourceRoot":"","sources":["../../src/network/gateway.integ.test.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,17 @@ export async function submitOnboarding(prepareRequest, prepareResponse, signatur
25
25
  });
26
26
  return data;
27
27
  }
28
+ export async function submit(serializedTx, signature) {
29
+ const { data } = await network({
30
+ method: "POST",
31
+ url: `${getGatewayUrl()}/v1/node/${getNodeId()}/transaction/submit`,
32
+ data: {
33
+ serialized: serializedTx,
34
+ signature,
35
+ },
36
+ });
37
+ return data;
38
+ }
28
39
  export async function getBalance(partyId) {
29
40
  const { data } = await network({
30
41
  method: "GET",
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,UAAU,MAAM,WAAW,CAAC;AAoFnC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC;AAClE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,MAAM,IAAI,wBAAwB,CAAC;AAEtF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,UAAkB;IAElB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAA4B;QACxD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG,aAAa,EAAE,YAAY,SAAS,EAAE,qBAAqB;QACnE,IAAI,EAAE;YACJ,UAAU,EAAE,MAAM;YAClB,eAAe,EAAE,UAAU;SACO;KACrC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAAwC,EACxC,eAA0C,EAC1C,SAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAA2B;QACvD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG,aAAa,EAAE,YAAY,SAAS,EAAE,oBAAoB;QAClE,IAAI,EAAE;YACJ,eAAe,EAAE,cAAc;YAC/B,gBAAgB,EAAE,eAAe;YACjC,SAAS;SACwB;KACpC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAsB;QAClD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,aAAa,EAAE,YAAY,SAAS,EAAE,UAAU,OAAO,UAAU;KAC1E,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc;IACnD,OAAO,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,UAAkB,EAAE,EAAe;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAY;QACxC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,aAAa,EAAE,YAAY,SAAS,EAAE,UAAU,UAAU,EAAE;QACpE,IAAI,EAAE;YACJ,EAAE;SACH;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,OAKC;IAKD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAG3B;QACD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,aAAa,EAAE,YAAY,SAAS,EAAE,UAAU,OAAO,eAAe;QAC9E,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAS;QACrC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,aAAa,EAAE,YAAY,SAAS,EAAE,aAAa;KAC5D,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/network/gateway.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-canton",
3
- "version": "0.4.0-nightly.1",
3
+ "version": "0.4.0-nightly.3",
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.3.0-nightly.1",
104
+ "@ledgerhq/coin-framework": "^6.3.0-nightly.2",
105
105
  "@ledgerhq/cryptoassets": "^13.27.0-nightly.0",
106
106
  "@ledgerhq/devices": "8.5.1-nightly.0",
107
107
  "@ledgerhq/errors": "^6.25.0-nightly.0",
108
108
  "@ledgerhq/live-env": "^2.15.0-nightly.1",
109
109
  "@ledgerhq/live-network": "^2.0.16-nightly.1",
110
- "@ledgerhq/types-live": "^6.83.0-nightly.0"
110
+ "@ledgerhq/types-live": "^6.83.0-nightly.1"
111
111
  },
112
112
  "devDependencies": {
113
113
  "@types/invariant": "^2.2.37",
@@ -43,7 +43,7 @@ export const buildSignOperation =
43
43
  serializedTransaction,
44
44
  );
45
45
 
46
- return combine(serializedTransaction, transactionSignature, publicKey);
46
+ return combine(serializedTransaction, transactionSignature);
47
47
  });
48
48
 
49
49
  o.next({
@@ -10,9 +10,9 @@ function adaptInstrument(instrument: InstrumentBalance): Balance {
10
10
  value: BigInt(instrument.amount),
11
11
  locked: instrument.locked === true ? BigInt(instrument.amount) : BigInt(0),
12
12
  asset:
13
- getNativeId() === instrument.instrumentId
13
+ getNativeId() === instrument.instrument_id
14
14
  ? { type: "native" }
15
- : { type: "token", assetReference: instrument.instrumentId },
15
+ : { type: "token", assetReference: instrument.instrument_id },
16
16
  };
17
17
  }
18
18
 
@@ -22,12 +22,12 @@ describe("getBalance", () => {
22
22
 
23
23
  const mockInstruments = [
24
24
  {
25
- instrumentId: "native-id",
25
+ instrument_id: "native-id",
26
26
  amount: "1000",
27
27
  locked: false,
28
28
  },
29
29
  {
30
- instrumentId: "token-123",
30
+ instrument_id: "token-123",
31
31
  amount: "5000",
32
32
  locked: true,
33
33
  },
@@ -0,0 +1,42 @@
1
+ import { submit } from "../../network/gateway";
2
+ import * as coinConfigModule from "../../config";
3
+ import { broadcast } from "./broadcast";
4
+
5
+ jest.mock("../../network/gateway", () => ({
6
+ submit: jest.fn(),
7
+ }));
8
+
9
+ const mockSerialized = JSON.stringify({
10
+ serialized: "serialized-tx",
11
+ signature: "signature",
12
+ });
13
+
14
+ describe("broadcast", () => {
15
+ const mockGetCoinConfig = jest.spyOn(coinConfigModule.default, "getCoinConfig");
16
+
17
+ afterEach(() => {
18
+ jest.clearAllMocks();
19
+ });
20
+
21
+ it("should broadcast", async () => {
22
+ mockGetCoinConfig.mockReturnValue({
23
+ useGateway: true,
24
+ } as any);
25
+
26
+ (submit as jest.Mock).mockResolvedValue({ updateId: "my-update-id" });
27
+
28
+ const result = await broadcast(mockSerialized);
29
+
30
+ expect(submit).toHaveBeenCalledWith("serialized-tx", "signature");
31
+ expect(result).toEqual("my-update-id");
32
+ });
33
+
34
+ it("should throw an error when useGateway is false (not implemented with node)", async () => {
35
+ mockGetCoinConfig.mockReturnValue({
36
+ useGateway: false,
37
+ } as any);
38
+
39
+ await expect(broadcast(mockSerialized)).rejects.toThrow("Not implemented");
40
+ expect(submit).not.toHaveBeenCalled();
41
+ });
42
+ });
@@ -1,6 +1,10 @@
1
- import { submit } from "../../network/node";
1
+ import coinConfig from "../../config";
2
+ import { submit } from "../../network/gateway";
3
+
4
+ const useGateway = () => coinConfig.getCoinConfig().useGateway === true;
2
5
 
3
6
  export async function broadcast(signedTx: string): Promise<string> {
4
- const submittedPayment = await submit(signedTx);
5
- return submittedPayment.tx_hash;
7
+ const parsed: { serialized: string; signature: string } = JSON.parse(signedTx);
8
+ if (useGateway()) return (await submit(parsed.serialized, parsed.signature)).updateId;
9
+ else throw new Error("Not implemented");
6
10
  }
@@ -0,0 +1,28 @@
1
+ import { combine } from "./combine";
2
+
3
+ describe("combine", () => {
4
+ it("responds with a Stringify version of the payload to broadcast", () => {
5
+ // GIVEN
6
+ const transaction = {
7
+ transaction: {
8
+ serialized: "SERIALIZED",
9
+ json: "JSON",
10
+ hash: "HASH",
11
+ },
12
+ };
13
+ const signature = "SIGNATURE";
14
+
15
+ // WHEN
16
+ const result = combine(JSON.stringify(transaction), signature);
17
+
18
+ // THEN
19
+ expect(JSON.parse(result)).toEqual({
20
+ transaction: {
21
+ serialized: "SERIALIZED",
22
+ json: "JSON",
23
+ hash: "HASH",
24
+ },
25
+ signature: "SIGNATURE",
26
+ });
27
+ });
28
+ });
@@ -1,6 +1,9 @@
1
- import { encode } from "../utils";
2
-
3
1
  // Combines signature with raw transaction
4
- export function combine(transaction: string, signature: string, publicKey?: string): string {
5
- return encode(transaction, signature, publicKey || "");
2
+ export function combine(transaction: string, signature: string): string {
3
+ const tx = JSON.parse(transaction);
4
+
5
+ return JSON.stringify({
6
+ ...tx,
7
+ signature,
8
+ });
6
9
  }
@@ -1,16 +1,4 @@
1
- import { simulate } from "../../network/node";
2
- import { SimulationError } from "../../types/errors";
3
-
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
2
  export async function estimateFees(serializedTransaction: string): Promise<bigint> {
5
- try {
6
- // We call the node to do a dry run and estimate fees
7
- return BigInt(await simulate(serializedTransaction));
8
- } catch (e) {
9
- // default value is required in case of simulation error, else user will encounter an error in the flow
10
- if (e instanceof SimulationError) {
11
- return BigInt(1000);
12
- } else {
13
- throw new Error("Unexpected error while estimating fees.");
14
- }
15
- }
3
+ return Promise.resolve(BigInt(10_000)); // TODO replace with real implementation
16
4
  }
@@ -11,8 +11,3 @@ export const validateTag = (tag: BigNumber) => {
11
11
  export function isRecipientValid(recipient: string): boolean {
12
12
  return recipient.length > 0;
13
13
  }
14
-
15
- export const encode = (transaction: string, signature: string, publicKey?: string) => {
16
- // sample encoding
17
- return `${transaction}${publicKey}${signature}encodedTx`;
18
- };
@@ -19,6 +19,7 @@ describe("gateway (devnet)", () => {
19
19
  },
20
20
  }));
21
21
  });
22
+
22
23
  describe("prepareOnboarding", () => {
23
24
  it("should prepare onboarding", async () => {
24
25
  const response = await prepareOnboarding(
@@ -31,6 +32,7 @@ describe("gateway (devnet)", () => {
31
32
  expect(response).toHaveProperty("topology_transactions_hash");
32
33
  }, 30000);
33
34
  });
35
+
34
36
  describe("getLedgerEnd", () => {
35
37
  it("should return ledger end", async () => {
36
38
  const end = await getLedgerEnd();
@@ -45,7 +47,7 @@ describe("gateway (devnet)", () => {
45
47
  );
46
48
  expect(balance.length).toBeGreaterThanOrEqual(1);
47
49
  expect(balance[0].amount).toBeGreaterThanOrEqual(0);
48
- expect(balance[0].instrumentId.includes("Splice")).toBe(true);
50
+ expect(balance[0].instrument_id.includes("Splice")).toBe(true);
49
51
  });
50
52
  });
51
53
 
@@ -26,8 +26,15 @@ type OnboardingSubmitResponse = {
26
26
  };
27
27
  };
28
28
 
29
+ type TransactionSubmitRequest = {
30
+ serialized: string;
31
+ signature: string;
32
+ };
33
+
34
+ type TransactionSubmitResponse = { updateId: string };
35
+
29
36
  export type InstrumentBalance = {
30
- instrumentId: string;
37
+ instrument_id: string;
31
38
  amount: number;
32
39
  locked: boolean;
33
40
  };
@@ -118,6 +125,18 @@ export async function submitOnboarding(
118
125
  return data;
119
126
  }
120
127
 
128
+ export async function submit(serializedTx: string, signature: string) {
129
+ const { data } = await network<TransactionSubmitResponse>({
130
+ method: "POST",
131
+ url: `${getGatewayUrl()}/v1/node/${getNodeId()}/transaction/submit`,
132
+ data: {
133
+ serialized: serializedTx,
134
+ signature,
135
+ } satisfies TransactionSubmitRequest,
136
+ });
137
+ return data;
138
+ }
139
+
121
140
  export async function getBalance(partyId: string): Promise<InstrumentBalance[]> {
122
141
  const { data } = await network<InstrumentBalance[]>({
123
142
  method: "GET",