@ledgerhq/coin-casper 1.4.0-next.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/.turbo/turbo-build.log +4 -0
- package/.unimportedrc.json +49 -0
- package/CHANGELOG.md +15 -0
- package/LICENSE.txt +21 -0
- package/jest.config.js +8 -0
- package/lib/api/index.d.ts +11 -0
- package/lib/api/index.d.ts.map +1 -0
- package/lib/api/index.js +129 -0
- package/lib/api/index.js.map +1 -0
- package/lib/api/types.d.ts +105 -0
- package/lib/api/types.d.ts.map +1 -0
- package/lib/api/types.js +3 -0
- package/lib/api/types.js.map +1 -0
- package/lib/bridge/bridgeHelpers/accountShape.d.ts +3 -0
- package/lib/bridge/bridgeHelpers/accountShape.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/accountShape.js +38 -0
- package/lib/bridge/bridgeHelpers/accountShape.js.map +1 -0
- package/lib/bridge/bridgeHelpers/addresses.d.ts +18 -0
- package/lib/bridge/bridgeHelpers/addresses.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/addresses.js +83 -0
- package/lib/bridge/bridgeHelpers/addresses.js.map +1 -0
- package/lib/bridge/bridgeHelpers/fee.d.ts +3 -0
- package/lib/bridge/bridgeHelpers/fee.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/fee.js +13 -0
- package/lib/bridge/bridgeHelpers/fee.js.map +1 -0
- package/lib/bridge/bridgeHelpers/transferId.d.ts +2 -0
- package/lib/bridge/bridgeHelpers/transferId.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/transferId.js +14 -0
- package/lib/bridge/bridgeHelpers/transferId.js.map +1 -0
- package/lib/bridge/bridgeHelpers/txn.d.ts +9 -0
- package/lib/bridge/bridgeHelpers/txn.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/txn.js +100 -0
- package/lib/bridge/bridgeHelpers/txn.js.map +1 -0
- package/lib/bridge/broadcast.d.ts +4 -0
- package/lib/bridge/broadcast.d.ts.map +1 -0
- package/lib/bridge/broadcast.js +15 -0
- package/lib/bridge/broadcast.js.map +1 -0
- package/lib/bridge/buildOptimisticOperation.d.ts +4 -0
- package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -0
- package/lib/bridge/buildOptimisticOperation.js +27 -0
- package/lib/bridge/buildOptimisticOperation.js.map +1 -0
- package/lib/bridge/createTransaction.d.ts +4 -0
- package/lib/bridge/createTransaction.d.ts.map +1 -0
- package/lib/bridge/createTransaction.js +19 -0
- package/lib/bridge/createTransaction.js.map +1 -0
- package/lib/bridge/deviceTransactionConfig.d.ts +18 -0
- package/lib/bridge/deviceTransactionConfig.d.ts.map +1 -0
- package/lib/bridge/deviceTransactionConfig.js +26 -0
- package/lib/bridge/deviceTransactionConfig.js.map +1 -0
- package/lib/bridge/estimateMaxSpendable.d.ts +4 -0
- package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
- package/lib/bridge/estimateMaxSpendable.js +23 -0
- package/lib/bridge/estimateMaxSpendable.js.map +1 -0
- package/lib/bridge/getTransactionStatus.d.ts +4 -0
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
- package/lib/bridge/getTransactionStatus.js +75 -0
- package/lib/bridge/getTransactionStatus.js.map +1 -0
- package/lib/bridge/index.d.ts +8 -0
- package/lib/bridge/index.d.ts.map +1 -0
- package/lib/bridge/index.js +54 -0
- package/lib/bridge/index.js.map +1 -0
- package/lib/bridge/prepareTransaction.d.ts +4 -0
- package/lib/bridge/prepareTransaction.d.ts.map +1 -0
- package/lib/bridge/prepareTransaction.js +16 -0
- package/lib/bridge/prepareTransaction.js.map +1 -0
- package/lib/bridge/signOperation.d.ts +6 -0
- package/lib/bridge/signOperation.d.ts.map +1 -0
- package/lib/bridge/signOperation.js +47 -0
- package/lib/bridge/signOperation.js.map +1 -0
- package/lib/bridge/transaction.d.ts +14 -0
- package/lib/bridge/transaction.d.ts.map +1 -0
- package/lib/bridge/transaction.js +53 -0
- package/lib/bridge/transaction.js.map +1 -0
- package/lib/common-logic/index.d.ts +2 -0
- package/lib/common-logic/index.d.ts.map +1 -0
- package/lib/common-logic/index.js +13 -0
- package/lib/common-logic/index.js.map +1 -0
- package/lib/common-logic/utils.d.ts +14 -0
- package/lib/common-logic/utils.d.ts.map +1 -0
- package/lib/common-logic/utils.js +53 -0
- package/lib/common-logic/utils.js.map +1 -0
- package/lib/common-logic/utils.unit.test.d.ts +2 -0
- package/lib/common-logic/utils.unit.test.d.ts.map +1 -0
- package/lib/common-logic/utils.unit.test.js +50 -0
- package/lib/common-logic/utils.unit.test.js.map +1 -0
- package/lib/consts.d.ts +10 -0
- package/lib/consts.d.ts.map +1 -0
- package/lib/consts.js +18 -0
- package/lib/consts.js.map +1 -0
- package/lib/errors.d.ts +10 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +8 -0
- package/lib/errors.js.map +1 -0
- package/lib/hw-signMessage.d.ts +23 -0
- package/lib/hw-signMessage.d.ts.map +1 -0
- package/lib/hw-signMessage.js +24 -0
- package/lib/hw-signMessage.js.map +1 -0
- package/lib/signer/getAddress.d.ts +6 -0
- package/lib/signer/getAddress.d.ts.map +1 -0
- package/lib/signer/getAddress.js +25 -0
- package/lib/signer/getAddress.js.map +1 -0
- package/lib/signer/index.d.ts +3 -0
- package/lib/signer/index.d.ts.map +1 -0
- package/lib/signer/index.js +8 -0
- package/lib/signer/index.js.map +1 -0
- package/lib/test/bot-specs.d.ts +7 -0
- package/lib/test/bot-specs.d.ts.map +1 -0
- package/lib/test/bot-specs.js +110 -0
- package/lib/test/bot-specs.js.map +1 -0
- package/lib/test/bridgeDatasetTest.d.ts +4 -0
- package/lib/test/bridgeDatasetTest.d.ts.map +1 -0
- package/lib/test/bridgeDatasetTest.js +177 -0
- package/lib/test/bridgeDatasetTest.js.map +1 -0
- package/lib/test/cli.d.ts +15 -0
- package/lib/test/cli.d.ts.map +1 -0
- package/lib/test/cli.js +30 -0
- package/lib/test/cli.js.map +1 -0
- package/lib/test/index.d.ts +4 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +20 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/speculos-deviceActions.d.ts +4 -0
- package/lib/test/speculos-deviceActions.d.ts.map +1 -0
- package/lib/test/speculos-deviceActions.js +53 -0
- package/lib/test/speculos-deviceActions.js.map +1 -0
- package/lib/types/common.d.ts +23 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +3 -0
- package/lib/types/common.js.map +1 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +19 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/signer.d.ts +21 -0
- package/lib/types/signer.d.ts.map +1 -0
- package/lib/types/signer.js +3 -0
- package/lib/types/signer.js.map +1 -0
- package/lib-es/api/index.d.ts +11 -0
- package/lib-es/api/index.d.ts.map +1 -0
- package/lib-es/api/index.js +118 -0
- package/lib-es/api/index.js.map +1 -0
- package/lib-es/api/types.d.ts +105 -0
- package/lib-es/api/types.d.ts.map +1 -0
- package/lib-es/api/types.js +2 -0
- package/lib-es/api/types.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/accountShape.d.ts +3 -0
- package/lib-es/bridge/bridgeHelpers/accountShape.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/accountShape.js +31 -0
- package/lib-es/bridge/bridgeHelpers/accountShape.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/addresses.d.ts +18 -0
- package/lib-es/bridge/bridgeHelpers/addresses.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/addresses.js +74 -0
- package/lib-es/bridge/bridgeHelpers/addresses.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/fee.d.ts +3 -0
- package/lib-es/bridge/bridgeHelpers/fee.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/fee.js +6 -0
- package/lib-es/bridge/bridgeHelpers/fee.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/transferId.d.ts +2 -0
- package/lib-es/bridge/bridgeHelpers/transferId.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/transferId.js +10 -0
- package/lib-es/bridge/bridgeHelpers/transferId.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/txn.d.ts +9 -0
- package/lib-es/bridge/bridgeHelpers/txn.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/txn.js +91 -0
- package/lib-es/bridge/bridgeHelpers/txn.js.map +1 -0
- package/lib-es/bridge/broadcast.d.ts +4 -0
- package/lib-es/bridge/broadcast.d.ts.map +1 -0
- package/lib-es/bridge/broadcast.js +11 -0
- package/lib-es/bridge/broadcast.js.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.d.ts +4 -0
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.js +23 -0
- package/lib-es/bridge/buildOptimisticOperation.js.map +1 -0
- package/lib-es/bridge/createTransaction.d.ts +4 -0
- package/lib-es/bridge/createTransaction.d.ts.map +1 -0
- package/lib-es/bridge/createTransaction.js +12 -0
- package/lib-es/bridge/createTransaction.js.map +1 -0
- package/lib-es/bridge/deviceTransactionConfig.d.ts +18 -0
- package/lib-es/bridge/deviceTransactionConfig.d.ts.map +1 -0
- package/lib-es/bridge/deviceTransactionConfig.js +24 -0
- package/lib-es/bridge/deviceTransactionConfig.js.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.d.ts +4 -0
- package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.js +16 -0
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
- package/lib-es/bridge/getTransactionStatus.d.ts +4 -0
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
- package/lib-es/bridge/getTransactionStatus.js +68 -0
- package/lib-es/bridge/getTransactionStatus.js.map +1 -0
- package/lib-es/bridge/index.d.ts +8 -0
- package/lib-es/bridge/index.d.ts.map +1 -0
- package/lib-es/bridge/index.js +47 -0
- package/lib-es/bridge/index.js.map +1 -0
- package/lib-es/bridge/prepareTransaction.d.ts +4 -0
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
- package/lib-es/bridge/prepareTransaction.js +12 -0
- package/lib-es/bridge/prepareTransaction.js.map +1 -0
- package/lib-es/bridge/signOperation.d.ts +6 -0
- package/lib-es/bridge/signOperation.d.ts.map +1 -0
- package/lib-es/bridge/signOperation.js +43 -0
- package/lib-es/bridge/signOperation.js.map +1 -0
- package/lib-es/bridge/transaction.d.ts +14 -0
- package/lib-es/bridge/transaction.d.ts.map +1 -0
- package/lib-es/bridge/transaction.js +45 -0
- package/lib-es/bridge/transaction.js.map +1 -0
- package/lib-es/common-logic/index.d.ts +2 -0
- package/lib-es/common-logic/index.d.ts.map +1 -0
- package/lib-es/common-logic/index.js +2 -0
- package/lib-es/common-logic/index.js.map +1 -0
- package/lib-es/common-logic/utils.d.ts +14 -0
- package/lib-es/common-logic/utils.d.ts.map +1 -0
- package/lib-es/common-logic/utils.js +39 -0
- package/lib-es/common-logic/utils.js.map +1 -0
- package/lib-es/common-logic/utils.unit.test.d.ts +2 -0
- package/lib-es/common-logic/utils.unit.test.d.ts.map +1 -0
- package/lib-es/common-logic/utils.unit.test.js +48 -0
- package/lib-es/common-logic/utils.unit.test.js.map +1 -0
- package/lib-es/consts.d.ts +10 -0
- package/lib-es/consts.d.ts.map +1 -0
- package/lib-es/consts.js +15 -0
- package/lib-es/consts.js.map +1 -0
- package/lib-es/errors.d.ts +10 -0
- package/lib-es/errors.d.ts.map +1 -0
- package/lib-es/errors.js +5 -0
- package/lib-es/errors.js.map +1 -0
- package/lib-es/hw-signMessage.d.ts +23 -0
- package/lib-es/hw-signMessage.d.ts.map +1 -0
- package/lib-es/hw-signMessage.js +20 -0
- package/lib-es/hw-signMessage.js.map +1 -0
- package/lib-es/signer/getAddress.d.ts +6 -0
- package/lib-es/signer/getAddress.d.ts.map +1 -0
- package/lib-es/signer/getAddress.js +23 -0
- package/lib-es/signer/getAddress.js.map +1 -0
- package/lib-es/signer/index.d.ts +3 -0
- package/lib-es/signer/index.d.ts.map +1 -0
- package/lib-es/signer/index.js +3 -0
- package/lib-es/signer/index.js.map +1 -0
- package/lib-es/test/bot-specs.d.ts +7 -0
- package/lib-es/test/bot-specs.d.ts.map +1 -0
- package/lib-es/test/bot-specs.js +105 -0
- package/lib-es/test/bot-specs.js.map +1 -0
- package/lib-es/test/bridgeDatasetTest.d.ts +4 -0
- package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -0
- package/lib-es/test/bridgeDatasetTest.js +171 -0
- package/lib-es/test/bridgeDatasetTest.js.map +1 -0
- package/lib-es/test/cli.d.ts +15 -0
- package/lib-es/test/cli.d.ts.map +1 -0
- package/lib-es/test/cli.js +24 -0
- package/lib-es/test/cli.js.map +1 -0
- package/lib-es/test/index.d.ts +4 -0
- package/lib-es/test/index.d.ts.map +1 -0
- package/lib-es/test/index.js +4 -0
- package/lib-es/test/index.js.map +1 -0
- package/lib-es/test/speculos-deviceActions.d.ts +4 -0
- package/lib-es/test/speculos-deviceActions.d.ts.map +1 -0
- package/lib-es/test/speculos-deviceActions.js +50 -0
- package/lib-es/test/speculos-deviceActions.js.map +1 -0
- package/lib-es/types/common.d.ts +23 -0
- package/lib-es/types/common.d.ts.map +1 -0
- package/lib-es/types/common.js +2 -0
- package/lib-es/types/common.js.map +1 -0
- package/lib-es/types/index.d.ts +3 -0
- package/lib-es/types/index.d.ts.map +1 -0
- package/lib-es/types/index.js +3 -0
- package/lib-es/types/index.js.map +1 -0
- package/lib-es/types/signer.d.ts +21 -0
- package/lib-es/types/signer.d.ts.map +1 -0
- package/lib-es/types/signer.js +2 -0
- package/lib-es/types/signer.js.map +1 -0
- package/package.json +127 -0
- package/src/api/index.ts +166 -0
- package/src/api/types.ts +113 -0
- package/src/bridge/bridgeHelpers/accountShape.ts +39 -0
- package/src/bridge/bridgeHelpers/addresses.ts +94 -0
- package/src/bridge/bridgeHelpers/fee.ts +6 -0
- package/src/bridge/bridgeHelpers/transferId.ts +9 -0
- package/src/bridge/bridgeHelpers/txn.ts +121 -0
- package/src/bridge/broadcast.ts +18 -0
- package/src/bridge/buildOptimisticOperation.ts +31 -0
- package/src/bridge/createTransaction.ts +15 -0
- package/src/bridge/deviceTransactionConfig.ts +46 -0
- package/src/bridge/estimateMaxSpendable.ts +26 -0
- package/src/bridge/getTransactionStatus.ts +96 -0
- package/src/bridge/index.ts +65 -0
- package/src/bridge/prepareTransaction.ts +19 -0
- package/src/bridge/signOperation.ts +73 -0
- package/src/bridge/transaction.ts +61 -0
- package/src/common-logic/index.ts +10 -0
- package/src/common-logic/utils.ts +53 -0
- package/src/common-logic/utils.unit.test.ts +75 -0
- package/src/consts.ts +18 -0
- package/src/errors.ts +5 -0
- package/src/hw-signMessage.ts +30 -0
- package/src/signer/getAddress.ts +31 -0
- package/src/signer/index.ts +3 -0
- package/src/test/bot-specs.ts +127 -0
- package/src/test/bridgeDatasetTest.ts +178 -0
- package/src/test/cli.ts +36 -0
- package/src/test/index.ts +3 -0
- package/src/test/speculos-deviceActions.ts +54 -0
- package/src/types/common.ts +38 -0
- package/src/types/index.ts +2 -0
- package/src/types/signer.ts +20 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fromTransactionRaw = exports.formatTransaction = void 0;
|
|
7
|
+
const formatters_1 = require("@ledgerhq/coin-framework/formatters");
|
|
8
|
+
const serialization_1 = require("@ledgerhq/coin-framework/serialization");
|
|
9
|
+
const index_1 = require("@ledgerhq/coin-framework/account/index");
|
|
10
|
+
const index_2 = require("@ledgerhq/coin-framework/currencies/index");
|
|
11
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
12
|
+
const formatTransaction = ({ recipient, useAllAmount, amount }, account) => `
|
|
13
|
+
SEND ${useAllAmount
|
|
14
|
+
? "MAX"
|
|
15
|
+
: amount.isZero()
|
|
16
|
+
? ""
|
|
17
|
+
: " " +
|
|
18
|
+
(0, index_2.formatCurrencyUnit)((0, index_1.getAccountCurrency)(account).units[0], amount, {
|
|
19
|
+
showCode: true,
|
|
20
|
+
disableRounding: true,
|
|
21
|
+
})}
|
|
22
|
+
TO ${recipient}`;
|
|
23
|
+
exports.formatTransaction = formatTransaction;
|
|
24
|
+
const fromTransactionRaw = (tr) => {
|
|
25
|
+
const common = (0, serialization_1.fromTransactionCommonRaw)(tr);
|
|
26
|
+
return {
|
|
27
|
+
...common,
|
|
28
|
+
family: tr.family,
|
|
29
|
+
fees: new bignumber_js_1.default(tr.fees),
|
|
30
|
+
amount: new bignumber_js_1.default(tr.amount),
|
|
31
|
+
transferId: tr.transferId,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
exports.fromTransactionRaw = fromTransactionRaw;
|
|
35
|
+
const toTransactionRaw = (t) => {
|
|
36
|
+
const common = (0, serialization_1.toTransactionCommonRaw)(t);
|
|
37
|
+
return {
|
|
38
|
+
...common,
|
|
39
|
+
family: t.family,
|
|
40
|
+
amount: t.amount.toFixed(),
|
|
41
|
+
fees: t.fees.toString(),
|
|
42
|
+
transferId: t.transferId,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
exports.default = {
|
|
46
|
+
formatTransaction: exports.formatTransaction,
|
|
47
|
+
fromTransactionRaw: exports.fromTransactionRaw,
|
|
48
|
+
toTransactionRaw,
|
|
49
|
+
fromTransactionStatusRaw: serialization_1.fromTransactionStatusRawCommon,
|
|
50
|
+
toTransactionStatusRaw: serialization_1.toTransactionStatusRawCommon,
|
|
51
|
+
formatTransactionStatus: formatters_1.formatTransactionStatus,
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":";;;;;;AACA,oEAA8E;AAC9E,0EAKgD;AAEhD,kEAA4E;AAC5E,qEAA+E;AAC/E,gEAAqC;AAE9B,MAAM,iBAAiB,GAAG,CAC/B,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAe,EAChD,OAAgB,EACR,EAAE,CAAC;OAEX,YAAY;IACV,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,GAAG;YACH,IAAA,0BAAkB,EAAC,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;aACtB,CACT;KACK,SAAS,EAAE,CAAC;AAfJ,QAAA,iBAAiB,qBAeb;AAEV,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,IAAA,wCAAwB,EAAC,EAAE,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI,sBAAS,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5B,MAAM,EAAE,IAAI,sBAAS,CAAC,EAAE,CAAC,MAAM,CAAC;QAChC,UAAU,EAAE,EAAE,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAc,EAAkB,EAAE;IAC1D,MAAM,MAAM,GAAG,IAAA,sCAAsB,EAAC,CAAC,CAAC,CAAC;IAEzC,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe;IACb,iBAAiB,EAAjB,yBAAiB;IACjB,kBAAkB,EAAlB,0BAAkB;IAClB,gBAAgB;IAChB,wBAAwB,EAAxB,8CAAwB;IACxB,sBAAsB,EAAtB,4CAAsB;IACtB,uBAAuB,EAAvB,oCAAuB;CACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common-logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,aAAa,EACb,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRandomTransferID = exports.getBufferFromString = exports.methodToString = exports.isError = exports.isValidBase64 = exports.isValidHex = exports.getPath = exports.isNoErrorReturnCode = void 0;
|
|
4
|
+
var utils_1 = require("./utils");
|
|
5
|
+
Object.defineProperty(exports, "isNoErrorReturnCode", { enumerable: true, get: function () { return utils_1.isNoErrorReturnCode; } });
|
|
6
|
+
Object.defineProperty(exports, "getPath", { enumerable: true, get: function () { return utils_1.getPath; } });
|
|
7
|
+
Object.defineProperty(exports, "isValidHex", { enumerable: true, get: function () { return utils_1.isValidHex; } });
|
|
8
|
+
Object.defineProperty(exports, "isValidBase64", { enumerable: true, get: function () { return utils_1.isValidBase64; } });
|
|
9
|
+
Object.defineProperty(exports, "isError", { enumerable: true, get: function () { return utils_1.isError; } });
|
|
10
|
+
Object.defineProperty(exports, "methodToString", { enumerable: true, get: function () { return utils_1.methodToString; } });
|
|
11
|
+
Object.defineProperty(exports, "getBufferFromString", { enumerable: true, get: function () { return utils_1.getBufferFromString; } });
|
|
12
|
+
Object.defineProperty(exports, "getRandomTransferID", { enumerable: true, get: function () { return utils_1.getRandomTransferID; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common-logic/index.ts"],"names":[],"mappings":";;;AAAA,iCASiB;AARf,4GAAA,mBAAmB,OAAA;AACnB,gGAAA,OAAO,OAAA;AACP,mGAAA,UAAU,OAAA;AACV,sGAAA,aAAa,OAAA;AACb,gGAAA,OAAO,OAAA;AACP,uGAAA,cAAc,OAAA;AACd,4GAAA,mBAAmB,OAAA;AACnB,4GAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
export declare const isNoErrorReturnCode: (code: number) => boolean;
|
|
4
|
+
export declare const getPath: (path: string) => string;
|
|
5
|
+
export declare const isValidHex: (msg: string) => boolean;
|
|
6
|
+
export declare const isValidBase64: (msg: string) => boolean;
|
|
7
|
+
export declare const isError: (r: {
|
|
8
|
+
returnCode: number;
|
|
9
|
+
errorMessage: string;
|
|
10
|
+
}) => void;
|
|
11
|
+
export declare const methodToString: (method: number) => string;
|
|
12
|
+
export declare const getBufferFromString: (message: string) => Buffer;
|
|
13
|
+
export declare function getRandomTransferID(): string;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":";;AAOA,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,OAA0B,CAAC;AAE9E,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,MACqB,CAAC;AAE7D,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAAmC,CAAC;AAC7E,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,OAAsC,CAAC;AAEnF,eAAO,MAAM,OAAO,MAAO;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAAG,IAEzE,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,MAO/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAUrD,CAAC;AAYF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getRandomTransferID = exports.getBufferFromString = exports.methodToString = exports.isError = exports.isValidBase64 = exports.isValidHex = exports.getPath = exports.isNoErrorReturnCode = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const validHexRegExp = new RegExp(/[0-9A-Fa-f]{6}/g);
|
|
9
|
+
const validBase64RegExp = new RegExp(/^(?:[A-Za-z\d+/]{4})*(?:[A-Za-z\d+/]{3}=|[A-Za-z\d+/]{2}==)?$/);
|
|
10
|
+
const isNoErrorReturnCode = (code) => code === 0x9000;
|
|
11
|
+
exports.isNoErrorReturnCode = isNoErrorReturnCode;
|
|
12
|
+
const getPath = (path) => path && path.substring(0, 2) !== "m/" ? `m/${path}` : path;
|
|
13
|
+
exports.getPath = getPath;
|
|
14
|
+
const isValidHex = (msg) => validHexRegExp.test(msg);
|
|
15
|
+
exports.isValidHex = isValidHex;
|
|
16
|
+
const isValidBase64 = (msg) => validBase64RegExp.test(msg);
|
|
17
|
+
exports.isValidBase64 = isValidBase64;
|
|
18
|
+
const isError = (r) => {
|
|
19
|
+
if (!(0, exports.isNoErrorReturnCode)(r.returnCode))
|
|
20
|
+
throw new Error(`${r.returnCode} - ${r.errorMessage}`);
|
|
21
|
+
};
|
|
22
|
+
exports.isError = isError;
|
|
23
|
+
const methodToString = (method) => {
|
|
24
|
+
switch (method) {
|
|
25
|
+
case 0:
|
|
26
|
+
return "Token transfer";
|
|
27
|
+
default:
|
|
28
|
+
return "Unknown";
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.methodToString = methodToString;
|
|
32
|
+
const getBufferFromString = (message) => {
|
|
33
|
+
if ((0, exports.isValidHex)(message)) {
|
|
34
|
+
return Buffer.from(message, "hex");
|
|
35
|
+
}
|
|
36
|
+
if ((0, exports.isValidBase64)(message)) {
|
|
37
|
+
return Buffer.from(message, "base64");
|
|
38
|
+
}
|
|
39
|
+
return Buffer.from(message);
|
|
40
|
+
};
|
|
41
|
+
exports.getBufferFromString = getBufferFromString;
|
|
42
|
+
function randomIntFromInterval(min, max) {
|
|
43
|
+
const minBig = new bignumber_js_1.default(min);
|
|
44
|
+
const maxBig = new bignumber_js_1.default(max);
|
|
45
|
+
const random = bignumber_js_1.default.random().multipliedBy(maxBig.minus(minBig).plus(1)).plus(minBig);
|
|
46
|
+
const randomInt = random.integerValue(bignumber_js_1.default.ROUND_FLOOR);
|
|
47
|
+
return randomInt.toString();
|
|
48
|
+
}
|
|
49
|
+
function getRandomTransferID() {
|
|
50
|
+
return randomIntFromInterval(0, Number.MAX_SAFE_INTEGER);
|
|
51
|
+
}
|
|
52
|
+
exports.getRandomTransferID = getRandomTransferID;
|
|
53
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAErC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACrD,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,+DAA+D,CAChE,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAAjE,QAAA,mBAAmB,uBAA8C;AAEvE,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CAC9C,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AADhD,QAAA,OAAO,WACyC;AAEtD,MAAM,UAAU,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAAhE,QAAA,UAAU,cAAsD;AACtE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAAtE,QAAA,aAAa,iBAAyD;AAE5E,MAAM,OAAO,GAAG,CAAC,CAA+C,EAAQ,EAAE;IAC/E,IAAI,CAAC,IAAA,2BAAmB,EAAC,CAAC,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;AACjG,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC;YACJ,OAAO,gBAAgB,CAAC;QAC1B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB;AAEK,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC7D,IAAI,IAAA,kBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,IAAA,qBAAa,EAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AAVW,QAAA,mBAAmB,uBAU9B;AAEF,SAAS,qBAAqB,CAAC,GAAW,EAAE,GAAW;IACrD,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,sBAAS,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,sBAAS,CAAC,WAAW,CAAC,CAAC;IAE7D,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,qBAAqB,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAFD,kDAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.unit.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const casper_js_sdk_1 = require("casper-js-sdk");
|
|
4
|
+
const addresses_1 = require("../bridge/bridgeHelpers/addresses");
|
|
5
|
+
describe("Casper addresses", () => {
|
|
6
|
+
const pubKeys = {
|
|
7
|
+
// valid
|
|
8
|
+
validSecp256k1: "0203a17118ec0e64c4e4fdbdbee0ea14d118c9aaf08c6c81bbb776cae607ceb84ecb",
|
|
9
|
+
validEd25519: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b4c9806f844c94d401",
|
|
10
|
+
validSecp256k1Checksum: "0203A17118eC0e64c4e4FdbDbEe0eA14D118C9aAf08C6c81bbB776Cae607cEB84EcB", // Checksummed
|
|
11
|
+
validEd25519Checksum: "016470AE57b0a3aD5A679d2e0422909Bfb9dEd445e20cbE6B4c9806f844c94d401", // Checksummed
|
|
12
|
+
// invalid
|
|
13
|
+
invalidSecp256k1: "0203A17118ec0e64c4e4fdbdbee0ea14d118c9aaf08c6c81bbc776cae607ceb84ecb",
|
|
14
|
+
invalidEd25519: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b8c9806f844c94D401",
|
|
15
|
+
invalidAddresstype: "036470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b8c9806f844c94d401", // Invalid address type
|
|
16
|
+
invalidLength: "12345", // Invalid length
|
|
17
|
+
invalidCharacter: "xyz123", // Contains non-hex characters
|
|
18
|
+
invalidChecksum: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b4c9806f844c94D400", // Invalid checksum
|
|
19
|
+
};
|
|
20
|
+
test("Check if valid addresses are valid", () => {
|
|
21
|
+
expect((0, addresses_1.isAddressValid)(pubKeys.validEd25519)).toBe(true);
|
|
22
|
+
expect((0, addresses_1.isAddressValid)(pubKeys.validSecp256k1)).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
test("Check if invalid addresses are invalid", () => {
|
|
25
|
+
expect((0, addresses_1.isAddressValid)(pubKeys.invalidEd25519)).toBe(false);
|
|
26
|
+
expect((0, addresses_1.isAddressValid)(pubKeys.invalidSecp256k1)).toBe(false);
|
|
27
|
+
expect((0, addresses_1.isAddressValid)(pubKeys.invalidLength)).toBe(false);
|
|
28
|
+
expect((0, addresses_1.isAddressValid)(pubKeys.invalidCharacter)).toBe(false);
|
|
29
|
+
expect((0, addresses_1.isAddressValid)(pubKeys.invalidChecksum)).toBe(false);
|
|
30
|
+
});
|
|
31
|
+
test("Get the address from the publick key", () => {
|
|
32
|
+
/**
|
|
33
|
+
* Extracts the public key and key signature from a given Casper address.
|
|
34
|
+
*
|
|
35
|
+
* @param {string} address - The Casper address from which to extract the public key and key signature.
|
|
36
|
+
* @returns {{ pubkey: Buffer, keySig: CLPublicKeyTag }} An object containing the public key as a Buffer and the key signature as a CLPublicKeyTag.
|
|
37
|
+
*/
|
|
38
|
+
function casperPubKeyFromAddress(address) {
|
|
39
|
+
const keySig = parseInt(address.slice(0, 2), 10);
|
|
40
|
+
const pubkeyHex = address.slice(2);
|
|
41
|
+
const pubkey = Buffer.from(pubkeyHex, "hex");
|
|
42
|
+
return { pubkey, keySig };
|
|
43
|
+
}
|
|
44
|
+
expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validSecp256k1).pubkey, casper_js_sdk_1.CLPublicKeyTag.SECP256K1)).toBe(pubKeys.validSecp256k1);
|
|
45
|
+
expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validSecp256k1Checksum).pubkey, casper_js_sdk_1.CLPublicKeyTag.SECP256K1)).toBe(pubKeys.validSecp256k1Checksum.toLowerCase());
|
|
46
|
+
expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validEd25519).pubkey, casper_js_sdk_1.CLPublicKeyTag.ED25519)).toBe(pubKeys.validEd25519);
|
|
47
|
+
expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validEd25519Checksum).pubkey, casper_js_sdk_1.CLPublicKeyTag.ED25519)).toBe(pubKeys.validEd25519Checksum.toLowerCase());
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=utils.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.unit.test.js","sourceRoot":"","sources":["../../src/common-logic/utils.unit.test.ts"],"names":[],"mappings":"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"}
|
package/lib/consts.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const CASPER_FEES_MOTES: number;
|
|
2
|
+
export declare const CASPER_FEES_CSPR = 0.1;
|
|
3
|
+
export declare const CASPER_MINIMUM_VALID_AMOUNT_MOTES: number;
|
|
4
|
+
export declare const CASPER_MINIMUM_VALID_AMOUNT_CSPR = 2.5;
|
|
5
|
+
export declare const CASPER_NETWORK = "casper";
|
|
6
|
+
export declare const CASPER_CHECKSUM_HEX_LEN = 32;
|
|
7
|
+
export declare const CASPER_MAX_TRANSFER_ID = "18446744073709551615";
|
|
8
|
+
export declare const MayBlockAccountError: Error;
|
|
9
|
+
export declare const InvalidMinimumAmountError: Error;
|
|
10
|
+
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAC3C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,iCAAiC,QAAY,CAAC;AAC3D,eAAO,MAAM,gCAAgC,MAAM,CAAC;AACpD,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAE7D,eAAO,MAAM,oBAAoB,OAE/B,CAAC;AAEH,eAAO,MAAM,yBAAyB,OAEpC,CAAC"}
|
package/lib/consts.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidMinimumAmountError = exports.MayBlockAccountError = exports.CASPER_MAX_TRANSFER_ID = exports.CASPER_CHECKSUM_HEX_LEN = exports.CASPER_NETWORK = exports.CASPER_MINIMUM_VALID_AMOUNT_CSPR = exports.CASPER_MINIMUM_VALID_AMOUNT_MOTES = exports.CASPER_FEES_CSPR = exports.CASPER_FEES_MOTES = void 0;
|
|
4
|
+
const errors_1 = require("./errors");
|
|
5
|
+
exports.CASPER_FEES_MOTES = 0.1 * 1e9;
|
|
6
|
+
exports.CASPER_FEES_CSPR = 0.1;
|
|
7
|
+
exports.CASPER_MINIMUM_VALID_AMOUNT_MOTES = 2.5 * 1e9;
|
|
8
|
+
exports.CASPER_MINIMUM_VALID_AMOUNT_CSPR = 2.5;
|
|
9
|
+
exports.CASPER_NETWORK = "casper";
|
|
10
|
+
exports.CASPER_CHECKSUM_HEX_LEN = 32;
|
|
11
|
+
exports.CASPER_MAX_TRANSFER_ID = "18446744073709551615";
|
|
12
|
+
exports.MayBlockAccountError = new errors_1.MayBlockAccount("", {
|
|
13
|
+
minAmount: `${exports.CASPER_MINIMUM_VALID_AMOUNT_CSPR + exports.CASPER_FEES_CSPR} CSPR`,
|
|
14
|
+
});
|
|
15
|
+
exports.InvalidMinimumAmountError = new errors_1.InvalidMinimumAmount("", {
|
|
16
|
+
minAmount: `${exports.CASPER_MINIMUM_VALID_AMOUNT_CSPR} CSPR`,
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAA,qCAAiE;AAEpD,QAAA,iBAAiB,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9B,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACvB,QAAA,iCAAiC,GAAG,GAAG,GAAG,GAAG,CAAC;AAC9C,QAAA,gCAAgC,GAAG,GAAG,CAAC;AACvC,QAAA,cAAc,GAAG,QAAQ,CAAC;AAC1B,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE7B,QAAA,sBAAsB,GAAG,sBAAsB,CAAC;AAEhD,QAAA,oBAAoB,GAAG,IAAI,wBAAe,CAAC,EAAE,EAAE;IAC1D,SAAS,EAAE,GAAG,wCAAgC,GAAG,wBAAgB,OAAO;CACzE,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,IAAI,6BAAoB,CAAC,EAAE,EAAE;IACpE,SAAS,EAAE,GAAG,wCAAgC,OAAO;CACtD,CAAC,CAAC"}
|
package/lib/errors.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const CasperInvalidTransferId: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
2
|
+
[key: string]: unknown;
|
|
3
|
+
}>;
|
|
4
|
+
export declare const InvalidMinimumAmount: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const MayBlockAccount: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB;;EAAoD,CAAC;AACzF,eAAO,MAAM,oBAAoB;;EAAiD,CAAC;AACnF,eAAO,MAAM,eAAe;;EAA4C,CAAC"}
|
package/lib/errors.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MayBlockAccount = exports.InvalidMinimumAmount = exports.CasperInvalidTransferId = void 0;
|
|
4
|
+
const errors_1 = require("@ledgerhq/errors");
|
|
5
|
+
exports.CasperInvalidTransferId = (0, errors_1.createCustomErrorClass)("CasperInvalidTransferId");
|
|
6
|
+
exports.InvalidMinimumAmount = (0, errors_1.createCustomErrorClass)("InvalidMinimumAmount");
|
|
7
|
+
exports.MayBlockAccount = (0, errors_1.createCustomErrorClass)("MayBlockAccount");
|
|
8
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,6CAA0D;AAE7C,QAAA,uBAAuB,GAAG,IAAA,+BAAsB,EAAC,yBAAyB,CAAC,CAAC;AAC5E,QAAA,oBAAoB,GAAG,IAAA,+BAAsB,EAAC,sBAAsB,CAAC,CAAC;AACtE,QAAA,eAAe,GAAG,IAAA,+BAAsB,EAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
2
|
+
import { CasperSigner } from "./types";
|
|
3
|
+
import { Account, AnyMessage } from "@ledgerhq/types-live";
|
|
4
|
+
export declare const signMessage: (signerContext: SignerContext<CasperSigner>) => (deviceId: string, account: Account, { message }: AnyMessage) => Promise<{
|
|
5
|
+
rsv: {
|
|
6
|
+
r: string;
|
|
7
|
+
s: string;
|
|
8
|
+
v: number;
|
|
9
|
+
};
|
|
10
|
+
signature: string;
|
|
11
|
+
}>;
|
|
12
|
+
declare const _default: {
|
|
13
|
+
signMessage: (signerContext: SignerContext<CasperSigner>) => (deviceId: string, account: Account, { message }: AnyMessage) => Promise<{
|
|
14
|
+
rsv: {
|
|
15
|
+
r: string;
|
|
16
|
+
s: string;
|
|
17
|
+
v: number;
|
|
18
|
+
};
|
|
19
|
+
signature: string;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
export default _default;
|
|
23
|
+
//# sourceMappingURL=hw-signMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hw-signMessage.d.ts","sourceRoot":"","sources":["../src/hw-signMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE3D,eAAO,MAAM,WAAW,kBACN,cAAc,YAAY,CAAC,gBAC1B,MAAM,WAAW,OAAO,eAAe,UAAU;;;;;;;EAmBjE,CAAC;;;;;;;;;;;AAEJ,wBAA+B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.signMessage = void 0;
|
|
4
|
+
const logs_1 = require("@ledgerhq/logs");
|
|
5
|
+
const utils_1 = require("./common-logic/utils");
|
|
6
|
+
const signMessage = (signerContext) => async (deviceId, account, { message }) => {
|
|
7
|
+
(0, logs_1.log)("debug", "start signMessage process");
|
|
8
|
+
if (!message)
|
|
9
|
+
throw new Error(`Message cannot be empty`);
|
|
10
|
+
if (typeof message !== "string")
|
|
11
|
+
throw new Error(`Signing EIP712Message not supported`);
|
|
12
|
+
const r = await signerContext(deviceId, async (signer) => await signer.sign(account.freshAddressPath, (0, utils_1.getBufferFromString)(message)));
|
|
13
|
+
return {
|
|
14
|
+
rsv: {
|
|
15
|
+
r: Buffer.from(r.signature_compact.slice(0, 32)).toString("hex"),
|
|
16
|
+
s: Buffer.from(r.signature_compact.slice(32, 64)).toString("hex"),
|
|
17
|
+
v: parseInt(Buffer.from(r.signature_compact.slice(64, 65)).toString("hex"), 16),
|
|
18
|
+
},
|
|
19
|
+
signature: `0x${Buffer.from(r.signature_compact).toString("hex")}`,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports.signMessage = signMessage;
|
|
23
|
+
exports.default = { signMessage: exports.signMessage };
|
|
24
|
+
//# sourceMappingURL=hw-signMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hw-signMessage.js","sourceRoot":"","sources":["../src/hw-signMessage.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC,gDAA2D;AAGpD,MAAM,WAAW,GACtB,CAAC,aAA0C,EAAE,EAAE,CAC/C,KAAK,EAAE,QAAgB,EAAE,OAAgB,EAAE,EAAE,OAAO,EAAc,EAAE,EAAE;IACpE,IAAA,UAAG,EAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACzD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAExF,MAAM,CAAC,GAAG,MAAM,aAAa,CAC3B,QAAQ,EACR,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC,CAC1F,CAAC;IAEF,OAAO;QACL,GAAG,EAAE;YACH,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;SAChF;QACD,SAAS,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;KACnE,CAAC;AACJ,CAAC,CAAC;AArBS,QAAA,WAAW,eAqBpB;AAEJ,kBAAe,EAAE,WAAW,EAAX,mBAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GetAddressFn } from "@ledgerhq/coin-framework/bridge/getAddressWrapper";
|
|
2
|
+
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
3
|
+
import { CasperSigner } from "../types";
|
|
4
|
+
declare function resolver(signerContext: SignerContext<CasperSigner>): GetAddressFn;
|
|
5
|
+
export default resolver;
|
|
6
|
+
//# sourceMappingURL=getAddress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAddress.d.ts","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,iBAAS,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY,CAoB1E;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const logs_1 = require("@ledgerhq/logs");
|
|
4
|
+
const casper_js_sdk_1 = require("casper-js-sdk");
|
|
5
|
+
const addresses_1 = require("../bridge/bridgeHelpers/addresses");
|
|
6
|
+
function resolver(signerContext) {
|
|
7
|
+
return async (deviceId, { path, verify }) => {
|
|
8
|
+
(0, logs_1.log)("debug", "start getAddress process");
|
|
9
|
+
const { r } = await signerContext(deviceId, async (signer) => {
|
|
10
|
+
const r = verify
|
|
11
|
+
? await signer.showAddressAndPubKey(path)
|
|
12
|
+
: await signer.getAddressAndPubKey(path);
|
|
13
|
+
return { r };
|
|
14
|
+
});
|
|
15
|
+
return {
|
|
16
|
+
path,
|
|
17
|
+
address: r.Address.length
|
|
18
|
+
? r.Address.toString().toLowerCase()
|
|
19
|
+
: (0, addresses_1.casperAddressFromPubKey)(r.publicKey, casper_js_sdk_1.CLPublicKeyTag.SECP256K1),
|
|
20
|
+
publicKey: r.publicKey.toString("hex"),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.default = resolver;
|
|
25
|
+
//# sourceMappingURL=getAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAddress.js","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAIrC,iDAA+C;AAC/C,iEAA4E;AAG5E,SAAS,QAAQ,CAAC,aAA0C;IAC1D,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAqB,EAAE,EAAE;QACrE,IAAA,UAAG,EAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAEzC,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YACzD,MAAM,CAAC,GAAG,MAAM;gBACd,CAAC,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBACzC,CAAC,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAE3C,OAAO,EAAE,CAAC,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;gBACvB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;gBACpC,CAAC,CAAC,IAAA,mCAAuB,EAAC,CAAC,CAAC,SAAS,EAAE,8BAAc,CAAC,SAAS,CAAC;YAClE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,kBAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,cAAc,CAAC;AAEpC,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getAddress_1 = __importDefault(require("./getAddress"));
|
|
7
|
+
exports.default = getAddress_1.default;
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":";;;;;AAAA,8DAAoC;AAEpC,kBAAe,oBAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bot-specs.d.ts","sourceRoot":"","sources":["../../src/test/bot-specs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;;;;AAqHlE,wBAEE"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const invariant_1 = __importDefault(require("invariant"));
|
|
7
|
+
const devices_1 = require("@ledgerhq/devices");
|
|
8
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
+
const expect_1 = __importDefault(require("expect"));
|
|
10
|
+
const currencies_1 = require("@ledgerhq/cryptoassets/currencies");
|
|
11
|
+
const specs_1 = require("@ledgerhq/coin-framework/bot/specs");
|
|
12
|
+
const speculos_deviceActions_1 = require("./speculos-deviceActions");
|
|
13
|
+
const consts_1 = require("../consts");
|
|
14
|
+
const common_logic_1 = require("../common-logic");
|
|
15
|
+
const MIN_SAFE = new bignumber_js_1.default(consts_1.CASPER_MINIMUM_VALID_AMOUNT_MOTES * 2);
|
|
16
|
+
const maxAccount = 6;
|
|
17
|
+
const casperSpecs = {
|
|
18
|
+
name: "Casper",
|
|
19
|
+
currency: (0, currencies_1.getCryptoCurrencyById)("casper"),
|
|
20
|
+
appQuery: {
|
|
21
|
+
model: devices_1.DeviceModelId.nanoSP,
|
|
22
|
+
appName: "Casper",
|
|
23
|
+
},
|
|
24
|
+
genericDeviceAction: speculos_deviceActions_1.acceptTransaction,
|
|
25
|
+
testTimeout: 6 * 60 * 1000,
|
|
26
|
+
minViableAmount: MIN_SAFE,
|
|
27
|
+
transactionCheck: ({ maxSpendable }) => {
|
|
28
|
+
(0, invariant_1.default)(maxSpendable.gt(MIN_SAFE), "balance is too low");
|
|
29
|
+
},
|
|
30
|
+
mutations: [
|
|
31
|
+
{
|
|
32
|
+
name: "Send ~50%",
|
|
33
|
+
feature: "send",
|
|
34
|
+
maxRun: 1,
|
|
35
|
+
testDestination: specs_1.genericTestDestination,
|
|
36
|
+
transaction: ({ account, siblings, bridge, maxSpendable }) => {
|
|
37
|
+
(0, invariant_1.default)(maxSpendable.gt(MIN_SAFE), "balance is too low");
|
|
38
|
+
const sibling = (0, specs_1.pickSiblings)(siblings, maxAccount);
|
|
39
|
+
const recipient = sibling.freshAddress;
|
|
40
|
+
const amount = maxSpendable.div(2).integerValue();
|
|
41
|
+
const transaction = bridge.createTransaction(account);
|
|
42
|
+
const updates = [
|
|
43
|
+
{
|
|
44
|
+
recipient,
|
|
45
|
+
},
|
|
46
|
+
{ amount },
|
|
47
|
+
];
|
|
48
|
+
if (Math.random() < 0.5) {
|
|
49
|
+
updates.push({
|
|
50
|
+
transferId: (0, common_logic_1.getRandomTransferID)(),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
transaction,
|
|
55
|
+
updates,
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
test: ({ accountBeforeTransaction, operation, account, transaction }) => {
|
|
59
|
+
(0, specs_1.botTest)("account spendable balance decreased with operation", () => (0, expect_1.default)(account.spendableBalance).toEqual(accountBeforeTransaction.spendableBalance.minus(operation.value)));
|
|
60
|
+
if (transaction.transferId) {
|
|
61
|
+
(0, specs_1.botTest)("operation transferId", () => (0, expect_1.default)(operation.extra).toMatchObject({
|
|
62
|
+
transferId: transaction.transferId,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "Transfer Max",
|
|
69
|
+
feature: "sendMax",
|
|
70
|
+
maxRun: 1,
|
|
71
|
+
transaction: ({ account, siblings, bridge }) => {
|
|
72
|
+
const updates = [
|
|
73
|
+
{
|
|
74
|
+
recipient: (0, specs_1.pickSiblings)(siblings, maxAccount).freshAddress,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
useAllAmount: true,
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
if (Math.random() < 0.5) {
|
|
81
|
+
updates.push({
|
|
82
|
+
transferId: (0, common_logic_1.getRandomTransferID)(),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
transaction: bridge.createTransaction(account),
|
|
87
|
+
updates,
|
|
88
|
+
};
|
|
89
|
+
},
|
|
90
|
+
expectStatusWarnings: _ => {
|
|
91
|
+
return {
|
|
92
|
+
amount: consts_1.MayBlockAccountError,
|
|
93
|
+
};
|
|
94
|
+
},
|
|
95
|
+
testDestination: specs_1.genericTestDestination,
|
|
96
|
+
test: ({ account, transaction, operation }) => {
|
|
97
|
+
(0, specs_1.botTest)("account spendable balance is zero", () => (0, expect_1.default)(account.spendableBalance.toString()).toBe("0"));
|
|
98
|
+
if (transaction.transferId) {
|
|
99
|
+
(0, specs_1.botTest)("operation transferId", () => (0, expect_1.default)(operation.extra).toMatchObject({
|
|
100
|
+
transferId: transaction.transferId,
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
exports.default = {
|
|
108
|
+
casperSpecs,
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=bot-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bot-specs.js","sourceRoot":"","sources":["../../src/test/bot-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeDatasetTest.d.ts","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA2K5C,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAK5C,CAAC"}
|