@ledgerhq/coin-vechain 2.27.0 → 2.28.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/.unimportedrc.json +3 -21
- package/CHANGELOG.md +34 -0
- package/jest.config.js +39 -13
- package/lib/api/index.d.ts +4 -0
- package/lib/api/index.d.ts.map +1 -0
- package/lib/api/index.js +45 -0
- package/lib/api/index.js.map +1 -0
- package/lib/bridge/getTransactionStatus.js +1 -1
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/logic/account/getBalance.d.ts +5 -0
- package/lib/logic/account/getBalance.d.ts.map +1 -0
- package/lib/logic/account/getBalance.js +25 -0
- package/lib/logic/account/getBalance.js.map +1 -0
- package/lib/logic/history/getBlock.d.ts +3 -0
- package/lib/logic/history/getBlock.d.ts.map +1 -0
- package/lib/logic/history/getBlock.js +35 -0
- package/lib/logic/history/getBlock.js.map +1 -0
- package/lib/logic/history/getBlockInfo.d.ts +6 -0
- package/lib/logic/history/getBlockInfo.d.ts.map +1 -0
- package/lib/logic/history/getBlockInfo.js +23 -0
- package/lib/logic/history/getBlockInfo.js.map +1 -0
- package/lib/logic/history/lastBlock.d.ts +3 -0
- package/lib/logic/history/lastBlock.d.ts.map +1 -0
- package/lib/logic/history/lastBlock.js +11 -0
- package/lib/logic/history/lastBlock.js.map +1 -0
- package/lib/logic/history/listOperations.d.ts +3 -0
- package/lib/logic/history/listOperations.d.ts.map +1 -0
- package/lib/logic/history/listOperations.js +50 -0
- package/lib/logic/history/listOperations.js.map +1 -0
- package/lib/logic/index.d.ts +12 -0
- package/lib/logic/index.d.ts.map +1 -0
- package/lib/logic/index.js +28 -0
- package/lib/logic/index.js.map +1 -0
- package/lib/logic/transaction/broadcast.d.ts +3 -0
- package/lib/logic/transaction/broadcast.d.ts.map +1 -0
- package/lib/logic/transaction/broadcast.js +10 -0
- package/lib/logic/transaction/broadcast.js.map +1 -0
- package/lib/logic/transaction/combine.d.ts +2 -0
- package/lib/logic/transaction/combine.d.ts.map +1 -0
- package/lib/logic/transaction/combine.js +11 -0
- package/lib/logic/transaction/combine.js.map +1 -0
- package/lib/logic/transaction/craftTransaction.d.ts +3 -0
- package/lib/logic/transaction/craftTransaction.d.ts.map +1 -0
- package/lib/logic/transaction/craftTransaction.js +99 -0
- package/lib/logic/transaction/craftTransaction.js.map +1 -0
- package/lib/logic/transaction/estimateFees.d.ts +3 -0
- package/lib/logic/transaction/estimateFees.d.ts.map +1 -0
- package/lib/logic/transaction/estimateFees.js +23 -0
- package/lib/logic/transaction/estimateFees.js.map +1 -0
- package/lib/logic/validateAddress.d.ts +4 -0
- package/lib/logic/validateAddress.d.ts.map +1 -0
- package/lib/logic/validateAddress.js +14 -0
- package/lib/logic/validateAddress.js.map +1 -0
- package/lib/logic/validateIntent.d.ts +3 -0
- package/lib/logic/validateIntent.d.ts.map +1 -0
- package/lib/logic/validateIntent.js +65 -0
- package/lib/logic/validateIntent.js.map +1 -0
- package/lib/network/getBlock.d.ts +3 -0
- package/lib/network/getBlock.d.ts.map +1 -0
- package/lib/network/getBlock.js +23 -0
- package/lib/network/getBlock.js.map +1 -0
- package/lib/network/getFees.d.ts.map +1 -1
- package/lib/network/getFees.js +2 -3
- package/lib/network/getFees.js.map +1 -1
- package/lib/network/index.d.ts +1 -0
- package/lib/network/index.d.ts.map +1 -1
- package/lib/network/index.js +1 -0
- package/lib/network/index.js.map +1 -1
- package/lib/network/sdk.d.ts.map +1 -1
- package/lib/network/sdk.js +14 -8
- package/lib/network/sdk.js.map +1 -1
- package/lib/test/bridgeDatasetTest.js +1 -1
- package/lib/test/bridgeDatasetTest.js.map +1 -1
- package/lib/test/msw-setup.d.ts +2 -0
- package/lib/test/msw-setup.d.ts.map +1 -0
- package/lib/test/msw-setup.js +9 -0
- package/lib/test/msw-setup.js.map +1 -0
- package/lib/test/msw.mock.d.ts +3 -0
- package/lib/test/msw.mock.d.ts.map +1 -0
- package/lib/test/msw.mock.js +9 -0
- package/lib/test/msw.mock.js.map +1 -0
- package/lib/types/network.d.ts +30 -0
- package/lib/types/network.d.ts.map +1 -1
- package/lib-es/api/index.d.ts +4 -0
- package/lib-es/api/index.d.ts.map +1 -0
- package/lib-es/api/index.js +42 -0
- package/lib-es/api/index.js.map +1 -0
- package/lib-es/bridge/getTransactionStatus.js +1 -1
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/logic/account/getBalance.d.ts +5 -0
- package/lib-es/logic/account/getBalance.d.ts.map +1 -0
- package/lib-es/logic/account/getBalance.js +20 -0
- package/lib-es/logic/account/getBalance.js.map +1 -0
- package/lib-es/logic/history/getBlock.d.ts +3 -0
- package/lib-es/logic/history/getBlock.d.ts.map +1 -0
- package/lib-es/logic/history/getBlock.js +32 -0
- package/lib-es/logic/history/getBlock.js.map +1 -0
- package/lib-es/logic/history/getBlockInfo.d.ts +6 -0
- package/lib-es/logic/history/getBlockInfo.d.ts.map +1 -0
- package/lib-es/logic/history/getBlockInfo.js +19 -0
- package/lib-es/logic/history/getBlockInfo.js.map +1 -0
- package/lib-es/logic/history/lastBlock.d.ts +3 -0
- package/lib-es/logic/history/lastBlock.d.ts.map +1 -0
- package/lib-es/logic/history/lastBlock.js +8 -0
- package/lib-es/logic/history/lastBlock.js.map +1 -0
- package/lib-es/logic/history/listOperations.d.ts +3 -0
- package/lib-es/logic/history/listOperations.d.ts.map +1 -0
- package/lib-es/logic/history/listOperations.js +47 -0
- package/lib-es/logic/history/listOperations.js.map +1 -0
- package/lib-es/logic/index.d.ts +12 -0
- package/lib-es/logic/index.d.ts.map +1 -0
- package/lib-es/logic/index.js +12 -0
- package/lib-es/logic/index.js.map +1 -0
- package/lib-es/logic/transaction/broadcast.d.ts +3 -0
- package/lib-es/logic/transaction/broadcast.d.ts.map +1 -0
- package/lib-es/logic/transaction/broadcast.js +7 -0
- package/lib-es/logic/transaction/broadcast.js.map +1 -0
- package/lib-es/logic/transaction/combine.d.ts +2 -0
- package/lib-es/logic/transaction/combine.d.ts.map +1 -0
- package/lib-es/logic/transaction/combine.js +8 -0
- package/lib-es/logic/transaction/combine.js.map +1 -0
- package/lib-es/logic/transaction/craftTransaction.d.ts +3 -0
- package/lib-es/logic/transaction/craftTransaction.d.ts.map +1 -0
- package/lib-es/logic/transaction/craftTransaction.js +96 -0
- package/lib-es/logic/transaction/craftTransaction.js.map +1 -0
- package/lib-es/logic/transaction/estimateFees.d.ts +3 -0
- package/lib-es/logic/transaction/estimateFees.d.ts.map +1 -0
- package/lib-es/logic/transaction/estimateFees.js +20 -0
- package/lib-es/logic/transaction/estimateFees.js.map +1 -0
- package/lib-es/logic/validateAddress.d.ts +4 -0
- package/lib-es/logic/validateAddress.d.ts.map +1 -0
- package/lib-es/logic/validateAddress.js +10 -0
- package/lib-es/logic/validateAddress.js.map +1 -0
- package/lib-es/logic/validateIntent.d.ts +3 -0
- package/lib-es/logic/validateIntent.d.ts.map +1 -0
- package/lib-es/logic/validateIntent.js +62 -0
- package/lib-es/logic/validateIntent.js.map +1 -0
- package/lib-es/network/getBlock.d.ts +3 -0
- package/lib-es/network/getBlock.d.ts.map +1 -0
- package/lib-es/network/getBlock.js +16 -0
- package/lib-es/network/getBlock.js.map +1 -0
- package/lib-es/network/getFees.d.ts.map +1 -1
- package/lib-es/network/getFees.js +1 -2
- package/lib-es/network/getFees.js.map +1 -1
- package/lib-es/network/index.d.ts +1 -0
- package/lib-es/network/index.d.ts.map +1 -1
- package/lib-es/network/index.js +1 -0
- package/lib-es/network/index.js.map +1 -1
- package/lib-es/network/sdk.d.ts.map +1 -1
- package/lib-es/network/sdk.js +8 -2
- package/lib-es/network/sdk.js.map +1 -1
- package/lib-es/test/bridgeDatasetTest.js +1 -1
- package/lib-es/test/bridgeDatasetTest.js.map +1 -1
- package/lib-es/test/msw-setup.d.ts +2 -0
- package/lib-es/test/msw-setup.d.ts.map +1 -0
- package/lib-es/test/msw-setup.js +7 -0
- package/lib-es/test/msw-setup.js.map +1 -0
- package/lib-es/test/msw.mock.d.ts +3 -0
- package/lib-es/test/msw.mock.d.ts.map +1 -0
- package/lib-es/test/msw.mock.js +6 -0
- package/lib-es/test/msw.mock.js.map +1 -0
- package/lib-es/types/network.d.ts +30 -0
- package/lib-es/types/network.d.ts.map +1 -1
- package/package.json +7 -8
- package/src/api/index.integ.test.ts +123 -0
- package/src/api/index.ts +89 -0
- package/src/api/index.unit.test.ts +234 -0
- package/src/bridge/getTransactionStatus.test.ts +1 -1
- package/src/bridge/getTransactionStatus.ts +1 -1
- package/src/bridge/synchronisation.test.ts +7 -3
- package/src/logic/account/getBalance.ts +24 -0
- package/src/logic/account/getBalance.unit.test.ts +50 -0
- package/src/logic/history/getBlock.ts +47 -0
- package/src/logic/history/getBlock.unit.test.ts +106 -0
- package/src/logic/history/getBlockInfo.ts +24 -0
- package/src/logic/history/getBlockInfo.unit.test.ts +30 -0
- package/src/logic/history/lastBlock.ts +9 -0
- package/src/logic/history/lastBlock.unit.test.ts +30 -0
- package/src/logic/history/listOperations.ts +64 -0
- package/src/logic/history/listOperations.unit.test.ts +129 -0
- package/src/logic/index.ts +11 -0
- package/src/logic/transaction/broadcast.msw.test.ts +23 -0
- package/src/logic/transaction/broadcast.ts +10 -0
- package/src/logic/transaction/broadcast.unit.test.ts +26 -0
- package/src/logic/transaction/combine.ts +10 -0
- package/src/logic/transaction/combine.unit.test.ts +37 -0
- package/src/logic/transaction/craftTransaction.ts +137 -0
- package/src/logic/transaction/craftTransaction.unit.test.ts +217 -0
- package/src/logic/transaction/estimateFees.ts +32 -0
- package/src/logic/transaction/estimateFees.unit.test.ts +102 -0
- package/src/logic/validateAddress.ts +15 -0
- package/src/logic/validateAddress.unit.test.ts +15 -0
- package/src/logic/validateIntent.ts +96 -0
- package/src/logic/validateIntent.unit.test.ts +156 -0
- package/src/network/getBlock.ts +23 -0
- package/src/network/getBlock.unit.test.ts +58 -0
- package/src/network/getFees.ts +1 -3
- package/src/network/index.ts +1 -0
- package/src/network/sdk.test.ts +32 -1
- package/src/network/sdk.ts +9 -2
- package/src/test/bridgeDatasetTest.ts +1 -1
- package/src/test/msw-setup.ts +7 -0
- package/src/test/msw.mock.ts +6 -0
- package/src/types/network.ts +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBlock.d.ts","sourceRoot":"","sources":["../../src/network/getBlock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD,eAAO,MAAM,QAAQ,aACT,MAAM,yBAEf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAajC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import network from "@ledgerhq/live-network";
|
|
2
|
+
import { VECHAIN_NODE_URL as BASE_URL } from "../constants";
|
|
3
|
+
// Thor GET /blocks/{revision}. `expanded` returns full clause/output detail (getBlock) vs. tx
|
|
4
|
+
// hashes only (getBlockInfo/lastBlock).
|
|
5
|
+
export const getBlock = async (revision, expanded = false) => {
|
|
6
|
+
if (!Number.isInteger(revision) || revision < 0) {
|
|
7
|
+
throw new Error(`vechain: getBlock: invalid revision ${revision}`);
|
|
8
|
+
}
|
|
9
|
+
const query = new URLSearchParams({ expanded: String(expanded) });
|
|
10
|
+
const { data } = await network({
|
|
11
|
+
method: "GET",
|
|
12
|
+
url: `${BASE_URL}/blocks/${revision}?${query}`,
|
|
13
|
+
});
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=getBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBlock.js","sourceRoot":"","sources":["../../src/network/getBlock.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG5D,8FAA8F;AAC9F,wCAAwC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,QAAgB,EAChB,QAAQ,GAAG,KAAK,EACkB,EAAE;IACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAA0B;QACtD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,QAAQ,WAAW,QAAQ,IAAI,KAAK,EAAE;KAC/C,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFees.d.ts","sourceRoot":"","sources":["../../src/network/getFees.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"getFees.d.ts","sourceRoot":"","sources":["../../src/network/getFees.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC;;;;GAIG;AACH,eAAO,MAAM,OAAO,kBAAyB,MAAM,KAAG,OAAO,CAAC,SAAS,CAStE,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import network from "@ledgerhq/live-network";
|
|
3
|
-
import {
|
|
4
|
-
const BASE_URL = getEnv("API_VECHAIN_THOREST");
|
|
3
|
+
import { VECHAIN_NODE_URL as BASE_URL } from "../constants";
|
|
5
4
|
/**
|
|
6
5
|
* Get fees paid for the transaction
|
|
7
6
|
* @param transactionId - the id of the transaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFees.js","sourceRoot":"","sources":["../../src/network/getFees.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getFees.js","sourceRoot":"","sources":["../../src/network/getFees.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,aAAqB,EAAsB,EAAE;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAmB;QAC/C,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,QAAQ,iBAAiB,aAAa,UAAU;QACxD,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC"}
|
package/lib-es/network/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/network/sdk.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAKf,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/network/sdk.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAKf,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAatD,eAAO,MAAM,UAAU,YAAmB,MAAM,KAAG,OAAO,CAAC,eAAe,CAOzE,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,MAAM,CAOzD,CAAC;AAsKF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,cACb,MAAM,QACX,MAAM,WACH,MAAM,UACP,MAAM,KACb,OAAO,CAAC,SAAS,EAAE,CAIrB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,cAClB,MAAM,QACX,MAAM,aACD,MAAM,WACR,MAAM,UACP,MAAM,KACb,OAAO,CAAC,SAAS,EAAE,CAIrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,gBAAuB,qBAAqB,KAAG,OAAO,CAAC,MAAM,CAe/E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,MAAM,CAOlD,CAAC"}
|
package/lib-es/network/sdk.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import network from "@ledgerhq/live-network";
|
|
2
2
|
import { mapVetTransfersToOperations, mapTokenTransfersToOperations, padAddress, } from "../common-logic";
|
|
3
|
-
import {
|
|
4
|
-
const BASE_URL = getEnv("API_VECHAIN_THOREST");
|
|
3
|
+
import { VECHAIN_NODE_URL as BASE_URL } from "../constants";
|
|
5
4
|
const NET_ERROR_LOG_TRANSFERS_LIMIT = {
|
|
6
5
|
status: 403,
|
|
7
6
|
msgPattern: /exceeds the maximum allowed/,
|
|
@@ -106,6 +105,13 @@ const fetchRangeOfTokenOperations = async (accountId, addr, tokenAddr, startAt,
|
|
|
106
105
|
* @returns an array of operations
|
|
107
106
|
*/
|
|
108
107
|
const getLogsWithPagination = async (startAt, stopAt, fetchRangeOfLogs) => {
|
|
108
|
+
// No new block since the last known operation (startAt = lastOp.blockHeight + 1 can exceed the
|
|
109
|
+
// current best height when nothing has happened since the previous sync) — Thor's `/logs/*`
|
|
110
|
+
// endpoints reject an inverted range with a 400, so treat it as "nothing new" instead of
|
|
111
|
+
// querying at all.
|
|
112
|
+
if (stopAt < startAt) {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
109
115
|
let completed = false;
|
|
110
116
|
const ops = [];
|
|
111
117
|
let from = startAt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/network/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAU7C,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/network/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { MAINNET_CHAIN_TAG } from "../types";
|
|
|
4
4
|
import { vechain1, vechain3 } from "../datasets";
|
|
5
5
|
import { generateNonce } from "../common-logic";
|
|
6
6
|
import vechainScanAccounts1 from "../datasets/vechain.scanAccounts.1";
|
|
7
|
-
import { AmountRequired, NotEnoughBalance } from "@ledgerhq/errors";
|
|
7
|
+
import { AmountRequired, NotEnoughBalance } from "@ledgerhq/ledger-wallet-framework/errors";
|
|
8
8
|
import { NotEnoughVTHO } from "../errors";
|
|
9
9
|
import { ABIContract, VIP180_ABI } from "@vechain/sdk-core";
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridgeDatasetTest.js","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAQrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"bridgeDatasetTest.js","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"msw-setup.d.ts","sourceRoot":"","sources":["../../src/test/msw-setup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { setEnv } from "@ledgerhq/live-env";
|
|
2
|
+
import { TEST_VECHAIN_ENDPOINT } from "./msw.mock";
|
|
3
|
+
// Runs as a jest `setupFiles` entry (before the test modules load), so `constants/env.ts` — which
|
|
4
|
+
// reads `API_VECHAIN_THOREST` into a module-level const at import time — resolves to the test host
|
|
5
|
+
// that the MSW handlers intercept.
|
|
6
|
+
setEnv("API_VECHAIN_THOREST", TEST_VECHAIN_ENDPOINT);
|
|
7
|
+
//# sourceMappingURL=msw-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"msw-setup.js","sourceRoot":"","sources":["../../src/test/msw-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,kGAAkG;AAClG,mGAAmG;AACnG,mCAAmC;AACnC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"msw.mock.d.ts","sourceRoot":"","sources":["../../src/test/msw.mock.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AACvE,eAAO,MAAM,MAAM,mCAAgB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { setupServer } from "msw/node";
|
|
2
|
+
// Test host that `msw-setup.ts` points `API_VECHAIN_THOREST` at, so MSW handlers intercept the exact
|
|
3
|
+
// URL the network layer builds. Shared, empty MSW server; each suite registers handlers via `server.use`.
|
|
4
|
+
export const TEST_VECHAIN_ENDPOINT = "https://vechain-test.ledger.com";
|
|
5
|
+
export const server = setupServer();
|
|
6
|
+
//# sourceMappingURL=msw.mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"msw.mock.js","sourceRoot":"","sources":["../../src/test/msw.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qGAAqG;AACrG,0GAA0G;AAC1G,MAAM,CAAC,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AACvE,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC"}
|
|
@@ -68,4 +68,34 @@ export interface QueryResponse {
|
|
|
68
68
|
reverted: boolean;
|
|
69
69
|
vmError: string;
|
|
70
70
|
}
|
|
71
|
+
/** Thor `GET /blocks/{revision}` transfer (VET or VIP180 event, when `expanded=true`). */
|
|
72
|
+
export interface ApiResponseBlockTransfer {
|
|
73
|
+
sender: string;
|
|
74
|
+
recipient: string;
|
|
75
|
+
amount: string;
|
|
76
|
+
}
|
|
77
|
+
/** A single clause output, part of an expanded block transaction. */
|
|
78
|
+
export interface ApiResponseBlockOutput {
|
|
79
|
+
contractAddress: string | null;
|
|
80
|
+
events: EventLog[];
|
|
81
|
+
transfers: ApiResponseBlockTransfer[];
|
|
82
|
+
}
|
|
83
|
+
/** An expanded transaction, as returned by Thor `GET /blocks/{revision}?expanded=true`. */
|
|
84
|
+
export interface ApiResponseBlockTransaction {
|
|
85
|
+
id: string;
|
|
86
|
+
origin: string;
|
|
87
|
+
gasPayer?: string;
|
|
88
|
+
gasUsed: number;
|
|
89
|
+
paid: string;
|
|
90
|
+
reverted: boolean;
|
|
91
|
+
outputs: ApiResponseBlockOutput[];
|
|
92
|
+
}
|
|
93
|
+
/** Thor `GET /blocks/{revision}` response. */
|
|
94
|
+
export interface ApiResponseBlock {
|
|
95
|
+
id: string;
|
|
96
|
+
number: number;
|
|
97
|
+
timestamp: number;
|
|
98
|
+
/** Transaction ids (`string[]`) when `expanded=false`, full transactions when `expanded=true`. */
|
|
99
|
+
transactions: unknown[];
|
|
100
|
+
}
|
|
71
101
|
//# sourceMappingURL=network.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/types/network.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/types/network.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-vechain",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.28.0",
|
|
4
4
|
"description": "Ledger VeChain Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -87,17 +87,16 @@
|
|
|
87
87
|
},
|
|
88
88
|
"license": "Apache-2.0",
|
|
89
89
|
"dependencies": {
|
|
90
|
-
"@ledgerhq/coin-module-framework": "4.0
|
|
90
|
+
"@ledgerhq/coin-module-framework": "4.3.0",
|
|
91
|
+
"@vechain/sdk-core": "2.0.0",
|
|
92
|
+
"@vechain/sdk-network": "2.0.0",
|
|
91
93
|
"bignumber.js": "^9.1.2",
|
|
92
94
|
"eip55": "^2.1.1",
|
|
93
95
|
"invariant": "^2.2.2",
|
|
94
96
|
"lodash": "^4.17.21",
|
|
95
97
|
"rxjs": "7.8.2",
|
|
96
|
-
"@vechain/sdk-core": "2.0.0",
|
|
97
|
-
"@vechain/sdk-network": "2.0.0",
|
|
98
98
|
"@ledgerhq/devices": "8.17.0",
|
|
99
|
-
"@ledgerhq/
|
|
100
|
-
"@ledgerhq/ledger-wallet-framework": "^2.6.0",
|
|
99
|
+
"@ledgerhq/ledger-wallet-framework": "^2.7.0",
|
|
101
100
|
"@ledgerhq/live-env": "^3.0.0",
|
|
102
101
|
"@ledgerhq/live-network": "^3.0.0"
|
|
103
102
|
},
|
|
@@ -114,8 +113,8 @@
|
|
|
114
113
|
"oxfmt": "0.36.0",
|
|
115
114
|
"oxlint": "1.51.0",
|
|
116
115
|
"@ledgerhq/disable-network-setup": "^0.3.0",
|
|
117
|
-
"@ledgerhq/types-live": "^6.
|
|
118
|
-
"@ledgerhq/wallet-framework-test-setup": "^0.1.
|
|
116
|
+
"@ledgerhq/types-live": "^6.118.0",
|
|
117
|
+
"@ledgerhq/wallet-framework-test-setup": "^0.1.4"
|
|
119
118
|
},
|
|
120
119
|
"scripts": {
|
|
121
120
|
"clean": "rimraf lib lib-es",
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { CoinModuleApi } from "@ledgerhq/coin-module-framework/api/types";
|
|
2
|
+
import type { VechainCoinConfig } from "../config";
|
|
3
|
+
import { createApi } from "./index";
|
|
4
|
+
|
|
5
|
+
const config: VechainCoinConfig = () => ({ status: { type: "active" } });
|
|
6
|
+
|
|
7
|
+
// Repo-committed VeChain mainnet address, already used by src/datasets/vechain.ts for bridge
|
|
8
|
+
// integration/dataset testing ("account information is fetched from the blockchain"). Reused
|
|
9
|
+
// here as a real, network-reachable address for balance-agnostic smoke assertions — its exact
|
|
10
|
+
// current balance is not asserted (only shape/type), mirroring coin-kaspa's FUNDED_SENDER smoke
|
|
11
|
+
// pattern but without asserting a specific non-zero balance we cannot guarantee ahead of time.
|
|
12
|
+
const KNOWN_ADDRESS = "0x0fe6688548f0C303932bB197B0A96034f1d74dba";
|
|
13
|
+
|
|
14
|
+
describe("createApi (integration)", () => {
|
|
15
|
+
let api: CoinModuleApi;
|
|
16
|
+
|
|
17
|
+
beforeAll(() => {
|
|
18
|
+
api = createApi(config, "vechain");
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// These methods throw synchronously (they never return a promise), so they are asserted with a
|
|
22
|
+
// synchronous `expect(() => …).toThrow`, not `.rejects` (mirrors coin-kaspa's api integ test).
|
|
23
|
+
it("getNextSequence throws (not applicable to Vechain's account model)", () => {
|
|
24
|
+
expect(() => api.getNextSequence(KNOWN_ADDRESS)).toThrow(
|
|
25
|
+
"getNextSequence is not applicable for Vechain",
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("validates addresses via parseAddress", async () => {
|
|
30
|
+
await expect(api.validateAddress(KNOWN_ADDRESS, {})).resolves.toBe(true);
|
|
31
|
+
await expect(api.validateAddress("0xnot-an-address", {})).resolves.toBe(false);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("getStakes / getRewards / getValidators throw (not supported)", () => {
|
|
35
|
+
expect(() => api.getStakes(KNOWN_ADDRESS)).toThrow("getStakes is not supported");
|
|
36
|
+
expect(() => api.getRewards(KNOWN_ADDRESS)).toThrow("getRewards is not supported");
|
|
37
|
+
expect(() => api.getValidators()).toThrow("getValidators is not supported");
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("craftRawTransaction throws (not supported)", () => {
|
|
41
|
+
expect(() => api.craftRawTransaction("raw", KNOWN_ADDRESS, "pubkey", 0n)).toThrow(
|
|
42
|
+
"craftRawTransaction is not supported",
|
|
43
|
+
);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
describe("account & block methods (real network)", () => {
|
|
47
|
+
it("getBalance returns both VET and VTHO balances", async () => {
|
|
48
|
+
const balances = await api.getBalance(KNOWN_ADDRESS);
|
|
49
|
+
|
|
50
|
+
expect(balances).toHaveLength(2);
|
|
51
|
+
expect(balances.some(b => b.asset.type === "native")).toBe(true);
|
|
52
|
+
expect(balances.some(b => b.asset.type !== "native")).toBe(true);
|
|
53
|
+
for (const balance of balances) {
|
|
54
|
+
expect(typeof balance.value).toBe("bigint");
|
|
55
|
+
expect(balance.value).toBeGreaterThanOrEqual(0n);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("lastBlock returns the latest confirmed block", async () => {
|
|
60
|
+
const info = await api.lastBlock();
|
|
61
|
+
|
|
62
|
+
expect(info.height).toBeGreaterThan(0);
|
|
63
|
+
expect(typeof info.hash).toBe("string");
|
|
64
|
+
expect(info.time).toBeInstanceOf(Date);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it("getBlockInfo/getBlock agree on the same known height", async () => {
|
|
68
|
+
const lastBlockInfo = await api.lastBlock();
|
|
69
|
+
const knownHeight = lastBlockInfo.height - 100;
|
|
70
|
+
|
|
71
|
+
const info = await api.getBlockInfo(knownHeight);
|
|
72
|
+
const block = await api.getBlock(knownHeight);
|
|
73
|
+
|
|
74
|
+
expect(info.height).toBe(knownHeight);
|
|
75
|
+
expect(block.info).toEqual(info);
|
|
76
|
+
expect(Array.isArray(block.transactions)).toBe(true);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("listOperations returns a page shape for a known address", async () => {
|
|
80
|
+
const page = await api.listOperations(KNOWN_ADDRESS, { minHeight: 0 });
|
|
81
|
+
|
|
82
|
+
expect(Array.isArray(page.items)).toBe(true);
|
|
83
|
+
for (const op of page.items) {
|
|
84
|
+
expect(["IN", "OUT"]).toContain(op.type);
|
|
85
|
+
expect(typeof op.value).toBe("bigint");
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it("craftTransaction fails clearly for an intent with no recipient", async () => {
|
|
91
|
+
await expect(
|
|
92
|
+
api.craftTransaction({
|
|
93
|
+
intentType: "transaction",
|
|
94
|
+
type: "send",
|
|
95
|
+
sender: KNOWN_ADDRESS,
|
|
96
|
+
recipient: "",
|
|
97
|
+
amount: 1n,
|
|
98
|
+
asset: { type: "native" },
|
|
99
|
+
}),
|
|
100
|
+
).rejects.toThrow("vechain: recipient is required");
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("crafts a native VET transaction and combines it into a signed hex payload", async () => {
|
|
104
|
+
const crafted = await api.craftTransaction({
|
|
105
|
+
intentType: "transaction",
|
|
106
|
+
type: "send",
|
|
107
|
+
sender: KNOWN_ADDRESS,
|
|
108
|
+
recipient: "0x02961B92B8D20A4ea12f1f1CeFA74Dd7B4355A86",
|
|
109
|
+
amount: 1n,
|
|
110
|
+
asset: { type: "native" },
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
const body = JSON.parse(crafted.transaction);
|
|
114
|
+
expect(body.clauses).toHaveLength(1);
|
|
115
|
+
expect(body.gas).toBeGreaterThan(0);
|
|
116
|
+
expect(typeof crafted.details?.fee).toBe("string");
|
|
117
|
+
|
|
118
|
+
// combine attaches a (dummy) 65-byte signature and returns the hex-encoded signed tx that
|
|
119
|
+
// broadcast would submit — exercising the full craft → combine round trip.
|
|
120
|
+
const signed = api.combine(crafted.transaction, "aa".repeat(65));
|
|
121
|
+
expect(signed).toMatch(/^0x[0-9a-f]+$/);
|
|
122
|
+
});
|
|
123
|
+
});
|
package/src/api/index.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { rejectBalanceOptions } from "@ledgerhq/coin-module-framework/api/getBalance/rejectBalanceOptions";
|
|
2
|
+
import { craftTransactionData } from "@ledgerhq/coin-module-framework/logic/craftTransactionData";
|
|
3
|
+
import type {
|
|
4
|
+
AddressValidationCurrencyParameters,
|
|
5
|
+
Balance,
|
|
6
|
+
BalanceOptions,
|
|
7
|
+
CoinModuleApi,
|
|
8
|
+
CraftedTransaction,
|
|
9
|
+
Cursor,
|
|
10
|
+
FeeEstimation,
|
|
11
|
+
Page,
|
|
12
|
+
Reward,
|
|
13
|
+
Stake,
|
|
14
|
+
TransactionIntent,
|
|
15
|
+
TransactionValidation,
|
|
16
|
+
Validator,
|
|
17
|
+
} from "@ledgerhq/coin-module-framework/api/index";
|
|
18
|
+
import { setCoinConfig, type VechainCoinConfig } from "../config";
|
|
19
|
+
import {
|
|
20
|
+
broadcast,
|
|
21
|
+
combine,
|
|
22
|
+
craftTransaction,
|
|
23
|
+
estimateFees,
|
|
24
|
+
getBalance,
|
|
25
|
+
getBlock,
|
|
26
|
+
getBlockInfo,
|
|
27
|
+
lastBlock,
|
|
28
|
+
listOperations,
|
|
29
|
+
validateAddress,
|
|
30
|
+
validateIntent,
|
|
31
|
+
} from "../logic";
|
|
32
|
+
|
|
33
|
+
// CoinModuleApi (Alpaca) factory for VET + VTHO. `config` is re-wrapped to force `status: active`.
|
|
34
|
+
export function createApi(config: VechainCoinConfig, _currencyId: string): CoinModuleApi {
|
|
35
|
+
setCoinConfig(() => ({ ...config(), status: { type: "active" } }));
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
lastBlock,
|
|
39
|
+
getBlockInfo,
|
|
40
|
+
getBlock,
|
|
41
|
+
getBalance: (address: string, options?: BalanceOptions): Promise<Balance[]> =>
|
|
42
|
+
rejectBalanceOptions(() => getBalance(address), options),
|
|
43
|
+
listOperations,
|
|
44
|
+
craftTransaction: (
|
|
45
|
+
transactionIntent: TransactionIntent,
|
|
46
|
+
customFees?: FeeEstimation,
|
|
47
|
+
): Promise<CraftedTransaction> => craftTransaction(transactionIntent, customFees),
|
|
48
|
+
estimateFees: (
|
|
49
|
+
transactionIntent: TransactionIntent,
|
|
50
|
+
customFeesParameters?: FeeEstimation["parameters"],
|
|
51
|
+
): Promise<FeeEstimation> => estimateFees(transactionIntent, customFeesParameters),
|
|
52
|
+
combine,
|
|
53
|
+
broadcast,
|
|
54
|
+
validateIntent: (
|
|
55
|
+
transactionIntent: TransactionIntent,
|
|
56
|
+
balances: Balance[],
|
|
57
|
+
customFees?: FeeEstimation,
|
|
58
|
+
): Promise<TransactionValidation> => validateIntent(transactionIntent, balances, customFees),
|
|
59
|
+
craftTransactionData,
|
|
60
|
+
validateAddress: (
|
|
61
|
+
address: string,
|
|
62
|
+
parameters: Partial<AddressValidationCurrencyParameters>,
|
|
63
|
+
): Promise<boolean> => validateAddress(address, parameters),
|
|
64
|
+
// --- Not applicable / not supported for VeChain ---
|
|
65
|
+
getNextSequence: (_address: string): Promise<bigint> => {
|
|
66
|
+
throw new Error("getNextSequence is not applicable for Vechain");
|
|
67
|
+
},
|
|
68
|
+
craftRawTransaction: (
|
|
69
|
+
_transaction: string,
|
|
70
|
+
_sender: string,
|
|
71
|
+
_publicKey: string,
|
|
72
|
+
_sequence: bigint,
|
|
73
|
+
): Promise<CraftedTransaction> => {
|
|
74
|
+
throw new Error("craftRawTransaction is not supported");
|
|
75
|
+
},
|
|
76
|
+
call: () => {
|
|
77
|
+
throw new Error("call is not supported");
|
|
78
|
+
},
|
|
79
|
+
getStakes: (_address: string, _cursor?: Cursor): Promise<Page<Stake>> => {
|
|
80
|
+
throw new Error("getStakes is not supported");
|
|
81
|
+
},
|
|
82
|
+
getRewards: (_address: string, _cursor?: Cursor): Promise<Page<Reward>> => {
|
|
83
|
+
throw new Error("getRewards is not supported");
|
|
84
|
+
},
|
|
85
|
+
getValidators: (_cursor?: Cursor): Promise<Page<Validator>> => {
|
|
86
|
+
throw new Error("getValidators is not supported");
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|