@ledgerhq/coin-internet_computer 1.4.0-nightly.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -0
- package/.unimportedrc.json +38 -0
- package/CHANGELOG.md +7 -0
- package/LICENSE.txt +21 -0
- package/jest.config.js +9 -0
- package/lib/api/api.d.ts +12 -0
- package/lib/api/api.d.ts.map +1 -0
- package/lib/api/api.js +82 -0
- package/lib/api/api.js.map +1 -0
- package/lib/api/index.d.ts +2 -0
- package/lib/api/index.d.ts.map +1 -0
- package/lib/api/index.js +18 -0
- package/lib/api/index.js.map +1 -0
- package/lib/bridge/bridgeHelpers/account.d.ts +3 -0
- package/lib/bridge/bridgeHelpers/account.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/account.js +127 -0
- package/lib/bridge/bridgeHelpers/account.js.map +1 -0
- package/lib/bridge/bridgeHelpers/addresses.d.ts +12 -0
- package/lib/bridge/bridgeHelpers/addresses.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/addresses.js +46 -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/icpRosetta/index.d.ts +30 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/index.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/index.js +87 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/index.js.map +1 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/types.d.ts +145 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/types.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/types.js +3 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/types.js.map +1 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/utils.d.ts +17 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/utils.d.ts.map +1 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/utils.js +154 -0
- package/lib/bridge/bridgeHelpers/icpRosetta/utils.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 +21 -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 +37 -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 +20 -0
- package/lib/bridge/createTransaction.js.map +1 -0
- package/lib/bridge/deviceTransactionConfig.d.ts +11 -0
- package/lib/bridge/deviceTransactionConfig.d.ts.map +1 -0
- package/lib/bridge/deviceTransactionConfig.js +41 -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 +28 -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 +71 -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 +32 -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 +53 -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 +41 -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 +12 -0
- package/lib/common-logic/index.js.map +1 -0
- package/lib/common-logic/utils.d.ts +9 -0
- package/lib/common-logic/utils.d.ts.map +1 -0
- package/lib/common-logic/utils.js +44 -0
- package/lib/common-logic/utils.js.map +1 -0
- package/lib/consts.d.ts +6 -0
- package/lib/consts.d.ts.map +1 -0
- package/lib/consts.js +12 -0
- package/lib/consts.js.map +1 -0
- package/lib/errors.d.ts +4 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +9 -0
- package/lib/errors.js.map +1 -0
- package/lib/hw-signMessage.d.ts +12 -0
- package/lib/hw-signMessage.d.ts.map +1 -0
- package/lib/hw-signMessage.js +43 -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 +35 -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 +103 -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 +141 -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 +27 -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 +55 -0
- package/lib/test/speculos-deviceActions.js.map +1 -0
- package/lib/types/common.d.ts +21 -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 +22 -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/api.d.ts +12 -0
- package/lib-es/api/api.d.ts.map +1 -0
- package/lib-es/api/api.js +71 -0
- package/lib-es/api/api.js.map +1 -0
- package/lib-es/api/index.d.ts +2 -0
- package/lib-es/api/index.d.ts.map +1 -0
- package/lib-es/api/index.js +2 -0
- package/lib-es/api/index.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/account.d.ts +3 -0
- package/lib-es/bridge/bridgeHelpers/account.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/account.js +120 -0
- package/lib-es/bridge/bridgeHelpers/account.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/addresses.d.ts +12 -0
- package/lib-es/bridge/bridgeHelpers/addresses.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/addresses.js +37 -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/icpRosetta/index.d.ts +30 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/index.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/index.js +75 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/index.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/types.d.ts +145 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/types.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/types.js +2 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/types.js.map +1 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.d.ts +17 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.d.ts.map +1 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.js +122 -0
- package/lib-es/bridge/bridgeHelpers/icpRosetta/utils.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 +17 -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 +33 -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 +13 -0
- package/lib-es/bridge/createTransaction.js.map +1 -0
- package/lib-es/bridge/deviceTransactionConfig.d.ts +11 -0
- package/lib-es/bridge/deviceTransactionConfig.d.ts.map +1 -0
- package/lib-es/bridge/deviceTransactionConfig.js +39 -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 +21 -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 +67 -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 +28 -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 +49 -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 +33 -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 +9 -0
- package/lib-es/common-logic/utils.d.ts.map +1 -0
- package/lib-es/common-logic/utils.js +34 -0
- package/lib-es/common-logic/utils.js.map +1 -0
- package/lib-es/consts.d.ts +6 -0
- package/lib-es/consts.d.ts.map +1 -0
- package/lib-es/consts.js +9 -0
- package/lib-es/consts.js.map +1 -0
- package/lib-es/errors.d.ts +4 -0
- package/lib-es/errors.d.ts.map +1 -0
- package/lib-es/errors.js +6 -0
- package/lib-es/errors.js.map +1 -0
- package/lib-es/hw-signMessage.d.ts +12 -0
- package/lib-es/hw-signMessage.d.ts.map +1 -0
- package/lib-es/hw-signMessage.js +39 -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 +33 -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 +98 -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 +135 -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 +21 -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 +52 -0
- package/lib-es/test/speculos-deviceActions.js.map +1 -0
- package/lib-es/types/common.d.ts +21 -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 +22 -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 +128 -0
- package/src/api/api.ts +92 -0
- package/src/api/index.ts +1 -0
- package/src/bridge/bridgeHelpers/account.ts +134 -0
- package/src/bridge/bridgeHelpers/addresses.ts +33 -0
- package/src/bridge/bridgeHelpers/fee.ts +6 -0
- package/src/bridge/bridgeHelpers/icpRosetta/index.ts +154 -0
- package/src/bridge/bridgeHelpers/icpRosetta/types.ts +166 -0
- package/src/bridge/bridgeHelpers/icpRosetta/utils.ts +151 -0
- package/src/bridge/broadcast.ts +15 -0
- package/src/bridge/buildOptimisticOperation.ts +32 -0
- package/src/bridge/createTransaction.ts +15 -0
- package/src/bridge/deviceTransactionConfig.ts +53 -0
- package/src/bridge/estimateMaxSpendable.ts +19 -0
- package/src/bridge/getTransactionStatus.ts +75 -0
- package/src/bridge/index.ts +63 -0
- package/src/bridge/prepareTransaction.ts +28 -0
- package/src/bridge/signOperation.ts +59 -0
- package/src/bridge/transaction.ts +61 -0
- package/src/common-logic/index.ts +9 -0
- package/src/common-logic/utils.ts +47 -0
- package/src/consts.ts +11 -0
- package/src/errors.ts +6 -0
- package/src/hw-signMessage.ts +42 -0
- package/src/signer/getAddress.ts +34 -0
- package/src/signer/index.ts +3 -0
- package/src/test/bot-specs.ts +120 -0
- package/src/test/bridgeDatasetTest.ts +141 -0
- package/src/test/cli.ts +36 -0
- package/src/test/index.ts +3 -0
- package/src/test/speculos-deviceActions.ts +61 -0
- package/src/types/common.ts +31 -0
- package/src/types/index.ts +2 -0
- package/src/types/signer.ts +22 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"entry": [
|
|
3
|
+
"src/api/api.ts",
|
|
4
|
+
"src/api/index.ts",
|
|
5
|
+
"src/bridge/bridgeHelpers/account.ts",
|
|
6
|
+
"src/bridge/bridgeHelpers/addresses.ts",
|
|
7
|
+
"src/bridge/bridgeHelpers/fee.ts",
|
|
8
|
+
"src/bridge/bridgeHelpers/icpRosetta/index.ts",
|
|
9
|
+
"src/bridge/bridgeHelpers/icpRosetta/types.ts",
|
|
10
|
+
"src/bridge/bridgeHelpers/icpRosetta/utils.ts",
|
|
11
|
+
"src/bridge/broadcast.ts",
|
|
12
|
+
"src/bridge/buildOptimisticOperation.ts",
|
|
13
|
+
"src/bridge/createTransaction.ts",
|
|
14
|
+
"src/bridge/deviceTransactionConfig.ts",
|
|
15
|
+
"src/bridge/estimateMaxSpendable.ts",
|
|
16
|
+
"src/bridge/getTransactionStatus.ts",
|
|
17
|
+
"src/bridge/index.ts",
|
|
18
|
+
"src/bridge/prepareTransaction.ts",
|
|
19
|
+
"src/bridge/signOperation.ts",
|
|
20
|
+
"src/bridge/transaction.ts",
|
|
21
|
+
"src/common-logic/index.ts",
|
|
22
|
+
"src/common-logic/utils.ts",
|
|
23
|
+
"src/consts.ts",
|
|
24
|
+
"src/errors.ts",
|
|
25
|
+
"src/hw-signMessage.ts",
|
|
26
|
+
"src/signer/getAddress.ts",
|
|
27
|
+
"src/signer/index.ts",
|
|
28
|
+
"src/test/bot-specs.ts",
|
|
29
|
+
"src/test/bridgeDatasetTest.ts",
|
|
30
|
+
"src/test/cli.ts",
|
|
31
|
+
"src/test/index.ts",
|
|
32
|
+
"src/test/speculos-deviceActions.ts",
|
|
33
|
+
"src/types/common.ts",
|
|
34
|
+
"src/types/index.ts",
|
|
35
|
+
"src/types/signer.ts"
|
|
36
|
+
],
|
|
37
|
+
"ignoreUnresolved": ["form-data", "proxy-from-env", "follow-redirects"]
|
|
38
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# @ledgerhq/coin-internet_computer
|
|
2
|
+
|
|
3
|
+
## 1.4.0-nightly.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#8560](https://github.com/LedgerHQ/ledger-live/pull/8560) [`013e3ac`](https://github.com/LedgerHQ/ledger-live/commit/013e3ac458936ce9de93cd277766f68e1de8d099) Thanks [@Canestin](https://github.com/Canestin)! - internet computer coin modularization
|
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017-present Ledger https://www.ledger.com/
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
collectCoverageFrom: ["src/**/*.ts"],
|
|
4
|
+
coverageDirectory: "coverage",
|
|
5
|
+
preset: "ts-jest",
|
|
6
|
+
testEnvironment: "node",
|
|
7
|
+
testPathIgnorePatterns: ["lib/", "lib-es/"],
|
|
8
|
+
passWithNoTests: true,
|
|
9
|
+
};
|
package/lib/api/api.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ICPRosettaBlockHeightResponse, ICPRosettaGetBalancesResponse, ICPRosettaGetTxnsHistoryResponse } from "../bridge/bridgeHelpers/icpRosetta/types";
|
|
2
|
+
export declare const getICPRosettaNetworkIdentifier: () => {
|
|
3
|
+
network_identifier: {
|
|
4
|
+
blockchain: string;
|
|
5
|
+
network: string;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export declare const fetchBlockHeight: () => Promise<ICPRosettaBlockHeightResponse>;
|
|
9
|
+
export declare const fetchBalances: (accountId: string) => Promise<ICPRosettaGetBalancesResponse>;
|
|
10
|
+
export declare const fetchTxns: (accountId: string) => Promise<ICPRosettaGetTxnsHistoryResponse>;
|
|
11
|
+
export declare const constructionInvoke: <TRequest, TResponse>(opts: TRequest, method: string) => Promise<TResponse>;
|
|
12
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EACjC,MAAM,0CAA0C,CAAC;AA8BlD,eAAO,MAAM,8BAA8B;;;;;CAO1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAa,QAAQ,6BAA6B,CAM9E,CAAC;AAEF,eAAO,MAAM,aAAa,cAAqB,MAAM,KAAG,QAAQ,6BAA6B,CAU5F,CAAC;AAEF,eAAO,MAAM,SAAS,cAAqB,MAAM,KAAG,QAAQ,gCAAgC,CAU3F,CAAC;AAEF,eAAO,MAAM,kBAAkB,8BACvB,QAAQ,UACN,MAAM,KACb,QAAQ,SAAS,CAQnB,CAAC"}
|
package/lib/api/api.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.constructionInvoke = exports.fetchTxns = exports.fetchBalances = exports.fetchBlockHeight = exports.getICPRosettaNetworkIdentifier = void 0;
|
|
16
|
+
const logs_1 = require("@ledgerhq/logs");
|
|
17
|
+
const live_env_1 = require("@ledgerhq/live-env");
|
|
18
|
+
const network_1 = __importDefault(require("@ledgerhq/live-network/network"));
|
|
19
|
+
const consts_1 = require("../consts");
|
|
20
|
+
const getICPURL = (path) => {
|
|
21
|
+
const baseUrl = (0, live_env_1.getEnv)("API_ICP_ENDPOINT");
|
|
22
|
+
if (!baseUrl)
|
|
23
|
+
throw new Error("API base URL not available");
|
|
24
|
+
return `${baseUrl}${path ? path : ""}`;
|
|
25
|
+
};
|
|
26
|
+
const ICPFetchWrapper = (path, body) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const url = getICPURL(path);
|
|
29
|
+
// We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
|
|
30
|
+
const opts = {
|
|
31
|
+
method: "POST",
|
|
32
|
+
data: body,
|
|
33
|
+
url,
|
|
34
|
+
};
|
|
35
|
+
const rawResponse = yield (0, network_1.default)(opts);
|
|
36
|
+
if (rawResponse && rawResponse.data && ((_a = rawResponse.data.details) === null || _a === void 0 ? void 0 : _a.error_message)) {
|
|
37
|
+
(0, logs_1.log)("error", (_b = rawResponse.data.details) === null || _b === void 0 ? void 0 : _b.error_message);
|
|
38
|
+
}
|
|
39
|
+
// We force data to this way as network func is not using the correct param type. Changing that func will generate errors in other implementations
|
|
40
|
+
const { data } = rawResponse;
|
|
41
|
+
(0, logs_1.log)("http", url);
|
|
42
|
+
return data;
|
|
43
|
+
});
|
|
44
|
+
const getICPRosettaNetworkIdentifier = () => {
|
|
45
|
+
return {
|
|
46
|
+
network_identifier: {
|
|
47
|
+
blockchain: consts_1.ICP_BLK_NAME_ROSETTA,
|
|
48
|
+
network: consts_1.ICP_NET_ID_ROSETTA,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
exports.getICPRosettaNetworkIdentifier = getICPRosettaNetworkIdentifier;
|
|
53
|
+
const fetchBlockHeight = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
+
const data = yield ICPFetchWrapper("network/status", (0, exports.getICPRosettaNetworkIdentifier)());
|
|
55
|
+
return data;
|
|
56
|
+
});
|
|
57
|
+
exports.fetchBlockHeight = fetchBlockHeight;
|
|
58
|
+
const fetchBalances = (accountId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
const body = Object.assign(Object.assign({}, (0, exports.getICPRosettaNetworkIdentifier)()), { account_identifier: {
|
|
60
|
+
address: accountId,
|
|
61
|
+
metadata: {},
|
|
62
|
+
} });
|
|
63
|
+
const data = yield ICPFetchWrapper("account/balance", body);
|
|
64
|
+
return data;
|
|
65
|
+
});
|
|
66
|
+
exports.fetchBalances = fetchBalances;
|
|
67
|
+
const fetchTxns = (accountId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
|
+
const body = Object.assign(Object.assign({}, (0, exports.getICPRosettaNetworkIdentifier)()), { account_identifier: {
|
|
69
|
+
address: accountId,
|
|
70
|
+
metadata: {},
|
|
71
|
+
} });
|
|
72
|
+
const data = yield ICPFetchWrapper("search/transactions", body);
|
|
73
|
+
return data;
|
|
74
|
+
});
|
|
75
|
+
exports.fetchTxns = fetchTxns;
|
|
76
|
+
const constructionInvoke = (opts, method) => __awaiter(void 0, void 0, void 0, function* () {
|
|
77
|
+
const body = Object.assign({}, opts);
|
|
78
|
+
const data = yield ICPFetchWrapper(`construction/${method}`, body);
|
|
79
|
+
return data;
|
|
80
|
+
});
|
|
81
|
+
exports.constructionInvoke = constructionInvoke;
|
|
82
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
package/lib/api/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./api"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAcjF,eAAO,MAAM,eAAe,EAAE,eAmC7B,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.getAccountShape = void 0;
|
|
16
|
+
const index_1 = require("@ledgerhq/coin-framework/account/index");
|
|
17
|
+
const api_1 = require("../../api");
|
|
18
|
+
const flatMap_1 = __importDefault(require("lodash/flatMap"));
|
|
19
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
20
|
+
const consts_1 = require("../../consts");
|
|
21
|
+
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
22
|
+
const utils_1 = require("../../common-logic/utils");
|
|
23
|
+
const invariant_1 = __importDefault(require("invariant"));
|
|
24
|
+
const icpRosetta_1 = require("./icpRosetta");
|
|
25
|
+
const getAccountShape = (info) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
const { currency, derivationMode, rest = {}, initialAccount } = info;
|
|
27
|
+
const publicKey = reconciliatePublicKey(rest.publicKey, initialAccount);
|
|
28
|
+
(0, invariant_1.default)(publicKey, "publicKey is required");
|
|
29
|
+
// deriving address from public key
|
|
30
|
+
const address = yield (0, icpRosetta_1.deriveAddressFromPubkey)(publicKey);
|
|
31
|
+
(0, invariant_1.default)(address, "address is required");
|
|
32
|
+
const accountId = (0, index_1.encodeAccountId)({
|
|
33
|
+
type: "js",
|
|
34
|
+
version: "2",
|
|
35
|
+
currencyId: currency.id,
|
|
36
|
+
xpubOrAddress: publicKey,
|
|
37
|
+
derivationMode,
|
|
38
|
+
});
|
|
39
|
+
// log("debug", `Generation account shape for ${address}`);
|
|
40
|
+
const blockHeight = yield (0, api_1.fetchBlockHeight)();
|
|
41
|
+
const balanceResp = yield (0, api_1.fetchBalances)(address);
|
|
42
|
+
const balance = balanceResp.balances[0];
|
|
43
|
+
const txns = yield (0, api_1.fetchTxns)(address);
|
|
44
|
+
const result = {
|
|
45
|
+
id: accountId,
|
|
46
|
+
balance: (0, bignumber_js_1.default)(balance.value),
|
|
47
|
+
spendableBalance: (0, bignumber_js_1.default)(balance.value),
|
|
48
|
+
operations: (0, flatMap_1.default)(txns.transactions.reverse(), mapTxToOps(accountId, address)),
|
|
49
|
+
blockHeight: blockHeight.current_block_identifier.index,
|
|
50
|
+
operationsCount: txns.transactions.length,
|
|
51
|
+
xpub: publicKey,
|
|
52
|
+
};
|
|
53
|
+
return result;
|
|
54
|
+
});
|
|
55
|
+
exports.getAccountShape = getAccountShape;
|
|
56
|
+
function reconciliatePublicKey(publicKey, initialAccount) {
|
|
57
|
+
if (publicKey)
|
|
58
|
+
return publicKey;
|
|
59
|
+
if (initialAccount) {
|
|
60
|
+
const { xpubOrAddress } = (0, index_1.decodeAccountId)(initialAccount.id);
|
|
61
|
+
return xpubOrAddress;
|
|
62
|
+
}
|
|
63
|
+
throw new Error("publicKey wasn't properly restored");
|
|
64
|
+
}
|
|
65
|
+
const mapTxToOps = (accountId, address, fee = consts_1.ICP_FEES) => {
|
|
66
|
+
return (txInfo) => {
|
|
67
|
+
const ops = [];
|
|
68
|
+
const ownerOperation = txInfo.transaction.operations.find(cur => cur.account.address === address);
|
|
69
|
+
const counterOperation = txInfo.transaction.operations.find(cur => cur.account.address !== address);
|
|
70
|
+
if (!ownerOperation || !counterOperation)
|
|
71
|
+
return ops;
|
|
72
|
+
const timeStamp = txInfo.transaction.metadata.timestamp;
|
|
73
|
+
const amount = (0, bignumber_js_1.default)(ownerOperation.amount.value);
|
|
74
|
+
const hash = txInfo.transaction.transaction_identifier.hash;
|
|
75
|
+
const fromAccount = amount.isPositive()
|
|
76
|
+
? counterOperation.account.address
|
|
77
|
+
: ownerOperation.account.address;
|
|
78
|
+
const toAccount = amount.isNegative()
|
|
79
|
+
? counterOperation.account.address
|
|
80
|
+
: ownerOperation.account.address;
|
|
81
|
+
const memo = txInfo.transaction.metadata.memo.toString();
|
|
82
|
+
const blockHeight = txInfo.transaction.metadata.block_height;
|
|
83
|
+
const date = new Date((0, utils_1.normalizeEpochTimestamp)(timeStamp.toString()));
|
|
84
|
+
const value = amount.abs();
|
|
85
|
+
const feeToUse = (0, bignumber_js_1.default)(fee);
|
|
86
|
+
const isSending = amount.isNegative();
|
|
87
|
+
const isReceiving = amount.isPositive();
|
|
88
|
+
if (isSending) {
|
|
89
|
+
ops.push({
|
|
90
|
+
id: (0, operation_1.encodeOperationId)(accountId, hash, "OUT"),
|
|
91
|
+
hash,
|
|
92
|
+
type: "OUT",
|
|
93
|
+
value: value.plus(feeToUse),
|
|
94
|
+
fee: feeToUse,
|
|
95
|
+
blockHeight,
|
|
96
|
+
blockHash: null,
|
|
97
|
+
accountId,
|
|
98
|
+
senders: [fromAccount],
|
|
99
|
+
recipients: [toAccount],
|
|
100
|
+
date,
|
|
101
|
+
extra: {
|
|
102
|
+
memo,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (isReceiving) {
|
|
107
|
+
ops.push({
|
|
108
|
+
id: (0, operation_1.encodeOperationId)(accountId, hash, "IN"),
|
|
109
|
+
hash,
|
|
110
|
+
type: "IN",
|
|
111
|
+
value,
|
|
112
|
+
fee: feeToUse,
|
|
113
|
+
blockHeight,
|
|
114
|
+
blockHash: null,
|
|
115
|
+
accountId,
|
|
116
|
+
senders: [fromAccount],
|
|
117
|
+
recipients: [toAccount],
|
|
118
|
+
date,
|
|
119
|
+
extra: {
|
|
120
|
+
memo,
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return ops;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Account } from "@ledgerhq/types-live";
|
|
2
|
+
export declare const getAddress: (a: Account) => {
|
|
3
|
+
address: string;
|
|
4
|
+
derivationPath: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function validateAddress(address: string): Promise<{
|
|
7
|
+
isValid: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function validateMemo(memo?: string): {
|
|
10
|
+
isValid: boolean;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/addresses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/C,eAAO,MAAM,UAAU,MAClB,OAAO,KACT;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CAC6C,CAAC;AAEvE,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CASpF;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAQhE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.validateMemo = exports.validateAddress = exports.getAddress = void 0;
|
|
16
|
+
const logs_1 = require("@ledgerhq/logs");
|
|
17
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
18
|
+
const consts_1 = require("../../consts");
|
|
19
|
+
const api_1 = require("../../api");
|
|
20
|
+
const getAddress = (a) => ({ address: a.freshAddress, derivationPath: a.freshAddressPath });
|
|
21
|
+
exports.getAddress = getAddress;
|
|
22
|
+
function validateAddress(address) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
try {
|
|
26
|
+
const res = yield (0, api_1.fetchBalances)(address);
|
|
27
|
+
if (!res.balances)
|
|
28
|
+
throw Error((_a = res.details) === null || _a === void 0 ? void 0 : _a.error_message);
|
|
29
|
+
return { isValid: true };
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
(0, logs_1.log)("error", (_b = e.message) !== null && _b !== void 0 ? _b : "Failed to validate address");
|
|
33
|
+
return { isValid: false };
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
exports.validateAddress = validateAddress;
|
|
38
|
+
function validateMemo(memo) {
|
|
39
|
+
const res = (0, bignumber_js_1.default)(memo !== null && memo !== void 0 ? memo : 0);
|
|
40
|
+
if (res.isNaN() || res.lt(0) || res.gt((0, bignumber_js_1.default)(consts_1.MAX_MEMO_VALUE))) {
|
|
41
|
+
return { isValid: false };
|
|
42
|
+
}
|
|
43
|
+
return { isValid: true };
|
|
44
|
+
}
|
|
45
|
+
exports.validateMemo = validateMemo;
|
|
46
|
+
//# sourceMappingURL=addresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/addresses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAqC;AAErC,gEAAqC;AACrC,yCAA8C;AAC9C,mCAA0C;AAEnC,MAAM,UAAU,GAAG,CACxB,CAAU,EAIV,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAL1D,QAAA,UAAU,cAKgD;AAEvE,SAAsB,eAAe,CAAC,OAAe;;;QACnD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAa,EAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC,MAAA,GAAG,CAAC,OAAO,0CAAE,aAAa,CAAC,CAAC;YAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAA,UAAG,EAAC,OAAO,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,4BAA4B,CAAC,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;CAAA;AATD,0CASC;AAED,SAAgB,YAAY,CAAC,IAAa;IACxC,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC,CAAC,CAAC;IAEjC,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAA,sBAAS,EAAC,uBAAc,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AARD,oCAQC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/fee.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,wBAAgB,gBAAgB,IAAI,SAAS,CAE5C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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.getEstimatedFees = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const consts_1 = require("../../consts");
|
|
9
|
+
function getEstimatedFees() {
|
|
10
|
+
return new bignumber_js_1.default(consts_1.ICP_FEES);
|
|
11
|
+
}
|
|
12
|
+
exports.getEstimatedFees = getEstimatedFees;
|
|
13
|
+
//# sourceMappingURL=fee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/fee.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,yCAAwC;AAExC,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,sBAAS,CAAC,iBAAQ,CAAC,CAAC;AACjC,CAAC;AAFD,4CAEC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Account } from "@ledgerhq/types-live";
|
|
2
|
+
import { Transaction } from "../../../types";
|
|
3
|
+
import { ICPRosettaConstructionPayloadsResponse } from "./types";
|
|
4
|
+
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
5
|
+
import { ICPSigner } from "../../../types";
|
|
6
|
+
export declare const getUnsignedTransaction: (transaction: Transaction, account: Account) => Promise<{
|
|
7
|
+
unsignedTxn: string;
|
|
8
|
+
payloads: ICPRosettaConstructionPayloadsResponse["payloads"];
|
|
9
|
+
}>;
|
|
10
|
+
export declare const signICPTransaction: ({ signerContext, deviceId, unsignedTxn, path, payloads, pubkey, }: {
|
|
11
|
+
signerContext: SignerContext<ICPSigner>;
|
|
12
|
+
deviceId: string;
|
|
13
|
+
unsignedTxn: string;
|
|
14
|
+
path: string;
|
|
15
|
+
payloads: ICPRosettaConstructionPayloadsResponse["payloads"];
|
|
16
|
+
pubkey: string;
|
|
17
|
+
}) => Promise<{
|
|
18
|
+
signatures: {
|
|
19
|
+
txnSig: string;
|
|
20
|
+
readSig: string;
|
|
21
|
+
};
|
|
22
|
+
signedTxn: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const getTxnMetadata: (signedTxn: string) => Promise<{
|
|
25
|
+
hash: string;
|
|
26
|
+
}>;
|
|
27
|
+
export declare const getTxnExpirationDate: (_unsignedTxn: string) => Date;
|
|
28
|
+
export declare const broadcastTxn: (signedTxn: string) => Promise<void>;
|
|
29
|
+
export declare const deriveAddressFromPubkey: (pubkey: string) => Promise<string>;
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bridge/bridgeHelpers/icpRosetta/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAML,sCAAsC,EAKvC,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,eAAO,MAAM,sBAAsB,gBACpB,WAAW,WACf,OAAO;iBAEH,MAAM;cACT,sCAAsC,CAAC,UAAU,CAAC;EAwB7D,CAAC;AAEF,eAAO,MAAM,kBAAkB;mBAQd,cAAc,SAAS,CAAC;cAC7B,MAAM;iBACH,MAAM;UACb,MAAM;cACF,sCAAsC,CAAC,UAAU,CAAC;YACpD,MAAM;;gBAEF;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;eACpC,MAAM;EA8ClB,CAAC;AAEF,eAAO,MAAM,cAAc,cAAqB,MAAM;UAAmB,MAAM;EAS9E,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,KAAG,IAE3D,CAAC;AAEF,eAAO,MAAM,YAAY,cAAqB,MAAM,kBAKnD,CAAC;AAEF,eAAO,MAAM,uBAAuB,WAAkB,MAAM,oBAa3D,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.deriveAddressFromPubkey = exports.broadcastTxn = exports.getTxnExpirationDate = exports.getTxnMetadata = exports.signICPTransaction = exports.getUnsignedTransaction = void 0;
|
|
16
|
+
const api_1 = require("../../../api");
|
|
17
|
+
const utils_1 = require("./utils");
|
|
18
|
+
const agent_1 = require("@dfinity/agent");
|
|
19
|
+
const principal_1 = require("@dfinity/principal");
|
|
20
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
21
|
+
const consts_1 = require("../../../consts");
|
|
22
|
+
const getUnsignedTransaction = (transaction, account) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
const ops = (0, utils_1.generateOperations)(transaction, account);
|
|
25
|
+
const pubkeys = [
|
|
26
|
+
{
|
|
27
|
+
hex_bytes: (_a = account.xpub) !== null && _a !== void 0 ? _a : "",
|
|
28
|
+
curve_type: "secp256k1",
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
const reqOpts = Object.assign(Object.assign({}, (0, api_1.getICPRosettaNetworkIdentifier)()), { operations: ops, public_keys: pubkeys, metadata: {
|
|
32
|
+
memo: parseInt((_b = transaction.memo) !== null && _b !== void 0 ? _b : "0"),
|
|
33
|
+
} });
|
|
34
|
+
const { payloads, unsigned_transaction } = yield (0, api_1.constructionInvoke)(reqOpts, "payloads");
|
|
35
|
+
return { unsignedTxn: unsigned_transaction, payloads };
|
|
36
|
+
});
|
|
37
|
+
exports.getUnsignedTransaction = getUnsignedTransaction;
|
|
38
|
+
const signICPTransaction = (_c) => __awaiter(void 0, [_c], void 0, function* ({ signerContext, deviceId, unsignedTxn, path, payloads, pubkey, }) {
|
|
39
|
+
var _d;
|
|
40
|
+
const decodedTxn = agent_1.Cbor.decode(Buffer.from(unsignedTxn, "hex"));
|
|
41
|
+
const txnReqFromCbor = decodedTxn.updates[0][1];
|
|
42
|
+
const expiry = new utils_1.ingressExpiry((0, bignumber_js_1.default)(decodedTxn.ingress_expiries[0].toString()));
|
|
43
|
+
const submitReq = {
|
|
44
|
+
request_type: "call",
|
|
45
|
+
canister_id: principal_1.Principal.fromUint8Array(txnReqFromCbor.canister_id),
|
|
46
|
+
method_name: txnReqFromCbor.method_name,
|
|
47
|
+
arg: txnReqFromCbor.arg,
|
|
48
|
+
sender: principal_1.Principal.fromUint8Array(txnReqFromCbor.sender),
|
|
49
|
+
ingress_expiry: expiry,
|
|
50
|
+
};
|
|
51
|
+
const txnBlobToSign = agent_1.Cbor.encode({
|
|
52
|
+
content: submitReq,
|
|
53
|
+
});
|
|
54
|
+
const { r } = yield signerContext(deviceId, (signer) => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
|
+
const r = yield signer.sign(path, Buffer.from(txnBlobToSign), consts_1.ICP_SEND_TXN_TYPE);
|
|
56
|
+
return { r };
|
|
57
|
+
}));
|
|
58
|
+
const result = {
|
|
59
|
+
signatures: {
|
|
60
|
+
readSig: "",
|
|
61
|
+
txnSig: Buffer.from((_d = r.signatureRS) !== null && _d !== void 0 ? _d : "").toString("hex"),
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
const signaturesPayload = (0, utils_1.generateSignaturesPayload)(result.signatures, payloads, pubkey);
|
|
65
|
+
const { signed_transaction: signedTxn } = yield (0, api_1.constructionInvoke)(Object.assign(Object.assign({}, (0, api_1.getICPRosettaNetworkIdentifier)()), { signatures: signaturesPayload, unsigned_transaction: unsignedTxn }), "combine");
|
|
66
|
+
return Object.assign(Object.assign({}, result), { signedTxn });
|
|
67
|
+
});
|
|
68
|
+
exports.signICPTransaction = signICPTransaction;
|
|
69
|
+
const getTxnMetadata = (signedTxn) => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
|
+
const { transaction_identifier: { hash }, } = yield (0, api_1.constructionInvoke)(Object.assign(Object.assign({}, (0, api_1.getICPRosettaNetworkIdentifier)()), { signed_transaction: signedTxn }), "hash");
|
|
71
|
+
return { hash };
|
|
72
|
+
});
|
|
73
|
+
exports.getTxnMetadata = getTxnMetadata;
|
|
74
|
+
const getTxnExpirationDate = (_unsignedTxn) => {
|
|
75
|
+
return new Date();
|
|
76
|
+
};
|
|
77
|
+
exports.getTxnExpirationDate = getTxnExpirationDate;
|
|
78
|
+
const broadcastTxn = (signedTxn) => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
|
+
yield (0, api_1.constructionInvoke)(Object.assign(Object.assign({}, (0, api_1.getICPRosettaNetworkIdentifier)()), { signed_transaction: signedTxn }), "submit");
|
|
80
|
+
});
|
|
81
|
+
exports.broadcastTxn = broadcastTxn;
|
|
82
|
+
const deriveAddressFromPubkey = (pubkey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
83
|
+
const res = yield (0, api_1.constructionInvoke)(Object.assign(Object.assign({}, (0, api_1.getICPRosettaNetworkIdentifier)()), { public_key: { curve_type: "secp256k1", hex_bytes: pubkey } }), "derive");
|
|
84
|
+
return res.account_identifier.address;
|
|
85
|
+
});
|
|
86
|
+
exports.deriveAddressFromPubkey = deriveAddressFromPubkey;
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/bridgeHelpers/icpRosetta/index.ts"],"names":[],"mappings":"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"}
|