@ledgerhq/coin-algorand 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +14 -0
- package/lib/api/algodv2.js +10 -20
- package/lib/api/algodv2.js.map +1 -1
- package/lib/api/index.js +4 -13
- package/lib/api/index.js.map +1 -1
- package/lib/api/indexer.js +3 -12
- package/lib/api/indexer.js.map +1 -1
- package/lib/bridge/js.js +1 -10
- package/lib/bridge/js.js.map +1 -1
- package/lib/bridge.integration.test.js +66 -12
- package/lib/bridge.integration.test.js.map +1 -1
- package/lib/broadcast.js +3 -12
- package/lib/broadcast.js.map +1 -1
- package/lib/buildTransaction.js +3 -12
- package/lib/buildTransaction.js.map +1 -1
- package/lib/cli-transaction.js +9 -1
- package/lib/cli-transaction.js.map +1 -1
- package/lib/estimateMaxSpendable.js +10 -13
- package/lib/estimateMaxSpendable.js.map +1 -1
- package/lib/getFeesForTransaction.js +4 -13
- package/lib/getFeesForTransaction.js.map +1 -1
- package/lib/getTransactionStatus.js +5 -14
- package/lib/getTransactionStatus.js.map +1 -1
- package/lib/hw-getAddress.js +3 -12
- package/lib/hw-getAddress.js.map +1 -1
- package/lib/initAccount.js +1 -2
- package/lib/initAccount.js.map +1 -1
- package/lib/logic.js +6 -15
- package/lib/logic.js.map +1 -1
- package/lib/mock.js +4 -6
- package/lib/mock.js.map +1 -1
- package/lib/prepareTransaction.js +5 -14
- package/lib/prepareTransaction.js.map +1 -1
- package/lib/signOperation.js +23 -34
- package/lib/signOperation.js.map +1 -1
- package/lib/specs.js +8 -13
- package/lib/specs.js.map +1 -1
- package/lib/speculos-deviceActions.js +1 -1
- package/lib/speculos-deviceActions.js.map +1 -1
- package/lib/synchronization.js +78 -91
- package/lib/synchronization.js.map +1 -1
- package/lib/transaction.js +16 -2
- package/lib/transaction.js.map +1 -1
- package/lib-es/api/algodv2.js +10 -20
- package/lib-es/api/algodv2.js.map +1 -1
- package/lib-es/api/index.js +4 -13
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/api/indexer.js +3 -12
- package/lib-es/api/indexer.js.map +1 -1
- package/lib-es/bridge/js.js +1 -10
- package/lib-es/bridge/js.js.map +1 -1
- package/lib-es/bridge.integration.test.js +66 -12
- package/lib-es/bridge.integration.test.js.map +1 -1
- package/lib-es/broadcast.js +3 -12
- package/lib-es/broadcast.js.map +1 -1
- package/lib-es/buildTransaction.js +3 -12
- package/lib-es/buildTransaction.js.map +1 -1
- package/lib-es/cli-transaction.js +9 -1
- package/lib-es/cli-transaction.js.map +1 -1
- package/lib-es/estimateMaxSpendable.js +10 -13
- package/lib-es/estimateMaxSpendable.js.map +1 -1
- package/lib-es/getFeesForTransaction.js +4 -13
- package/lib-es/getFeesForTransaction.js.map +1 -1
- package/lib-es/getTransactionStatus.js +5 -14
- package/lib-es/getTransactionStatus.js.map +1 -1
- package/lib-es/hw-getAddress.js +3 -12
- package/lib-es/hw-getAddress.js.map +1 -1
- package/lib-es/initAccount.js +1 -2
- package/lib-es/initAccount.js.map +1 -1
- package/lib-es/logic.js +6 -15
- package/lib-es/logic.js.map +1 -1
- package/lib-es/mock.js +4 -6
- package/lib-es/mock.js.map +1 -1
- package/lib-es/prepareTransaction.js +5 -14
- package/lib-es/prepareTransaction.js.map +1 -1
- package/lib-es/signOperation.js +23 -34
- package/lib-es/signOperation.js.map +1 -1
- package/lib-es/specs.js +8 -13
- package/lib-es/specs.js.map +1 -1
- package/lib-es/speculos-deviceActions.js +1 -1
- package/lib-es/speculos-deviceActions.js.map +1 -1
- package/lib-es/synchronization.js +78 -91
- package/lib-es/synchronization.js.map +1 -1
- package/lib-es/transaction.js +16 -2
- package/lib-es/transaction.js.map +1 -1
- package/package.json +4 -4
- package/tsconfig.json +0 -1
|
@@ -51,7 +51,11 @@ const algorand = {
|
|
|
51
51
|
transactions: [
|
|
52
52
|
{
|
|
53
53
|
name: "Same as Recipient",
|
|
54
|
-
transaction: t => (
|
|
54
|
+
transaction: t => ({
|
|
55
|
+
...t,
|
|
56
|
+
amount: new BigNumber(100),
|
|
57
|
+
recipient: "ZC3HFULMJF53BF5ER4E2TTGPBRGH2Y4RVS32JZ6NH4RW7LN67HCE6UBS3Q",
|
|
58
|
+
}),
|
|
55
59
|
expectedStatus: {
|
|
56
60
|
errors: {
|
|
57
61
|
recipient: new InvalidAddressBecauseDestinationIsAlsoSource(),
|
|
@@ -61,7 +65,11 @@ const algorand = {
|
|
|
61
65
|
},
|
|
62
66
|
{
|
|
63
67
|
name: "Account creation minimum amount too low",
|
|
64
|
-
transaction: t => (
|
|
68
|
+
transaction: t => ({
|
|
69
|
+
...t,
|
|
70
|
+
amount: new BigNumber("100"),
|
|
71
|
+
recipient: "MVE6C3XB4JBKXKORC3NLAWFW4M7EY3MADU6L72DADFP4NZBJIAYXGSLN3Y",
|
|
72
|
+
}),
|
|
65
73
|
expectedStatus: {
|
|
66
74
|
errors: {
|
|
67
75
|
amount: new NotEnoughBalanceBecauseDestinationNotCreated(),
|
|
@@ -71,7 +79,11 @@ const algorand = {
|
|
|
71
79
|
},
|
|
72
80
|
{
|
|
73
81
|
name: "send",
|
|
74
|
-
transaction: t => (
|
|
82
|
+
transaction: t => ({
|
|
83
|
+
...t,
|
|
84
|
+
amount: new BigNumber("1000"),
|
|
85
|
+
recipient: "MECOWMKPKH2NWVZTS5V5RQDGFFYBT25KNLOPHG2KUMMNKU6FOHGJT24WBI",
|
|
86
|
+
}),
|
|
75
87
|
expectedStatus: {
|
|
76
88
|
errors: {},
|
|
77
89
|
warnings: {},
|
|
@@ -79,7 +91,11 @@ const algorand = {
|
|
|
79
91
|
},
|
|
80
92
|
{
|
|
81
93
|
name: "send amount more than fees + base reserve",
|
|
82
|
-
transaction: (t, account) => (
|
|
94
|
+
transaction: (t, account) => ({
|
|
95
|
+
...t,
|
|
96
|
+
amount: account.balance,
|
|
97
|
+
recipient: "MECOWMKPKH2NWVZTS5V5RQDGFFYBT25KNLOPHG2KUMMNKU6FOHGJT24WBI",
|
|
98
|
+
}),
|
|
83
99
|
expectedStatus: {
|
|
84
100
|
errors: {
|
|
85
101
|
amount: new NotEnoughBalance(),
|
|
@@ -89,7 +105,11 @@ const algorand = {
|
|
|
89
105
|
},
|
|
90
106
|
{
|
|
91
107
|
name: "send more than base reserve",
|
|
92
|
-
transaction: (t, account) => (
|
|
108
|
+
transaction: (t, account) => ({
|
|
109
|
+
...t,
|
|
110
|
+
amount: account.balance.minus("100"),
|
|
111
|
+
recipient: "MECOWMKPKH2NWVZTS5V5RQDGFFYBT25KNLOPHG2KUMMNKU6FOHGJT24WBI",
|
|
112
|
+
}),
|
|
93
113
|
expectedStatus: {
|
|
94
114
|
errors: {
|
|
95
115
|
amount: new NotEnoughBalance(),
|
|
@@ -99,7 +119,13 @@ const algorand = {
|
|
|
99
119
|
},
|
|
100
120
|
{
|
|
101
121
|
name: "optIn",
|
|
102
|
-
transaction: t => (
|
|
122
|
+
transaction: t => ({
|
|
123
|
+
...t,
|
|
124
|
+
mode: "optIn",
|
|
125
|
+
assetId: "algorand/asa/31231",
|
|
126
|
+
amount: new BigNumber("1000"),
|
|
127
|
+
recipient: "ZC3HFULMJF53BF5ER4E2TTGPBRGH2Y4RVS32JZ6NH4RW7LN67HCE6UBS3Q",
|
|
128
|
+
}),
|
|
103
129
|
expectedStatus: {
|
|
104
130
|
errors: {},
|
|
105
131
|
warnings: {},
|
|
@@ -108,7 +134,12 @@ const algorand = {
|
|
|
108
134
|
},
|
|
109
135
|
{
|
|
110
136
|
name: "Can't send ASA to an address that didn't Opt-in",
|
|
111
|
-
transaction: t => (
|
|
137
|
+
transaction: t => ({
|
|
138
|
+
...t,
|
|
139
|
+
subAccountId: "js:2:algorand:ZC3HFULMJF53BF5ER4E2TTGPBRGH2Y4RVS32JZ6NH4RW7LN67HCE6UBS3Q:+312769",
|
|
140
|
+
amount: new BigNumber("1000"),
|
|
141
|
+
recipient: "ZQVVJ2S4XWS542KXBBVIINOEHIDOEZKZWK725PWFNN2I5RNCUBI53RT2EY",
|
|
142
|
+
}),
|
|
112
143
|
expectedStatus: {
|
|
113
144
|
errors: {
|
|
114
145
|
recipient: new AlgorandASANotOptInInRecipient(),
|
|
@@ -118,7 +149,12 @@ const algorand = {
|
|
|
118
149
|
},
|
|
119
150
|
{
|
|
120
151
|
name: "send Token",
|
|
121
|
-
transaction: t => (
|
|
152
|
+
transaction: t => ({
|
|
153
|
+
...t,
|
|
154
|
+
subAccountId: "js:2:algorand:ZC3HFULMJF53BF5ER4E2TTGPBRGH2Y4RVS32JZ6NH4RW7LN67HCE6UBS3Q:+312769",
|
|
155
|
+
amount: new BigNumber("1000"),
|
|
156
|
+
recipient: "MECOWMKPKH2NWVZTS5V5RQDGFFYBT25KNLOPHG2KUMMNKU6FOHGJT24WBI",
|
|
157
|
+
}),
|
|
122
158
|
expectedStatus: {
|
|
123
159
|
errors: {},
|
|
124
160
|
warnings: {},
|
|
@@ -127,7 +163,12 @@ const algorand = {
|
|
|
127
163
|
},
|
|
128
164
|
{
|
|
129
165
|
name: "send Token - more than available",
|
|
130
|
-
transaction: t => (
|
|
166
|
+
transaction: t => ({
|
|
167
|
+
...t,
|
|
168
|
+
subAccountId: "js:2:algorand:ZC3HFULMJF53BF5ER4E2TTGPBRGH2Y4RVS32JZ6NH4RW7LN67HCE6UBS3Q:+312769",
|
|
169
|
+
amount: new BigNumber("100000000000"),
|
|
170
|
+
recipient: "MECOWMKPKH2NWVZTS5V5RQDGFFYBT25KNLOPHG2KUMMNKU6FOHGJT24WBI",
|
|
171
|
+
}),
|
|
131
172
|
expectedStatus: {
|
|
132
173
|
errors: {
|
|
133
174
|
amount: new NotEnoughBalance(),
|
|
@@ -137,7 +178,11 @@ const algorand = {
|
|
|
137
178
|
},
|
|
138
179
|
{
|
|
139
180
|
name: "send max",
|
|
140
|
-
transaction: t => (
|
|
181
|
+
transaction: t => ({
|
|
182
|
+
...t,
|
|
183
|
+
recipient: "MECOWMKPKH2NWVZTS5V5RQDGFFYBT25KNLOPHG2KUMMNKU6FOHGJT24WBI",
|
|
184
|
+
useAllAmount: true,
|
|
185
|
+
}),
|
|
141
186
|
expectedStatus: (account, _, status) => {
|
|
142
187
|
return {
|
|
143
188
|
amount: account.spendableBalance.minus(status.estimatedFees),
|
|
@@ -169,7 +214,11 @@ const algorand = {
|
|
|
169
214
|
transactions: [
|
|
170
215
|
{
|
|
171
216
|
name: "Can't send funds if balance too low",
|
|
172
|
-
transaction: t => (
|
|
217
|
+
transaction: t => ({
|
|
218
|
+
...t,
|
|
219
|
+
amount: new BigNumber("1000"),
|
|
220
|
+
recipient: "YWZPDCL5XQPCPGBXKB7KAG7YF2QGCGEX37YTSM55CPEPHKNE2ZSKRAXNQ4",
|
|
221
|
+
}),
|
|
173
222
|
expectedStatus: {
|
|
174
223
|
errors: {},
|
|
175
224
|
warnings: {},
|
|
@@ -177,7 +226,12 @@ const algorand = {
|
|
|
177
226
|
},
|
|
178
227
|
{
|
|
179
228
|
name: "Can't send ASA if Algo balance too low",
|
|
180
|
-
transaction: t => (
|
|
229
|
+
transaction: t => ({
|
|
230
|
+
...t,
|
|
231
|
+
subAccountId: "js:2:algorand:MECOWMKPKH2NWVZTS5V5RQDGFFYBT25KNLOPHG2KUMMNKU6FOHGJT24WBI:+312769",
|
|
232
|
+
amount: new BigNumber("1000000"),
|
|
233
|
+
recipient: "YWZPDCL5XQPCPGBXKB7KAG7YF2QGCGEX37YTSM55CPEPHKNE2ZSKRAXNQ4",
|
|
234
|
+
}),
|
|
181
235
|
expectedStatus: {
|
|
182
236
|
errors: {
|
|
183
237
|
amount: new NotEnoughBalance(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.integration.test.js","sourceRoot":"","sources":["../src/bridge.integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4CAA4C,EAC5C,gBAAgB,EAChB,4CAA4C,GAC7C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAG1D,MAAM,QAAQ,GAAgC;IAC5C,yBAAyB,EAAE;QACzB,2BAA2B,EAAE,sDAAsD;QACnF,SAAS,EAAE,sCAAsC;QACjD,kBAAkB,EAAE,+CAA+C;KACpE;IACD,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE;;;;;;;;;;;;;OAaN;SACF;KACF;IACD,QAAQ,EAAE;QACR;YACE,WAAW,EAAE,CAAC,uBAAuB,CAAC;YACtC,iBAAiB;YACjB,GAAG,EAAE;gBACH,EAAE,EAAE,iFAAiF;gBACrF,cAAc,EAAE,kEAAkE;gBAClF,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,kEAAkE;gBACxE,cAAc,EAAE,EAAE;gBAClB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,4DAA4D;gBAC1E,gBAAgB,EAAE,iBAAiB;gBACnC,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,SAAS;gBAClB,gBAAgB,EAAE,QAAQ;gBAC1B,WAAW,EAAE,EAAE;aAChB;YACD,YAAY,EAAE;gBACZ;oBACE,IAAI,EAAE,mBAAmB;oBACzB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"bridge.integration.test.js","sourceRoot":"","sources":["../src/bridge.integration.test.ts"],"names":[],"mappings":"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"}
|
package/lib-es/broadcast.js
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
|
|
11
2
|
import algorandAPI from "./api";
|
|
12
3
|
/**
|
|
13
4
|
* Broadcast a signed transaction
|
|
14
5
|
* @param {signature: string, operation: string} signedOperation
|
|
15
6
|
*/
|
|
16
|
-
export const broadcast =
|
|
7
|
+
export const broadcast = async ({ signedOperation }) => {
|
|
17
8
|
const { signature, operation } = signedOperation;
|
|
18
|
-
const hash =
|
|
9
|
+
const hash = await algorandAPI.broadcastTransaction(Buffer.from(signature, "hex"));
|
|
19
10
|
return patchOperationWithHash(operation, hash);
|
|
20
|
-
}
|
|
11
|
+
};
|
|
21
12
|
//# sourceMappingURL=broadcast.js.map
|
package/lib-es/broadcast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAA4C,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;IAC9F,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,OAAO,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { encode as msgpackEncode } from "algo-msgpack-with-bigint";
|
|
11
2
|
import { makeAssetTransferTxnWithSuggestedParams, makePaymentTxnWithSuggestedParams, } from "algosdk";
|
|
12
3
|
import algorandAPI from "./api";
|
|
13
4
|
import { extractTokenId } from "./tokens";
|
|
14
|
-
export const buildTransactionPayload = (account, transaction) =>
|
|
5
|
+
export const buildTransactionPayload = async (account, transaction) => {
|
|
15
6
|
const { amount, recipient, mode, memo, assetId, subAccountId } = transaction;
|
|
16
7
|
const subAccount = subAccountId
|
|
17
8
|
? account.subAccounts && account.subAccounts.find(t => t.id === subAccountId)
|
|
18
9
|
: null;
|
|
19
10
|
const note = memo ? new TextEncoder().encode(memo) : undefined;
|
|
20
|
-
const params =
|
|
11
|
+
const params = await algorandAPI.getTransactionParams();
|
|
21
12
|
let algoTxn;
|
|
22
13
|
if (subAccount || (assetId && mode === "optIn")) {
|
|
23
14
|
const targetAssetId = subAccount && subAccount.type === "TokenAccount"
|
|
@@ -39,7 +30,7 @@ export const buildTransactionPayload = (account, transaction) => __awaiter(void
|
|
|
39
30
|
// Flaw in the SDK: payload isn't sorted, but it needs to be for msgPack encoding
|
|
40
31
|
const sorted = Object.fromEntries(Object.entries(algoTxn.get_obj_for_encoding()).sort());
|
|
41
32
|
return sorted;
|
|
42
|
-
}
|
|
33
|
+
};
|
|
43
34
|
export const encodeToSign = (payload) => {
|
|
44
35
|
const msgPackEncoded = msgpackEncode(payload);
|
|
45
36
|
return Buffer.from(msgPackEncoded).toString("hex");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTransaction.js","sourceRoot":"","sources":["../src/buildTransaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildTransaction.js","sourceRoot":"","sources":["../src/buildTransaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,15 @@ function inferTransactions(transactions, opts, { inferAmount }) {
|
|
|
65
65
|
const isDelisted = account.token.delisted === true;
|
|
66
66
|
invariant(!isDelisted, "token is delisted");
|
|
67
67
|
}
|
|
68
|
-
return
|
|
68
|
+
return {
|
|
69
|
+
...transaction,
|
|
70
|
+
family: "algorand",
|
|
71
|
+
fees: opts.fees ? inferAmount(account, opts.fees) : null,
|
|
72
|
+
memo: opts.memo,
|
|
73
|
+
mode: opts.mode || "send",
|
|
74
|
+
subAccountId: account.type === "TokenAccount" ? account.id : null,
|
|
75
|
+
assetId: opts.token ? "algorand/asa/" + opts.token : null,
|
|
76
|
+
};
|
|
69
77
|
});
|
|
70
78
|
}
|
|
71
79
|
export default function makeCliTools() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-transaction.js","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,+CAA+C;KACtD;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,eAAe;KACtB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,4DAA4D;KACnE;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,YAAY;KACnB;IACD;QACE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,8CAA8C;QACpD,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,OAAgB,EAAE,IAAyB;IAChE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAErE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAc,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE;QACvC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAE9C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBACvC,OAAO,CACL,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE;oBACrD,KAAK,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CACpD,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,iBAAiB;oBACf,KAAK;oBACL,0BAA0B;oBAC1B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CAAC;YACJ,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,YAGE,EACF,IAAyB,EACzB,EAAE,WAAW,EAAO;IAEpB,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAEhE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,SAAS,CAAE,OAA2B,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;YACnD,SAAS,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC9C,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"cli-transaction.js","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { BigNumber } from "bignumber.js";
|
|
11
2
|
import { getAbandonSeedAddress } from "@ledgerhq/cryptoassets";
|
|
12
3
|
import { findSubAccountById, getMainAccount } from "@ledgerhq/coin-framework/account/index";
|
|
13
4
|
import { getEstimatedFees } from "./getFeesForTransaction";
|
|
14
5
|
import createTransaction from "./createTransaction";
|
|
15
6
|
import { computeAlgoMaxSpendable } from "./logic";
|
|
16
|
-
export const estimateMaxSpendable =
|
|
7
|
+
export const estimateMaxSpendable = async ({ account, parentAccount, transaction }) => {
|
|
17
8
|
const mainAccount = getMainAccount(account, parentAccount);
|
|
18
9
|
const { algorandResources } = mainAccount;
|
|
19
10
|
if (!algorandResources) {
|
|
20
11
|
throw new Error("Algorand account expected");
|
|
21
12
|
}
|
|
22
|
-
const tx =
|
|
13
|
+
const tx = {
|
|
14
|
+
...createTransaction(account),
|
|
15
|
+
subAccountId: account.type === "Account" ? null : account.id,
|
|
16
|
+
...transaction,
|
|
17
|
+
recipient: transaction?.recipient || getAbandonSeedAddress(mainAccount.currency.id),
|
|
18
|
+
useAllAmount: true,
|
|
19
|
+
};
|
|
23
20
|
const tokenAccount = tx.subAccountId
|
|
24
21
|
? findSubAccountById(mainAccount, tx.subAccountId)
|
|
25
22
|
: undefined;
|
|
@@ -27,7 +24,7 @@ export const estimateMaxSpendable = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
27
24
|
return tokenAccount.balance;
|
|
28
25
|
}
|
|
29
26
|
else {
|
|
30
|
-
const fees =
|
|
27
|
+
const fees = await getEstimatedFees(mainAccount, tx);
|
|
31
28
|
let maxSpendable = computeAlgoMaxSpendable({
|
|
32
29
|
accountBalance: mainAccount.balance,
|
|
33
30
|
nbAccountAssets: algorandResources.nbAssets,
|
|
@@ -36,5 +33,5 @@ export const estimateMaxSpendable = (_a) => __awaiter(void 0, [_a], void 0, func
|
|
|
36
33
|
maxSpendable = maxSpendable.minus(fees);
|
|
37
34
|
return maxSpendable.gte(0) ? maxSpendable : new BigNumber(0);
|
|
38
35
|
}
|
|
39
|
-
}
|
|
36
|
+
};
|
|
40
37
|
//# sourceMappingURL=estimateMaxSpendable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../src/estimateMaxSpendable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../src/estimateMaxSpendable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAGL,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE;IAC5E,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC;IAC1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,GAAG;QACT,GAAG,iBAAiB,CAAC,OAAO,CAAC;QAC7B,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;QAC5D,GAAG,WAAW;QACd,SAAS,EAAE,WAAW,EAAE,SAAS,IAAI,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnF,YAAY,EAAE,IAAI;KACnB,CAAC;IAEF,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY;QAClC,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,YAAY,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC,OAAO,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAErD,IAAI,YAAY,GAAG,uBAAuB,CAAC;YACzC,cAAc,EAAE,WAAW,CAAC,OAAO;YACnC,eAAe,EAAE,iBAAiB,CAAC,QAAQ;YAC3C,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CAAC,CAAC;QAEH,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { BigNumber } from "bignumber.js";
|
|
11
2
|
import algorandAPI from "./api";
|
|
12
3
|
import { buildTransactionPayload, encodeToSign } from "./buildTransaction";
|
|
13
4
|
// This is only true for a single signature. If we ever support different type of signatures
|
|
14
5
|
// (e.g multi signatures), we will have to add the correct corresponding number of bytes.
|
|
15
6
|
const SINGLE_SIGNATURE_SIZE = 71;
|
|
16
|
-
export const getEstimatedFees = (account, transaction) =>
|
|
17
|
-
const params =
|
|
7
|
+
export const getEstimatedFees = async (account, transaction) => {
|
|
8
|
+
const params = await algorandAPI.getTransactionParams();
|
|
18
9
|
let suggestedFees = 0;
|
|
19
10
|
if (params.fee) {
|
|
20
|
-
const payload =
|
|
11
|
+
const payload = await buildTransactionPayload(account, transaction);
|
|
21
12
|
const encoded = encodeToSign(payload);
|
|
22
13
|
suggestedFees = params.fee * (Buffer.from(encoded, "hex").length + SINGLE_SIGNATURE_SIZE);
|
|
23
14
|
}
|
|
24
15
|
return new BigNumber(Math.max(suggestedFees, params.minFee));
|
|
25
|
-
}
|
|
16
|
+
};
|
|
26
17
|
//# sourceMappingURL=getFeesForTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFeesForTransaction.js","sourceRoot":"","sources":["../src/getFeesForTransaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFeesForTransaction.js","sourceRoot":"","sources":["../src/getFeesForTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG3E,4FAA4F;AAC5F,yFAAyF;AACzF,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAwB,EACxB,WAAwB,EACJ,EAAE;IACtB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,EAAE,CAAC;IAExD,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,aAAa,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { isValidAddress } from "algosdk";
|
|
11
2
|
import { BigNumber } from "bignumber.js";
|
|
12
3
|
import invariant from "invariant";
|
|
@@ -25,7 +16,7 @@ import { extractTokenId } from "./tokens";
|
|
|
25
16
|
* - Check if Token is already optin at the recipient
|
|
26
17
|
* - Check if memo is too long
|
|
27
18
|
*/
|
|
28
|
-
export const getTransactionStatus = (account, transaction) =>
|
|
19
|
+
export const getTransactionStatus = async (account, transaction) => {
|
|
29
20
|
const errors = {};
|
|
30
21
|
const warnings = {};
|
|
31
22
|
const tokenAccount = !transaction.subAccountId
|
|
@@ -34,7 +25,7 @@ export const getTransactionStatus = (account, transaction) => __awaiter(void 0,
|
|
|
34
25
|
if (!transaction.recipient) {
|
|
35
26
|
errors.recipient = new RecipientRequired();
|
|
36
27
|
}
|
|
37
|
-
else if (!(
|
|
28
|
+
else if (!(await isValidAddress(transaction.recipient))) {
|
|
38
29
|
errors.recipient = new InvalidAddress("", {
|
|
39
30
|
currencyName: account.currency.name,
|
|
40
31
|
});
|
|
@@ -63,7 +54,7 @@ export const getTransactionStatus = (account, transaction) => __awaiter(void 0,
|
|
|
63
54
|
if (tokenAccount &&
|
|
64
55
|
tokenAccount.type === "TokenAccount" &&
|
|
65
56
|
!errors.recipient &&
|
|
66
|
-
!(
|
|
57
|
+
!(await recipientHasAsset(transaction.recipient, extractTokenId(tokenAccount.token.id)))) {
|
|
67
58
|
errors.recipient = new AlgorandASANotOptInInRecipient();
|
|
68
59
|
}
|
|
69
60
|
amount = transaction.useAllAmount
|
|
@@ -75,7 +66,7 @@ export const getTransactionStatus = (account, transaction) => __awaiter(void 0,
|
|
|
75
66
|
amount = new BigNumber(0);
|
|
76
67
|
}
|
|
77
68
|
totalSpent = tokenAccount ? amount : amount.plus(estimatedFees);
|
|
78
|
-
if (!errors.recipient && !(
|
|
69
|
+
if (!errors.recipient && !(await isAmountValid(transaction.recipient, amount))) {
|
|
79
70
|
errors.amount = new NotEnoughBalanceBecauseDestinationNotCreated("", {
|
|
80
71
|
minimalAmount: "0.1 ALGO",
|
|
81
72
|
});
|
|
@@ -130,5 +121,5 @@ export const getTransactionStatus = (account, transaction) => __awaiter(void 0,
|
|
|
130
121
|
amount,
|
|
131
122
|
totalSpent,
|
|
132
123
|
};
|
|
133
|
-
}
|
|
124
|
+
};
|
|
134
125
|
//# sourceMappingURL=getTransactionStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":"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"}
|
package/lib-es/hw-getAddress.js
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
const resolver = (signerContext) => {
|
|
11
|
-
return
|
|
12
|
-
const r =
|
|
2
|
+
return async (deviceId, { path, verify }) => {
|
|
3
|
+
const r = await signerContext(deviceId, signer => signer.getAddress(path, verify || false));
|
|
13
4
|
return {
|
|
14
5
|
address: r.address,
|
|
15
6
|
publicKey: r.publicKey,
|
|
16
7
|
path,
|
|
17
8
|
};
|
|
18
|
-
}
|
|
9
|
+
};
|
|
19
10
|
};
|
|
20
11
|
export default resolver;
|
|
21
12
|
//# sourceMappingURL=hw-getAddress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hw-getAddress.js","sourceRoot":"","sources":["../src/hw-getAddress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hw-getAddress.js","sourceRoot":"","sources":["../src/hw-getAddress.ts"],"names":[],"mappings":"AAKA,MAAM,QAAQ,GAAG,CAAC,aAA4C,EAAgB,EAAE;IAC9E,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAqB,EAAE,EAAE;QACrE,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;QAC5F,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,IAAI;SACL,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/lib-es/initAccount.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { BigNumber } from "bignumber.js";
|
|
2
2
|
export function initAccount(account) {
|
|
3
|
-
var _a, _b;
|
|
4
3
|
account.algorandResources = {
|
|
5
4
|
rewards: new BigNumber(0),
|
|
6
|
-
nbAssets:
|
|
5
|
+
nbAssets: account.subAccounts?.length ?? 0,
|
|
7
6
|
};
|
|
8
7
|
}
|
|
9
8
|
//# sourceMappingURL=initAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initAccount.js","sourceRoot":"","sources":["../src/initAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,UAAU,WAAW,CAAC,OAAwB
|
|
1
|
+
{"version":3,"file":"initAccount.js","sourceRoot":"","sources":["../src/initAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,UAAU,WAAW,CAAC,OAAwB;IAClD,OAAO,CAAC,iBAAiB,GAAG;QAC1B,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;QACzB,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;KAC3C,CAAC;AACJ,CAAC"}
|
package/lib-es/logic.js
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { BigNumber } from "bignumber.js";
|
|
11
2
|
import algorandAPI from "./api";
|
|
12
3
|
export const ALGORAND_MAX_MEMO_SIZE = 32;
|
|
13
4
|
export const ALGORAND_MIN_ACCOUNT_BALANCE = 100000;
|
|
14
|
-
export const recipientHasAsset = (recipientAddress, assetId) =>
|
|
15
|
-
const recipientAccount =
|
|
5
|
+
export const recipientHasAsset = async (recipientAddress, assetId) => {
|
|
6
|
+
const recipientAccount = await algorandAPI.getAccount(recipientAddress);
|
|
16
7
|
return recipientAccount.assets.map(a => a.assetId).includes(assetId);
|
|
17
|
-
}
|
|
18
|
-
export const isAmountValid = (recipientAddress, amount) =>
|
|
19
|
-
const recipientAccount =
|
|
8
|
+
};
|
|
9
|
+
export const isAmountValid = async (recipientAddress, amount) => {
|
|
10
|
+
const recipientAccount = await algorandAPI.getAccount(recipientAddress);
|
|
20
11
|
return recipientAccount.balance.isZero() ? amount.gte(ALGORAND_MIN_ACCOUNT_BALANCE) : true;
|
|
21
|
-
}
|
|
12
|
+
};
|
|
22
13
|
export const computeAlgoMaxSpendable = ({ accountBalance, nbAccountAssets, mode, }) => {
|
|
23
14
|
const minBalance = computeMinimumAlgoBalance(mode, nbAccountAssets);
|
|
24
15
|
const maxSpendable = accountBalance.minus(minBalance);
|
package/lib-es/logic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,WAAW,MAAM,OAAO,CAAC;AAGhC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,gBAAwB,EACxB,OAAe,EACG,EAAE;IACpB,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACxE,OAAO,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,gBAAwB,EACxB,MAAiB,EACC,EAAE;IACpB,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACxE,OAAO,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,cAAc,EACd,eAAe,EACf,IAAI,GAKL,EAAa,EAAE;IACd,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,IAA2B,EAC3B,eAAuB,EACZ,EAAE;IACb,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,0BAA0B;IAC/C,MAAM,aAAa,GAAG,eAAe,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC"}
|
package/lib-es/mock.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { genAddress, genHex } from "@ledgerhq/coin-framework/mocks/helpers";
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
3
|
function setAlgorandResources(account) {
|
|
4
|
-
var _a, _b;
|
|
5
4
|
/** format algorandResources given the new delegations */
|
|
6
5
|
account.algorandResources = {
|
|
7
6
|
rewards: account.balance.multipliedBy(0.01),
|
|
8
|
-
nbAssets:
|
|
7
|
+
nbAssets: account.subAccounts?.length ?? 0,
|
|
9
8
|
};
|
|
10
9
|
return account;
|
|
11
10
|
}
|
|
@@ -41,7 +40,7 @@ function addOptIn(account, rng) {
|
|
|
41
40
|
/** select position on the operation stack where we will insert the new claim rewards */
|
|
42
41
|
const opIndex = rng.next(0, 10);
|
|
43
42
|
const opt = genBaseOperation(account, rng, "OPT_IN", opIndex);
|
|
44
|
-
opt.extra =
|
|
43
|
+
opt.extra = { ...opt.extra, rewards: new BigNumber(0), assetId: "Thether" };
|
|
45
44
|
account.operations.splice(opIndex, 0, opt);
|
|
46
45
|
account.operationsCount++;
|
|
47
46
|
return account;
|
|
@@ -50,7 +49,7 @@ function addOptOut(account, rng) {
|
|
|
50
49
|
/** select position on the operation stack where we will insert the new claim rewards */
|
|
51
50
|
const opIndex = rng.next(0, 10);
|
|
52
51
|
const opt = genBaseOperation(account, rng, "OPT_OUT", opIndex);
|
|
53
|
-
opt.extra =
|
|
52
|
+
opt.extra = { ...opt.extra, rewards: new BigNumber(0), assetId: "Thether" };
|
|
54
53
|
account.operations.splice(opIndex, 0, opt);
|
|
55
54
|
account.operationsCount++;
|
|
56
55
|
return account;
|
|
@@ -87,11 +86,10 @@ function postSyncAccount(account) {
|
|
|
87
86
|
* @param {AlgorandAccount} account
|
|
88
87
|
*/
|
|
89
88
|
function postScanAccount(account, { isEmpty, }) {
|
|
90
|
-
var _a, _b;
|
|
91
89
|
if (isEmpty) {
|
|
92
90
|
account.algorandResources = {
|
|
93
91
|
rewards: new BigNumber(0),
|
|
94
|
-
nbAssets:
|
|
92
|
+
nbAssets: account.subAccounts?.length ?? 0,
|
|
95
93
|
};
|
|
96
94
|
account.operations = [];
|
|
97
95
|
account.subAccounts = [];
|