@ledgerhq/live-common 27.0.1-next.0 → 27.1.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/lib/account/serialization.d.ts +2 -0
  2. package/lib/account/serialization.d.ts.map +1 -1
  3. package/lib/account/serialization.js +23 -8
  4. package/lib/account/serialization.js.map +1 -1
  5. package/lib/api/explorerConfig/index.js +1 -1
  6. package/lib/api/explorerConfig/index.js.map +1 -1
  7. package/lib/apps/support.d.ts.map +1 -1
  8. package/lib/apps/support.js +1 -0
  9. package/lib/apps/support.js.map +1 -1
  10. package/lib/families/celo/api/hubble.d.ts +6 -1
  11. package/lib/families/celo/api/hubble.d.ts.map +1 -1
  12. package/lib/families/celo/api/hubble.js +135 -13
  13. package/lib/families/celo/api/hubble.js.map +1 -1
  14. package/lib/families/celo/api/index.d.ts +1 -1
  15. package/lib/families/celo/api/index.d.ts.map +1 -1
  16. package/lib/families/celo/api/index.js +2 -1
  17. package/lib/families/celo/api/index.js.map +1 -1
  18. package/lib/families/celo/api/sdk.d.ts +22 -0
  19. package/lib/families/celo/api/sdk.d.ts.map +1 -1
  20. package/lib/families/celo/api/sdk.js +168 -1
  21. package/lib/families/celo/api/sdk.js.map +1 -1
  22. package/lib/families/celo/bridge/js.d.ts.map +1 -1
  23. package/lib/families/celo/bridge/js.js +4 -42
  24. package/lib/families/celo/bridge/js.js.map +1 -1
  25. package/lib/families/celo/cli-transaction.d.ts +12 -2
  26. package/lib/families/celo/cli-transaction.d.ts.map +1 -1
  27. package/lib/families/celo/cli-transaction.js +38 -4
  28. package/lib/families/celo/cli-transaction.js.map +1 -1
  29. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts +1 -0
  30. package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts.map +1 -1
  31. package/lib/families/celo/datasets/celo.scanAccounts.1.js +298 -2
  32. package/lib/families/celo/datasets/celo.scanAccounts.1.js.map +1 -1
  33. package/lib/families/celo/errors.d.ts +2 -0
  34. package/lib/families/celo/errors.d.ts.map +1 -0
  35. package/lib/families/celo/errors.js +6 -0
  36. package/lib/families/celo/errors.js.map +1 -0
  37. package/lib/families/celo/js-buildTransaction.d.ts +2 -3
  38. package/lib/families/celo/js-buildTransaction.d.ts.map +1 -1
  39. package/lib/families/celo/js-buildTransaction.js +194 -19
  40. package/lib/families/celo/js-buildTransaction.js.map +1 -1
  41. package/lib/families/celo/js-createTransaction.d.ts.map +1 -1
  42. package/lib/families/celo/js-createTransaction.js +3 -1
  43. package/lib/families/celo/js-createTransaction.js.map +1 -1
  44. package/lib/families/celo/js-estimateMaxSpendable.d.ts.map +1 -1
  45. package/lib/families/celo/js-estimateMaxSpendable.js.map +1 -1
  46. package/lib/families/celo/js-getFeesForTransaction.d.ts +2 -3
  47. package/lib/families/celo/js-getFeesForTransaction.d.ts.map +1 -1
  48. package/lib/families/celo/js-getFeesForTransaction.js +137 -10
  49. package/lib/families/celo/js-getFeesForTransaction.js.map +1 -1
  50. package/lib/families/celo/js-getTransactionStatus.d.ts +2 -3
  51. package/lib/families/celo/js-getTransactionStatus.d.ts.map +1 -1
  52. package/lib/families/celo/js-getTransactionStatus.js +97 -41
  53. package/lib/families/celo/js-getTransactionStatus.js.map +1 -1
  54. package/lib/families/celo/js-prepareTransaction.d.ts +2 -3
  55. package/lib/families/celo/js-prepareTransaction.d.ts.map +1 -1
  56. package/lib/families/celo/js-prepareTransaction.js +8 -3
  57. package/lib/families/celo/js-prepareTransaction.js.map +1 -1
  58. package/lib/families/celo/js-signOperation.d.ts.map +1 -1
  59. package/lib/families/celo/js-signOperation.js +17 -3
  60. package/lib/families/celo/js-signOperation.js.map +1 -1
  61. package/lib/families/celo/js-synchronisation.d.ts.map +1 -1
  62. package/lib/families/celo/js-synchronisation.js +51 -6
  63. package/lib/families/celo/js-synchronisation.js.map +1 -1
  64. package/lib/families/celo/logic.d.ts +21 -0
  65. package/lib/families/celo/logic.d.ts.map +1 -0
  66. package/lib/families/celo/logic.js +132 -0
  67. package/lib/families/celo/logic.js.map +1 -0
  68. package/lib/families/celo/preload.d.ts +10 -0
  69. package/lib/families/celo/preload.d.ts.map +1 -0
  70. package/lib/families/celo/preload.js +118 -0
  71. package/lib/families/celo/preload.js.map +1 -0
  72. package/lib/families/celo/react.d.ts +4 -0
  73. package/lib/families/celo/react.d.ts.map +1 -0
  74. package/lib/families/celo/react.js +47 -0
  75. package/lib/families/celo/react.js.map +1 -0
  76. package/lib/families/celo/serialization.d.ts +4 -0
  77. package/lib/families/celo/serialization.d.ts.map +1 -0
  78. package/lib/families/celo/serialization.js +55 -0
  79. package/lib/families/celo/serialization.js.map +1 -0
  80. package/lib/families/celo/specs/createActivateVoteMutation.d.ts +4 -0
  81. package/lib/families/celo/specs/createActivateVoteMutation.d.ts.map +1 -0
  82. package/lib/families/celo/specs/createActivateVoteMutation.js +38 -0
  83. package/lib/families/celo/specs/createActivateVoteMutation.js.map +1 -0
  84. package/lib/families/celo/specs/createLockMutation.d.ts +4 -0
  85. package/lib/families/celo/specs/createLockMutation.d.ts.map +1 -0
  86. package/lib/families/celo/specs/createLockMutation.js +40 -0
  87. package/lib/families/celo/specs/createLockMutation.js.map +1 -0
  88. package/lib/families/celo/specs/createRegisterAccountMutation.d.ts +4 -0
  89. package/lib/families/celo/specs/createRegisterAccountMutation.d.ts.map +1 -0
  90. package/lib/families/celo/specs/createRegisterAccountMutation.js +31 -0
  91. package/lib/families/celo/specs/createRegisterAccountMutation.js.map +1 -0
  92. package/lib/families/celo/specs/createRevokeVoteMutation.d.ts +4 -0
  93. package/lib/families/celo/specs/createRevokeVoteMutation.d.ts.map +1 -0
  94. package/lib/families/celo/specs/createRevokeVoteMutation.js +39 -0
  95. package/lib/families/celo/specs/createRevokeVoteMutation.js.map +1 -0
  96. package/lib/families/celo/specs/createSendMutation.d.ts +5 -0
  97. package/lib/families/celo/specs/createSendMutation.d.ts.map +1 -0
  98. package/lib/families/celo/specs/createSendMutation.js +44 -0
  99. package/lib/families/celo/specs/createSendMutation.js.map +1 -0
  100. package/lib/families/celo/specs/createUnlockMutation.d.ts +4 -0
  101. package/lib/families/celo/specs/createUnlockMutation.d.ts.map +1 -0
  102. package/lib/families/celo/specs/createUnlockMutation.js +37 -0
  103. package/lib/families/celo/specs/createUnlockMutation.js.map +1 -0
  104. package/lib/families/celo/specs/createVoteMutation.d.ts +4 -0
  105. package/lib/families/celo/specs/createVoteMutation.d.ts.map +1 -0
  106. package/lib/families/celo/specs/createVoteMutation.js +51 -0
  107. package/lib/families/celo/specs/createVoteMutation.js.map +1 -0
  108. package/lib/families/celo/specs/createWithdrawMutation.d.ts +4 -0
  109. package/lib/families/celo/specs/createWithdrawMutation.d.ts.map +1 -0
  110. package/lib/families/celo/specs/createWithdrawMutation.js +36 -0
  111. package/lib/families/celo/specs/createWithdrawMutation.js.map +1 -0
  112. package/lib/families/celo/specs/index.d.ts +9 -0
  113. package/lib/families/celo/specs/index.d.ts.map +1 -0
  114. package/lib/families/celo/specs/index.js +25 -0
  115. package/lib/families/celo/specs/index.js.map +1 -0
  116. package/lib/families/celo/specs.d.ts +1 -1
  117. package/lib/families/celo/specs.d.ts.map +1 -1
  118. package/lib/families/celo/specs.js +20 -37
  119. package/lib/families/celo/specs.js.map +1 -1
  120. package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -1
  121. package/lib/families/celo/speculos-deviceActions.js +22 -0
  122. package/lib/families/celo/speculos-deviceActions.js.map +1 -1
  123. package/lib/families/celo/transaction.d.ts.map +1 -1
  124. package/lib/families/celo/transaction.js +8 -6
  125. package/lib/families/celo/transaction.js.map +1 -1
  126. package/lib/families/celo/types.d.ts +102 -1
  127. package/lib/families/celo/types.d.ts.map +1 -1
  128. package/lib/families/celo/validators.d.ts +3 -0
  129. package/lib/families/celo/validators.d.ts.map +1 -0
  130. package/lib/families/celo/validators.js +6 -0
  131. package/lib/families/celo/validators.js.map +1 -0
  132. package/lib/families/cosmos/banner.d.ts +10 -0
  133. package/lib/families/cosmos/banner.d.ts.map +1 -0
  134. package/lib/families/cosmos/banner.js +133 -0
  135. package/lib/families/cosmos/banner.js.map +1 -0
  136. package/lib/families/cosmos/banner.test.d.ts +2 -0
  137. package/lib/families/cosmos/banner.test.d.ts.map +1 -0
  138. package/lib/families/cosmos/banner.test.js +233 -0
  139. package/lib/families/cosmos/banner.test.js.map +1 -0
  140. package/lib/families/solana/api/chain/instruction/token/types.d.ts +2 -2
  141. package/lib/generated/cli-transaction.d.ts +12 -2
  142. package/lib/generated/cli-transaction.d.ts.map +1 -1
  143. package/lib/operation.d.ts.map +1 -1
  144. package/lib/operation.js +6 -0
  145. package/lib/operation.js.map +1 -1
  146. package/lib/reconciliation.d.ts.map +1 -1
  147. package/lib/reconciliation.js +11 -0
  148. package/lib/reconciliation.js.map +1 -1
  149. package/package.json +3 -4
  150. package/src/account/serialization.ts +22 -2
  151. package/src/api/explorerConfig/index.ts +1 -1
  152. package/src/apps/support.ts +1 -0
  153. package/src/families/celo/__snapshots__/bridge.integration.test.ts.snap +134 -857
  154. package/src/families/celo/api/hubble.ts +113 -16
  155. package/src/families/celo/api/index.ts +1 -1
  156. package/src/families/celo/api/sdk.ts +88 -0
  157. package/src/families/celo/bridge/js.ts +2 -3
  158. package/src/families/celo/cli-transaction.ts +46 -2
  159. package/src/families/celo/datasets/celo.scanAccounts.1.ts +365 -5
  160. package/src/families/celo/errors.ts +5 -0
  161. package/src/families/celo/js-buildTransaction.ts +173 -20
  162. package/src/families/celo/js-createTransaction.ts +2 -0
  163. package/src/families/celo/js-estimateMaxSpendable.ts +2 -2
  164. package/src/families/celo/js-getFeesForTransaction.ts +118 -19
  165. package/src/families/celo/js-getTransactionStatus.ts +72 -17
  166. package/src/families/celo/js-prepareTransaction.ts +13 -7
  167. package/src/families/celo/js-signOperation.ts +22 -5
  168. package/src/families/celo/js-synchronisation.ts +32 -0
  169. package/src/families/celo/logic.ts +184 -0
  170. package/src/families/celo/preload.ts +78 -0
  171. package/src/families/celo/react.ts +35 -0
  172. package/src/families/celo/serialization.ts +61 -0
  173. package/src/families/celo/specs/createActivateVoteMutation.ts +44 -0
  174. package/src/families/celo/specs/createLockMutation.ts +46 -0
  175. package/src/families/celo/specs/createRegisterAccountMutation.ts +34 -0
  176. package/src/families/celo/specs/createRevokeVoteMutation.ts +43 -0
  177. package/src/families/celo/specs/createSendMutation.ts +44 -0
  178. package/src/families/celo/specs/createUnlockMutation.ts +44 -0
  179. package/src/families/celo/specs/createVoteMutation.ts +67 -0
  180. package/src/families/celo/specs/createWithdrawMutation.ts +44 -0
  181. package/src/families/celo/specs/index.ts +8 -0
  182. package/src/families/celo/specs.ts +32 -34
  183. package/src/families/celo/speculos-deviceActions.ts +21 -2
  184. package/src/families/celo/transaction.ts +12 -4
  185. package/src/families/celo/types.ts +113 -0
  186. package/src/families/celo/validators.ts +2 -0
  187. package/src/families/cosmos/banner.test.ts +160 -0
  188. package/src/families/cosmos/banner.ts +87 -0
  189. package/src/operation.ts +6 -0
  190. package/src/reconciliation.ts +22 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js-estimateMaxSpendable.js","sourceRoot":"","sources":["../../../src/families/celo/js-estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAA+C;AAC/C,sFAA6D;AAC7D,kFAAyD;AACzD,gFAAuD;AAGvD,IAAM,oBAAoB,GAAG,UAAO,EAQnC;QAPC,OAAO,aAAA,EACP,aAAa,mBAAA,EACb,WAAW,iBAAA;;;;;;oBAML,WAAW,GAAG,IAAA,wBAAc,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;oBACjD,qBAAM,IAAA,kCAAkB,EAAC,WAAW,iCACzC,IAAA,iCAAiB,GAAE,GACnB,WAAW,KACd,YAAY,EAAE,IAAI,IAClB,EAAA;;oBAJI,CAAC,GAAG,SAIR;oBACQ,qBAAM,IAAA,oCAAoB,EAAC,WAAW,EAAE,CAAC,CAAC,EAAA;;oBAA9C,CAAC,GAAG,SAA0C;oBACpD,sBAAO,CAAC,CAAC,MAAM,EAAC;;;;CACjB,CAAC;AAEF,qBAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"js-estimateMaxSpendable.js","sourceRoot":"","sources":["../../../src/families/celo/js-estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAA+C;AAC/C,sFAA6D;AAC7D,kFAAyD;AACzD,gFAAuD;AAGvD,IAAM,oBAAoB,GAAG,UAAO,EAQnC;QAPC,OAAO,aAAA,EACP,aAAa,mBAAA,EACb,WAAW,iBAAA;;;;;;oBAML,WAAW,GAAG,IAAA,wBAAc,EAAC,OAAO,EAAE,aAAa,CAAgB,CAAC;oBAChE,qBAAM,IAAA,kCAAkB,EAAC,WAAW,iCACzC,IAAA,iCAAiB,GAAE,GACnB,WAAW,KACd,YAAY,EAAE,IAAI,IAClB,EAAA;;oBAJI,CAAC,GAAG,SAIR;oBACQ,qBAAM,IAAA,oCAAoB,EAAC,WAAW,EAAE,CAAC,CAAC,EAAA;;oBAA9C,CAAC,GAAG,SAA0C;oBACpD,sBAAO,CAAC,CAAC,MAAM,EAAC;;;;CACjB,CAAC;AAEF,qBAAe,oBAAoB,CAAC"}
