@ledgerhq/coin-casper 1.7.3 → 2.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +11 -35
  3. package/CHANGELOG.md +14 -0
  4. package/jest.config.js +2 -5
  5. package/lib/api/index.d.ts +8 -6
  6. package/lib/api/index.d.ts.map +1 -1
  7. package/lib/api/index.integ.test.js +12 -3
  8. package/lib/api/index.integ.test.js.map +1 -1
  9. package/lib/api/index.js +53 -91
  10. package/lib/api/index.js.map +1 -1
  11. package/lib/api/index.test.d.ts +2 -0
  12. package/lib/api/index.test.d.ts.map +1 -0
  13. package/lib/api/index.test.js +274 -0
  14. package/lib/api/index.test.js.map +1 -0
  15. package/lib/api/types.d.ts +2 -67
  16. package/lib/api/types.d.ts.map +1 -1
  17. package/lib/bridge/bridgeHelpers/accountShape.d.ts.map +1 -1
  18. package/lib/bridge/bridgeHelpers/accountShape.js +5 -7
  19. package/lib/bridge/bridgeHelpers/accountShape.js.map +1 -1
  20. package/lib/bridge/bridgeHelpers/accountShape.test.d.ts +2 -0
  21. package/lib/bridge/bridgeHelpers/accountShape.test.d.ts.map +1 -0
  22. package/lib/bridge/bridgeHelpers/accountShape.test.js +94 -0
  23. package/lib/bridge/bridgeHelpers/accountShape.test.js.map +1 -0
  24. package/lib/bridge/bridgeHelpers/addresses.d.ts +3 -9
  25. package/lib/bridge/bridgeHelpers/addresses.d.ts.map +1 -1
  26. package/lib/bridge/bridgeHelpers/addresses.js +5 -62
  27. package/lib/bridge/bridgeHelpers/addresses.js.map +1 -1
  28. package/lib/bridge/bridgeHelpers/txn.d.ts +2 -2
  29. package/lib/bridge/bridgeHelpers/txn.d.ts.map +1 -1
  30. package/lib/bridge/bridgeHelpers/txn.js +9 -11
  31. package/lib/bridge/bridgeHelpers/txn.js.map +1 -1
  32. package/lib/bridge/bridgeHelpers/txn.test.d.ts +2 -0
  33. package/lib/bridge/bridgeHelpers/txn.test.d.ts.map +1 -0
  34. package/lib/bridge/bridgeHelpers/txn.test.js +306 -0
  35. package/lib/bridge/bridgeHelpers/txn.test.js.map +1 -0
  36. package/lib/bridge/broadcast.d.ts.map +1 -1
  37. package/lib/bridge/broadcast.js +7 -6
  38. package/lib/bridge/broadcast.js.map +1 -1
  39. package/lib/bridge/broadcast.test.d.ts +2 -0
  40. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  41. package/lib/bridge/broadcast.test.js +72 -0
  42. package/lib/bridge/broadcast.test.js.map +1 -0
  43. package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
  44. package/lib/bridge/buildOptimisticOperation.js +2 -0
  45. package/lib/bridge/buildOptimisticOperation.js.map +1 -1
  46. package/lib/bridge/buildOptimisticOperation.test.d.ts +2 -0
  47. package/lib/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  48. package/lib/bridge/buildOptimisticOperation.test.js +76 -0
  49. package/lib/bridge/buildOptimisticOperation.test.js.map +1 -0
  50. package/lib/bridge/createTransaction.test.d.ts +2 -0
  51. package/lib/bridge/createTransaction.test.d.ts.map +1 -0
  52. package/lib/bridge/createTransaction.test.js +41 -0
  53. package/lib/bridge/createTransaction.test.js.map +1 -0
  54. package/lib/bridge/deviceTransactionConfig.d.ts.map +1 -1
  55. package/lib/bridge/deviceTransactionConfig.js +13 -0
  56. package/lib/bridge/deviceTransactionConfig.js.map +1 -1
  57. package/lib/bridge/deviceTransactionConfig.test.d.ts +2 -0
  58. package/lib/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  59. package/lib/bridge/deviceTransactionConfig.test.js +148 -0
  60. package/lib/bridge/deviceTransactionConfig.test.js.map +1 -0
  61. package/lib/bridge/estimateMaxSpendable.test.d.ts +2 -0
  62. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  63. package/lib/bridge/estimateMaxSpendable.test.js +133 -0
  64. package/lib/bridge/estimateMaxSpendable.test.js.map +1 -0
  65. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  66. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  67. package/lib/bridge/getTransactionStatus.test.js +214 -0
  68. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  69. package/lib/bridge/index.d.ts +2 -1
  70. package/lib/bridge/index.d.ts.map +1 -1
  71. package/lib/bridge/index.js +3 -1
  72. package/lib/bridge/index.js.map +1 -1
  73. package/lib/bridge/prepareTransaction.js +1 -1
  74. package/lib/bridge/prepareTransaction.js.map +1 -1
  75. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  76. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  77. package/lib/bridge/prepareTransaction.test.js +159 -0
  78. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  79. package/lib/bridge/signOperation.d.ts.map +1 -1
  80. package/lib/bridge/signOperation.js +14 -12
  81. package/lib/bridge/signOperation.js.map +1 -1
  82. package/lib/bridge/transaction.test.d.ts +2 -0
  83. package/lib/bridge/transaction.test.d.ts.map +1 -0
  84. package/lib/bridge/transaction.test.js +179 -0
  85. package/lib/bridge/transaction.test.js.map +1 -0
  86. package/lib/common-logic/utils.additional.test.d.ts +2 -0
  87. package/lib/common-logic/utils.additional.test.d.ts.map +1 -0
  88. package/lib/common-logic/utils.additional.test.js +58 -0
  89. package/lib/common-logic/utils.additional.test.js.map +1 -0
  90. package/lib/common-logic/utils.unit.test.js +6 -4
  91. package/lib/common-logic/utils.unit.test.js.map +1 -1
  92. package/lib/config.d.ts +10 -0
  93. package/lib/config.d.ts.map +1 -0
  94. package/lib/config.js +16 -0
  95. package/lib/config.js.map +1 -0
  96. package/lib/consts.d.ts +3 -0
  97. package/lib/consts.d.ts.map +1 -1
  98. package/lib/consts.js +5 -1
  99. package/lib/consts.js.map +1 -1
  100. package/lib/hw-signMessage.test.d.ts +2 -0
  101. package/lib/hw-signMessage.test.d.ts.map +1 -0
  102. package/lib/hw-signMessage.test.js +80 -0
  103. package/lib/hw-signMessage.test.js.map +1 -0
  104. package/lib/signer/getAddress.js +1 -1
  105. package/lib/signer/getAddress.js.map +1 -1
  106. package/lib/signer/getAddress.test.d.ts +2 -0
  107. package/lib/signer/getAddress.test.d.ts.map +1 -0
  108. package/lib/signer/getAddress.test.js +133 -0
  109. package/lib/signer/getAddress.test.js.map +1 -0
  110. package/lib/test/bot-specs.d.ts.map +1 -1
  111. package/lib/test/bot-specs.js +1 -0
  112. package/lib/test/bot-specs.js.map +1 -1
  113. package/lib/test/fixtures.d.ts +131 -0
  114. package/lib/test/fixtures.d.ts.map +1 -0
  115. package/lib/test/fixtures.js +395 -0
  116. package/lib/test/fixtures.js.map +1 -0
  117. package/lib/test/index.d.ts +2 -0
  118. package/lib/test/index.d.ts.map +1 -1
  119. package/lib/test/index.js +2 -0
  120. package/lib/test/index.js.map +1 -1
  121. package/lib/test/speculos-deviceActions.d.ts.map +1 -1
  122. package/lib/test/speculos-deviceActions.js +4 -3
  123. package/lib/test/speculos-deviceActions.js.map +1 -1
  124. package/lib-es/api/index.d.ts +8 -6
  125. package/lib-es/api/index.d.ts.map +1 -1
  126. package/lib-es/api/index.integ.test.js +13 -4
  127. package/lib-es/api/index.integ.test.js.map +1 -1
  128. package/lib-es/api/index.js +51 -90
  129. package/lib-es/api/index.js.map +1 -1
  130. package/lib-es/api/index.test.d.ts +2 -0
  131. package/lib-es/api/index.test.d.ts.map +1 -0
  132. package/lib-es/api/index.test.js +269 -0
  133. package/lib-es/api/index.test.js.map +1 -0
  134. package/lib-es/api/types.d.ts +2 -67
  135. package/lib-es/api/types.d.ts.map +1 -1
  136. package/lib-es/bridge/bridgeHelpers/accountShape.d.ts.map +1 -1
  137. package/lib-es/bridge/bridgeHelpers/accountShape.js +6 -8
  138. package/lib-es/bridge/bridgeHelpers/accountShape.js.map +1 -1
  139. package/lib-es/bridge/bridgeHelpers/accountShape.test.d.ts +2 -0
  140. package/lib-es/bridge/bridgeHelpers/accountShape.test.d.ts.map +1 -0
  141. package/lib-es/bridge/bridgeHelpers/accountShape.test.js +89 -0
  142. package/lib-es/bridge/bridgeHelpers/accountShape.test.js.map +1 -0
  143. package/lib-es/bridge/bridgeHelpers/addresses.d.ts +3 -9
  144. package/lib-es/bridge/bridgeHelpers/addresses.d.ts.map +1 -1
  145. package/lib-es/bridge/bridgeHelpers/addresses.js +5 -60
  146. package/lib-es/bridge/bridgeHelpers/addresses.js.map +1 -1
  147. package/lib-es/bridge/bridgeHelpers/txn.d.ts +2 -2
  148. package/lib-es/bridge/bridgeHelpers/txn.d.ts.map +1 -1
  149. package/lib-es/bridge/bridgeHelpers/txn.js +10 -12
  150. package/lib-es/bridge/bridgeHelpers/txn.js.map +1 -1
  151. package/lib-es/bridge/bridgeHelpers/txn.test.d.ts +2 -0
  152. package/lib-es/bridge/bridgeHelpers/txn.test.d.ts.map +1 -0
  153. package/lib-es/bridge/bridgeHelpers/txn.test.js +278 -0
  154. package/lib-es/bridge/bridgeHelpers/txn.test.js.map +1 -0
  155. package/lib-es/bridge/broadcast.d.ts.map +1 -1
  156. package/lib-es/bridge/broadcast.js +8 -7
  157. package/lib-es/bridge/broadcast.js.map +1 -1
  158. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  159. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  160. package/lib-es/bridge/broadcast.test.js +70 -0
  161. package/lib-es/bridge/broadcast.test.js.map +1 -0
  162. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
  163. package/lib-es/bridge/buildOptimisticOperation.js +2 -0
  164. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
  165. package/lib-es/bridge/buildOptimisticOperation.test.d.ts +2 -0
  166. package/lib-es/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  167. package/lib-es/bridge/buildOptimisticOperation.test.js +74 -0
  168. package/lib-es/bridge/buildOptimisticOperation.test.js.map +1 -0
  169. package/lib-es/bridge/createTransaction.test.d.ts +2 -0
  170. package/lib-es/bridge/createTransaction.test.d.ts.map +1 -0
  171. package/lib-es/bridge/createTransaction.test.js +36 -0
  172. package/lib-es/bridge/createTransaction.test.js.map +1 -0
  173. package/lib-es/bridge/deviceTransactionConfig.d.ts.map +1 -1
  174. package/lib-es/bridge/deviceTransactionConfig.js +13 -0
  175. package/lib-es/bridge/deviceTransactionConfig.js.map +1 -1
  176. package/lib-es/bridge/deviceTransactionConfig.test.d.ts +2 -0
  177. package/lib-es/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  178. package/lib-es/bridge/deviceTransactionConfig.test.js +143 -0
  179. package/lib-es/bridge/deviceTransactionConfig.test.js.map +1 -0
  180. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +2 -0
  181. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  182. package/lib-es/bridge/estimateMaxSpendable.test.js +131 -0
  183. package/lib-es/bridge/estimateMaxSpendable.test.js.map +1 -0
  184. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  185. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  186. package/lib-es/bridge/getTransactionStatus.test.js +212 -0
  187. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  188. package/lib-es/bridge/index.d.ts +2 -1
  189. package/lib-es/bridge/index.d.ts.map +1 -1
  190. package/lib-es/bridge/index.js +3 -1
  191. package/lib-es/bridge/index.js.map +1 -1
  192. package/lib-es/bridge/prepareTransaction.js +1 -1
  193. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  194. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  195. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  196. package/lib-es/bridge/prepareTransaction.test.js +157 -0
  197. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  198. package/lib-es/bridge/signOperation.d.ts.map +1 -1
  199. package/lib-es/bridge/signOperation.js +16 -14
  200. package/lib-es/bridge/signOperation.js.map +1 -1
  201. package/lib-es/bridge/transaction.test.d.ts +2 -0
  202. package/lib-es/bridge/transaction.test.d.ts.map +1 -0
  203. package/lib-es/bridge/transaction.test.js +154 -0
  204. package/lib-es/bridge/transaction.test.js.map +1 -0
  205. package/lib-es/common-logic/utils.additional.test.d.ts +2 -0
  206. package/lib-es/common-logic/utils.additional.test.d.ts.map +1 -0
  207. package/lib-es/common-logic/utils.additional.test.js +56 -0
  208. package/lib-es/common-logic/utils.additional.test.js.map +1 -0
  209. package/lib-es/common-logic/utils.unit.test.js +7 -5
  210. package/lib-es/common-logic/utils.unit.test.js.map +1 -1
  211. package/lib-es/config.d.ts +10 -0
  212. package/lib-es/config.d.ts.map +1 -0
  213. package/lib-es/config.js +11 -0
  214. package/lib-es/config.js.map +1 -0
  215. package/lib-es/consts.d.ts +3 -0
  216. package/lib-es/consts.d.ts.map +1 -1
  217. package/lib-es/consts.js +4 -0
  218. package/lib-es/consts.js.map +1 -1
  219. package/lib-es/hw-signMessage.test.d.ts +2 -0
  220. package/lib-es/hw-signMessage.test.d.ts.map +1 -0
  221. package/lib-es/hw-signMessage.test.js +78 -0
  222. package/lib-es/hw-signMessage.test.js.map +1 -0
  223. package/lib-es/signer/getAddress.js +2 -2
  224. package/lib-es/signer/getAddress.js.map +1 -1
  225. package/lib-es/signer/getAddress.test.d.ts +2 -0
  226. package/lib-es/signer/getAddress.test.d.ts.map +1 -0
  227. package/lib-es/signer/getAddress.test.js +105 -0
  228. package/lib-es/signer/getAddress.test.js.map +1 -0
  229. package/lib-es/test/bot-specs.d.ts.map +1 -1
  230. package/lib-es/test/bot-specs.js +1 -0
  231. package/lib-es/test/bot-specs.js.map +1 -1
  232. package/lib-es/test/fixtures.d.ts +131 -0
  233. package/lib-es/test/fixtures.d.ts.map +1 -0
  234. package/lib-es/test/fixtures.js +381 -0
  235. package/lib-es/test/fixtures.js.map +1 -0
  236. package/lib-es/test/index.d.ts +2 -0
  237. package/lib-es/test/index.d.ts.map +1 -1
  238. package/lib-es/test/index.js +2 -0
  239. package/lib-es/test/index.js.map +1 -1
  240. package/lib-es/test/speculos-deviceActions.d.ts.map +1 -1
  241. package/lib-es/test/speculos-deviceActions.js +5 -4
  242. package/lib-es/test/speculos-deviceActions.js.map +1 -1
  243. package/package.json +17 -12
  244. package/src/api/index.integ.test.ts +14 -4
  245. package/src/api/index.test.ts +386 -0
  246. package/src/api/index.ts +59 -117
  247. package/src/api/types.ts +2 -75
  248. package/src/bridge/bridgeHelpers/accountShape.test.ts +122 -0
  249. package/src/bridge/bridgeHelpers/accountShape.ts +7 -9
  250. package/src/bridge/bridgeHelpers/addresses.ts +6 -73
  251. package/src/bridge/bridgeHelpers/txn.test.ts +339 -0
  252. package/src/bridge/bridgeHelpers/txn.ts +18 -18
  253. package/src/bridge/broadcast.test.ts +89 -0
  254. package/src/bridge/broadcast.ts +9 -7
  255. package/src/bridge/buildOptimisticOperation.test.ts +89 -0
  256. package/src/bridge/buildOptimisticOperation.ts +2 -0
  257. package/src/bridge/createTransaction.test.ts +43 -0
  258. package/src/bridge/deviceTransactionConfig.test.ts +171 -0
  259. package/src/bridge/deviceTransactionConfig.ts +14 -0
  260. package/src/bridge/estimateMaxSpendable.test.ts +155 -0
  261. package/src/bridge/getTransactionStatus.test.ts +264 -0
  262. package/src/bridge/index.ts +8 -1
  263. package/src/bridge/prepareTransaction.test.ts +174 -0
  264. package/src/bridge/prepareTransaction.ts +1 -1
  265. package/src/bridge/signOperation.ts +16 -25
  266. package/src/bridge/transaction.test.ts +182 -0
  267. package/src/common-logic/utils.additional.test.ts +75 -0
  268. package/src/common-logic/utils.unit.test.ts +9 -7
  269. package/src/config.ts +22 -0
  270. package/src/consts.ts +5 -0
  271. package/src/hw-signMessage.test.ts +123 -0
  272. package/src/signer/getAddress.test.ts +134 -0
  273. package/src/signer/getAddress.ts +2 -2
  274. package/src/test/bot-specs.ts +1 -0
  275. package/src/test/fixtures.ts +448 -0
  276. package/src/test/index.ts +2 -0
  277. package/src/test/speculos-deviceActions.ts +6 -4
  278. package/tsconfig.json +1 -4
