@ledgerhq/coin-xrp 6.2.0-next.0 → 6.2.0-next.1

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/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +1 -3
  3. package/CHANGELOG.md +11 -0
  4. package/lib/api/index.d.ts +11 -2
  5. package/lib/api/index.d.ts.map +1 -1
  6. package/lib/api/index.integ.test.js +7 -24
  7. package/lib/api/index.integ.test.js.map +1 -1
  8. package/lib/api/index.js +5 -15
  9. package/lib/api/index.js.map +1 -1
  10. package/lib/api/index.test.js +9 -18
  11. package/lib/api/index.test.js.map +1 -1
  12. package/lib/bridge/broadcast.d.ts +4 -0
  13. package/lib/bridge/broadcast.d.ts.map +1 -0
  14. package/lib/bridge/broadcast.js +11 -0
  15. package/lib/bridge/broadcast.js.map +1 -0
  16. package/lib/bridge/createTransaction.d.ts +4 -0
  17. package/lib/bridge/createTransaction.d.ts.map +1 -0
  18. package/lib/bridge/createTransaction.js +18 -0
  19. package/lib/bridge/createTransaction.js.map +1 -0
  20. package/lib/bridge/estimateMaxSpendable.d.ts +4 -0
  21. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
  22. package/lib/bridge/estimateMaxSpendable.js +26 -0
  23. package/lib/bridge/estimateMaxSpendable.js.map +1 -0
  24. package/lib/bridge/getTransactionStatus.d.ts +4 -0
  25. package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
  26. package/lib/{logic → bridge}/getTransactionStatus.js +19 -15
  27. package/lib/bridge/getTransactionStatus.js.map +1 -0
  28. package/lib/bridge/index.d.ts +11 -0
  29. package/lib/bridge/index.d.ts.map +1 -0
  30. package/lib/bridge/index.js +47 -0
  31. package/lib/bridge/index.js.map +1 -0
  32. package/lib/bridge/prepareTransaction.d.ts +4 -0
  33. package/lib/bridge/prepareTransaction.d.ts.map +1 -0
  34. package/lib/bridge/prepareTransaction.js +14 -0
  35. package/lib/bridge/prepareTransaction.js.map +1 -0
  36. package/lib/bridge/signOperation.d.ts +5 -0
  37. package/lib/bridge/signOperation.d.ts.map +1 -0
  38. package/lib/bridge/signOperation.js +76 -0
  39. package/lib/bridge/signOperation.js.map +1 -0
  40. package/lib/bridge/synchronization.d.ts +3 -0
  41. package/lib/bridge/synchronization.d.ts.map +1 -0
  42. package/lib/bridge/synchronization.js +85 -0
  43. package/lib/bridge/synchronization.js.map +1 -0
  44. package/lib/bridge/synchronization.test.d.ts +2 -0
  45. package/lib/bridge/synchronization.test.d.ts.map +1 -0
  46. package/lib/bridge/synchronization.test.js +140 -0
  47. package/lib/bridge/synchronization.test.js.map +1 -0
  48. package/lib/{transaction.d.ts → bridge/transaction.d.ts} +1 -1
  49. package/lib/bridge/transaction.d.ts.map +1 -0
  50. package/lib/bridge/transaction.js.map +1 -0
  51. package/lib/index.d.ts +1 -0
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +3 -0
  54. package/lib/index.js.map +1 -1
  55. package/lib/logic/combine.d.ts.map +1 -1
  56. package/lib/logic/combine.js +3 -8
  57. package/lib/logic/combine.js.map +1 -1
  58. package/lib/logic/getBalance.d.ts.map +1 -1
  59. package/lib/logic/getBalance.js +1 -13
  60. package/lib/logic/getBalance.js.map +1 -1
  61. package/lib/logic/getBalance.test.js +1 -14
  62. package/lib/logic/getBalance.test.js.map +1 -1
  63. package/lib/logic/index.d.ts +1 -2
  64. package/lib/logic/index.d.ts.map +1 -1
  65. package/lib/logic/index.js +2 -3
  66. package/lib/logic/index.js.map +1 -1
  67. package/lib/logic/utils.d.ts +1 -0
  68. package/lib/logic/utils.d.ts.map +1 -1
  69. package/lib/logic/utils.js +10 -14
  70. package/lib/logic/utils.js.map +1 -1
  71. package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
  72. package/lib/test/bridgeDatasetTest.js +7 -7
  73. package/lib/test/bridgeDatasetTest.js.map +1 -1
  74. package/lib/types/model.d.ts +0 -7
  75. package/lib/types/model.d.ts.map +1 -1
  76. package/lib-es/api/index.d.ts +11 -2
  77. package/lib-es/api/index.d.ts.map +1 -1
  78. package/lib-es/api/index.integ.test.js +7 -24
  79. package/lib-es/api/index.integ.test.js.map +1 -1
  80. package/lib-es/api/index.js +6 -16
  81. package/lib-es/api/index.js.map +1 -1
  82. package/lib-es/api/index.test.js +9 -18
  83. package/lib-es/api/index.test.js.map +1 -1
  84. package/lib-es/bridge/broadcast.d.ts +4 -0
  85. package/lib-es/bridge/broadcast.d.ts.map +1 -0
  86. package/lib-es/bridge/broadcast.js +7 -0
  87. package/lib-es/bridge/broadcast.js.map +1 -0
  88. package/lib-es/bridge/createTransaction.d.ts +4 -0
  89. package/lib-es/bridge/createTransaction.d.ts.map +1 -0
  90. package/lib-es/bridge/createTransaction.js +11 -0
  91. package/lib-es/bridge/createTransaction.js.map +1 -0
  92. package/lib-es/bridge/estimateMaxSpendable.d.ts +4 -0
  93. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
  94. package/lib-es/bridge/estimateMaxSpendable.js +19 -0
  95. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
  96. package/lib-es/bridge/getTransactionStatus.d.ts +4 -0
  97. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
  98. package/lib-es/{logic → bridge}/getTransactionStatus.js +14 -13
  99. package/lib-es/bridge/getTransactionStatus.js.map +1 -0
  100. package/lib-es/bridge/index.d.ts +11 -0
  101. package/lib-es/bridge/index.d.ts.map +1 -0
  102. package/lib-es/bridge/index.js +41 -0
  103. package/lib-es/bridge/index.js.map +1 -0
  104. package/lib-es/bridge/prepareTransaction.d.ts +4 -0
  105. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
  106. package/lib-es/bridge/prepareTransaction.js +10 -0
  107. package/lib-es/bridge/prepareTransaction.js.map +1 -0
  108. package/lib-es/bridge/signOperation.d.ts +5 -0
  109. package/lib-es/bridge/signOperation.d.ts.map +1 -0
  110. package/lib-es/bridge/signOperation.js +72 -0
  111. package/lib-es/bridge/signOperation.js.map +1 -0
  112. package/lib-es/bridge/synchronization.d.ts +3 -0
  113. package/lib-es/bridge/synchronization.d.ts.map +1 -0
  114. package/lib-es/bridge/synchronization.js +78 -0
  115. package/lib-es/bridge/synchronization.js.map +1 -0
  116. package/lib-es/bridge/synchronization.test.d.ts +2 -0
  117. package/lib-es/bridge/synchronization.test.d.ts.map +1 -0
  118. package/lib-es/bridge/synchronization.test.js +135 -0
  119. package/lib-es/bridge/synchronization.test.js.map +1 -0
  120. package/lib-es/{transaction.d.ts → bridge/transaction.d.ts} +1 -1
  121. package/lib-es/bridge/transaction.d.ts.map +1 -0
  122. package/lib-es/bridge/transaction.js.map +1 -0
  123. package/lib-es/index.d.ts +1 -0
  124. package/lib-es/index.d.ts.map +1 -1
  125. package/lib-es/index.js +1 -0
  126. package/lib-es/index.js.map +1 -1
  127. package/lib-es/logic/combine.d.ts.map +1 -1
  128. package/lib-es/logic/combine.js +3 -8
  129. package/lib-es/logic/combine.js.map +1 -1
  130. package/lib-es/logic/getBalance.d.ts.map +1 -1
  131. package/lib-es/logic/getBalance.js +2 -14
  132. package/lib-es/logic/getBalance.js.map +1 -1
  133. package/lib-es/logic/getBalance.test.js +1 -14
  134. package/lib-es/logic/getBalance.test.js.map +1 -1
  135. package/lib-es/logic/index.d.ts +1 -2
  136. package/lib-es/logic/index.d.ts.map +1 -1
  137. package/lib-es/logic/index.js +1 -2
  138. package/lib-es/logic/index.js.map +1 -1
  139. package/lib-es/logic/utils.d.ts +1 -0
  140. package/lib-es/logic/utils.d.ts.map +1 -1
  141. package/lib-es/logic/utils.js +8 -13
  142. package/lib-es/logic/utils.js.map +1 -1
  143. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
  144. package/lib-es/test/bridgeDatasetTest.js +7 -7
  145. package/lib-es/test/bridgeDatasetTest.js.map +1 -1
  146. package/lib-es/types/model.d.ts +0 -7
  147. package/lib-es/types/model.d.ts.map +1 -1
  148. package/package.json +5 -5
  149. package/src/api/index.integ.test.ts +8 -24
  150. package/src/api/index.test.ts +22 -23
  151. package/src/api/index.ts +19 -28
  152. package/src/bridge/broadcast.ts +11 -0
  153. package/src/bridge/createTransaction.ts +13 -0
  154. package/src/bridge/estimateMaxSpendable.ts +25 -0
  155. package/src/{logic → bridge}/getTransactionStatus.ts +21 -18
  156. package/src/bridge/index.ts +59 -0
  157. package/src/bridge/prepareTransaction.ts +18 -0
  158. package/src/bridge/signOperation.ts +100 -0
  159. package/src/bridge/synchronization.test.ts +153 -0
  160. package/src/bridge/synchronization.ts +108 -0
  161. package/src/{transaction.ts → bridge/transaction.ts} +1 -1
  162. package/src/index.ts +1 -0
  163. package/src/logic/combine.ts +3 -10
  164. package/src/logic/getBalance.test.ts +1 -14
  165. package/src/logic/getBalance.ts +2 -18
  166. package/src/logic/index.ts +6 -2
  167. package/src/logic/utils.ts +8 -24
  168. package/src/test/bridgeDatasetTest.ts +7 -8
  169. package/src/types/model.ts +0 -11
  170. package/lib/logic/getTransactionStatus.d.ts +0 -3
  171. package/lib/logic/getTransactionStatus.d.ts.map +0 -1
  172. package/lib/logic/getTransactionStatus.js.map +0 -1
  173. package/lib/logic/getTransactionStatus.test.d.ts +0 -2
  174. package/lib/logic/getTransactionStatus.test.d.ts.map +0 -1
  175. package/lib/logic/getTransactionStatus.test.js +0 -184
  176. package/lib/logic/getTransactionStatus.test.js.map +0 -1
  177. package/lib/transaction.d.ts.map +0 -1
  178. package/lib/transaction.js.map +0 -1
  179. package/lib-es/logic/getTransactionStatus.d.ts +0 -3
  180. package/lib-es/logic/getTransactionStatus.d.ts.map +0 -1
  181. package/lib-es/logic/getTransactionStatus.js.map +0 -1
  182. package/lib-es/logic/getTransactionStatus.test.d.ts +0 -2
  183. package/lib-es/logic/getTransactionStatus.test.d.ts.map +0 -1
  184. package/lib-es/logic/getTransactionStatus.test.js +0 -159
  185. package/lib-es/logic/getTransactionStatus.test.js.map +0 -1
  186. package/lib-es/transaction.d.ts.map +0 -1
  187. package/lib-es/transaction.js.map +0 -1
  188. package/src/logic/getTransactionStatus.test.ts +0 -215
  189. /package/lib/{transaction.js → bridge/transaction.js} +0 -0
  190. /package/lib-es/{transaction.js → bridge/transaction.js} +0 -0