@@ -1,8 +1,7 @@
1
- import type { Account } from "@ledgerhq/types-live";
2
1
  import { BigNumber } from "bignumber.js";
3
- import { Transaction } from "../../generated/types";
2
+ import type { CeloAccount, Transaction } from "./types";
4
3
  declare const getFeesForTransaction: ({ account, transaction, }: {
5
- account: Account;
4
+ account: CeloAccount;
6
5
  transaction: Transaction;
7
6
  }) => Promise<BigNumber>;
8
7
  export default getFeesForTransaction;
@@ -1 +1 @@
1
- {"version":3,"file":"js-getFeesForTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-getFeesForTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,QAAA,MAAM,qBAAqB;aAIhB,OAAO;iBACH,WAAW;MACtB,QAAQ,SAAS,CAyBpB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"js-getFeesForTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-getFeesForTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIxD,QAAA,MAAM,qBAAqB;aAIhB,WAAW;iBACP,WAAW;MACtB,QAAQ,SAAS,CA4HpB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -38,20 +38,145 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  exports.__esModule = true;
39
39
  var bignumber_js_1 = require("bignumber.js");
40
40
  var sdk_1 = require("./api/sdk");
41
+ var logic_1 = require("./logic");
41
42
  var getFeesForTransaction = function (_a) {
42
43
  var account = _a.account, transaction = _a.transaction;
43
44
  return __awaiter(void 0, void 0, void 0, function () {
44
- var amount, kit, value, celoToken, celoTransaction, gasPrice, _b, gas;
45
+ var amount, index, kit, value, pendingOperationAmounts, lockedGold, nonvotingLockedGoldBalance, totalNonVotingLockedBalance, totalSpendableBalance, vote, gas, lockedGold_1, lockedGold_2, election, vote, election, accounts, voteSignerAccount, revokeTxs, revokeTx, election, accounts, voteSignerAccount, activates, activate, accounts, celoToken, celoTransaction, gasPrice, _b;
45
46
  return __generator(this, function (_c) {
46
47
  switch (_c.label) {
47
48
  case 0:
48
- amount = transaction.amount;
49
+ amount = transaction.amount, index = transaction.index;
49
50
  kit = (0, sdk_1.celoKit)();
50
- value = transaction.useAllAmount
51
- ? account.spendableBalance
52
- : bignumber_js_1.BigNumber.minimum(amount, account.spendableBalance);
53
- return [4 /*yield*/, kit.contracts.getGoldToken()];
51
+ value = new bignumber_js_1.BigNumber(0);
52
+ pendingOperationAmounts = (0, logic_1.getPendingStakingOperationAmounts)(account);
53
+ return [4 /*yield*/, kit.contracts.getLockedGold()];
54
54
  case 1:
55
+ lockedGold = _c.sent();
56
+ return [4 /*yield*/, lockedGold.getAccountNonvotingLockedGold(account.freshAddress)];
57
+ case 2:
58
+ nonvotingLockedGoldBalance = _c.sent();
59
+ totalNonVotingLockedBalance = nonvotingLockedGoldBalance.minus(pendingOperationAmounts.vote);
60
+ totalSpendableBalance = account.spendableBalance.minus(pendingOperationAmounts.lock);
61
+ if ((transaction.mode === "unlock" || transaction.mode === "vote") &&
62
+ account.celoResources) {
63
+ value = transaction.useAllAmount
64
+ ? totalNonVotingLockedBalance
65
+ : bignumber_js_1.BigNumber.minimum(amount, totalNonVotingLockedBalance);
66
+ }
67
+ else if (transaction.mode === "revoke" && account.celoResources) {
68
+ vote = (0, logic_1.getVote)(account, transaction.recipient, transaction.index);
69
+ if (vote) {
70
+ value = transaction.useAllAmount
71
+ ? vote.amount
72
+ : bignumber_js_1.BigNumber.minimum(amount, vote.amount);
73
+ }
74
+ }
75
+ else {
76
+ value = transaction.useAllAmount
77
+ ? totalSpendableBalance
78
+ : bignumber_js_1.BigNumber.minimum(amount, totalSpendableBalance);
79
+ }
80
+ gas = null;
81
+ if (!(transaction.mode === "lock")) return [3 /*break*/, 4];
82
+ return [4 /*yield*/, lockedGold
83
+ .lock()
84
+ .txo.estimateGas({ from: account.freshAddress, value: value.toFixed() })];
85
+ case 3:
86
+ gas = _c.sent();
87
+ return [3 /*break*/, 32];
88
+ case 4:
89
+ if (!(transaction.mode === "unlock")) return [3 /*break*/, 7];
90
+ return [4 /*yield*/, kit.contracts.getLockedGold()];
91
+ case 5:
92
+ lockedGold_1 = _c.sent();
93
+ return [4 /*yield*/, lockedGold_1
94
+ .unlock(value)
95
+ .txo.estimateGas({ from: account.freshAddress })];
96
+ case 6:
97
+ gas = _c.sent();
98
+ return [3 /*break*/, 32];
99
+ case 7:
100
+ if (!(transaction.mode === "withdraw")) return [3 /*break*/, 10];
101
+ return [4 /*yield*/, kit.contracts.getLockedGold()];
102
+ case 8:
103
+ lockedGold_2 = _c.sent();
104
+ return [4 /*yield*/, lockedGold_2
105
+ .withdraw(index || 0)
106
+ .txo.estimateGas({ from: account.freshAddress })];
107
+ case 9:
108
+ gas = _c.sent();
109
+ return [3 /*break*/, 32];
110
+ case 10:
111
+ if (!(transaction.mode === "vote")) return [3 /*break*/, 14];
112
+ return [4 /*yield*/, kit.contracts.getElection()];
113
+ case 11:
114
+ election = _c.sent();
115
+ return [4 /*yield*/, election.vote(transaction.recipient, new bignumber_js_1.BigNumber(value))];
116
+ case 12:
117
+ vote = _c.sent();
118
+ return [4 /*yield*/, vote.txo.estimateGas({ from: account.freshAddress })];
119
+ case 13:
120
+ gas = _c.sent();
121
+ return [3 /*break*/, 32];
122
+ case 14:
123
+ if (!(transaction.mode === "revoke")) return [3 /*break*/, 20];
124
+ return [4 /*yield*/, kit.contracts.getElection()];
125
+ case 15:
126
+ election = _c.sent();
127
+ return [4 /*yield*/, kit.contracts.getAccounts()];
128
+ case 16:
129
+ accounts = _c.sent();
130
+ return [4 /*yield*/, accounts.voteSignerToAccount(account.freshAddress)];
131
+ case 17:
132
+ voteSignerAccount = _c.sent();
133
+ return [4 /*yield*/, election.revoke(voteSignerAccount, transaction.recipient, new bignumber_js_1.BigNumber(value))];
134
+ case 18:
135
+ revokeTxs = _c.sent();
136
+ revokeTx = revokeTxs.find(function (transactionObject) {
137
+ return (transactionObject.txo._method.name ===
138
+ (transaction.index === 0 ? "revokePending" : "revokeActive"));
139
+ });
140
+ if (!revokeTx)
141
+ return [2 /*return*/, new bignumber_js_1.BigNumber(0)];
142
+ return [4 /*yield*/, revokeTx.txo.estimateGas({ from: account.freshAddress })];
143
+ case 19:
144
+ gas = _c.sent();
145
+ return [3 /*break*/, 32];
146
+ case 20:
147
+ if (!(transaction.mode === "activate")) return [3 /*break*/, 26];
148
+ return [4 /*yield*/, kit.contracts.getElection()];
149
+ case 21:
150
+ election = _c.sent();
151
+ return [4 /*yield*/, kit.contracts.getAccounts()];
152
+ case 22:
153
+ accounts = _c.sent();
154
+ return [4 /*yield*/, accounts.voteSignerToAccount(account.freshAddress)];
155
+ case 23:
156
+ voteSignerAccount = _c.sent();
157
+ return [4 /*yield*/, election.activate(voteSignerAccount)];
158
+ case 24:
159
+ activates = _c.sent();
160
+ activate = activates.find(function (a) { return a.txo.arguments[0] === transaction.recipient; });
161
+ if (!activate)
162
+ return [2 /*return*/, new bignumber_js_1.BigNumber(0)];
163
+ return [4 /*yield*/, activate.txo.estimateGas({ from: account.freshAddress })];
164
+ case 25:
165
+ gas = _c.sent();
166
+ return [3 /*break*/, 32];
167
+ case 26:
168
+ if (!(transaction.mode === "register")) return [3 /*break*/, 29];
169
+ return [4 /*yield*/, kit.contracts.getAccounts()];
170
+ case 27:
171
+ accounts = _c.sent();
172
+ return [4 /*yield*/, accounts
173
+ .createAccount()
174
+ .txo.estimateGas({ from: account.freshAddress })];
175
+ case 28:
176
+ gas = _c.sent();
177
+ return [3 /*break*/, 32];
178
+ case 29: return [4 /*yield*/, kit.contracts.getGoldToken()];
179
+ case 30:
55
180
  celoToken = _c.sent();
56
181
  celoTransaction = {
57
182
  from: account.freshAddress,
@@ -60,13 +185,15 @@ var getFeesForTransaction = function (_a) {
60
185
  .transfer(transaction.recipient, value.toFixed())
61
186
  .txo.encodeABI()
62
187
  };
188
+ return [4 /*yield*/, kit.connection.estimateGasWithInflationFactor(celoTransaction)];
189
+ case 31:
190
+ gas = _c.sent();
191
+ _c.label = 32;
192
+ case 32:
63
193
  _b = bignumber_js_1.BigNumber.bind;
64
194
  return [4 /*yield*/, kit.connection.gasPrice()];
65
- case 2:
195
+ case 33:
66
196
  gasPrice = new (_b.apply(bignumber_js_1.BigNumber, [void 0, _c.sent()]))();
67
- return [4 /*yield*/, kit.connection.estimateGasWithInflationFactor(celoTransaction)];
68
- case 3:
69
- gas = _c.sent();
70
197
  return [2 /*return*/, gasPrice.times(gas)];
71
198
  }
72
199
  });
@@ -1 +1 @@
1
- {"version":3,"file":"js-getFeesForTransaction.js","sourceRoot":"","sources":["../../../src/families/celo/js-getFeesForTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAyC;AAEzC,iCAAoC;AAEpC,IAAM,qBAAqB,GAAG,UAAO,EAMpC;QALC,OAAO,aAAA,EACP,WAAW,iBAAA;;;;;;oBAKH,MAAM,GAAK,WAAW,OAAhB,CAAiB;oBACzB,GAAG,GAAG,IAAA,aAAO,GAAE,CAAC;oBAGhB,KAAK,GAAG,WAAW,CAAC,YAAY;wBACpC,CAAC,CAAC,OAAO,CAAC,gBAAgB;wBAC1B,CAAC,CAAC,wBAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;oBAEtC,qBAAM,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,EAAA;;oBAA9C,SAAS,GAAG,SAAkC;oBAE9C,eAAe,GAAG;wBACtB,IAAI,EAAE,OAAO,CAAC,YAAY;wBAC1B,EAAE,EAAE,SAAS,CAAC,OAAO;wBACrB,IAAI,EAAE,SAAS;6BACZ,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;6BAChD,GAAG,CAAC,SAAS,EAAE;qBACnB,CAAC;yBAEmB,wBAAS;oBAAC,qBAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAA;;oBAAxD,QAAQ,GAAG,cAAI,wBAAS,WAAC,SAA+B,KAAC;oBACnD,qBAAM,GAAG,CAAC,UAAU,CAAC,8BAA8B,CAC7D,eAAe,CAChB,EAAA;;oBAFK,GAAG,GAAG,SAEX;oBAED,sBAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC;;;;CAC5B,CAAC;AAEF,qBAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"js-getFeesForTransaction.js","sourceRoot":"","sources":["../../../src/families/celo/js-getFeesForTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { Transaction, TransactionStatus } from "./types";
2
- import { Account } from "@ledgerhq/types-live";
3
- declare const getTransactionStatus: (account: Account, transaction: Transaction) => Promise<TransactionStatus>;
1
+ import { CeloAccount, Transaction, TransactionStatus } from "./types";
2
+ declare const getTransactionStatus: (account: CeloAccount, transaction: Transaction) => Promise<TransactionStatus>;
4
3
  export default getTransactionStatus;
5
4
  //# sourceMappingURL=js-getTransactionStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-getTransactionStatus.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-getTransactionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAWzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,QAAA,MAAM,oBAAoB,YACf,OAAO,eACH,WAAW,KACvB,QAAQ,iBAAiB,CAkD3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"js-getTransactionStatus.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-getTransactionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAoBtE,QAAA,MAAM,oBAAoB,YACf,WAAW,eACP,WAAW,KACvB,QAAQ,iBAAiB,CAkG3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -39,49 +39,105 @@ exports.__esModule = true;
39
39
  var errors_1 = require("@ledgerhq/errors");
40
40
  var bignumber_js_1 = require("bignumber.js");
41
41
  var address_1 = require("@celo/utils/lib/address");
42
+ var errors_2 = require("./errors");
43
+ var logic_1 = require("./logic");
44
+ var sdk_1 = require("./api/sdk");
45
+ var kit = (0, sdk_1.celoKit)();
46
+ // Arbitrary buffer for paying fees of next transactions. 0.05 Celo for ~100 transactions
47
+ var FEES_SAFETY_BUFFER = new bignumber_js_1.BigNumber(5000000000000000);
42
48
  var getTransactionStatus = function (account, transaction) { return __awaiter(void 0, void 0, void 0, function () {
43
- var errors, warnings, useAllAmount, estimatedFees, amount, totalSpent;
44
- return __generator(this, function (_a) {
45
- errors = {};
46
- warnings = {};
47
- useAllAmount = !!transaction.useAllAmount;
48
- if (account.freshAddress === transaction.recipient) {
49
- errors.recipient = new errors_1.InvalidAddressBecauseDestinationIsAlsoSource();
49
+ var errors, warnings, useAllAmount, pendingOperationAmounts, lockedGold, nonvotingLockedGoldBalance, totalNonVotingLockedBalance, totalSpendableBalance, estimatedFees, amount, revoke, totalSpent, revoke;
50
+ var _a, _b, _c;
51
+ return __generator(this, function (_d) {
52
+ switch (_d.label) {
53
+ case 0:
54
+ errors = {};
55
+ warnings = {};
56
+ useAllAmount = !!transaction.useAllAmount;
57
+ if (account.freshAddress === transaction.recipient) {
58
+ errors.recipient = new errors_1.InvalidAddressBecauseDestinationIsAlsoSource();
59
+ }
60
+ if (!transaction.fees || !transaction.fees.gt(0)) {
61
+ errors.fees = new errors_1.FeeNotLoaded();
62
+ }
63
+ pendingOperationAmounts = (0, logic_1.getPendingStakingOperationAmounts)(account);
64
+ return [4 /*yield*/, kit.contracts.getLockedGold()];
65
+ case 1:
66
+ lockedGold = _d.sent();
67
+ return [4 /*yield*/, lockedGold.getAccountNonvotingLockedGold(account.freshAddress)];
68
+ case 2:
69
+ nonvotingLockedGoldBalance = _d.sent();
70
+ totalNonVotingLockedBalance = nonvotingLockedGoldBalance.minus(pendingOperationAmounts.vote);
71
+ totalSpendableBalance = account.spendableBalance.minus(pendingOperationAmounts.lock);
72
+ estimatedFees = transaction.fees || new bignumber_js_1.BigNumber(0);
73
+ amount = new bignumber_js_1.BigNumber(0);
74
+ if (useAllAmount &&
75
+ (transaction.mode === "unlock" || transaction.mode === "vote")) {
76
+ amount = totalNonVotingLockedBalance !== null && totalNonVotingLockedBalance !== void 0 ? totalNonVotingLockedBalance : new bignumber_js_1.BigNumber(0);
77
+ }
78
+ else if (useAllAmount && transaction.mode === "revoke") {
79
+ revoke = (0, logic_1.getVote)(account, transaction.recipient, transaction.index);
80
+ if (revoke === null || revoke === void 0 ? void 0 : revoke.amount)
81
+ amount = revoke.amount;
82
+ }
83
+ else if (useAllAmount) {
84
+ amount = totalSpendableBalance.minus(estimatedFees);
85
+ }
86
+ else {
87
+ amount = new bignumber_js_1.BigNumber(transaction.amount);
88
+ }
89
+ if (amount.lt(0))
90
+ amount = new bignumber_js_1.BigNumber(0);
91
+ if (!errors.amount &&
92
+ (((_a = account.celoResources) === null || _a === void 0 ? void 0 : _a.lockedBalance.gt(0)) ||
93
+ !!((_c = (_b = account.celoResources) === null || _b === void 0 ? void 0 : _b.pendingWithdrawals) === null || _c === void 0 ? void 0 : _c.length)) &&
94
+ (transaction.useAllAmount ||
95
+ totalSpendableBalance.minus(amount).lt(FEES_SAFETY_BUFFER)) &&
96
+ ["send", "lock"].includes(transaction.mode)) {
97
+ warnings.amount = new errors_2.CeloAllFundsWarning();
98
+ }
99
+ if (!["register", "withdraw", "activate"].includes(transaction.mode)) {
100
+ if (amount.lte(0) && !useAllAmount) {
101
+ errors.amount = new errors_1.AmountRequired();
102
+ }
103
+ }
104
+ totalSpent = amount.plus(estimatedFees);
105
+ if (transaction.mode === "unlock" || transaction.mode === "vote") {
106
+ if (totalNonVotingLockedBalance && amount.gt(totalNonVotingLockedBalance)) {
107
+ errors.amount = new errors_1.NotEnoughBalance();
108
+ }
109
+ }
110
+ else if (transaction.mode === "revoke") {
111
+ revoke = (0, logic_1.getVote)(account, transaction.recipient, transaction.index);
112
+ if ((revoke === null || revoke === void 0 ? void 0 : revoke.amount) && amount.gt(revoke.amount))
113
+ errors.amount = new errors_1.NotEnoughBalance();
114
+ }
115
+ else {
116
+ if (totalSpent.gt(totalSpendableBalance)) {
117
+ errors.amount = new errors_1.NotEnoughBalance();
118
+ }
119
+ }
120
+ if (!errors.amount && totalSpendableBalance.lt(estimatedFees)) {
121
+ errors.amount = new errors_1.NotEnoughBalance();
122
+ }
123
+ if (transaction.mode === "send") {
124
+ if (!transaction.recipient) {
125
+ errors.recipient = new errors_1.RecipientRequired();
126
+ }
127
+ else if (!(0, address_1.isValidAddress)(transaction.recipient)) {
128
+ errors.recipient = new errors_1.InvalidAddress("", {
129
+ currencyName: account.currency.name
130
+ });
131
+ }
132
+ }
133
+ return [2 /*return*/, Promise.resolve({
134
+ errors: errors,
135
+ warnings: warnings,
136
+ estimatedFees: estimatedFees,
137
+ amount: amount,
138
+ totalSpent: totalSpent
139
+ })];
50
140
  }
51
- if (!transaction.fees || !transaction.fees.gt(0)) {
52
- errors.fees = new errors_1.FeeNotLoaded();
53
- }
54
- estimatedFees = transaction.fees || new bignumber_js_1.BigNumber(0);
55
- amount = useAllAmount
56
- ? account.spendableBalance.minus(estimatedFees)
57
- : new bignumber_js_1.BigNumber(transaction.amount);
58
- if (amount.lt(0))
59
- amount = new bignumber_js_1.BigNumber(0);
60
- if (amount.lte(0) && !transaction.useAllAmount) {
61
- errors.amount = new errors_1.AmountRequired();
62
- }
63
- totalSpent = amount.plus(estimatedFees);
64
- if (totalSpent.gt(account.spendableBalance)) {
65
- errors.amount = new errors_1.NotEnoughBalance();
66
- }
67
- if (!errors.amount && account.spendableBalance.lt(estimatedFees)) {
68
- errors.amount = new errors_1.NotEnoughBalance();
69
- }
70
- if (!transaction.recipient) {
71
- errors.recipient = new errors_1.RecipientRequired();
72
- }
73
- else if (!(0, address_1.isValidAddress)(transaction.recipient)) {
74
- errors.recipient = new errors_1.InvalidAddress("", {
75
- currencyName: account.currency.name
76
- });
77
- }
78
- return [2 /*return*/, Promise.resolve({
79
- errors: errors,
80
- warnings: warnings,
81
- estimatedFees: estimatedFees,
82
- amount: amount,
83
- totalSpent: totalSpent
84
- })];
85
141
  });
86
142
  }); };
87
143
  exports["default"] = getTransactionStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"js-getTransactionStatus.js","sourceRoot":"","sources":["../../../src/families/celo/js-getTransactionStatus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAO0B;AAC1B,6CAAyC;AACzC,mDAAyD;AAGzD,IAAM,oBAAoB,GAAG,UAC3B,OAAgB,EAChB,WAAwB;;;QAElB,MAAM,GAAQ,EAAE,CAAC;QACjB,QAAQ,GAAQ,EAAE,CAAC;QACnB,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;QAEhD,IAAI,OAAO,CAAC,YAAY,KAAK,WAAW,CAAC,SAAS,EAAE;YAClD,MAAM,CAAC,SAAS,GAAG,IAAI,qDAA4C,EAAE,CAAC;SACvE;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAChD,MAAM,CAAC,IAAI,GAAG,IAAI,qBAAY,EAAE,CAAC;SAClC;QAEK,aAAa,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAC;QAEvD,MAAM,GAAG,YAAY;YACvB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,CAAC,CAAC,IAAI,wBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAAE,MAAM,GAAG,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,uBAAc,EAAE,CAAC;SACtC;QAEK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YAC3C,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;SACxC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE;YAChE,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;SACxC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;YAC1B,MAAM,CAAC,SAAS,GAAG,IAAI,0BAAiB,EAAE,CAAC;SAC5C;aAAM,IAAI,CAAC,IAAA,wBAAc,EAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YACjD,MAAM,CAAC,SAAS,GAAG,IAAI,uBAAc,CAAC,EAAE,EAAE;gBACxC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;aACpC,CAAC,CAAC;SACJ;QAED,sBAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,MAAM,QAAA;gBACN,QAAQ,UAAA;gBACR,aAAa,eAAA;gBACb,MAAM,QAAA;gBACN,UAAU,YAAA;aACX,CAAC,EAAC;;KACJ,CAAC;AAEF,qBAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"js-getTransactionStatus.js","sourceRoot":"","sources":["../../../src/families/celo/js-getTransactionStatus.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { Transaction } from "./types";
2
- import type { Account } from "@ledgerhq/types-live";
3
- declare const prepareTransaction: (account: Account, transaction: Transaction) => Promise<Transaction>;
1
+ import { CeloAccount, Transaction } from "./types";
2
+ declare const prepareTransaction: (account: CeloAccount, transaction: Transaction) => Promise<Transaction>;
4
3
  export default prepareTransaction;
5
4
  //# sourceMappingURL=js-prepareTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-prepareTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,QAAA,MAAM,kBAAkB,YACb,OAAO,eACH,WAAW,yBAgBzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"js-prepareTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOnD,QAAA,MAAM,kBAAkB,YACb,WAAW,eACP,WAAW,yBAsBzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -52,16 +52,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
52
52
  exports.__esModule = true;
53
53
  var js_getFeesForTransaction_1 = __importDefault(require("./js-getFeesForTransaction"));
54
54
  var address_1 = require("@celo/utils/lib/address");
55
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
55
56
  var sameFees = function (a, b) { return (!a || !b ? a === b : a.eq(b)); };
56
57
  var prepareTransaction = function (account, transaction) { return __awaiter(void 0, void 0, void 0, function () {
57
58
  var fees;
58
59
  return __generator(this, function (_a) {
59
60
  switch (_a.label) {
60
61
  case 0:
61
- if (!transaction.recipient ||
62
- (transaction.recipient && !(0, address_1.isValidAddress)(transaction.recipient))) {
62
+ if (transaction.recipient && !(0, address_1.isValidAddress)(transaction.recipient))
63
+ return [2 /*return*/, transaction];
64
+ if (["send", "vote"].includes(transaction.mode) && !transaction.recipient)
65
+ return [2 /*return*/, transaction];
66
+ if (transaction.mode === "vote" &&
67
+ !transaction.useAllAmount &&
68
+ new bignumber_js_1["default"](transaction.amount).lte(0))
63
69
  return [2 /*return*/, transaction];
64
- }
65
70
  return [4 /*yield*/, (0, js_getFeesForTransaction_1["default"])({ account: account, transaction: transaction })];
66
71
  case 1:
67
72
  fees = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"js-prepareTransaction.js","sourceRoot":"","sources":["../../../src/families/celo/js-prepareTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wFAA+D;AAC/D,mDAAyD;AAGzD,IAAM,QAAQ,GAAG,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAA9B,CAA8B,CAAC;AAE1D,IAAM,kBAAkB,GAAG,UACzB,OAAgB,EAChB,WAAwB;;;;;gBAExB,IACE,CAAC,WAAW,CAAC,SAAS;oBACtB,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,IAAA,wBAAc,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EACjE;oBACA,sBAAO,WAAW,EAAC;iBACpB;gBAEY,qBAAM,IAAA,qCAAqB,EAAC,EAAE,OAAO,SAAA,EAAE,WAAW,aAAA,EAAE,CAAC,EAAA;;gBAA5D,IAAI,GAAG,SAAqD;gBAElE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;oBACrC,4CAAY,WAAW,KAAE,IAAI,MAAA,KAAG;iBACjC;gBAED,sBAAO,WAAW,EAAC;;;KACpB,CAAC;AAEF,qBAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"js-prepareTransaction.js","sourceRoot":"","sources":["../../../src/families/celo/js-prepareTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wFAA+D;AAC/D,mDAAyD;AACzD,8DAAqC;AAErC,IAAM,QAAQ,GAAG,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAA9B,CAA8B,CAAC;AAE1D,IAAM,kBAAkB,GAAG,UACzB,OAAoB,EACpB,WAAwB;;;;;gBAExB,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,IAAA,wBAAc,EAAC,WAAW,CAAC,SAAS,CAAC;oBACjE,sBAAO,WAAW,EAAC;gBAErB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS;oBACvE,sBAAO,WAAW,EAAC;gBAErB,IACE,WAAW,CAAC,IAAI,KAAK,MAAM;oBAC3B,CAAC,WAAW,CAAC,YAAY;oBACzB,IAAI,yBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAExC,sBAAO,WAAW,EAAC;gBAER,qBAAM,IAAA,qCAAqB,EAAC,EAAE,OAAO,SAAA,EAAE,WAAW,aAAA,EAAE,CAAC,EAAA;;gBAA5D,IAAI,GAAG,SAAqD;gBAElE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;oBACrC,4CAAY,WAAW,KAAE,IAAI,MAAA,KAAG;iBACjC;gBAED,sBAAO,WAAW,EAAC;;;KACpB,CAAC;AAEF,qBAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"js-signOperation.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAO3C,OAAO,KAAK,EACV,OAAO,EAEP,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AA0D9B;;GAEG;AACH,QAAA,MAAM,aAAa;aAKR,OAAO;cACN,GAAG;iBACA,WAAW;MACtB,WAAW,kBAAkB,CAmE9B,CAAC;AAEJ,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"js-signOperation.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,SAAS,CAAC;AAmB3E,OAAO,KAAK,EACV,OAAO,EAGP,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AA8D9B;;GAEG;AACH,QAAA,MAAM,aAAa;aAKR,OAAO;cACN,GAAG;iBACA,WAAW;MACtB,WAAW,kBAAkB,CAmE9B,CAAC;AAEJ,eAAe,aAAa,CAAC"}
@@ -48,9 +48,23 @@ var js_buildTransaction_1 = __importDefault(require("./js-buildTransaction"));
48
48
  var wallet_base_1 = require("@celo/wallet-base");
49
49
  var tokens_1 = require("@celo/wallet-ledger/lib/tokens");
50
50
  var deviceAccess_1 = require("../../hw/deviceAccess");
51
+ var MODE_TO_TYPE = {
52
+ send: "OUT",
53
+ lock: "LOCK",
54
+ unlock: "UNLOCK",
55
+ withdraw: "WITHDRAW",
56
+ vote: "VOTE",
57
+ revoke: "REVOKE",
58
+ activate: "ACTIVATE",
59
+ register: "REGISTER",
60
+ "default": "FEE"
61
+ };
51
62
  var buildOptimisticOperation = function (account, transaction, fee) {
52
- var type = "OUT";
53
- var value = new bignumber_js_1.BigNumber(transaction.amount).plus(fee);
63
+ var _a;
64
+ var type = ((_a = MODE_TO_TYPE[transaction.mode]) !== null && _a !== void 0 ? _a : MODE_TO_TYPE["default"]);
65
+ var value = type === "OUT" || type === "LOCK"
66
+ ? new bignumber_js_1.BigNumber(transaction.amount).plus(fee)
67
+ : new bignumber_js_1.BigNumber(transaction.amount);
54
68
  var operation = {
55
69
  id: (0, operation_1.encodeOperationId)(account.id, "", type),
56
70
  hash: "",
@@ -63,7 +77,7 @@ var buildOptimisticOperation = function (account, transaction, fee) {
63
77
  recipients: [transaction.recipient].filter(Boolean),
64
78
  accountId: account.id,
65
79
  date: new Date(),
66
- extra: { additionalField: transaction.amount }
80
+ extra: {}
67
81
  };
68
82
  return operation;
69
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"js-signOperation.js","sourceRoot":"","sources":["../../../src/families/celo/js-signOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-signOperation.js","sourceRoot":"","sources":["../../../src/families/celo/js-signOperation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"js-synchronisation.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-synchronisation.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,YAAY;;;;;;gFAAwC,CAAC;AAClE,eAAO,MAAM,IAAI,wOAAgC,CAAC"}
1
+ {"version":3,"file":"js-synchronisation.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-synchronisation.ts"],"names":[],"mappings":"AAiEA,eAAO,MAAM,YAAY;;;;;;gFAAwC,CAAC;AAClE,eAAO,MAAM,IAAI,wOAAgC,CAAC"}
@@ -51,13 +51,25 @@ exports.sync = exports.scanAccounts = void 0;
51
51
  var account_1 = require("../../account");
52
52
  var jsHelpers_1 = require("../../bridge/jsHelpers");
53
53
  var api_1 = require("./api");
54
+ var sdk_1 = require("./api/sdk");
55
+ var sdk_2 = require("./api/sdk");
56
+ var kit = (0, sdk_1.celoKit)();
54
57
  var getAccountShape = function (info) { return __awaiter(void 0, void 0, void 0, function () {
55
- var address, currency, initialAccount, derivationMode, oldOperations, accountId, _a, blockHeight, balance, spendableBalance, newOperations, operations, shape;
56
- return __generator(this, function (_b) {
57
- switch (_b.label) {
58
+ var address, currency, initialAccount, derivationMode, oldOperations, election, electionConfig, lockedGold, accountId, _a, blockHeight, balance, spendableBalance, newOperations, lockedBalance, nonvotingLockedBalance, accountRegistrationStatus, pendingWithdrawals, _b, votes, _c, operations, shape;
59
+ return __generator(this, function (_d) {
60
+ switch (_d.label) {
58
61
  case 0:
59
62
  address = info.address, currency = info.currency, initialAccount = info.initialAccount, derivationMode = info.derivationMode;
60
63
  oldOperations = (initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.operations) || [];
64
+ return [4 /*yield*/, kit.contracts.getElection()];
65
+ case 1:
66
+ election = _d.sent();
67
+ return [4 /*yield*/, election.getConfig()];
68
+ case 2:
69
+ electionConfig = _d.sent();
70
+ return [4 /*yield*/, kit.contracts.getLockedGold()];
71
+ case 3:
72
+ lockedGold = _d.sent();
61
73
  accountId = (0, account_1.encodeAccountId)({
62
74
  type: "js",
63
75
  version: "2",
@@ -66,15 +78,48 @@ var getAccountShape = function (info) { return __awaiter(void 0, void 0, void 0,
66
78
  derivationMode: derivationMode
67
79
  });
68
80
  return [4 /*yield*/, (0, api_1.getAccountDetails)(address, accountId)];
69
- case 1:
70
- _a = _b.sent(), blockHeight = _a.blockHeight, balance = _a.balance, spendableBalance = _a.spendableBalance, newOperations = _a.operations;
81
+ case 4:
82
+ _a = _d.sent(), blockHeight = _a.blockHeight, balance = _a.balance, spendableBalance = _a.spendableBalance, newOperations = _a.operations, lockedBalance = _a.lockedBalance, nonvotingLockedBalance = _a.nonvotingLockedBalance;
83
+ return [4 /*yield*/, (0, sdk_2.getAccountRegistrationStatus)(address)];
84
+ case 5:
85
+ accountRegistrationStatus = _d.sent();
86
+ if (!accountRegistrationStatus) return [3 /*break*/, 7];
87
+ return [4 /*yield*/, (0, sdk_2.getPendingWithdrawals)(address)];
88
+ case 6:
89
+ _b = _d.sent();
90
+ return [3 /*break*/, 8];
91
+ case 7:
92
+ _b = [];
93
+ _d.label = 8;
94
+ case 8:
95
+ pendingWithdrawals = _b;
96
+ if (!accountRegistrationStatus) return [3 /*break*/, 10];
97
+ return [4 /*yield*/, (0, sdk_2.getVotes)(address)];
98
+ case 9:
99
+ _c = _d.sent();
100
+ return [3 /*break*/, 11];
101
+ case 10:
102
+ _c = [];
103
+ _d.label = 11;
104
+ case 11:
105
+ votes = _c;
71
106
  operations = (0, jsHelpers_1.mergeOps)(oldOperations, newOperations);
72
107
  shape = {
73
108
  id: accountId,
74
109
  balance: balance,
75
110
  spendableBalance: spendableBalance,
76
111
  operationsCount: operations.length,
77
- blockHeight: blockHeight
112
+ blockHeight: blockHeight,
113
+ celoResources: {
114
+ registrationStatus: accountRegistrationStatus,
115
+ lockedBalance: lockedBalance,
116
+ nonvotingLockedBalance: nonvotingLockedBalance,
117
+ pendingWithdrawals: pendingWithdrawals,
118
+ votes: votes,
119
+ electionAddress: election.address,
120
+ lockedGoldAddress: lockedGold.address,
121
+ maxNumGroupsVotedFor: electionConfig.maxNumGroupsVotedFor
122
+ }
78
123
  };
79
124
  return [2 /*return*/, __assign(__assign({}, shape), { operations: operations })];
80
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"js-synchronisation.js","sourceRoot":"","sources":["../../../src/families/celo/js-synchronisation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAgD;AAEhD,oDAA8E;AAC9E,6BAA0C;AAE1C,IAAM,eAAe,GAAoB,UAAO,IAAI;;;;;gBAC1C,OAAO,GAA+C,IAAI,QAAnD,EAAE,QAAQ,GAAqC,IAAI,SAAzC,EAAE,cAAc,GAAqB,IAAI,eAAzB,EAAE,cAAc,GAAK,IAAI,eAAT,CAAU;gBAC7D,aAAa,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,KAAI,EAAE,CAAC;gBAEjD,SAAS,GAAG,IAAA,yBAAe,EAAC;oBAChC,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,GAAG;oBACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,aAAa,EAAE,OAAO;oBACtB,cAAc,gBAAA;iBACf,CAAC,CAAC;gBAMC,qBAAM,IAAA,uBAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,EAAA;;gBALzC,KAKF,SAA2C,EAJ7C,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,gBAAgB,sBAAA,EACJ,aAAa,gBAAA;gBAErB,UAAU,GAAG,IAAA,oBAAQ,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;gBACpD,KAAK,GAAG;oBACZ,EAAE,EAAE,SAAS;oBACb,OAAO,SAAA;oBACP,gBAAgB,kBAAA;oBAChB,eAAe,EAAE,UAAU,CAAC,MAAM;oBAClC,WAAW,aAAA;iBACZ,CAAC;gBACF,4CAAY,KAAK,KAAE,UAAU,YAAA,KAAG;;;KACjC,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,4BAAgB,EAAC,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;AACrD,QAAA,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"js-synchronisation.js","sourceRoot":"","sources":["../../../src/families/celo/js-synchronisation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAgD;AAEhD,oDAA8E;AAC9E,6BAA0C;AAC1C,iCAAoC;AACpC,iCAImB;AAEnB,IAAM,GAAG,GAAG,IAAA,aAAO,GAAE,CAAC;AAEtB,IAAM,eAAe,GAAoB,UAAO,IAAI;;;;;gBAC1C,OAAO,GAA+C,IAAI,QAAnD,EAAE,QAAQ,GAAqC,IAAI,SAAzC,EAAE,cAAc,GAAqB,IAAI,eAAzB,EAAE,cAAc,GAAK,IAAI,eAAT,CAAU;gBAC7D,aAAa,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,KAAI,EAAE,CAAC;gBACtC,qBAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAA;;gBAA5C,QAAQ,GAAG,SAAiC;gBAC3B,qBAAM,QAAQ,CAAC,SAAS,EAAE,EAAA;;gBAA3C,cAAc,GAAG,SAA0B;gBAC9B,qBAAM,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAA;;gBAAhD,UAAU,GAAG,SAAmC;gBAEhD,SAAS,GAAG,IAAA,yBAAe,EAAC;oBAChC,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,GAAG;oBACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,aAAa,EAAE,OAAO;oBACtB,cAAc,gBAAA;iBACf,CAAC,CAAC;gBAQC,qBAAM,IAAA,uBAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,EAAA;;gBAPzC,KAOF,SAA2C,EAN7C,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,gBAAgB,sBAAA,EACJ,aAAa,gBAAA,EACzB,aAAa,mBAAA,EACb,sBAAsB,4BAAA;gBAGU,qBAAM,IAAA,kCAA4B,EAAC,OAAO,CAAC,EAAA;;gBAAvE,yBAAyB,GAAG,SAA2C;qBAElD,yBAAyB,EAAzB,wBAAyB;gBAChD,qBAAM,IAAA,2BAAqB,EAAC,OAAO,CAAC,EAAA;;gBAApC,KAAA,SAAoC,CAAA;;;gBACpC,KAAA,EAAE,CAAA;;;gBAFA,kBAAkB,KAElB;qBAEQ,yBAAyB,EAAzB,yBAAyB;gBAAG,qBAAM,IAAA,cAAQ,EAAC,OAAO,CAAC,EAAA;;gBAAvB,KAAA,SAAuB,CAAA;;;gBAAG,KAAA,EAAE,CAAA;;;gBAAhE,KAAK,KAA2D;gBAEhE,UAAU,GAAG,IAAA,oBAAQ,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;gBACpD,KAAK,GAAG;oBACZ,EAAE,EAAE,SAAS;oBACb,OAAO,SAAA;oBACP,gBAAgB,kBAAA;oBAChB,eAAe,EAAE,UAAU,CAAC,MAAM;oBAClC,WAAW,aAAA;oBACX,aAAa,EAAE;wBACb,kBAAkB,EAAE,yBAAyB;wBAC7C,aAAa,eAAA;wBACb,sBAAsB,wBAAA;wBACtB,kBAAkB,oBAAA;wBAClB,KAAK,OAAA;wBACL,eAAe,EAAE,QAAQ,CAAC,OAAO;wBACjC,iBAAiB,EAAE,UAAU,CAAC,OAAO;wBACrC,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;qBAC1D;iBACF,CAAC;gBACF,4CAAY,KAAK,KAAE,UAAU,YAAA,KAAG;;;KACjC,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,4BAAgB,EAAC,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;AACrD,QAAA,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC"}