@@ -1,19 +1,26 @@
1
1
  import { log } from "@ledgerhq/logs";
2
2
  import network from "@ledgerhq/live-network";
3
- import { AccessRights, CLURef, DeployUtil } from "casper-js-sdk";
4
- import { getEnv } from "@ledgerhq/live-env";
3
+ import { AccountIdentifier, HttpHandler, PublicKey, RpcClient } from "casper-js-sdk";
4
+ import { getCoinConfig } from "../config";
5
+ import BigNumber from "bignumber.js";
6
+ import { NodeErrorCodeAccountNotFound, NodeErrorCodeQueryFailed } from "../consts";
5
7
  const getCasperIndexerURL = (path) => {
6
- const baseUrl = getEnv("API_CASPER_INDEXER_ENDPOINT");
8
+ const baseUrl = getCoinConfig().infra.API_CASPER_INDEXER;
7
9
  if (!baseUrl)
8
10
  throw new Error("API base URL not available");
9
- return `${baseUrl}${path}`;
11
+ return new URL(path, baseUrl).toString();
10
12
  };
11
13
  const getCasperNodeURL = () => {
12
- const baseUrl = getEnv("API_CASPER_NODE_ENDPOINT");
14
+ const baseUrl = getCoinConfig().infra.API_CASPER_NODE_ENDPOINT;
13
15
  if (!baseUrl)
14
16
  throw new Error("API base URL not available");
15
17
  return baseUrl;
16
18
  };