@@ -1,28 +1,29 @@
1
1
  import { AmountRequired, FeeNotLoaded, FeeRequired, FeeTooHigh, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, NotEnoughBalanceBecauseDestinationNotCreated, NotEnoughSpendableBalance, RecipientRequired, } from "@ledgerhq/errors";
2
+ import BigNumber from "bignumber.js";
2
3
  import { isValidClassicAddress } from "ripple-address-codec";
3
4
  import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
4
5
  import { getServerInfos } from "../network";
5
- import { cachedRecipientIsNew, parseAPIValue } from ".";
6
+ import { cachedRecipientIsNew, parseAPIValue } from "../logic";
6
7
  export const getTransactionStatus = async (account, transaction) => {
7
8
  const errors = {};
8
9
  const warnings = {};
9
10
  const serverInfos = await getServerInfos();
10
11
  const reserveBaseXRP = parseAPIValue(serverInfos.info.validated_ledger.reserve_base_xrp.toString());
11
- const estimatedFees = transaction.fee || 0n;
12
- const totalSpent = transaction.amount + estimatedFees;
13
- const amount = transaction.amount;
14
- if (amount > 0 && estimatedFees * 10n > amount) {
12
+ const estimatedFees = new BigNumber(transaction.fee || 0);
13
+ const totalSpent = new BigNumber(transaction.amount).plus(estimatedFees);
14
+ const amount = new BigNumber(transaction.amount);
15
+ if (amount.gt(0) && estimatedFees.times(10).gt(amount)) {
15
16
  warnings.feeTooHigh = new FeeTooHigh();
16
17
  }
17
18
  if (!transaction.fee) {
18
19
  errors.fee = new FeeNotLoaded();
19
20
  }
20
- else if (transaction.fee == 0n) {
21
+ else if (transaction.fee.eq(0)) {
21
22
  errors.fee = new FeeRequired();
22
23
  }
23
- else if (totalSpent > account.balance - BigInt(reserveBaseXRP.toString())) {
24
+ else if (totalSpent.gt(account.balance.minus(reserveBaseXRP))) {
24
25
  errors.amount = new NotEnoughSpendableBalance("", {
25
- minimumAmount: formatCurrencyUnit(account.currencyUnit, reserveBaseXRP, {
26
+ minimumAmount: formatCurrencyUnit(account.currency.units[0], reserveBaseXRP, {
26
27
  disableRounding: true,
27
28
  useGrouping: false,
28
29
  showCode: true,
@@ -31,9 +32,9 @@ export const getTransactionStatus = async (account, transaction) => {
31
32
  }
32
33
  else if (transaction.recipient &&
33
34
  (await cachedRecipientIsNew(transaction.recipient)) &&
34
- transaction.amount < BigInt(reserveBaseXRP.toString())) {
35
+ transaction.amount.lt(reserveBaseXRP)) {
35
36
  errors.amount = new NotEnoughBalanceBecauseDestinationNotCreated("", {
36
- minimalAmount: formatCurrencyUnit(account.currencyUnit, reserveBaseXRP, {
37
+ minimalAmount: formatCurrencyUnit(account.currency.units[0], reserveBaseXRP, {
37
38
  disableRounding: true,
38
39
  useGrouping: false,
39
40
  showCode: true,
@@ -43,15 +44,15 @@ export const getTransactionStatus = async (account, transaction) => {
43
44
  if (!transaction.recipient) {
44
45
  errors.recipient = new RecipientRequired("");
45
46
  }
46
- else if (account.address === transaction.recipient) {
47
+ else if (account.freshAddress === transaction.recipient) {
47
48
  errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
48
49
  }
49
50
  else if (!isValidClassicAddress(transaction.recipient)) {
50
51
  errors.recipient = new InvalidAddress("", {
51
- currencyName: account.currencyName,
52
+ currencyName: account.currency.name,
52
53
  });
53
54
  }
54
- if (!errors.amount && amount == 0n) {
55
+ if (!errors.amount && amount.eq(0)) {
55
56
  errors.amount = new AmountRequired();
56
57
  }
57
58
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,4CAA4C,EAC5C,4CAA4C,EAC5C,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG/D,MAAM,CAAC,MAAM,oBAAoB,GAIL,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACzD,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,aAAa,CAClC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAC9D,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,CAAC;SAAM,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;IACjC,CAAC;SAAM,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAyB,CAAC,EAAE,EAAE;YAChD,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE;gBAC3E,eAAe,EAAE,IAAI;gBACrB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,CAAC,CAAC;IACL,CAAC;SAAM,IACL,WAAW,CAAC,SAAS;QACrB,CAAC,MAAM,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACnD,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,EACrC,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,IAAI,4CAA4C,CAAC,EAAE,EAAE;YACnE,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE;gBAC3E,eAAe,EAAE,IAAI;gBACrB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,CAAC,SAAS,GAAG,IAAI,4CAA4C,EAAE,CAAC;IACxE,CAAC;SAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE;YACxC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;SACpC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,aAAa;QACb,MAAM;QACN,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { CoinConfig } from "@ledgerhq/coin-framework/config";
2
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
3
+ import type { AccountBridge, CurrencyBridge } from "@ledgerhq/types-live";
4
+ import { type XrpCoinConfig } from "../config";
5
+ import { XrpSigner } from "../types";
6
+ import type { Transaction } from "../types";
7
+ export declare function createBridges(signerContext: SignerContext<XrpSigner>, coinConfig: CoinConfig<XrpCoinConfig>): {
8
+ currencyBridge: CurrencyBridge;
9
+ accountBridge: AccountBridge<Transaction>;
10
+ };
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAS5C,wBAAgB,aAAa,CAC3B,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,EACvC,UAAU,EAAE,UAAU,CAAC,aAAa,CAAC;;;EAiCtC"}
@@ -0,0 +1,41 @@
1
+ import getAddressWrapper from "@ledgerhq/coin-framework/bridge/getAddressWrapper";
2
+ import { getSerializedAddressParameters, updateTransaction, makeAccountBridgeReceive, makeScanAccounts, makeSync, } from "@ledgerhq/coin-framework/bridge/jsHelpers";
3
+ import xrpCoinConfig from "../config";
4
+ import resolver from "../signer";
5
+ import { broadcast } from "./broadcast";
6
+ import { createTransaction } from "./createTransaction";
7
+ import { estimateMaxSpendable } from "./estimateMaxSpendable";
8
+ import { getTransactionStatus } from "./getTransactionStatus";
9
+ import { prepareTransaction } from "./prepareTransaction";
10
+ import { buildSignOperation } from "./signOperation";
11
+ import { getAccountShape } from "./synchronization";
12
+ export function createBridges(signerContext, coinConfig) {
13
+ xrpCoinConfig.setCoinConfig(coinConfig);
14
+ const getAddress = resolver(signerContext);
15
+ const scanAccounts = makeScanAccounts({ getAccountShape, getAddressFn: getAddress });
16
+ const currencyBridge = {
17
+ preload: () => Promise.resolve({}),
18
+ hydrate: () => { },
19
+ scanAccounts,
20
+ };
21
+ const receive = makeAccountBridgeReceive(getAddressWrapper(getAddress));
22
+ const signOperation = buildSignOperation(signerContext);
23
+ const sync = makeSync({ getAccountShape });
24
+ const accountBridge = {
25
+ createTransaction,
26
+ updateTransaction: (updateTransaction),
27
+ prepareTransaction,
28
+ getTransactionStatus,
29
+ estimateMaxSpendable,
30
+ sync,
31
+ receive,
32
+ signOperation,
33
+ broadcast,
34
+ getSerializedAddressParameters,
35
+ };
36
+ return {
37
+ currencyBridge,
38
+ accountBridge,
39
+ };
40
+ }
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,mDAAmD,CAAC;AAClF,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,QAAQ,GACT,MAAM,2CAA2C,CAAC;AAInD,OAAO,aAAqC,MAAM,WAAW,CAAC;AAC9D,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,aAAa,CAC3B,aAAuC,EACvC,UAAqC;IAErC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,gBAAgB,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IACrF,MAAM,cAAc,GAAmB;QACrC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,YAAY;KACb,CAAC;IAEF,MAAM,OAAO,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IAC3C,MAAM,aAAa,GAA+B;QAChD,iBAAiB;QACjB,iBAAiB,EAAE,CAAA,iBAA8B,CAAA;QACjD,kBAAkB;QAClB,oBAAoB;QACpB,oBAAoB;QACpB,IAAI;QACJ,OAAO;QACP,aAAa;QACb,SAAS;QACT,8BAA8B;KAC/B,CAAC;IAEF,OAAO;QACL,cAAc;QACd,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AccountBridge } from "@ledgerhq/types-live";
2
+ import { Transaction } from "../types";
3
+ export declare const prepareTransaction: AccountBridge<Transaction>["prepareTransaction"];
4
+ //# sourceMappingURL=prepareTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAa/E,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { estimateFees } from "../logic";
2
+ export const prepareTransaction = async (_account, transaction) => {
3
+ const { networkInfo } = await estimateFees(transaction.networkInfo);
4
+ const fee = transaction.fee || networkInfo.serverFee;
5
+ if (transaction.networkInfo !== networkInfo || transaction.fee !== fee) {
6
+ return { ...transaction, networkInfo, fee };
7
+ }
8
+ return transaction;
9
+ };
10
+ //# sourceMappingURL=prepareTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAqD,KAAK,EACvF,QAAQ,EACR,WAAW,EACX,EAAE;IACF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC;IAErD,IAAI,WAAW,CAAC,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACvE,OAAO,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { AccountBridge } from "@ledgerhq/types-live";
2
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
3
+ import { Transaction, XrpSigner } from "../types";
4
+ export declare const buildSignOperation: (signerContext: SignerContext<XrpSigner>) => AccountBridge<Transaction>["signOperation"];
5
+ //# sourceMappingURL=signOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAa,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAgB,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhE,eAAO,MAAM,kBAAkB,kBACb,aAAa,CAAC,SAAS,CAAC,KAAG,aAAa,CAAC,WAAW,CAAC,CAAC,eAAe,CAyFjF,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { Observable } from "rxjs";
2
+ import { encode } from "ripple-binary-codec";
3
+ import { FeeNotLoaded } from "@ledgerhq/errors";
4
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
5
+ import { craftTransaction, getNextValidSequence, removeCachedRecipientIsNew } from "../logic";
6
+ export const buildSignOperation = (signerContext) => ({ account, deviceId, transaction }) => new Observable(o => {
7
+ removeCachedRecipientIsNew(transaction.recipient);
8
+ async function main() {
9
+ const { fee } = transaction;
10
+ if (!fee)
11
+ throw new FeeNotLoaded();
12
+ try {
13
+ o.next({
14
+ type: "device-signature-requested",
15
+ });
16
+ const nextSequenceNumber = await getNextValidSequence(account.freshAddress);
17
+ const signature = await signerContext(deviceId, async (signer) => {
18
+ const { freshAddressPath: derivationPath } = account;
19
+ const { publicKey } = await signer.getAddress(derivationPath);
20
+ const { xrplTransaction, serializedTransaction } = await craftTransaction({
21
+ address: account.freshAddress,
22
+ nextSequenceNumber,
23
+ }, {
24
+ recipient: transaction.recipient,
25
+ amount: BigInt(transaction.amount.toString()),
26
+ fee: BigInt(fee.toString()),
27
+ destinationTag: transaction.tag,
28
+ }, publicKey);
29
+ const transactionSignature = await signer.signTransaction(derivationPath, serializedTransaction);
30
+ return encode({
31
+ ...xrplTransaction,
32
+ SigningPubKey: publicKey,
33
+ TxnSignature: transactionSignature,
34
+ }).toUpperCase();
35
+ });
36
+ o.next({
37
+ type: "device-signature-granted",
38
+ });
39
+ const hash = "";
40
+ const operation = {
41
+ id: encodeOperationId(account.id, hash, "OUT"),
42
+ hash,
43
+ accountId: account.id,
44
+ type: "OUT",
45
+ value: transaction.amount,
46
+ fee,
47
+ blockHash: null,
48
+ blockHeight: null,
49
+ senders: [account.freshAddress],
50
+ recipients: [transaction.recipient],
51
+ date: new Date(),
52
+ transactionSequenceNumber: nextSequenceNumber,
53
+ extra: {},
54
+ };
55
+ o.next({
56
+ type: "signed",
57
+ signedOperation: {
58
+ operation,
59
+ signature,
60
+ },
61
+ });
62
+ }
63
+ catch (e) {
64
+ if (e instanceof Error) {
65
+ throw new Error(e?.data?.resultMessage);
66
+ }
67
+ throw e;
68
+ }
69
+ }
70
+ main().then(() => o.complete(), e => o.error(e));
71
+ });
72
+ //# sourceMappingURL=signOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { GetAccountShape } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
+ export declare const getAccountShape: GetAccountShape;
3
+ //# sourceMappingURL=synchronization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AAUtF,eAAO,MAAM,eAAe,EAAE,eAgD7B,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { encodeAccountId } from "@ledgerhq/coin-framework/account/index";
2
+ import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
3
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
4
+ import BigNumber from "bignumber.js";
5
+ import { listOperations, parseAPIValue } from "../logic";
6
+ import { getAccountInfo, getServerInfos } from "../network";
7
+ export const getAccountShape = async (info) => {
8
+ const { address, initialAccount, currency, derivationMode } = info;
9
+ const accountId = encodeAccountId({
10
+ type: "js",
11
+ version: "2",
12
+ currencyId: currency.id,
13
+ xpubOrAddress: address,
14
+ derivationMode,
15
+ });
16
+ const accountInfo = await getAccountInfo(address);
17
+ if (accountInfo.isNewAccount) {
18
+ return {
19
+ id: accountId,
20
+ xpub: address,
21
+ blockHeight: 0,
22
+ balance: new BigNumber(0),
23
+ spendableBalance: new BigNumber(0),
24
+ operations: [],
25
+ operationsCount: 0,
26
+ };
27
+ }
28
+ const oldOperations = initialAccount?.operations || [];
29
+ const blockHeight = oldOperations.length ? (oldOperations[0].blockHeight || 0) + 1 : 0;
30
+ const serverInfo = await getServerInfos();
31
+ const ledgers = serverInfo.info.complete_ledgers.split("-");
32
+ const maxLedgerVersion = Number(ledgers[1]);
33
+ const balance = new BigNumber(accountInfo.balance);
34
+ const spendableBalance = await calculateSpendableBalance(accountInfo, serverInfo);
35
+ const newOperations = await filterOperations(accountId, address, blockHeight);
36
+ const operations = mergeOps(oldOperations, newOperations);
37
+ const shape = {
38
+ id: accountId,
39
+ xpub: address,
40
+ blockHeight: maxLedgerVersion,
41
+ balance,
42
+ spendableBalance,
43
+ operations,
44
+ operationsCount: operations.length,
45
+ };
46
+ return shape;
47
+ };
48
+ async function filterOperations(accountId, address, blockHeight) {
49
+ const [operations, _] = await listOperations(address, { minHeight: blockHeight });
50
+ return operations.map(op => adaptCoreOperationToLiveOperation(accountId, op));
51
+ }
52
+ function adaptCoreOperationToLiveOperation(accountId, op) {
53
+ return {
54
+ id: encodeOperationId(accountId, op.tx.hash, op.type),
55
+ hash: op.tx.hash,
56
+ accountId,
57
+ type: op.type,
58
+ value: new BigNumber(op.value.toString()),
59
+ fee: new BigNumber(op.tx.fees.toString()),
60
+ blockHash: op.tx.block.hash,
61
+ blockHeight: op.tx.block.height,
62
+ senders: op.senders,
63
+ recipients: op.recipients,
64
+ date: op.tx.date,
65
+ transactionSequenceNumber: op.details?.sequence,
66
+ extra: {},
67
+ };
68
+ }
69
+ async function calculateSpendableBalance(account, serverInfo) {
70
+ const reserveMinXRP = parseAPIValue(serverInfo.info.validated_ledger.reserve_base_xrp.toString());
71
+ const reservePerTrustline = parseAPIValue(serverInfo.info.validated_ledger.reserve_inc_xrp.toString());
72
+ const trustlines = account.ownerCount;
73
+ const spendableBalance = new BigNumber(account.balance)
74
+ .minus(reserveMinXRP)
75
+ .minus(reservePerTrustline.times(trustlines));
76
+ return spendableBalance;
77
+ }
78
+ //# sourceMappingURL=synchronization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.js","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=synchronization.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
1
+ import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/index";
2
+ import BigNumber from "bignumber.js";
3
+ import { getAccountShape } from "./synchronization";
4
+ const mockGetServerInfos = jest.fn().mockResolvedValue({
5
+ info: {
6
+ complete_ledgers: "1-2",
7
+ validated_ledger: {
8
+ reserve_base_xrp: "0",
9
+ reserve_inc_xrp: "0",
10
+ },
11
+ },
12
+ });
13
+ const mockGetAccountInfo = jest.fn().mockResolvedValue({
14
+ isNewAccount: true,
15
+ balance: "0",
16
+ ownerCount: 0,
17
+ sequence: 0,
18
+ });
19
+ const mockGetTransactions = jest.fn();
20
+ jest.mock("../network", () => ({
21
+ getServerInfos: () => mockGetServerInfos(),
22
+ getAccountInfo: () => mockGetAccountInfo(),
23
+ getTransactions: () => mockGetTransactions(),
24
+ }));
25
+ describe("getAccountShape", () => {
26
+ beforeEach(() => {
27
+ mockGetServerInfos.mockClear();
28
+ mockGetAccountInfo.mockClear();
29
+ mockGetTransactions.mockClear();
30
+ });
31
+ it("returns early when account is new", async () => {
32
+ // Given
33
+ mockGetAccountInfo.mockResolvedValue({
34
+ isNewAccount: true,
35
+ balance: "0",
36
+ ownerCount: 0,
37
+ sequence: 0,
38
+ });
39
+ // When
40
+ const account = await getAccountShape({
41
+ address: "address",
42
+ currency: getCryptoCurrencyById("ripple"),
43
+ derivationMode: "",
44
+ index: 0,
45
+ }, {});
46
+ // Then
47
+ expect(mockGetAccountInfo).toHaveBeenCalledTimes(1);
48
+ expect(mockGetServerInfos).toHaveBeenCalledTimes(0);
49
+ expect(mockGetTransactions).toHaveBeenCalledTimes(0);
50
+ expect(account).toEqual({
51
+ id: "js:2:ripple:address:",
52
+ xpub: "address",
53
+ blockHeight: 0,
54
+ balance: new BigNumber(0),
55
+ spendableBalance: new BigNumber(0),
56
+ operations: [],
57
+ operationsCount: 0,
58
+ });
59
+ });
60
+ const someMarker = { ledger: 1, seq: 1 };
61
+ function mockNetworkTxs(txs) {
62
+ return {
63
+ account: "account",
64
+ ledger_index_max: 1,
65
+ ledger_index_min: 1,
66
+ limit: 1,
67
+ validated: false,
68
+ transactions: txs,
69
+ marker: someMarker,
70
+ error: "",
71
+ };
72
+ }
73
+ it("convert correctly operations", async () => {
74
+ // Given
75
+ mockGetAccountInfo.mockResolvedValue({
76
+ isNewAccount: false,
77
+ balance: "0",
78
+ ownerCount: 0,
79
+ sequence: 0,
80
+ });
81
+ mockGetTransactions.mockResolvedValue(mockNetworkTxs([
82
+ {
83
+ ledger_hash: "HASH_VALUE_BLOCK",
84
+ hash: "HASH_VALUE",
85
+ meta: { delivered_amount: "100" },
86
+ tx_json: {
87
+ TransactionType: "Payment",
88
+ Fee: "10",
89
+ ledger_index: 1,
90
+ date: 1000,
91
+ Account: "account_addr",
92
+ Destination: "destination_addr",
93
+ Sequence: 1,
94
+ },
95
+ },
96
+ ]));
97
+ // When
98
+ const account = await getAccountShape({
99
+ address: "address",
100
+ currency: getCryptoCurrencyById("ripple"),
101
+ derivationMode: "",
102
+ index: 0,
103
+ }, {});
104
+ // Then
105
+ expect(mockGetAccountInfo).toHaveBeenCalledTimes(1);
106
+ expect(mockGetServerInfos).toHaveBeenCalled();
107
+ expect(mockGetTransactions).toHaveBeenCalledTimes(1);
108
+ expect(account).toEqual({
109
+ id: "js:2:ripple:address:",
110
+ xpub: "address",
111
+ blockHeight: 2,
112
+ operationsCount: 1,
113
+ balance: new BigNumber(0),
114
+ spendableBalance: new BigNumber(0),
115
+ operations: [
116
+ {
117
+ accountId: "js:2:ripple:address:",
118
+ blockHash: "HASH_VALUE_BLOCK",
119
+ blockHeight: 1,
120
+ date: new Date("2000-01-01T00:16:40.000Z"),
121
+ hash: "HASH_VALUE",
122
+ id: "js:2:ripple:address:-HASH_VALUE-IN",
123
+ recipients: ["destination_addr"],
124
+ senders: ["account_addr"],
125
+ transactionSequenceNumber: 1,
126
+ type: "IN",
127
+ value: new BigNumber("100"),
128
+ fee: new BigNumber("10"),
129
+ extra: {},
130
+ },
131
+ ],
132
+ });
133
+ });
134
+ });
135
+ //# sourceMappingURL=synchronization.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronization.test.js","sourceRoot":"","sources":["../../src/bridge/synchronization.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Transaction, TransactionRaw } from "./types";
1
+ import type { Transaction, TransactionRaw } from "../types";
2
2
  import type { Account } from "@ledgerhq/types-live";
3
3
  export declare const formatTransaction: ({ amount, recipient, fee, tag, useAllAmount }: Transaction, account: Account) => string;
4
4
  export declare const fromTransactionRaw: (tr: TransactionRaw) => Transaction;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,eAAO,MAAM,iBAAiB,kDACmB,WAAW,WACjD,OAAO,KACf,MAiB6B,CAAC;AAEjC,eAAO,MAAM,kBAAkB,OAAQ,cAAc,KAAG,WAgBvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,MAAO,WAAW,KAAG,cAgBjD,CAAC;;uEAvD+C,WAAW,WACjD,OAAO,KACf,MAAM;6BAmB8B,cAAc,KAAG,WAAW;0BAkB/B,WAAW,KAAG,cAAc;;;;;AAkBhE,wBAOE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"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"}
package/lib-es/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./types";
2
+ export { createBridges } from "./bridge/index";
2
3
  export type { XrpCoinConfig } from "./config";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
package/lib-es/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./types";
2
+ export { createBridges } from "./bridge/index";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAQA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB1F"}
1
+ {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAQA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAS1F"}
@@ -1,15 +1,10 @@
1
1
  import { decode, encode } from "ripple-binary-codec";
2
2
  export function combine(transaction, signature, publicKey) {
3
3
  const xrplTransaction = decode(transaction);
4
- let transactionWithSignature = { ...xrplTransaction };
4
+ let transactionWithSignature = { ...xrplTransaction, TxnSignature: signature };
5
5
  if (publicKey) {
6
- transactionWithSignature = {
7
- ...transactionWithSignature,
8
- SigningPubKey: publicKey,
9
- };
6
+ transactionWithSignature = { ...transactionWithSignature, SigningPubKey: publicKey };
10
7
  }
11
- transactionWithSignature = { ...transactionWithSignature, TxnSignature: signature };
12
- const encoded = encode(transactionWithSignature).toUpperCase();
13
- return encoded;
8
+ return encode(transactionWithSignature);
14
9
  }
15
10
  //# sourceMappingURL=combine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB;IAChF,MAAM,eAAe,GAAe,MAAM,CAAC,WAAW,CAAC,CAAC;IAExD,IAAI,wBAAwB,GAAmB,EAAE,GAAG,eAAe,EAAS,CAAC;IAE7E,IAAI,SAAS,EAAE,CAAC;QACd,wBAAwB,GAAG;YACzB,GAAG,wBAAwB;YAC3B,aAAa,EAAE,SAAS;SACzB,CAAC;IACJ,CAAC;IAED,wBAAwB,GAAG,EAAE,GAAG,wBAAwB,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAEpF,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB;IAChF,MAAM,eAAe,GAAe,MAAM,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,wBAAwB,GAAmB,EAAE,GAAG,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAE/F,IAAI,SAAS,EAAE,CAAC;QACd,wBAAwB,GAAG,EAAE,GAAG,wBAAwB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;IACvF,CAAC;IAED,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAkB9E"}
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAG9E"}
@@ -1,18 +1,6 @@
1
- import { getAccountInfo, getServerInfos } from "../network";
2
- import { parseAPIValue } from "./common";
1
+ import { getAccountInfo } from "../network";
3
2
  export async function getBalance(address) {
4
3
  const accountInfo = await getAccountInfo(address);
5
- const serverInfo = await getServerInfos();
6
- const reserveMinXRP = parseAPIValue(serverInfo.info.validated_ledger.reserve_base_xrp.toString());
7
- const reservePerTrustline = parseAPIValue(serverInfo.info.validated_ledger.reserve_inc_xrp.toString());
8
- const trustlines = accountInfo.ownerCount;
9
- const locked = reserveMinXRP.plus(reservePerTrustline.times(trustlines));
10
- return [
11
- {
12
- value: BigInt(accountInfo.balance),
13
- asset: { type: "native" },
14
- locked: BigInt(locked.toString()),
15
- },
16
- ];
4
+ return [{ value: BigInt(accountInfo.balance), asset: { type: "native" } }];
17
5
  }
18
6
  //# sourceMappingURL=getBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;IAE1C,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClG,MAAM,mBAAmB,GAAG,aAAa,CACvC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,CAC5D,CAAC;IACF,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAE1C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,OAAO;QACL;YACE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SAClC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC"}