19
+ export const getCasperNodeRpcClient = () => {
20
+ const url = getCasperNodeURL();
21
+ const handler = new HttpHandler(url);
22
+ return new RpcClient(handler);
23
+ };
17
24
  const casperIndexerWrapper = async (path) => {
18
25
  const url = getCasperIndexerURL(path);
19
26
  try {
@@ -33,60 +40,17 @@ const casperIndexerWrapper = async (path) => {
33
40
  throw error;
34
41
  }
35
42
  };
36
- const casperNodeWrapper = async (payload) => {
37
- const url = getCasperNodeURL();
38
- try {
39
- const rawResponse = await network({
40
- method: "POST",
41
- url,
42
- data: payload,
43
- });
44
- log("http", `${url} - ${payload.method}`);
45
- const { data, status } = rawResponse;
46
- if (status >= 300) {
47
- log("http", `${url} - Status: ${status}`, data);
48
- throw new Error(`HTTP error: ${status}`);
49
- }
50
- if (data.error) {
51
- const errorMessage = data.error.message + ". " + data.error.data || "Unknown error";
52
- log("http", `${payload.method} - ${errorMessage}`);
53
- throw new Error(`Casper node error: ${errorMessage}`);
54
- }
55
- if (!data.result) {
56
- throw new Error(`Casper node returned no result for method: ${payload.method}`);
57
- }
58
- return data.result;
59
- }
60
- catch (error) {
61
- log("error", `Failed to execute ${payload.method}`, error);
62
- throw error instanceof Error
63
- ? error
64
- : new Error(`Unknown error during Casper node request: ${String(error)}`);
65
- }
66
- };
67
43
  export const fetchAccountStateInfo = async (publicKey) => {
44
+ const client = getCasperNodeRpcClient();
68
45
  try {
69
- const accountStateInfo = await casperNodeWrapper({
70
- jsonrpc: "2.0",
71
- method: "state_get_account_info",
72
- params: {
73
- public_key: publicKey,
74
- },
75
- id: 1,
76
- });
77
- if (!accountStateInfo) {
78
- return {
79
- purseUref: undefined,
80
- accountHash: undefined,
81
- };
82
- }
83
- const accountHash = accountStateInfo.account.account_hash.split("-")[2];
84
- const purseURefString = accountStateInfo.account.main_purse.split("-")[1];
85
- const uRef = new CLURef(Buffer.from(purseURefString, "hex"), AccessRights.READ_ADD_WRITE);
86
- return { purseUref: uRef, accountHash };
46
+ const { account } = await client.getAccountInfo(null, new AccountIdentifier(undefined, PublicKey.fromHex(publicKey)));
47
+ const accountHash = account.accountHash.toHex();
48
+ const purseURefString = account.mainPurse.toPrefixedString();
49
+ return { purseUref: purseURefString, accountHash };
87
50
  }
88
51
  catch (error) {
89
- if (error instanceof Error && error.message.includes("No such account")) {
52
+ if (error instanceof Error &&
53
+ [NodeErrorCodeAccountNotFound, NodeErrorCodeQueryFailed].includes(error.statusCode)) {
90
54
  return {
91
55
  purseUref: undefined,
92
56
  accountHash: undefined,
@@ -96,53 +60,50 @@ export const fetchAccountStateInfo = async (publicKey) => {
96
60
  }
97
61
  };
98
62
  export const fetchBalance = async (purseUref) => {
99
- const stateRootInfo = await casperNodeWrapper({
100
- jsonrpc: "2.0",
101
- method: "chain_get_state_root_hash",
102
- params: null,
103
- id: 1,
104
- });
105
- const accountBalance = await casperNodeWrapper({
106
- jsonrpc: "2.0",
107
- method: "state_get_balance",
108
- params: {
109
- purse_uref: purseUref.toFormattedStr(),
110
- state_root_hash: stateRootInfo.state_root_hash,
111
- },
112
- id: 1,
113
- });
114
- return accountBalance;
63
+ const client = getCasperNodeRpcClient();
64
+ try {
65
+ const { stateRootHash } = await client.getStateRootHashLatest();
66
+ const balance = await client.getBalanceByStateRootHash(purseUref, stateRootHash.toHex());
67
+ return new BigNumber(balance.balanceValue.toString());
68
+ }
69
+ catch (error) {
70
+ log("error", "Failed to fetch balance", error);
71
+ throw error;
72
+ }
115
73
  };
116
- export const fetchNetworkStatus = async () => {
117
- const payload = {
118
- id: 1,
119
- jsonrpc: "2.0",
120
- method: "info_get_status",
121
- params: null,
122
- };
123
- const data = await casperNodeWrapper(payload);
124
- return data;
74
+ export const fetchBlockHeight = async () => {
75
+ const client = getCasperNodeRpcClient();
76
+ try {
77
+ const latestBlock = await client.getLatestBlock();
78
+ return latestBlock.block.height;
79
+ }
80
+ catch (error) {
81
+ log("error", "Failed to fetch block height", error);
82
+ throw error;
83
+ }
125
84
  };
126
85
  export const fetchTxs = async (addr) => {
127
86
  let page = 1;
128
87
  let res = [];
129
88
  const limit = 100;
130
- let response = await casperIndexerWrapper(`/accounts/${addr}/ledgerlive-deploys?limit=${limit}&page=${page}`);
89
+ let response = await casperIndexerWrapper(`accounts/${addr}/ledgerlive-deploys?limit=${limit}&page=${page}`);
131
90
  res = res.concat(response.data);
132
91
  while (response.pageCount > page) {
133
92
  page++;
134
- response = await casperIndexerWrapper(`/accounts/${addr}/ledgerlive-deploys?limit=${limit}&page=${page}`);
93
+ response = await casperIndexerWrapper(`accounts/${addr}/ledgerlive-deploys?limit=${limit}&page=${page}`);
135
94
  res = res.concat(response.data);
136
95
  }
137
96
  return res;
138
97
  };
139
- export const broadcastTx = async (deploy) => {
140
- const response = await casperNodeWrapper({
141
- id: 1,
142
- jsonrpc: "2.0",
143
- method: "account_put_deploy",
144
- params: DeployUtil.deployToJson(deploy),
145
- });
146
- return response;
98
+ export const broadcastTx = async (transaction) => {
99
+ const client = getCasperNodeRpcClient();
100
+ try {
101
+ const response = await client.putTransaction(transaction);
102
+ return response.transactionHash.toHex();
103
+ }
104
+ catch (error) {
105
+ log("error", "Failed to broadcast transaction", error);
106
+ throw error;
107
+ }
147
108
  };
148
109
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,269 @@
1
+ import { log } from "@ledgerhq/logs";
2
+ import BigNumber from "bignumber.js";
3
+ import network from "@ledgerhq/live-network";
4
+ import { AccountIdentifier, HttpHandler, PublicKey, RpcClient } from "casper-js-sdk";
5
+ import { fetchAccountStateInfo, fetchBalance, fetchBlockHeight, fetchTxs, broadcastTx, getCasperNodeRpcClient, } from ".";
6
+ import { getCoinConfig } from "../config";
7
+ import { TEST_ADDRESSES } from "../test/fixtures";
8
+ import { NodeErrorCodeAccountNotFound } from "../consts";
9
+ // Constants
10
+ const MOCK_NODE_URL = "https://mock.casper.node";
11
+ const MOCK_INDEXER_URL = "https://mock.casper.indexer";
12
+ const MOCK_PUBLIC_KEY = TEST_ADDRESSES.SECP256K1;
13
+ const MOCK_PURSE_UREF = "uref-1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef-007";
14
+ const MOCK_ACCOUNT_HASH = "account-hash-1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef";
15
+ const DEFAULT_LIMIT = 100;
16
+ // Mock dependencies
17
+ jest.mock("@ledgerhq/logs", () => ({
18
+ log: jest.fn(),
19
+ }));
20
+ jest.mock("@ledgerhq/live-network", () => ({
21
+ __esModule: true,
22
+ default: jest.fn(),
23
+ }));
24
+ jest.mock("../config", () => ({
25
+ getCoinConfig: jest.fn(),
26
+ }));
27
+ // Helper functions for creating mocks
28
+ const createMockRpcClient = (methodOverrides) => {
29
+ const defaultMethods = {
30
+ getAccountInfo: jest.fn(),
31
+ getStateRootHashLatest: jest.fn(),
32
+ getBalanceByStateRootHash: jest.fn(),
33
+ getLatestBlock: jest.fn(),
34
+ putTransaction: jest.fn(),
35
+ };
36
+ // Create a combined mock with defaultMethods overridden by methodOverrides
37
+ const combinedMock = { ...defaultMethods, ...methodOverrides };
38
+ // Mock the RpcClient implementation to return our mock methods
39
+ jest.mocked(RpcClient).mockImplementation(() => combinedMock);
40
+ return combinedMock;
41
+ };
42
+ const createNetworkMock = (responseData, pageCount = 1, itemCount = responseData.length) => ({
43
+ data: {
44
+ data: responseData,
45
+ pageCount,
46
+ itemCount,
47
+ pages: [],
48
+ },
49
+ status: 200,
50
+ });
51
+ // Mock casper-js-sdk
52
+ jest.mock("casper-js-sdk", () => {
53
+ const originalModule = jest.requireActual("casper-js-sdk");
54
+ return {
55
+ ...originalModule,
56
+ RpcClient: jest.fn(),
57
+ HttpHandler: jest.fn(),
58
+ AccountIdentifier: jest.fn(),
59
+ PublicKey: {
60
+ fromHex: jest.fn(),
61
+ },
62
+ };
63
+ });
64
+ describe("Casper API Unit Tests", () => {
65
+ beforeEach(() => {
66
+ jest.clearAllMocks();
67
+ // Setup config mock
68
+ jest.mocked(getCoinConfig).mockReturnValue({
69
+ infra: {
70
+ API_CASPER_NODE_ENDPOINT: MOCK_NODE_URL,
71
+ API_CASPER_INDEXER: MOCK_INDEXER_URL,
72
+ },
73
+ });
74
+ });
75
+ describe("getCasperNodeRpcClient", () => {
76
+ it("should create RPC client with correct URL", () => {
77
+ getCasperNodeRpcClient();
78
+ expect(HttpHandler).toHaveBeenCalledWith(MOCK_NODE_URL);
79
+ expect(RpcClient).toHaveBeenCalled();
80
+ });
81
+ it("should throw error if API base URL is not available", () => {
82
+ jest.mocked(getCoinConfig).mockReturnValueOnce({
83
+ infra: {},
84
+ });
85
+ expect(() => getCasperNodeRpcClient()).toThrow("API base URL not available");
86
+ });
87
+ });
88
+ describe("fetchAccountStateInfo", () => {
89
+ it("should fetch account state info successfully", async () => {
90
+ // Mock PublicKey
91
+ const mockPublicKeyInstance = { fromHex: () => ({ fromHex: true }) };
92
+ jest.mocked(PublicKey.fromHex).mockReturnValue(mockPublicKeyInstance);
93
+ // Mock AccountIdentifier
94
+ const mockAccountIdentifier = {};
95
+ jest
96
+ .mocked(AccountIdentifier)
97
+ .mockReturnValue(mockAccountIdentifier);
98
+ // Mock RpcClient.getAccountInfo
99
+ const mockGetAccountInfo = jest.fn().mockResolvedValue({
100
+ account: {
101
+ accountHash: { toHex: () => MOCK_ACCOUNT_HASH },
102
+ mainPurse: { toPrefixedString: () => MOCK_PURSE_UREF },
103
+ },
104
+ });
105
+ createMockRpcClient({
106
+ getAccountInfo: mockGetAccountInfo,
107
+ });
108
+ const result = await fetchAccountStateInfo(MOCK_PUBLIC_KEY);
109
+ expect(PublicKey.fromHex).toHaveBeenCalledWith(MOCK_PUBLIC_KEY);
110
+ expect(AccountIdentifier).toHaveBeenCalledWith(undefined, mockPublicKeyInstance);
111
+ expect(mockGetAccountInfo).toHaveBeenCalledWith(null, mockAccountIdentifier);
112
+ expect(result).toEqual({
113
+ purseUref: MOCK_PURSE_UREF,
114
+ accountHash: MOCK_ACCOUNT_HASH,
115
+ });
116
+ });
117
+ it("should return undefined values when account not found", async () => {
118
+ // Mock error with account not found status code
119
+ const mockError = new Error("Account not found");
120
+ mockError.statusCode = NodeErrorCodeAccountNotFound;
121
+ createMockRpcClient({
122
+ getAccountInfo: jest.fn().mockRejectedValue(mockError),
123
+ });
124
+ const result = await fetchAccountStateInfo(MOCK_PUBLIC_KEY);
125
+ expect(result).toEqual({
126
+ purseUref: undefined,
127
+ accountHash: undefined,
128
+ });
129
+ });
130
+ it("should throw error for other error cases", async () => {
131
+ const mockError = new Error("General error");
132
+ createMockRpcClient({
133
+ getAccountInfo: jest.fn().mockRejectedValue(mockError),
134
+ });
135
+ await expect(fetchAccountStateInfo(MOCK_PUBLIC_KEY)).rejects.toThrow("General error");
136
+ });
137
+ });
138
+ describe("fetchBalance", () => {
139
+ it("should fetch balance successfully", async () => {
140
+ const mockBalanceValue = "10000000000";
141
+ const mockRootHash = "mocked-root-hash";
142
+ // Create mock methods with implementations that return expected values
143
+ const mockGetStateRootHashLatest = jest.fn().mockResolvedValue({
144
+ stateRootHash: { toHex: () => mockRootHash },
145
+ });
146
+ const mockGetBalanceByStateRootHash = jest.fn().mockResolvedValue({
147
+ balanceValue: mockBalanceValue,
148
+ });
149
+ // Create the mock RPC client with our implementations
150
+ const mockMethods = createMockRpcClient({
151
+ getStateRootHashLatest: mockGetStateRootHashLatest,
152
+ getBalanceByStateRootHash: mockGetBalanceByStateRootHash,
153
+ });
154
+ const result = await fetchBalance(MOCK_PURSE_UREF);
155
+ expect(mockMethods.getStateRootHashLatest).toHaveBeenCalled();
156
+ expect(mockMethods.getBalanceByStateRootHash).toHaveBeenCalledWith(MOCK_PURSE_UREF, mockRootHash);
157
+ expect(result).toEqual(new BigNumber(mockBalanceValue));
158
+ });
159
+ it("should throw error when balance fetch fails", async () => {
160
+ const mockError = new Error("Failed to fetch balance");
161
+ createMockRpcClient({
162
+ getStateRootHashLatest: jest.fn().mockRejectedValue(mockError),
163
+ });
164
+ await expect(fetchBalance(MOCK_PURSE_UREF)).rejects.toThrow("Failed to fetch balance");
165
+ expect(log).toHaveBeenCalledWith("error", "Failed to fetch balance", mockError);
166
+ });
167
+ });
168
+ describe("fetchBlockHeight", () => {
169
+ it("should fetch block height successfully", async () => {
170
+ const mockHeight = 12345;
171
+ createMockRpcClient({
172
+ getLatestBlock: jest.fn().mockResolvedValue({
173
+ block: { height: mockHeight },
174
+ }),
175
+ });
176
+ const result = await fetchBlockHeight();
177
+ expect(result).toBe(mockHeight);
178
+ });
179
+ it("should throw error when block height fetch fails", async () => {
180
+ const mockError = new Error("Failed to fetch block height");
181
+ createMockRpcClient({
182
+ getLatestBlock: jest.fn().mockRejectedValue(mockError),
183
+ });
184
+ await expect(fetchBlockHeight()).rejects.toThrow("Failed to fetch block height");
185
+ expect(log).toHaveBeenCalledWith("error", "Failed to fetch block height", mockError);
186
+ });
187
+ });
188
+ describe("fetchTxs", () => {
189
+ const createMockTxData = (hash) => ({
190
+ deploy_hash: hash,
191
+ block_hash: "block-hash-1",
192
+ caller_public_key: MOCK_PUBLIC_KEY,
193
+ execution_type_id: 1,
194
+ cost: "10000",
195
+ payment_amount: "100000000",
196
+ timestamp: "2023-01-01T12:00:00Z",
197
+ status: "success",
198
+ args: {
199
+ id: {
200
+ parsed: 12345,
201
+ cl_type: {
202
+ Option: "U64",
203
+ },
204
+ },
205
+ amount: {
206
+ parsed: "500000000",
207
+ cl_type: "U512",
208
+ },
209
+ target: {
210
+ parsed: TEST_ADDRESSES.RECIPIENT_SECP256K1,
211
+ cl_type: "PublicKey",
212
+ },
213
+ },
214
+ amount: "500000000",
215
+ });
216
+ const mockTxData = [createMockTxData("deploy-hash-1")];
217
+ const getExpectedNetworkCall = (page) => ({
218
+ method: "GET",
219
+ url: `${MOCK_INDEXER_URL}/accounts/${MOCK_PUBLIC_KEY}/ledgerlive-deploys?limit=${DEFAULT_LIMIT}&page=${page}`,
220
+ });
221
+ it("should fetch transactions successfully (single page)", async () => {
222
+ jest.mocked(network).mockResolvedValueOnce(createNetworkMock(mockTxData));
223
+ const result = await fetchTxs(MOCK_PUBLIC_KEY);
224
+ expect(network).toHaveBeenCalledWith(getExpectedNetworkCall(1));
225
+ expect(result).toEqual(mockTxData);
226
+ });
227
+ it("should fetch transactions successfully (multiple pages)", async () => {
228
+ // Mock first page
229
+ jest.mocked(network).mockResolvedValueOnce(createNetworkMock([mockTxData[0]], 2, 2));
230
+ // Mock second page
231
+ const secondPageTx = createMockTxData("deploy-hash-2");
232
+ jest.mocked(network).mockResolvedValueOnce(createNetworkMock([secondPageTx], 2, 2));
233
+ const result = await fetchTxs(MOCK_PUBLIC_KEY);
234
+ expect(network).toHaveBeenCalledTimes(2);
235
+ expect(network).toHaveBeenNthCalledWith(1, getExpectedNetworkCall(1));
236
+ expect(network).toHaveBeenNthCalledWith(2, getExpectedNetworkCall(2));
237
+ expect(result).toEqual([mockTxData[0], secondPageTx]);
238
+ });
239
+ it("should throw error when transactions fetch fails", async () => {
240
+ const mockError = new Error("Failed to fetch transactions");
241
+ jest.mocked(network).mockRejectedValueOnce(mockError);
242
+ await expect(fetchTxs(MOCK_PUBLIC_KEY)).rejects.toThrow("Failed to fetch transactions");
243
+ expect(log).toHaveBeenCalledWith("error", "Casper indexer error: ", mockError);
244
+ });
245
+ });
246
+ describe("broadcastTx", () => {
247
+ it("should broadcast transaction successfully", async () => {
248
+ const mockTransaction = {};
249
+ const mockTxHash = "0123456789abcdef";
250
+ createMockRpcClient({
251
+ putTransaction: jest.fn().mockResolvedValue({
252
+ transactionHash: { toHex: () => mockTxHash },
253
+ }),
254
+ });
255
+ const result = await broadcastTx(mockTransaction);
256
+ expect(result).toBe(mockTxHash);
257
+ });
258
+ it("should throw error when broadcast fails", async () => {
259
+ const mockTransaction = {};
260
+ const mockError = new Error("Failed to broadcast transaction");
261
+ createMockRpcClient({
262
+ putTransaction: jest.fn().mockRejectedValue(mockError),
263
+ });
264
+ await expect(broadcastTx(mockTransaction)).rejects.toThrow("Failed to broadcast transaction");
265
+ expect(log).toHaveBeenCalledWith("error", "Failed to broadcast transaction", mockError);
266
+ });
267
+ });
268
+ });
269
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,3 @@
1
- export interface NodeRPCPayload {
2
- jsonrpc: "2.0";
3
- method: "info_get_status" | "chain_get_state_root_hash" | "state_get_account_info" | "state_get_balance" | "account_put_deploy";
4
- params: any;
5
- id: 1;
6
- }
7
1
  export interface IndexerResponseRoot<T> {
8
2
  data: T[];
9
3
  pageCount: number;
@@ -45,66 +39,7 @@ export interface ITxnHistoryData {
45
39
  };
46
40
  amount: string;
47
41
  }
48
- export interface NodeResponseRoot<T> {
49
- jsonrpc: string;
50
- id: string;
51
- result?: T;
52
- error?: {
53
- code: number;
54
- message: string;
55
- data: string;
56
- };
57
- }
58
- export interface NNetworkStatusResponse {
59
- api_version: string;
60
- chainspec_name: string;
61
- starting_state_root_hash: string;
62
- peers: {
63
- node_id: string;
64
- address: string;
65
- }[];
66
- last_added_block_info: {
67
- hash: string;
68
- timestamp: string;
69
- era_id: number;
70
- height: number;
71
- state_root_hash: string;
72
- creator: string;
73
- };
74
- our_public_signing_key: string;
75
- round_length?: any;
76
- next_upgrade?: any;
77
- build_version: string;
78
- uptime: string;
79
- }
80
- export interface NStateRootHashResponse {
81
- api_version: string;
82
- state_root_hash: string;
83
- }
84
- export interface NAccountBalance {
85
- api_version: string;
86
- balance_value: string;
87
- merkle_proof: string;
88
- }
89
- export interface NAccountInfo {
90
- api_version: string;
91
- account: {
92
- account_hash: string;
93
- named_keys: any[];
94
- main_purse: string;
95
- associated_keys: {
96
- account_hash: string;
97
- weight: number;
98
- }[];
99
- action_thresholds: {
100
- deployment: number;
101
- key_management: number;
102
- };
103
- };
104
- merkle_proof: string;
105
- }
106
- export interface NDeployMessagePutResponse {
107
- api_version: string;
108
- deploy_hash: string;
42
+ export interface RpcError extends Error {
43
+ statusCode: number;
109
44
  }
110
45
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,EAAE,EAAE;YACF,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;QACF,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EACH;gBACE,SAAS,EAAE,MAAM,CAAC;aACnB,GACD,MAAM,CAAC;SACZ,CAAC;KACH,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"accountShape.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/accountShape.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAK5E,eAAO,MAAM,eAAe,EAAE,eA6B7B,CAAC"}
1
+ {"version":3,"file":"accountShape.d.ts","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/accountShape.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAK5E,eAAO,MAAM,eAAe,EAAE,eA2B7B,CAAC"}
@@ -2,7 +2,7 @@ import flatMap from "lodash/flatMap";
2
2
  import { log } from "@ledgerhq/logs";
3
3
  import BigNumber from "bignumber.js";
4
4
  import { encodeAccountId } from "@ledgerhq/coin-framework/account/index";
5
- import { fetchBalance, fetchNetworkStatus, fetchTxs, fetchAccountStateInfo } from "../../api/index";
5
+ import { fetchBalance, fetchBlockHeight, fetchAccountStateInfo, fetchTxs } from "../../api/index";
6
6
  import { mapTxToOps } from "./txn";
7
7
  export const getAccountShape = async (info) => {
8
8
  const { address, currency, derivationMode } = info;
@@ -15,17 +15,15 @@ export const getAccountShape = async (info) => {
15
15
  });
16
16
  log("debug", `Generation account shape for ${address}`);
17
17
  const { purseUref, accountHash } = await fetchAccountStateInfo(address);
18
- const blockHeight = await fetchNetworkStatus();
19
- const balance = purseUref
20
- ? await fetchBalance(purseUref)
21
- : { balance_value: "0", api_version: "", merkle_proof: "" };
18
+ const blockHeight = await fetchBlockHeight();
19
+ const balance = purseUref ? await fetchBalance(purseUref) : new BigNumber(0);
22
20
  const txs = purseUref ? await fetchTxs(address) : [];
23
21
  return {
24
22
  id: accountId,
25
- balance: new BigNumber(balance.balance_value),
26
- spendableBalance: new BigNumber(balance.balance_value),
23
+ balance,
24
+ spendableBalance: balance,
27
25
  operations: flatMap(txs, mapTxToOps(accountId, accountHash ?? "")),
28
- blockHeight: blockHeight.last_added_block_info.height,
26
+ blockHeight,
29
27
  };
30
28
  };
31
29
  //# sourceMappingURL=accountShape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accountShape.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/accountShape.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,MAAM,CAAC,MAAM,eAAe,GAAoB,KAAK,EAAC,IAAI,EAAC,EAAE;IAC3D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEnD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,EAAE,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAExD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAExE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE/C,MAAM,OAAO,GAAoB,SAAS;QACxC,CAAC,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC;QAC/B,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC9D,MAAM,GAAG,GAAsB,SAAS,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExE,OAAO;QACL,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,gBAAgB,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;QACtD,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;QAClE,WAAW,EAAE,WAAW,CAAC,qBAAqB,CAAC,MAAM;KACtD,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"accountShape.js","sourceRoot":"","sources":["../../../src/bridge/bridgeHelpers/accountShape.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,MAAM,CAAC,MAAM,eAAe,GAAoB,KAAK,EAAC,IAAI,EAAC,EAAE;IAC3D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEnD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,EAAE,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAExD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAExE,MAAM,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE7C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAsB,SAAS,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExE,OAAO;QACL,EAAE,EAAE,SAAS;QACb,OAAO;QACP,gBAAgB,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;QAClE,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC"}