@decibeltrade/sdk 0.1.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 (294) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-lint$colon$check.log +5 -0
  3. package/.turbo/turbo-lint.log +5 -0
  4. package/decibel_transactions.md +1049 -0
  5. package/dist/abi/abi-manager.d.ts +13 -0
  6. package/dist/abi/abi-manager.d.ts.map +1 -0
  7. package/dist/abi/abi-manager.js +21 -0
  8. package/dist/abi/abis.json +1322 -0
  9. package/dist/abi/bytecode-manager.d.ts +57 -0
  10. package/dist/abi/bytecode-manager.d.ts.map +1 -0
  11. package/dist/abi/bytecode-manager.js +62 -0
  12. package/dist/abi/bytecode.json +24 -0
  13. package/dist/abi/fetch-abis.d.ts +7 -0
  14. package/dist/abi/fetch-abis.d.ts.map +1 -0
  15. package/dist/abi/fetch-abis.js +132 -0
  16. package/dist/abi/fetch-bytecode.d.ts +24 -0
  17. package/dist/abi/fetch-bytecode.d.ts.map +1 -0
  18. package/dist/abi/fetch-bytecode.js +123 -0
  19. package/dist/abi/generate-abis.d.ts +6 -0
  20. package/dist/abi/generate-abis.d.ts.map +1 -0
  21. package/dist/abi/generate-abis.js +170 -0
  22. package/dist/abi/json/netna.json +1323 -0
  23. package/dist/abi/json/testnet.json +1315 -0
  24. package/dist/abi/types.d.ts +22 -0
  25. package/dist/abi/types.d.ts.map +1 -0
  26. package/dist/abi/types.js +2 -0
  27. package/dist/admin.d.ts +29 -0
  28. package/dist/admin.d.ts.map +1 -0
  29. package/dist/admin.js +203 -0
  30. package/dist/base.d.ts +42 -0
  31. package/dist/base.d.ts.map +1 -0
  32. package/dist/base.js +176 -0
  33. package/dist/constants.d.ts +41 -0
  34. package/dist/constants.d.ts.map +1 -0
  35. package/dist/constants.js +78 -0
  36. package/dist/fee-pay.d.ts +11 -0
  37. package/dist/fee-pay.d.ts.map +1 -0
  38. package/dist/fee-pay.js +30 -0
  39. package/dist/gas/gas-price-manager.d.ts +35 -0
  40. package/dist/gas/gas-price-manager.d.ts.map +1 -0
  41. package/dist/gas/gas-price-manager.js +93 -0
  42. package/dist/gas-price-manager.d.ts +31 -0
  43. package/dist/gas-price-manager.d.ts.map +1 -0
  44. package/dist/gas-price-manager.js +84 -0
  45. package/dist/index.d.ts +11 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +26 -0
  48. package/dist/order-event.types.d.ts +55 -0
  49. package/dist/order-event.types.d.ts.map +1 -0
  50. package/dist/order-event.types.js +3 -0
  51. package/dist/order-status.d.ts +43 -0
  52. package/dist/order-status.d.ts.map +1 -0
  53. package/dist/order-status.js +86 -0
  54. package/dist/read/account-overview/account-overview.reader.d.ts +37 -0
  55. package/dist/read/account-overview/account-overview.reader.d.ts.map +1 -0
  56. package/dist/read/account-overview/account-overview.reader.js +35 -0
  57. package/dist/read/account-overview/account-overview.types.d.ts +52 -0
  58. package/dist/read/account-overview/account-overview.types.d.ts.map +1 -0
  59. package/dist/read/account-overview/account-overview.types.js +36 -0
  60. package/dist/read/api-wallets/api-wallets.reader.d.ts +17 -0
  61. package/dist/read/api-wallets/api-wallets.reader.d.ts.map +1 -0
  62. package/dist/read/api-wallets/api-wallets.reader.js +27 -0
  63. package/dist/read/api-wallets/api-wallets.types.d.ts +17 -0
  64. package/dist/read/api-wallets/api-wallets.types.d.ts.map +1 -0
  65. package/dist/read/api-wallets/api-wallets.types.js +13 -0
  66. package/dist/read/base-reader.d.ts +22 -0
  67. package/dist/read/base-reader.d.ts.map +1 -0
  68. package/dist/read/base-reader.js +29 -0
  69. package/dist/read/candlesticks/candlesticks.reader.d.ts +31 -0
  70. package/dist/read/candlesticks/candlesticks.reader.d.ts.map +1 -0
  71. package/dist/read/candlesticks/candlesticks.reader.js +43 -0
  72. package/dist/read/candlesticks/candlesticks.types.d.ts +45 -0
  73. package/dist/read/candlesticks/candlesticks.types.d.ts.map +1 -0
  74. package/dist/read/candlesticks/candlesticks.types.js +36 -0
  75. package/dist/read/delegations/delegations.reader.d.ts +15 -0
  76. package/dist/read/delegations/delegations.reader.d.ts.map +1 -0
  77. package/dist/read/delegations/delegations.reader.js +23 -0
  78. package/dist/read/delegations/delegations.types.d.ts +17 -0
  79. package/dist/read/delegations/delegations.types.d.ts.map +1 -0
  80. package/dist/read/delegations/delegations.types.js +13 -0
  81. package/dist/read/index.d.ts +105 -0
  82. package/dist/read/index.d.ts.map +1 -0
  83. package/dist/read/index.js +244 -0
  84. package/dist/read/leaderboard/leaderboard.reader.d.ts +21 -0
  85. package/dist/read/leaderboard/leaderboard.reader.d.ts.map +1 -0
  86. package/dist/read/leaderboard/leaderboard.reader.js +22 -0
  87. package/dist/read/leaderboard/leaderboard.types.d.ts +27 -0
  88. package/dist/read/leaderboard/leaderboard.types.d.ts.map +1 -0
  89. package/dist/read/leaderboard/leaderboard.types.js +14 -0
  90. package/dist/read/market-contexts/market-contexts.reader.d.ts +22 -0
  91. package/dist/read/market-contexts/market-contexts.reader.d.ts.map +1 -0
  92. package/dist/read/market-contexts/market-contexts.reader.js +27 -0
  93. package/dist/read/market-contexts/market-contexts.types.d.ts +26 -0
  94. package/dist/read/market-contexts/market-contexts.types.d.ts.map +1 -0
  95. package/dist/read/market-contexts/market-contexts.types.js +19 -0
  96. package/dist/read/market-depth/market-depth.reader.d.ts +30 -0
  97. package/dist/read/market-depth/market-depth.reader.d.ts.map +1 -0
  98. package/dist/read/market-depth/market-depth.reader.js +46 -0
  99. package/dist/read/market-depth/market-depth.types.d.ts +20 -0
  100. package/dist/read/market-depth/market-depth.types.d.ts.map +1 -0
  101. package/dist/read/market-depth/market-depth.types.js +16 -0
  102. package/dist/read/market-prices/market-prices.reader.d.ts +44 -0
  103. package/dist/read/market-prices/market-prices.reader.d.ts.map +1 -0
  104. package/dist/read/market-prices/market-prices.reader.js +51 -0
  105. package/dist/read/market-prices/market-prices.types.d.ts +48 -0
  106. package/dist/read/market-prices/market-prices.types.d.ts.map +1 -0
  107. package/dist/read/market-prices/market-prices.types.js +26 -0
  108. package/dist/read/market-trades/market-trades.reader.d.ts +33 -0
  109. package/dist/read/market-trades/market-trades.reader.d.ts.map +1 -0
  110. package/dist/read/market-trades/market-trades.reader.js +39 -0
  111. package/dist/read/market-trades/market-trades.types.d.ts +52 -0
  112. package/dist/read/market-trades/market-trades.types.d.ts.map +1 -0
  113. package/dist/read/market-trades/market-trades.types.js +23 -0
  114. package/dist/read/markets/markets.reader.d.ts +38 -0
  115. package/dist/read/markets/markets.reader.d.ts.map +1 -0
  116. package/dist/read/markets/markets.reader.js +80 -0
  117. package/dist/read/markets/markets.types.d.ts +82 -0
  118. package/dist/read/markets/markets.types.d.ts.map +1 -0
  119. package/dist/read/markets/markets.types.js +46 -0
  120. package/dist/read/pagination.types.d.ts +14 -0
  121. package/dist/read/pagination.types.d.ts.map +1 -0
  122. package/dist/read/pagination.types.js +12 -0
  123. package/dist/read/portfolio-chart/portfolio-chart.reader.d.ts +14 -0
  124. package/dist/read/portfolio-chart/portfolio-chart.reader.d.ts.map +1 -0
  125. package/dist/read/portfolio-chart/portfolio-chart.reader.js +21 -0
  126. package/dist/read/portfolio-chart/portfolio-chart.types.d.ts +14 -0
  127. package/dist/read/portfolio-chart/portfolio-chart.types.d.ts.map +1 -0
  128. package/dist/read/portfolio-chart/portfolio-chart.types.js +12 -0
  129. package/dist/read/public-vaults/public-vaults.reader.d.ts +38 -0
  130. package/dist/read/public-vaults/public-vaults.reader.d.ts.map +1 -0
  131. package/dist/read/public-vaults/public-vaults.reader.js +31 -0
  132. package/dist/read/public-vaults/public-vaults.types.d.ts +62 -0
  133. package/dist/read/public-vaults/public-vaults.types.d.ts.map +1 -0
  134. package/dist/read/public-vaults/public-vaults.types.js +33 -0
  135. package/dist/read/types.d.ts +178 -0
  136. package/dist/read/types.d.ts.map +1 -0
  137. package/dist/read/types.js +87 -0
  138. package/dist/read/user-active-twaps/user-active-twaps.reader.d.ts +31 -0
  139. package/dist/read/user-active-twaps/user-active-twaps.reader.d.ts.map +1 -0
  140. package/dist/read/user-active-twaps/user-active-twaps.reader.js +31 -0
  141. package/dist/read/user-active-twaps/user-active-twaps.types.d.ts +49 -0
  142. package/dist/read/user-active-twaps/user-active-twaps.types.d.ts.map +1 -0
  143. package/dist/read/user-active-twaps/user-active-twaps.types.js +25 -0
  144. package/dist/read/user-bulk-orders/user-bulk-orders.reader.d.ts +31 -0
  145. package/dist/read/user-bulk-orders/user-bulk-orders.reader.d.ts.map +1 -0
  146. package/dist/read/user-bulk-orders/user-bulk-orders.reader.js +32 -0
  147. package/dist/read/user-bulk-orders/user-bulk-orders.types.d.ts +46 -0
  148. package/dist/read/user-bulk-orders/user-bulk-orders.types.d.ts.map +1 -0
  149. package/dist/read/user-bulk-orders/user-bulk-orders.types.js +24 -0
  150. package/dist/read/user-funding-history/user-funding-history.reader.d.ts +28 -0
  151. package/dist/read/user-funding-history/user-funding-history.reader.d.ts.map +1 -0
  152. package/dist/read/user-funding-history/user-funding-history.reader.js +32 -0
  153. package/dist/read/user-funding-history/user-funding-history.types.d.ts +37 -0
  154. package/dist/read/user-funding-history/user-funding-history.types.d.ts.map +1 -0
  155. package/dist/read/user-funding-history/user-funding-history.types.js +21 -0
  156. package/dist/read/user-notifications/user-notifications.reader.d.ts +13 -0
  157. package/dist/read/user-notifications/user-notifications.reader.d.ts.map +1 -0
  158. package/dist/read/user-notifications/user-notifications.reader.js +19 -0
  159. package/dist/read/user-notifications/user-notifications.types.d.ts +49 -0
  160. package/dist/read/user-notifications/user-notifications.types.d.ts.map +1 -0
  161. package/dist/read/user-notifications/user-notifications.types.js +18 -0
  162. package/dist/read/user-open-orders/user-open-orders.reader.d.ts +40 -0
  163. package/dist/read/user-open-orders/user-open-orders.reader.d.ts.map +1 -0
  164. package/dist/read/user-open-orders/user-open-orders.reader.js +31 -0
  165. package/dist/read/user-open-orders/user-open-orders.types.d.ts +76 -0
  166. package/dist/read/user-open-orders/user-open-orders.types.d.ts.map +1 -0
  167. package/dist/read/user-open-orders/user-open-orders.types.js +34 -0
  168. package/dist/read/user-order-history/user-order-history.reader.d.ts +40 -0
  169. package/dist/read/user-order-history/user-order-history.reader.d.ts.map +1 -0
  170. package/dist/read/user-order-history/user-order-history.reader.js +28 -0
  171. package/dist/read/user-order-history/user-order-history.types.d.ts +85 -0
  172. package/dist/read/user-order-history/user-order-history.types.d.ts.map +1 -0
  173. package/dist/read/user-order-history/user-order-history.types.js +37 -0
  174. package/dist/read/user-positions/user-positions.reader.d.ts +37 -0
  175. package/dist/read/user-positions/user-positions.reader.d.ts.map +1 -0
  176. package/dist/read/user-positions/user-positions.reader.js +41 -0
  177. package/dist/read/user-positions/user-positions.types.d.ts +2590 -0
  178. package/dist/read/user-positions/user-positions.types.d.ts.map +1 -0
  179. package/dist/read/user-positions/user-positions.types.js +31 -0
  180. package/dist/read/user-subaccounts/user-subaccounts.reader.d.ts +18 -0
  181. package/dist/read/user-subaccounts/user-subaccounts.reader.d.ts.map +1 -0
  182. package/dist/read/user-subaccounts/user-subaccounts.reader.js +28 -0
  183. package/dist/read/user-subaccounts/user-subaccounts.types.d.ts +21 -0
  184. package/dist/read/user-subaccounts/user-subaccounts.types.d.ts.map +1 -0
  185. package/dist/read/user-subaccounts/user-subaccounts.types.js +15 -0
  186. package/dist/read/user-trade-history/user-trade-history.reader.d.ts +33 -0
  187. package/dist/read/user-trade-history/user-trade-history.reader.d.ts.map +1 -0
  188. package/dist/read/user-trade-history/user-trade-history.reader.js +32 -0
  189. package/dist/read/user-trade-history/user-trade-history.types.d.ts +52 -0
  190. package/dist/read/user-trade-history/user-trade-history.types.d.ts.map +1 -0
  191. package/dist/read/user-trade-history/user-trade-history.types.js +26 -0
  192. package/dist/read/user-vaults/user-vaults.reader.d.ts +26 -0
  193. package/dist/read/user-vaults/user-vaults.reader.d.ts.map +1 -0
  194. package/dist/read/user-vaults/user-vaults.reader.js +32 -0
  195. package/dist/read/user-vaults/user-vaults.types.d.ts +39 -0
  196. package/dist/read/user-vaults/user-vaults.types.d.ts.map +1 -0
  197. package/dist/read/user-vaults/user-vaults.types.js +21 -0
  198. package/dist/read/vault/vault.reader.d.ts +95 -0
  199. package/dist/read/vault/vault.reader.d.ts.map +1 -0
  200. package/dist/read/vault/vault.reader.js +168 -0
  201. package/dist/read/vault/vault.types.d.ts +49 -0
  202. package/dist/read/vault/vault.types.d.ts.map +1 -0
  203. package/dist/read/vault/vault.types.js +45 -0
  204. package/dist/read/vaults/vaults.reader.d.ts +72 -0
  205. package/dist/read/vaults/vaults.reader.d.ts.map +1 -0
  206. package/dist/read/vaults/vaults.reader.js +63 -0
  207. package/dist/read/vaults/vaults.types.d.ts +140 -0
  208. package/dist/read/vaults/vaults.types.d.ts.map +1 -0
  209. package/dist/read/vaults/vaults.types.js +71 -0
  210. package/dist/read/ws-subscription.d.ts +21 -0
  211. package/dist/read/ws-subscription.d.ts.map +1 -0
  212. package/dist/read/ws-subscription.js +170 -0
  213. package/dist/subaccount-types.d.ts +24 -0
  214. package/dist/subaccount-types.d.ts.map +1 -0
  215. package/dist/subaccount-types.js +11 -0
  216. package/dist/transaction-builder.d.ts +14 -0
  217. package/dist/transaction-builder.d.ts.map +1 -0
  218. package/dist/transaction-builder.js +40 -0
  219. package/dist/tsconfig.tsbuildinfo +1 -0
  220. package/dist/utils.d.ts +56 -0
  221. package/dist/utils.d.ts.map +1 -0
  222. package/dist/utils.js +164 -0
  223. package/dist/vault-types.d.ts +43 -0
  224. package/dist/vault-types.d.ts.map +1 -0
  225. package/dist/vault-types.js +11 -0
  226. package/dist/write.d.ts +271 -0
  227. package/dist/write.d.ts.map +1 -0
  228. package/dist/write.js +485 -0
  229. package/eslint.config.mjs +25 -0
  230. package/package.json +39 -0
  231. package/readme.md +257 -0
  232. package/sdk_reference.md +876 -0
  233. package/src/abi/generate-abis.ts +164 -0
  234. package/src/abi/json/netna.json +1323 -0
  235. package/src/abi/json/testnet.json +1315 -0
  236. package/src/abi/types.ts +23 -0
  237. package/src/admin.ts +284 -0
  238. package/src/base.ts +218 -0
  239. package/src/constants.ts +118 -0
  240. package/src/fee-pay.ts +39 -0
  241. package/src/gas/gas-price-manager.ts +115 -0
  242. package/src/index.ts +10 -0
  243. package/src/order-event.types.ts +65 -0
  244. package/src/order-status.ts +89 -0
  245. package/src/read/account-overview/account-overview.reader.ts +43 -0
  246. package/src/read/account-overview/account-overview.types.ts +45 -0
  247. package/src/read/base-reader.ts +41 -0
  248. package/src/read/candlesticks/candlesticks.reader.ts +61 -0
  249. package/src/read/candlesticks/candlesticks.types.ts +46 -0
  250. package/src/read/delegations/delegations.reader.ts +22 -0
  251. package/src/read/delegations/delegations.types.ts +19 -0
  252. package/src/read/index.ts +271 -0
  253. package/src/read/leaderboard/leaderboard.reader.ts +21 -0
  254. package/src/read/leaderboard/leaderboard.types.ts +26 -0
  255. package/src/read/market-contexts/market-contexts.reader.ts +26 -0
  256. package/src/read/market-contexts/market-contexts.types.ts +18 -0
  257. package/src/read/market-depth/market-depth.reader.ts +60 -0
  258. package/src/read/market-depth/market-depth.types.ts +24 -0
  259. package/src/read/market-prices/market-prices.reader.ts +61 -0
  260. package/src/read/market-prices/market-prices.types.ts +38 -0
  261. package/src/read/market-trades/market-trades.reader.ts +46 -0
  262. package/src/read/market-trades/market-trades.types.ts +34 -0
  263. package/src/read/markets/markets.reader.ts +82 -0
  264. package/src/read/markets/markets.types.ts +54 -0
  265. package/src/read/pagination.types.ts +18 -0
  266. package/src/read/portfolio-chart/portfolio-chart.reader.ts +20 -0
  267. package/src/read/portfolio-chart/portfolio-chart.types.ts +21 -0
  268. package/src/read/types.ts +129 -0
  269. package/src/read/user-active-twaps/user-active-twaps.reader.ts +36 -0
  270. package/src/read/user-active-twaps/user-active-twaps.types.ts +33 -0
  271. package/src/read/user-bulk-orders/user-bulk-orders.reader.ts +37 -0
  272. package/src/read/user-bulk-orders/user-bulk-orders.types.ts +32 -0
  273. package/src/read/user-funding-history/user-funding-history.reader.ts +38 -0
  274. package/src/read/user-funding-history/user-funding-history.types.ts +29 -0
  275. package/src/read/user-notifications/user-notifications.reader.ts +17 -0
  276. package/src/read/user-notifications/user-notifications.types.ts +61 -0
  277. package/src/read/user-open-orders/user-open-orders.reader.ts +36 -0
  278. package/src/read/user-open-orders/user-open-orders.types.ts +42 -0
  279. package/src/read/user-order-history/user-order-history.reader.ts +34 -0
  280. package/src/read/user-order-history/user-order-history.types.ts +44 -0
  281. package/src/read/user-positions/user-positions.reader.ts +55 -0
  282. package/src/read/user-positions/user-positions.types.ts +43 -0
  283. package/src/read/user-subaccounts/user-subaccounts.reader.ts +30 -0
  284. package/src/read/user-subaccounts/user-subaccounts.types.ts +21 -0
  285. package/src/read/user-trade-history/user-trade-history.reader.ts +38 -0
  286. package/src/read/user-trade-history/user-trade-history.types.ts +33 -0
  287. package/src/read/vaults/vaults.reader.ts +79 -0
  288. package/src/read/vaults/vaults.types.ts +106 -0
  289. package/src/read/ws-subscription.ts +200 -0
  290. package/src/subaccount-types.ts +31 -0
  291. package/src/transaction-builder.ts +75 -0
  292. package/src/utils.ts +255 -0
  293. package/src/write.ts +965 -0
  294. package/tsconfig.json +8 -0
@@ -0,0 +1,57 @@
1
+ import { MoveFunctionId } from "@aptos-labs/ts-sdk";
2
+ export interface BytecodeData {
3
+ packageAddress: string;
4
+ network: string;
5
+ fullnodeUrl: string;
6
+ fetchedAt: string;
7
+ bytecode: Record<string, string>;
8
+ errors: Array<{
9
+ module: string;
10
+ error: string;
11
+ }>;
12
+ summary: {
13
+ totalModules: number;
14
+ successful: number;
15
+ failed: number;
16
+ };
17
+ modules: string[];
18
+ }
19
+ /**
20
+ * Bytecode Manager
21
+ * Handles direct bytecode retrieval from blockchain
22
+ */
23
+ export declare class BytecodeManager {
24
+ readonly bytecodeData: BytecodeData;
25
+ constructor();
26
+ /**
27
+ * Get bytecode for a specific module
28
+ */
29
+ getModuleBytecode(moduleName: string): string | null;
30
+ /**
31
+ * Get bytecode for a specific function using function ID
32
+ * Note: This returns the entire module bytecode since individual function bytecode
33
+ * is not directly available from the blockchain
34
+ */
35
+ getBytecode(functionId: MoveFunctionId): string | null;
36
+ /**
37
+ * Check if bytecode exists for a specific module
38
+ */
39
+ hasModuleBytecode(moduleName: string): boolean;
40
+ /**
41
+ * Check if bytecode exists for a specific function
42
+ */
43
+ hasBytecode(functionId: MoveFunctionId): boolean;
44
+ /**
45
+ * Get all available modules
46
+ */
47
+ getAvailableModules(): string[];
48
+ /**
49
+ * Get bytecode data summary
50
+ */
51
+ getSummary(): {
52
+ totalModules: number;
53
+ successful: number;
54
+ failed: number;
55
+ };
56
+ }
57
+ //# sourceMappingURL=bytecode-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytecode-manager.d.ts","sourceRoot":"","sources":["../../src/abi/bytecode-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;;IAMpC;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI3D;;;;OAIG;IACI,WAAW,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAW7D;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIrD;;OAEG;IACI,WAAW,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAIvD;;OAEG;IACI,mBAAmB,IAAI,MAAM,EAAE;IAItC;;OAEG;IACI,UAAU;sBAjED,MAAM;oBACR,MAAM;gBACV,MAAM;;CAkEjB"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BytecodeManager = void 0;
7
+ const bytecode_json_1 = __importDefault(require("./bytecode.json"));
8
+ /**
9
+ * Bytecode Manager
10
+ * Handles direct bytecode retrieval from blockchain
11
+ */
12
+ class BytecodeManager {
13
+ bytecodeData;
14
+ constructor() {
15
+ this.bytecodeData = bytecode_json_1.default;
16
+ }
17
+ /**
18
+ * Get bytecode for a specific module
19
+ */
20
+ getModuleBytecode(moduleName) {
21
+ return this.bytecodeData.bytecode[moduleName] ?? null;
22
+ }
23
+ /**
24
+ * Get bytecode for a specific function using function ID
25
+ * Note: This returns the entire module bytecode since individual function bytecode
26
+ * is not directly available from the blockchain
27
+ */
28
+ getBytecode(functionId) {
29
+ // Extract module name from function ID
30
+ const parts = functionId.split("::");
31
+ if (parts.length !== 3) {
32
+ return null;
33
+ }
34
+ const [, moduleName] = parts;
35
+ return this.getModuleBytecode(moduleName);
36
+ }
37
+ /**
38
+ * Check if bytecode exists for a specific module
39
+ */
40
+ hasModuleBytecode(moduleName) {
41
+ return this.getModuleBytecode(moduleName) !== null;
42
+ }
43
+ /**
44
+ * Check if bytecode exists for a specific function
45
+ */
46
+ hasBytecode(functionId) {
47
+ return this.getBytecode(functionId) !== null;
48
+ }
49
+ /**
50
+ * Get all available modules
51
+ */
52
+ getAvailableModules() {
53
+ return Object.keys(this.bytecodeData.bytecode);
54
+ }
55
+ /**
56
+ * Get bytecode data summary
57
+ */
58
+ getSummary() {
59
+ return this.bytecodeData.summary;
60
+ }
61
+ }
62
+ exports.BytecodeManager = BytecodeManager;
@@ -0,0 +1,24 @@
1
+ {
2
+ "packageAddress": "0xb8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95",
3
+ "network": "netna",
4
+ "fullnodeUrl": "https://api.netna.staging.aptoslabs.com/v1",
5
+ "fetchedAt": "2025-10-10T23:59:12.479Z",
6
+ "bytecode": {
7
+ "dex_accounts": "0xa11ceb0b0800000a0d01001e021e480366b905049f062805c706830907ca0f961208e0216006c0221710d722ba080a912b280cb92b890e0dc2390413c6390200000108010c010f011501160018001d001f012201250229003601390156000107000003060001070701000000090800020b0600030e0702000000000010060004140700021b07010001071c080009210b00092700000b2b07000b3d07000c410700024f0200001300010001000517020300010101061304010001000019000100010006190401000100001a050100010101001e0607000100081a080100010000200901000101010023060700010008200a010001010100240b01000101010a260d0e010801010108240f0100010101002811010001000b2a12130001010108281401000100002c1501000100082c1617000100002d0b0100010101082d180e000101010a2e190100010101002f1b010001010100301c010001010100311d010001010100321e010001010100331f01000101010034200100010101003521010001000c372201000100003823010001000d3a27010100010101083b28010001000b3c292a00010101013e2b250100010101013f2c2d01000101010c402e2f00010001422d2c01000101010143012c010001010108443013000100084531010001010100463301000100084728010001000048340100010008491401000100004a1101000100084b1401000100004c020100010101004d3536000100024e3738000101010250393a0001010102513b070001010102523903000101010353013d020000010101025439010001010108551d010001000e572d0101060101010258034001080101010259033800010101005a0236000100025b42030108010101035c4344020200010101025d48250108010101005e4a0100010101005f4b0100010101082e4a0100010101006003030001010103614d2502000001010100624f010001000863505100010000645201000100086553130001000066550100010000675601000100086857130001000269580300010101006a033600010101006b200100010101036c595a020200010101006d20010001000c6e1d01000100006f5b0100010008705c0100010000715d0100010008725e0100010000735f0100010000745f0100010000751f010001010108761c0e0001010100771f0e000101010c0c1f26220323032324252f25262624262f353c383e393f3c3f3d3c254538463e3f433c4e3c264502060c08070001060c01050205080705060c0b080108030b08010809010202060c0b08010803010c04060c0b08010809010206060c0b080108030b08010809010b0801080a0305060c0b08010809010b0801080a0305060c0b080108030b080108090b0801080a0301080a03060c0b080109000301080b03060c0b08010809080b02080b0c04060c0b080108030b0801080904010401080c030b08010809060c080c09060c0b080108030b080108090b0201030b0201030b0201030b0201030b0201030b020103080b08010809060c0b0201030b0201030b0201030b0201030b0201030b020103020b0201080c0b0201080c04060c0b080108090b0801080a030205080b020c080b04060c0b0801080a030503060c0b0801080a0302060c0505060c0b080108030b0801080a030504060c0b080108030b0801080a0303060c0b080108030504060c0b08010803050303060c05030c060c0b080108030b080108090a08070a030a030a0102010a08070b0201050b0201030103010101080701070a0900030b08010809060c0807010201080d01060b02010900010b0201090001090002050301080e0e0b08010809060c030301080d010b020108070b0201030b0201030b0201030b0201030b0201030b0201080e020b080108090e0e0c030a08070a0807030807080d0b0201050b0201030b0201080e0303030104060c0b0801080308070b0801080904060c0b08010803040b0801080902060c01010b0801080302060c0a0201080f0106080f0108040106080402050800010b050209000901010806010803010b0801090004080f08040c0501060b0801090003070b05020900090109000901010b02010901010800010801020b080108030b08010803020b0801090005030b08010803050b0801080302060c080b03060c0b08010803080b03050b080108030102060b050209000901060900060b08010803060c010b08010803050b0801080308060c0b080108030b08010809030a030a030a030a03080b08010809060c030a030a030a030a030b0201080e010b0201080c0e060c0b080108030b080108090301010b020108070b0201030b0201030b0201030b0201030b0201030b0201050b0201030c0b08010809060c0301010b020108070b0201030b0201030b0201030b0201030b0201030b0201080e030b0201050b0201080e0c10060c0b080108030b0801080903030102010b020108070b0201030b0201030b0201030b0201030b0201030b0201050b02010308060c0b080108030b080108090301010303070b08010809060c03010103030206050a0202070b0502090009010609000109010f060c0b0801080308070b0801080903030102010b0201030b0201030b0201030b0201030b0201050b0201030d060c08070b08010809030301080d010b0201030b0201030b0201030b0201030b0201080e0f060c0b08010803040b0801080903030102010b0201030b0201030b0201030b0201030b0201050b0201030d060c080c0b08010809030301080d010b0201030b0201030b0201030b0201030b0201080e07060c0b08010803040b080108090b0201030b0201030b020103020c0c0c6465785f6163636f756e74730a44656c65676174696f6e0e54726164696e67416c6c6f7765641644656c65676174696f6e4368616e6765644576656e740a7375626163636f756e741164656c6567617465645f6163636f756e740a64656c65676174696f6e064f7074696f6e066f7074696f6e0a5375626163636f756e740a657874656e645f72656609457874656e64526566066f626a6563741164656c6567617465645f74726164696e670a4f7264657265644d61700b6f7264657265645f6d6170165375626163636f756e74437265617465644576656e74056f776e65720a69735f7072696d6172791672656769737465725f726566657272616c5f636f646506537472696e6706737472696e67067369676e65720a616464726573735f6f661474726164696e675f666565735f6d616e616765721172656769737465725f726566657272657222636f6e6669677572655f757365725f73657474696e67735f666f725f6d61726b6574064f626a6563740a506572704d61726b65740b706572705f6d61726b65742a6765745f7375626163636f756e745f7369676e65725f69665f6f776e65725f6f725f64656c65676174650b706572705f656e67696e65247472616e736665725f6d617267696e5f746f5f69736f6c617465645f706f736974696f6e084d657461646174610e66756e6769626c655f61737365741e6765745f7375626163636f756e745f7369676e65725f69665f6f776e6572236465706f7369745f746f5f69736f6c617465645f706f736974696f6e5f6d617267696e167072696d6172795f66756e6769626c655f73746f72650877697468647261770d46756e6769626c6541737365741f63616e63656c5f74705f736c5f6f726465725f666f725f706f736974696f6e106f726465725f626f6f6b5f7479706573116e65775f6f726465725f69645f747970650b4f726465724964547970651e706c6163655f74705f736c5f6f726465725f666f725f706f736974696f6e2677697468647261775f66726f6d5f69736f6c617465645f706f736974696f6e5f6d617267696e076465706f736974206164645f64656c6567617465645f7472616465725f616e645f6465706f736974156465706f7369745f746f5f7375626163636f756e741364656c65676174655f74726164696e675f746f2e6164645f64656c6567617465645f7472616465725f616e645f6465706f7369745f746f5f7375626163636f756e74186465706f7369745f746f5f7375626163636f756e745f61742264656c65676174655f74726164696e675f746f5f666f725f7375626163636f756e7426617070726f76655f6d61785f6275696c6465725f6665655f666f725f7375626163636f756e74156275696c6465725f636f64655f72656769737472790f617070726f76655f6d61785f6665653062756c6b5f63616e63656c5f636c69656e745f616e645f706c6163655f6f726465725f746f5f7375626163636f756e7406766563746f7207726576657273651e63616e63656c5f636c69656e745f6f726465725f6e6f5f747269676765721874696d655f696e5f666f7263655f66726f6d5f696e6465780b54696d65496e466f7263650769735f736f6d650c64657374726f795f736f6d65106e65775f6275696c6465725f636f64650b4275696c646572436f646504736f6d65046e6f6e650b706c6163655f6f7264657210747269676765725f6d61746368696e672163616e63656c5f636c69656e745f6f726465725f746f5f7375626163636f756e741363616e63656c5f636c69656e745f6f726465721a63616e63656c5f6f726465725f746f5f7375626163636f756e740c63616e63656c5f6f726465722063616e63656c5f747761705f6f72646572735f746f5f7375626163636f756e741163616e63656c5f747761705f6f72646572156372656174655f6e65775f7375626163636f756e741a6372656174655f7375626163636f756e745f696e7465726e616c136372656174655f6e616d65645f6f626a6563740e436f6e7374727563746f725265661367656e65726174655f657874656e645f7265661d67656e65726174655f7369676e65725f666f725f657874656e64696e671c616464726573735f66726f6d5f636f6e7374727563746f725f726566036e6577127365745f756e7472616e7366657261626c6510696e69745f757365725f69665f6e6577056576656e7404656d697411616464726573735f746f5f6f626a6563740d6372656174655f6f626a65637420656e737572655f7072696d6172795f7375626163636f756e745f6578697374730e6f626a6563745f6164647265737306757073657274046f776e731b6465706f7369745f66756e64735f746f5f7375626163636f756e741e6465706f7369745f66756e64735f746f5f7375626163636f756e745f6174127072696d6172795f7375626163636f756e7408636f6e7461696e731f706c6163655f62756c6b5f6f72646572735f746f5f7375626163636f756e7410706c6163655f62756c6b5f6f7264657220706c6163655f6d61726b65745f6f726465725f746f5f7375626163636f756e7412706c6163655f6d61726b65745f6f7264657219706c6163655f6f726465725f746f5f7375626163636f756e741e706c6163655f747761705f6f726465725f746f5f7375626163636f756e7410706c6163655f747761705f6f72646572156372656174655f6f626a6563745f61646472657373197072696d6172795f7375626163636f756e745f6f626a656374117265766f6b655f64656c65676174696f6e0672656d6f7665257265766f6b655f6d61785f6275696c6465725f6665655f666f725f7375626163636f756e740e7265766f6b655f6d61785f666565217570646174655f636c69656e745f6f726465725f746f5f7375626163636f756e74137570646174655f636c69656e745f6f726465721a7570646174655f6f726465725f746f5f7375626163636f756e740c7570646174655f6f726465721c7570646174655f736c5f6f726465725f666f725f706f736974696f6e1c7570646174655f74705f6f726465725f666f725f706f736974696f6e1877697468647261775f66726f6d5f7375626163636f756e741177697468647261775f66756e6769626c651e77697468647261775f66756e64735f66726f6d5f7375626163636f756e74b8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000070a0214136465636962656c5f6465785f7072696d61727914636f6d70696c6174696f6e5f6d65746164617461120103322e300c322e322d756e737461626c65126170746f733a3a6d657461646174615f7631fd070b010000000000000015454e4f545f5355424143434f554e545f4f574e45522943616c6c6572206973206e6f7420746865206f776e6572206f6620746865207375626163636f756e74020000000000000018455355424143434f554e545f444f45534e545f45584953542f5375626163636f756e7420646f6573206e6f7420657869737420616e642063616e6e6f742062652063726561746564030000000000000022454d455441444154415f4e4f545f535550504f525445445f434f4c4c41544552414c3050726f7669646564206d65746164617461206973206e6f7420737570706f7274656420617320636f6c6c61746572616c04000000000000000f45494e56414c49445f414d4f554e5430496e76616c696420616d6f756e742070726f766964656420286d7573742062652067726561746572207468616e20302905000000000000000e45494e56414c49445f50524943452f496e76616c69642070726963652070726f766964656420286d7573742062652067726561746572207468616e20302906000000000000000d45494e56414c49445f53495a452e496e76616c69642073697a652070726f766964656420286d7573742062652067726561746572207468616e203029070000000000000015454e4f545f44454c4547415445445f545241444552345369676e6572206973206e6f7420612064656c6567617465642074726164657220666f722074686973207375626163636f756e7408000000000000001a454c41434b535f54524144494e475f5045524d495353494f4e53455369676e6572206c61636b732074726164696e67207065726d697373696f6e7320286e656974686572206f776e6572206e6f722064656c65676174656420747261646572290900000000000000214546554e4749424c455f41535345545f4d455441444154415f4d49534d415443483f46756e6769626c65206173736574206d6574616461746120646f6573206e6f74206d6174636820657870656374656420636f6c6c61746572616c20747970650a000000000000001945494e56414c49445f54505f534c5f504152414d455445525321496e76616c69642054502f534c20706172616d65746572732070726f76696465640b000000000000001345494e56414c49445f504152414d45544552531b496e76616c696420706172616d65746572732070726f7669646564030a5375626163636f756e74010301183078313a3a6f626a6563743a3a4f626a65637447726f75701644656c65676174696f6e4368616e6765644576656e74010400165375626163636f756e74437265617465644576656e7401040002127072696d6172795f7375626163636f756e74010100197072696d6172795f7375626163636f756e745f6f626a656374010100000301020001020304050505060b020108000302020a08040d0b05020508000602030405110512010000040001050b0011010b011102020300040001050b0011010b011104020501040102070a0b000b0111060c050e050b020b030b041107020801040102070b0b000b0111090c060e060b020b030b040b05110a020b01040102100e0a000b030b0438000c050b000b0111090c060e060b020b05110d020e00040102070a0b020b000b0111060c040e040b03110f111002110004010207100b020b000b0111060c090e090b030b040b050b060b070b08111201010213010401021a0f0a000b0111090c050e050b020b030b0411140c060b0011010b06111502160104010201080a000b010b0211170b000b031118021901040102010a0a000a010b020b03111a0b000b010b04111b021c0004010207090b000b0111090c040e040b020b03111d021e000401023282010b000b0111060c0c0e0441240c0d0a0d0e064125210480010a0d0e05412421047e0b0d0e09412621047c0b030c0e0d0e38010b0e0c0f0e0f41260c100a1006000000000000000024042f0d0f45260c110a020e0c0b1111200b10060100000000000000170c10051f0b0f462600000000000000000b0711210c120b0a0c130b0b0c140e13380204790b1338030b143804112438050c150600000000000000000c100e0441240c160a100a162304750e040a104224140c170e050a104224140c180e060a104225140c190e090a104226140c110a020e0c0b170b180b190a120a080b113806380738073807380738070a151127010b10060100000000000000160c1005470b02490200000011280238080c150542060b0000000000000027060b0000000000000027060b0000000000000027290004010207090b030b000b0111060c040e040b02112a022b00040102070a0b030b000b0111060c040e040b02110f112c022d00040102070a0b020b000b0111060c040e040b03110f112e022f01040001050b0009113001023000000041280a0104230a00070011310c020e0211320c030e0311330c040e0211340c050e040b03380912022d020e0211360e040a00110111370a050b0011010b011203380a0b05380b020a001101113a0c020506180104010247150b00113b0c020a020c030e03380c2a020f000a015200380d010e02380c0b015200380e1201380f021b01040102491d0a010b0011013810041b0b010c030b020c040a030c050e05380c2a020f000a045200380d010e03380c0b045200380e1201380f02060100000000000000273f0100010236080a00113b0c020b000b020b01114002400100010207080b000b0111090c030e030b02114102170104010236090a00113b0c030b000b030b010b02111a021a010401020e0a0a000b020b0338000c040b000b010b041140023b0000004c130a00110111420c010a012902040e0b00010b01380b0c020b02020b000811300c02050c0900000102360f0a010b0011013810040d0b010c020e02380c2b0210011133020601000000000000002706000001024e260a010c020a000c030a020b031101381004190b0001080c040b0404170b010c050e05380c2b021001113302060800000000000000270b0011010c060b020c070e07380c2b0210000e0638110c04050d4400040102070f0b000b0111060c080b020e080b030b040b050b060b07380811450102460004010254220b0c0c0e0e0e3802041f0b0e38030b0d3804112438050c0f0b020b000b0111060c100e100b030b040b050b060b070b080b090b0a0b0b0b0f1147010238080c0f050c480004010254250b0e0c100e10380204220b1038030b0f3804112438050c110b020b000b0111060c120e120b030b040b050b0611210b070b080b090b0a0b0b0b0c0b0d0b111127010238080c11050c4900040102070e0b020b000b0111060c080e080b030b040b050b060b07114a01024201000001040e000700114b024c01000001050e000700114b380b024d0104010236170a010b001101381004150a010c030e03380c2a020f000e023812010e01380c0b0238131201380f02060100000000000000274f0004010207080b000b0111090c030e030b02115002510004010254230b0d0c0f0e0f380204200b0f38030b0e3804112438050c100b000b0111060c110e110b020b030b040b050b060b0711210b080b090b0a0b0b0b0c0b1011520238080c10050c530004010254240b0d0c0f0e0f380204210b0f38030b0e3804112438050c100b000b0111060c110e110b02110f0b030b040b050b060b0711210b080b090b0a0b0b0b0c0b1011540238080c10050c550004010260190a030a000a0111060c070e070b02110f11100b030b000b0111060c080e083807380738070b040b050b061112010102560004010260190a030a000a0111060c070e070b02110f11100b030b000b0111060c080e080b040b050b06380738073807111201010257010401021a0e0a000b0111090c040e040b020b0311580c050b0011010b05111502590100010207090b000b0111090c040e040b020b0311580202010200000000",
8
+ "perp_engine": "0xa11ceb0b0800000a0d01004a024a850103cf01920c04e10d3c059d0e830a07a018ad2008cd386006ad393610e339fb0c0ade46430ca147f01b0d9163060f976303000001040108010f0011011701220028012a023200360239003b013f004102460047004900520057005f006c00700178007e01890100a10100ae0101b00100b80100ba0100bd0100da01000106000103070100010105080002070b00000a0800010c0600030e040204000400041008000013060005160700001f000001250200022d0000093407000b380202070007000c3a07000c3c07000d3e070100000e4007000f4507010700094c0700156b0700187d07001bad0106000bb50104000bb701040107001ed201070014dd01020000210001000101010623020300010101012404050001010101260607000101010327010902040401010107210001000101010129060b0108010101082b0d010106010101002c0f010001010100120110000100022e111200010101072f1210000101010230111300010101072c0f01000100003114130001010109331516000101010431171300010101003518010001000a37191a00010004351b01000100003d1c1d0001000c421e1f000100043d201d000100004321010001010100442301000100044424250001001043210100010000482616000100114a2701000100094b0128000101010d4d01290100010101104e2a16000100004f2b0100010000502b0100010000511913000101011251191300010000532c010001010111532d0100010000542e0100010000552f010001010111553001000100005631010001010113563101000100005832010001010111581901000100005919330001010112591933000100005a191300010101125a1913000100005b010300010101075b0103000100005c193400010101115d1934000100005e3501000100145e3501000100006036100001010114603610000101010061361300010101146136130001010100623610000101011462361000010101006337010001001463370100010000643610000101011464361000010101006536100001010107653810000100006639010001010107673a0100010000683b010001010107683b0100010000690313000101010769031300010101006a3c3d00010101076a3c3d000100006d361300010101076d361300010101006e3e3f00010101076e3e3f000100006f191300010101166f19130001000071360100010101117219100001000a7136010001000073230100010010732301000100007432010001010110741901000100007536010001010110753601000100004e41160001000076421600010010764216000100044f430100010000774401000100177945010100010101007a2301000100147b47010001000009013400010101077c014800010101187f4934000101010080012d01000101011281014a01000100008201194b00010101048301194c00010101048401194c000101010085011913000101011686011913000100008701361300010101148801361500010101198a01131300010101008b01361500010101008c01141300010101008d01121000010101008e01014e00010101038f014f100204040101010390014f500207040101010191015203010801010103920153290207040101010d9301541001000101010d9401290d010001010100950119130001010111960119130001000097011913000101011198011913000100009901195600010101119a011956000100009b01193400010101119c011934000100009d01191300010101119e011913000100009f01575800010000a001591d0001001aa2015b160001000da3010d2901000101010da4015410010001010100a501190100010010a6015c0100010000a7014a0100010010a8014a0100010010a901190100010011515e130001000daa015f0d010201010112ab01600100010000ac01621900010001af016364000101011cb1016566010001010101b20106640001010110b30167010001000bb4016869000101010bb6016a6b010701010104b3016c010001001d21020100010016b9016d0100010011b3016e010001001eb301020100010003bb016f0102070401010111bc01191300010012b30170010001001fbe01190100010000bf017301000101011bc001747500010000c1017601000101011bc201777500010000c30167010001010100c40179010001010111c5017a0100010000c60132010001010111c701190100010000c8017b010001010111c9017c0100010000ca0132010001010111cb01190100010000cc012d010001010116cd014a0100010000ce0179010001010111cf017a0100010000d0017d0100010014d1017e7f0001001ed3018001810100010011d4017d1300010011d501270100010009d60101280001010100d70184010100010000d80185010100010000d9018601010001010120db018701010001010100dc013688010001010107de0136880100010000df0189013f0001010107e0012d3f0001000408060a070c1e165f16730874087551760877197819771378138601168701135f038e011392015696011f06519c010807711e561e131e820186015604060c0b0101080302050001060c010502060c0a0201080b0106080b010805020b010108070805010b060209000901010802010b0101090001080001090002080b080502060c080c01010106080c010b010108030103020b0101080704010401080d020b01010807080d04060c080d0b0101080703010b01010807010b0e02080f0810050b01010807060c080d03060b0e02080f0810080b01010807060c030a030a030a030a030b11010812010b1101080d010b1101081201080f090b0101080705030a030a030a030a03080f060b0e02080f0810020b010108070e02080f0b0e02080f0810030b01010807060c080d050b0101080705080d01060b0e02080f0810010b1301080f0c0b01010807060c0301010b110108090b1101030b1101030b1101030b1101030b1101030b11010812030b010108070303010814010b110109000f0b01010807050303010814010b1101080d0b110108090b1101030b1101030b1101030b1101030b1101030b11010812030b01010807060c080905060c0b01010807030a050103060c0b0101080703030b010108070a050103060c0b0101080705020b01010807050e060c0a040a030a03040a030a030303010303040402060c0b01010807020303010204060c0b01010807010202050b0101080702060c0503050b010108070105060c0b01010807010b010108030304050b01010807010303060c0b01010807080c02050101081503060c0b010108030301080c020b01010803080c0e0b01010807060c0303010814010b110108090b1101030b1101030b1101030b1101030b1101030b11010812070b01010807060c0301010303040b01010807060c0809060b0e02080f0810030b01010807060c0a080d01070a0900050a080d0a080d03080d0b0e02080f081003050b01010807080d01081601060816020b0101080703020b1101030b110103010b11010309040301030404040404010a0501060b06020900090102090006090101080701060b0101090002060b06020900090106090001060b11010900050a05060b06020b0101080708050608050b010108070b11010b01010807010809080b01010807060c0b1101030b1101030b1101030b1101030b1101030b110103020b1101080d0b1101080d060b01010807050b1101030b1101030b110103010401050b1101080d0b1101080d070b0101080705030b1101030b110103010b1101080d03050b010108070e030a050a0503020b010108070816020b110109000900040b01010807030303030303030a060c080902030303030201081701060805010c01060900010a0202060c010301010301081803060c060c0818010b1901090002060c0b1901080f02060c0308060c08090203030302081703070b0602090009010900090103060c0303010808060708040c080b0c0b0101080708160b060c08090203030303020103050203050108170c060c0809020303030302010a020302030a02030201070103060c0b010108070a05020b010108070a0503060c0b0101080702020b0101080702030b010108070301040b01010807030103010a081a01081a0405080d0b1101030b110103010812090a081a0b1101030b110103080d05030103030d060c08090b010108070303010814010b1101030b1101030b1101030b1101030b110108120d060c080d0b010108070303010814010b1101030b1101030b1101030b1101030b1101081205060c0b010108070a0a020a050102060c0a0a0201081b04060c0b010108070b01010803030b706572705f656e67696e6514446578526567697374726174696f6e4576656e7403646578064f626a656374066f626a6563740a4f626a656374436f726510636f6c6c61746572616c5f6173736574084d657461646174610e66756e6769626c655f61737365741b636f6c6c61746572616c5f62616c616e63655f646563696d616c7306476c6f62616c0a657874656e645f72656609457874656e645265660b6d61726b65745f726566730d4269674f7264657265644d61700f6269675f6f7264657265645f6d61700a506572704d61726b65740b706572705f6d61726b65741069735f65786368616e67655f6f70656e174d61726b6574526567697374726174696f6e4576656e74066d61726b6574046e616d6506537472696e6706737472696e670b737a5f646563696d616c730b70785f646563696d616c730c6d61785f6c65766572616765116d61785f6f70656e5f696e746572657374086d696e5f73697a65086c6f745f73697a650b7469636b65725f73697a651a506572704f7264657243616e63656c6174696f6e526561736f6e184d61784f70656e496e74657265737456696f6c6174696f6e0a696e697469616c697a65067369676e65720a616464726573735f6f66136372656174655f6e616d65645f6f626a6563740e436f6e7374727563746f725265661367656e65726174655f657874656e645f726566036e6577136163636f756e74735f636f6c6c61746572616c1b6f626a6563745f66726f6d5f636f6e7374727563746f725f726566056576656e7404656d6974076465706f7369740d46756e6769626c654173736574136d657461646174615f66726f6d5f61737365741269735f61737365745f737570706f7274656406616d6f756e74126765745f72656d61696e696e675f73697a65106f726465725f626f6f6b5f7479706573116e65775f6f726465725f69645f747970650b4f726465724964547970651364656372656173655f6f726465725f73697a6512636c656172696e67686f7573655f70657270106d61726b65745f63616c6c6261636b731c4d61726b6574436c656172696e67686f75736543616c6c6261636b730c6d61726b65745f74797065730d4f726465724d6574616461746111706572705f656e67696e655f7479706573144f726465724d61746368696e67416374696f6e7310706c6163655f62756c6b5f6f72646572064f7074696f6e066f7074696f6e0b4275696c646572436f6465156275696c6465725f636f64655f7265676973747279176e65775f62756c6b5f6f726465725f6d6574616461746110747269676765725f6d61746368696e670c63616e63656c5f6f726465720b53696e676c654f726465721273696e676c655f6f726465725f7479706573156173796e635f6d61746368696e675f656e67696e6512706c6163655f6d61726b65745f6f7264657212706572705f6d61726b65745f636f6e6669671776616c69646174655f70726963655f616e645f73697a6513696d6d6564696174655f6f725f63616e63656c0b54696d65496e466f726365046e6f6e650b706c6163655f6f726465721363616e63656c5f636c69656e745f6f726465721e63616e63656c5f636c69656e745f6f726465725f6e6f5f74726967676572106765745f6f7261636c655f70726963651070726963655f6d616e6167656d656e741c7570646174655f696e7465726e616c5f6f7261636c655f70726963651d726566726573685f6c69717569646174655f616e645f747269676765721e7570646174655f696e7465726e616c5f6f7261636c655f75706461746572117570646174655f6665655f636f6e6669671474726164696e675f666565735f6d616e616765720d64656c6973745f6d61726b6574196765745f6d61726b5f616e645f6f7261636c655f70726963650e6765745f6d61726b5f7072696365136261636b73746f705f6c697175696461746f72136d61726b65745f6d61785f6c65766572616765106765745f6d61785f6c6576657261676522636f6e6669677572655f757365725f73657474696e67735f666f725f6d61726b65740e706572705f706f736974696f6e73146765745f706f736974696f6e5f69735f6c6f6e67116765745f706f736974696f6e5f73697a650c6861735f706f736974696f6e10696e69745f757365725f69665f6e65771469735f706f736974696f6e5f69736f6c617465641869735f706f736974696f6e5f6c6971756964617461626c65247472616e736665725f6d617267696e5f746f5f69736f6c617465645f706f736974696f6e2d7472616e736665725f6d617267696e5f66756e6769626c655f746f5f69736f6c617465645f706f736974696f6e236465706f7369745f746f5f69736f6c617465645f706f736974696f6e5f6d617267696e1c6765745f6163636f756e745f62616c616e63655f66756e6769626c65246765745f6163636f756e745f6e65745f61737365745f76616c75655f66756e6769626c6503493634036936341c6765745f69736f6c617465645f706f736974696f6e5f6d617267696e1177697468647261775f66756e6769626c65196765745f63757272656e745f6f70656e5f696e746572657374156f70656e5f696e7465726573745f747261636b657217636c6f73655f64656c69737465645f706f736974696f6e1269735f6d61726b65745f64656c69737465641163616e63656c5f747761705f6f7264657211647261696e5f6173796e635f7175657565126c69717569646174655f706f736974696f6e10706c6163655f747761705f6f726465720d63616e63656c5f6f726465727306766563746f7207726576657273651f63616e63656c5f74705f736c5f6f726465725f666f725f706f736974696f6e0c63616e63656c5f74705f736c1c636f6c6c61746572616c5f62616c616e63655f707265636973696f6e09507265636973696f6e046d6174680c6765745f646563696d616c731d64656c6973745f6d61726b65745f776974685f6d61726b5f7072696365136f766572726964655f6d61726b5f70726963651a6765745f626573745f6269645f616e645f61736b5f70726963650e626573745f6269645f70726963650e626573745f61736b5f70726963651b6765745f6d61785f6f70656e5f696e7465726573745f64656c7461266765745f6d61785f6f70656e5f696e7465726573745f64656c74615f666f725f6d61726b6574166765745f706f736974696f6e5f6176675f7072696365246765745f706f736974696f6e5f656e7472795f70785f74696d65735f73697a655f73756d056572726f7210696e76616c69645f617267756d656e74276765745f706f736974696f6e5f656e7472795f70726963655f74696d65735f73697a655f73756d1c6765745f72656d61696e696e675f73697a655f666f725f6f726465721769735f737570706f727465645f636f6c6c61746572616c0c6c6973745f6d61726b6574730869735f656d7074790c626f72726f775f66726f6e740e6f626a6563745f61646472657373086e6578745f6b65790769735f736f6d650c64657374726f795f736f6d650f6d61726b65745f6c6f745f73697a650c6765745f6c6f745f73697a650f6d61726b65745f6d696e5f73697a650c6765745f6d696e5f73697a650b6d61726b65745f6e616d65086765745f6e616d65126d61726b65745f737a5f646563696d616c730f6765745f737a5f646563696d616c73126d61726b65745f7469636b65725f73697a650f6765745f7469636b65725f73697a651e706c6163655f74705f736c5f6f726465725f666f725f706f736974696f6e1370726f636573735f74705f736c5f6f726465720b74705f736c5f7574696c7327706c6163655f74705f736c5f6f726465725f666f725f706f736974696f6e5f696e7465726e616c04736f6d650769735f6e6f6e650d726566726573685f7072696365226c69717569646174655f706f736974696f6e5f776974685f66696c6c5f6c696d69741c747269676765725f706f736974696f6e5f62617365645f74705f736c26747269676765725f70726963655f62617365645f636f6e646974696f6e616c5f6f726465727313747269676765725f747761705f6f72646572731464657374726f795f776974685f64656661756c740c7570646174655f70726963651872656769737465725f6d61726b65745f696e7465726e616c0c4f7261636c65536f75726365066f7261636c651d67656e65726174655f7369676e65725f666f725f657874656e64696e670362637308746f5f62797465730f67656e65726174655f7369676e65720f72656769737465725f6d61726b6574116e65775f6d61726b65745f636f6e6669670c4d61726b6574436f6e6669670a6e65775f6d61726b6574064d61726b65740b61646c5f747261636b65721e72656769737465725f6f70656e5f696e7465726573745f747261636b657216706f736974696f6e5f74705f736c5f747261636b657203616464136765745f73697a655f6d756c7469706c696572226261636b73746f705f6c697175696461746f725f70726f6669745f747261636b657211696e697469616c697a655f6d61726b65742472656769737465725f6d61726b65745f776974685f696e7465726e616c5f6f7261636c65136e65775f696e7465726e616c5f6f7261636c652072656769737465725f6d61726b65745f776974685f707974685f6f7261636c650f6e65775f707974685f6f7261636c65187365745f676c6f62616c5f65786368616e67655f6f70656e197365745f6d61726b65745f616c6c6f776c6973745f6f6e6c790e616c6c6f776c6973745f6f6e6c79117365745f6d61726b65745f68616c7465640b68616c745f6d61726b6574177365745f6d61726b65745f6d61785f6c65766572616765107365745f6d61785f6c657665726167650f7365745f6d61726b65745f6f70656e087365745f6f70656e187365745f6d61726b65745f6f70656e5f696e746572657374157365745f6d61785f6f70656e5f696e746572657374167365745f6d61726b65745f7265647563655f6f6e6c790f7365745f7265647563655f6f6e6c7925747269676765725f706f736974696f6e5f62617365645f74705f736c5f696e7465726e616c1774616b655f72656164795f74705f736c5f6f72646572730e50656e64696e67526571756573741764657374726f795f70656e64696e675f7265717565737415726f756e645f70726963655f746f5f7469636b65722c76616c69646174655f70726963655f616e645f73697a655f616c6c6f775f62656c6f775f6d696e5f73697a6513676f6f645f74696c6c5f63616e63656c6c6564137570646174655f636c69656e745f6f726465720c7570646174655f6f72646572187570646174655f707974685f6f7261636c655f707269636504707974681e7570646174655f70726963655f66656564735f776974685f66756e64657214766965775f706f736974696f6e5f737461747573154163636f756e7453746174757344657461696c65640f706f736974696f6e5f7374617475732677697468647261775f66726f6d5f69736f6c617465645f706f736974696f6e5f6d617267696e2f77697468647261775f66756e6769626c655f66726f6d5f69736f6c617465645f706f736974696f6e5f6d617267696e0c6465785f6163636f756e7473b8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000070520b8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a950a021110476c6f62616c50657270456e67696e6514636f6d70696c6174696f6e5f6d65746164617461120103322e300c322e322d756e737461626c65126170746f733a3a6d657461646174615f7631be0c1601000000000000000a454e4f545f41444d494e00020000000000000018454445585f414c52454144595f494e495449414c495a454400030000000000000011454445585f444f45534e545f45584953540004000000000000002745445241494e5f4153594e435f51554555455f5748454e5f45584348414e47455f4f50454e45440005000000000000000e454d41524b45545f48414c5445440006000000000000001945494e56414c49445f54505f534c5f504152414d4554455253000700000000000000214546554e4749424c455f41535345545f4d455441444154415f4d49534d415443480008000000000000000f45494e56414c49445f414d4f554e5400090000000000000022454d455441444154415f4e4f545f535550504f525445445f434f4c4c41544552414c000a000000000000001a454d41524b45545f414c52454144595f52454749535445524544000b000000000000001d45494e56414c49445f41444c5f4c49515549444154494f4e5f53495a45000c000000000000001e45494e56414c49445f54505f534c5f464f525f5245445543455f4f4e4c59000d000000000000002545494e56414c49445f54505f534c5f574954485f545249474745525f434f4e444954494f4e000e000000000000001345494e56414c49445f53544f505f5052494345000f000000000000001445494e56414c49445f4d415443485f434f554e540010000000000000001e45494e56414c445f574f524b5f554e4954535f5045525f5452494747455200110000000000000011454e4f545f4c4951554944415441424c45001200000000000000254543414e4e4f545f4c49515549444154455f4241434b53544f505f4c495155494441544f5200130000000000000024454241434b53544f505f4c495155494441544f525f4e4f545f494e495449414c495a4544001400000000000000234543414e4e4f545f534554544c455f4241434b53544f505f4c49515549444154494f4e001500000000000000274543414e4e4f545f534554544c455f4241434b53544f505f4c49515549444154494f4e5f41444c00160000000000000014454d41524b45545f4e4f545f44454c4953544544000214446578526567697374726174696f6e4576656e74010400174d61726b6574526567697374726174696f6e4576656e740104001d0b6d61726b65745f6e616d650101000c6861735f706f736974696f6e0101000c6c6973745f6d61726b6574730101000e6765745f6d61726b5f70726963650101000f6d61726b65745f6c6f745f73697a650101000f6d61726b65745f6d696e5f73697a65010100106765745f6f7261636c655f7072696365010100116765745f706f736974696f6e5f73697a65010100126765745f72656d61696e696e675f73697a65010100126d61726b65745f737a5f646563696d616c73010100126d61726b65745f7469636b65725f73697a65010100136261636b73746f705f6c697175696461746f72010100136d61726b65745f6d61785f6c65766572616765010100146765745f706f736974696f6e5f69735f6c6f6e670101001469735f706f736974696f6e5f69736f6c6174656401010014766965775f706f736974696f6e5f737461747573010100166765745f706f736974696f6e5f6176675f70726963650101001769735f737570706f727465645f636f6c6c61746572616c0101001869735f706f736974696f6e5f6c6971756964617461626c65010100196765745f63757272656e745f6f70656e5f696e746572657374010100196765745f6d61726b5f616e645f6f7261636c655f70726963650101001a6765745f626573745f6269645f616e645f61736b5f70726963650101001b636f6c6c61746572616c5f62616c616e63655f646563696d616c730101001b6765745f6d61785f6f70656e5f696e7465726573745f64656c74610101001c6765745f6163636f756e745f62616c616e63655f66756e6769626c650101001c6765745f69736f6c617465645f706f736974696f6e5f6d617267696e0101001c6765745f72656d61696e696e675f73697a655f666f725f6f72646572010100246765745f6163636f756e745f6e65745f61737365745f76616c75655f66756e6769626c65010100276765745f706f736974696f6e5f656e7472795f70726963655f74696d65735f73697a655f73756d010100000203020b01010802060b0101080309020402030b08050d0b06020b0101080708051201080209140b01010807150809180219021a021b031c031d031e030a03012000000104000e290a00110107002104250a00070111020c040e0411030c050700290103210a000b0538000812012d010b000a010a020b0311050e0438010b010b0212003802020b0001060200000000000000270b0001060100000000000000270801000101111f1109041b0e010c020a02110a110b04150b02110c0600000000000000002404110b000b01110d020b0001060800000000000000270b00010b0201060900000000000000270b0001060500000000000000270e01000001050b000b01110f11100211030001011a101109040c0a020b000b010b030b0211120c040e041113020b0001060500000000000000271403000101221b110904170b0711150c080a000b0111010b020b030b040b050b060b080a0011120c090e0911160b0049020000001117020b01010605000000000000002718030001011a15110904110a000b0111010b02080a0011120c030e031119010b00490a000000111a020b0101060500000000000000271b030000131d0a03041a06ffffffffffffffff0c0c0a000a0c0a02111c0b000b0111010b0c0b020b03111d0b0438030b050b060b070b080b090b0a0b0b111f020601000000000000000c0c0504200300010101080a000b010b0211210b00490a000000111a022201000001030b001123022401040101010f1109040b0b000a010b0211250b010b030b041126020b000106050000000000000027270104010101111109040d0b001101070021040b0b010b02112802060100000000000000270b0001060500000000000000272901040001100b000b010b020b030b040b050b060b070b080b090b0a0b0b0b0c0b0d112a022b010400010a0b00110107002104080b01112c02060100000000000000272d01000001030b00112e022f01000001030b001130023101000001021132023301000001030b001134023503000101010c110904080b000b010b020b031136020b0001060500000000000000273701000001040b000b011138023901000001040b000b01113a023b01000001040b000b01113c023d03000001040b000b01113e023f01000001040b000b011140024101000001050b000b01091142024301000101121e1109041a0b030c050a040600000000000000002404160b05110b04120b0011010b010b020b041144020b0001060900000000000000270b0001060800000000000000270b000106050000000000000027450100010111201109041c0e020c030a03110a110b04160b03110c0600000000000000002404120b000b010b021146020b0001060800000000000000270b00010b0301060900000000000000270b0001060500000000000000274701000001030b001148024901000001040b000b01114a024b01000001040b000b01114c024d010001014025110904210a010c030a0206000000000000000024041d0b03110b04190b000a010b02114e0c040b010e04110a2104170b0402060700000000000000270b0001060900000000000000270b0001060800000000000000270b0001060500000000000000274f01000001030b001150025101040101010d1109040b0a01115204090b000b0111530206160000000000000027060500000000000000275403000101010b110904070b000b010b021155020b0101060500000000000000275601040101010e0b001101070021040c1109030a0b01115702060400000000000000270601000000000000002758010401010108110904060b000b01115902060500000000000000275a03000101011c110904180a000a020a03111c0b000b0111010b020b030b040b050b0638030b070b080b090b0a0b0b0b0c0b0d111f020b0101060500000000000000275b03000101010f1109040b0b000b010b020b030b040b050b06115c020b01010605000000000000002717010401010108110904060b000b01111a020605000000000000002721030001011a0f1109040b0a000b010b020b0011120c030e03115d020b0101060500000000000000275e03000101462e1109042a0b020c030d0338040b030c040e0441160c050a050600000000000000002404220d0445160c060a000a0111010b06080a0011120c070e071119010b05060100000000000000170c05050b0b01010b04461600000000000000000b00490a000000111a020b0101060500000000000000276003000101010c110904080b0111010b000b021161020b01010605000000000000002762010000480511630c000e0011640265010400010d0b001101070021040b0a01112c0b010b02116602060100000000000000276701000001050a0011680b001169026a01000001030b00116b026c0100004d450a000a01116d0c020a000a01113a0c030a030600000000000000002104420a023200000000000000000000000000000000210c040b0404160600000000000000000c050b05020b020c060b03350c070b000b011138043d0b060c080b070c090a0832000000000000000000000000000000002104340b09320000000000000000000000000000000022043132000000000000000000000000000000000c0a0b0a340c050514060400000000000000116e270b083201000000000000000000000000000000170b091a3201000000000000000000000000000000160c0a052d0b060b071a0c0a052d090c0405106f01000001040b000b01116d027001000016070b01110f0c020b000b021110020903000101010507002b01100014027101000001030b00110b0272010001015526400300000000000000000c0007002b0110010c010a013805040d0b01010b00020a0138060c020c030b02010d000e03380744030a010e0338080c040e04380904220b04380a0c0305130b01010b00027901000001030b00117a027b01000001030b00117c027d01000001030b00117e027f01000001030b0011800102810101000001030b00118201028301030001015a27110904230e02380b041f080c080b08041b0b0111010c090a000a090b020b030b04081184010b000b090b050b060b0709118401020b0101060600000000000000270e05380b0c0805070b01010605000000000000002784010000001d1d0e02380b04100b000b010b02380c0b030b040b053803118501380d0c060b06020e03380e041b0e04380e041938030c06050e060600000000000000270606000000000000002726030001015d301109042e0a001188010b010c030d03380f0b030c040e0441030c050a0506000000000000000024041b0d0445030a0049000000001189010b05060100000000000000170c05050d0b04460300000000000000000b020320052d0a000a00112f118a010a000a00112f118b010a00118c010b00490a000000111702060500000000000000278801000001016118110904160a001163118d010c010a0011680a0138100c020a0011690a0138100c030b000b010b020b03118f01020605000000000000002790010300010172590b001101070021045707002901045507002a010c0a0a0a10021191010c0b0e0b0e01381111020c0c0e0c1193010c0d0e0d0b081194010e0d0e0b0e0d090806050000000000000011950138121197010e0d1198010e0d0a061199010e0d0a010a020a030a040a050a070b09119a010e0d119b010e0c38130c0e0b0a0f010a0e0e0c110338140e0d0a0e1163118d010a0e119d01119e010a0e119f010a0e0b010b0211630c0f0e0f11640b070b060b030b040b05120238150b0e020603000000000000002706010000000000000027a00101040101010f0b000b010b020b030b040b050b060b070b080b090b0a11a1011190010102a2010104010101100b000b010b020b030b040b050b060b070b080b090b0a0b0b11a3011190010102a40101040101780f0b001101070021040d07002a010f000c020b010b02150206010000000000000027a501010400010b0b00110107002104090b010b0211a6010206010000000000000027a701010400010a0b00110107002104080b0111a8010206010000000000000027a901010400010b0b00110107002104090b010b0211aa010206010000000000000027ab01010400010a0b00110107002104080b0111ac010206010000000000000027ad01010400010b0b00110107002104090b010b0211ae010206010000000000000027af01010400010b0b00110107002104090b010b0211b00102060100000000000000278a0103000001090a000a010811b1010b000b010911b10102b1010000008301530a000b010b02060a0000000000000011b2010c030600000000000000000c010a010e034180012304520e030a014280011411b3010c040c050c060c070a070a0011380c020e05380b044e0b05380c0c080b02200c090a000b080a0911b4010c0a0e04380b04490b04380c0c0b0a000a0a0a0b11b5010a000b070b0a0b0b0b0911b601080b06380d3816381738173817381738173818111f010b01060100000000000000160c0105080a070a00113a0c0b052e0a0011300c08052002b701030001011a201109041c0a020a000a010a0211120c0d0e0d115d0b020b000b030b040b050b060b070b01381938170b080b090b0a0b0b0b0c115a01020b000106050000000000000027b801030001011a221109041e0a020a0011010b01080a0211120c0d0e0d1119010b020b000b030b040b050b060b07381638170b080b090b0a0b0b0b0c115a01020b000106050000000000000027b90101040101010e1109040a0b000b0211ba010b010b030b041126020b000106050000000000000027bb0101000001040b000b0111bc0102bd01010001014025110904210a020c040a0306000000000000000024041d0b04110b04190b000b010b0311be010c050b020e05110a2104170b0502060700000000000000270b0001060900000000000000270b0001060800000000000000270b00010605000000000000002701020101010000e10100",
9
+ "pyth": "0xa11ceb0b0800000a090100260226220348870304cf030c05db03c401079f05990808b80d4010f80d280ca00eac050000000401050008000c000e0011001400180119011c011d00250027002d0035013b0042004401030700040b070006100700071307000a1b08000c26000100000e2c0700124500000001000100010000020302000100020602010001010101070401000101010309020100010101000a050600010101000d070600010101050f0708000101010612090a0001010107150a060001010100160b0200010005170b0200010008170c02000100091a0c0d000101010b1e0d0f01000101010b1f0c02010001010100200c020001000021090f00010007220a10000101010023070f00010101002412080001000c17141501000101010d281613000101010d29171200010101042a1207000101010d2b1618000101010d2e1601000101010d2f161800010101013019060001010107301a1b0001010106301c08000101010c311514010001010103320201000101010033161e0001000d341601000101010f360201000101010037161e00010003380201000101010539070f00010101003a1e02000100103c210f0100010101053d2202000100023e020100010101083f2302000100004012010001000d41160100010101114312120001010112271225000101011246251e0001010100472702000101010e0e0f0e15131f132808281202030301030002060800030106080002080103010800010801010802010608020106080302060c0301060c010501080401010106080106060803080003060801080003010a020102010a0900010b0501090001070b05010202070b05010203010806040806030806030308010800080001080303030308030b0b050102080603030303080603080608010803010a080205020a08020308020202020301060a09000208010802020803030208020803010807040b0501020a0802030a080202060c0a0a020470797468086162735f6469666614636865636b5f70726963655f69735f66726573680550726963650570726963650974696d657374616d700b6e6f775f7365636f6e64730d6765745f74696d657374616d70056572726f72127374616c655f70726963655f757064617465176765745f70726963655f6e6f5f6f6c6465725f7468616e0f50726963654964656e7469666965721070726963655f6964656e746966696572106765745f70726963655f756e73616665057374617465156765745f6c61746573745f70726963655f696e666f095072696365496e666f0a70726963655f696e666f0e6765745f70726963655f66656564095072696365466565640a70726963655f66656564096765745f70726963650d696e69745f696e7465726e616c04696e6974056576656e74067369676e65720a616464726573735f6f66094170746f73436f696e0a6170746f735f636f696e04636f696e1569735f6163636f756e745f726567697374657265640872656769737465720b696e69745f6d6f64756c650f69735f66726573685f757064617465146765745f70726963655f6964656e7469666965721170726963655f666565645f6578697374732070617273655f616363756d756c61746f725f7570646174655f6d65737361676506637572736f7206437572736f720b646573657269616c697a650e646573657269616c697a655f753812646573657269616c697a655f766563746f720d66726f6d5f627974655f76656314646573657269616c697a655f707974685f6936340349363408707974685f6936340f646573657269616c697a655f7536340f646573657269616c697a655f693332036e657704726573741b696e76616c69645f616363756d756c61746f725f6d6573736167651970617273655f616363756d756c61746f725f757064617465730f646573657269616c697a655f753136096b656363616b3136300f6765745f686173685f6c656e6774682470617273655f616e645f7665726966795f616363756d756c61746f725f6d6573736167651b696e76616c69645f616363756d756c61746f725f7061796c6f61641170726963655f696e666f5f6361636865640c7570646174655f636163686506766563746f720869735f656d707479157365745f6c61746573745f70726963655f696e666f106e6f775f6d6963726f7365636f6e647316656d69745f70726963655f666565645f757064617465217570646174655f70726963655f666565645f66726f6d5f73696e676c655f7661610f646573657269616c697a655f753332037661610d70617273655f7061796c6f61641762617463685f70726963655f6174746573746174696f6e15426174636850726963654174746573746174696f6e0764657374726f791e7570646174655f70726963655f66656564735f776974685f66756e646572b8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461120103322e300c322e322d756e737461626c6500000000020c0a000a012404080b000b0117020b010b00170201000000020a11020b00110311000b01230408021104270501000006080b0011060c020e020b0111010b02020601000008070b0011070c010e0111081109020a000000020f0a000b01110b0a00110c0a00110d3800030c0b003801020b0001050b1000000002040b00063c00000000000000110a0211000000111f0b0011080c010a0111090c020e0211030c030b0111120c040a0414111303140b040108020b041411060c050e0511030c060b030b062402140000001d370b0038020c010d01111631002104350d01062000000000000000111711180d0111190d01111a0d01111b0c020d01111a0c030d011119010d0111190d01111a110211020c040c050c060c070a020a03111c0b070b060b020b03111c111d0c0b0b050b040b0b111e0b0138030102112027210000001f2d0a0011160c01400800000000000000000c020a0131002404290a0011220c030a000b03111711140c040d020b0444080a0011160c050a0531002404240a0011231117010b053101170c0505170b013101170c0105050b00010b02022400000020270a00111631012104230a001116010a0011160c010a000b01341117010a001116310021041f0a0011220c020a000b021117010b001121020b00011125270b00011125271301000002030b0011260227030000241a0e00380403170d0045080c010e011111030a05000e011108140c020e021112140b0111290b02112a112b05000b0046080000000000000000022c000000261f0a0038020c010d01112d0655414e50000000002104170d0111240c020e0241080c030b020c040b0411270b013803010b03020b00112e0601000000000000000c03112f11300c04051031010400010f0600000000000000000c020b00010e013805030e0b020d014512112c160c0205040200",
10
+ "usdc": "0xa11ceb0b0800000a0c01000c020c30033cce01048a020e059802a90107c103fb0308bc074006fc076510e108280a8909120c9b09ef010d8a0b0600000104010b010e011c011f00010800010306000106060001080600020a07010001010c0b000110080001150000021b0200041e0701000005210700000d000100010101030f03040108010101011106010108010101001208010001010103120901010801010100130b0c000101010313030c01080101010009010d0001010100140e010001010103140e0100010101001600010001010103160f01000101010017101100010101031712110108010101001813010001000019130100010101021a141500010101041d01170100010101052018190001010103221a010001010102231b0b0001010101241b1c0001010101251b1d0001010101261b1e0001010102271b1f010801010101020205040206020d02111618020205030001080502050b04010900010b04010806010806030608020b0401090003020608000b0401080603060c050304060c0b0401090005030106080001050103010b040108050205080703060801050302060c0301080703060c0b040109000301060c02060c0a020108080104010b09010900010a0201080a070608080b090104080a080a02080a080a01060808010801010802010803010b04010900050808080308020801080004757364630755534443526566086d696e745f726566074d696e745265660e66756e6769626c655f6173736574086275726e5f726566074275726e5265660c7472616e736665725f7265660b5472616e73666572526566086d65746164617461064f626a656374066f626a656374084d65746164617461046275726e167072696d6172795f66756e6769626c655f73746f72651b656e737572655f7072696d6172795f73746f72655f6578697374730d46756e6769626c6553746f7265096275726e5f66726f6d087472616e736665720762616c616e6365076465706f7369740d46756e6769626c654173736574046d696e740877697468647261770b696e69745f6d6f64756c650a73657475705f75736463136372656174655f6e616d65645f6f626a6563740e436f6e7374727563746f72526566066f7074696f6e046e6f6e65064f7074696f6e06737472696e67047574663806537472696e672b6372656174655f7072696d6172795f73746f72655f656e61626c65645f66756e6769626c655f61737365741c616464726573735f66726f6d5f636f6e7374727563746f725f7265661167656e65726174655f6d696e745f7265661167656e65726174655f6275726e5f7265661567656e65726174655f7472616e736665725f7265661b6f626a6563745f66726f6d5f636f6e7374727563746f725f726566b8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a9500000000000000000000000000000000000000000000000000000000000000010520b8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a950a020504555344430a021d1c68747470733a2f2f636972636c652e636f6d2f757364632d69636f6e0a02181768747470733a2f2f636972636c652e636f6d2f7573646314636f6d70696c6174696f6e5f6d65746164617461120103322e300c322e322d756e737461626c65000204020801050802070803090b040108050001040100070f07002b000c020b000a0210001438000c030b0210010b030b0138010203010001000a0b07002b000c030b000b031000140b010b0238020205010001000a0907002b000c010b000b011000143803020701000100010507002b00100014020801000001040b000b011109020a01040100010707002b0010020b000b01110b020c010001000a0a07002b000c020b000b021000140b013804020e00000001030b00110f020f01000020210a00070111100c010e01380507011112070111123106070211120703111211130e011114010e0111150e0111160e0111170e01380612000c050b000b052d000200030001000000"
11
+ },
12
+ "errors": [],
13
+ "summary": {
14
+ "totalModules": 4,
15
+ "successful": 4,
16
+ "failed": 0
17
+ },
18
+ "modules": [
19
+ "dex_accounts",
20
+ "perp_engine",
21
+ "pyth",
22
+ "usdc"
23
+ ]
24
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * ABI fetcher that gets all ABIs used by the Decibel SDK
3
+ * Based on actual function calls found in the SDK source code
4
+ */
5
+ declare function fetchAllAbis(): Promise<void>;
6
+ export { fetchAllAbis };
7
+ //# sourceMappingURL=fetch-abis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-abis.d.ts","sourceRoot":"","sources":["../../src/abi/fetch-abis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,iBAAe,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAiG3C;AAOD,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ /**
3
+ * ABI fetcher that gets all ABIs used by the Decibel SDK
4
+ * Based on actual function calls found in the SDK source code
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.fetchAllAbis = fetchAllAbis;
41
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const constants_1 = require("../constants");
45
+ // Configuration
46
+ const CONFIG = constants_1.NETNA_CONFIG;
47
+ // All modules used in the SDK (extracted from source code analysis)
48
+ const SDK_MODULES = ["dex_accounts", "perp_engine", "pyth", "usdc"];
49
+ async function fetchAllAbis() {
50
+ console.log("šŸš€ Fetching ABIs for Decibel SDK functions...");
51
+ console.log(`šŸ“¦ Package: ${CONFIG.deployment.package}`);
52
+ console.log(`🌐 Network: ${CONFIG.network}`);
53
+ console.log(`šŸ”— Fullnode: ${CONFIG.fullnodeUrl}\n`);
54
+ if (!CONFIG.deployment.package || !CONFIG.fullnodeUrl) {
55
+ console.error("āŒ Error: deployment.package or CONFIG.fullnodeUrl is not set");
56
+ process.exit(1);
57
+ }
58
+ const config = new ts_sdk_1.AptosConfig({
59
+ network: CONFIG.network,
60
+ fullnode: CONFIG.fullnodeUrl,
61
+ });
62
+ const abis = {};
63
+ const errors = [];
64
+ const aptos = new ts_sdk_1.Aptos(config);
65
+ // Fetch entire modules at once (much more efficient!)
66
+ for (const module of SDK_MODULES) {
67
+ try {
68
+ console.log(`šŸ“” Fetching entire module: ${module}...`);
69
+ // Get the entire module ABI
70
+ const moduleInfo = await aptos.getAccountModule({
71
+ accountAddress: CONFIG.deployment.package,
72
+ moduleName: module,
73
+ });
74
+ if (!moduleInfo.abi) {
75
+ throw new Error("Module or ABI not found");
76
+ }
77
+ // Debug: Log the ABI structure
78
+ console.log(`šŸ“‹ ABI structure for ${module}:`, Object.keys(moduleInfo.abi));
79
+ // Get only entry functions from the module
80
+ const exposedFunctions = moduleInfo.abi.exposed_functions;
81
+ const entryFunctions = exposedFunctions.filter((f) => f.is_entry);
82
+ console.log(`šŸ” Found ${exposedFunctions.length} exposed functions in ${module}`);
83
+ console.log(`🧩 Keeping ${entryFunctions.length} entry functions in ${module}`);
84
+ for (const func of entryFunctions) {
85
+ const functionId = `${CONFIG.deployment.package}::${module}::${func.name}`;
86
+ abis[functionId] = func;
87
+ }
88
+ console.log(`āœ… Successfully collected ${entryFunctions.length} entry functions from ${module}`);
89
+ }
90
+ catch (error) {
91
+ const errorMessage = error instanceof Error ? error.message : String(error);
92
+ console.log(`āŒ ${module}: ${errorMessage}`);
93
+ errors.push({ module, function: "entire_module", error: errorMessage });
94
+ }
95
+ }
96
+ // Create the final structure
97
+ const totalFunctions = Object.keys(abis).length;
98
+ const result = {
99
+ packageAddress: CONFIG.deployment.package,
100
+ network: CONFIG.network,
101
+ fullnodeUrl: CONFIG.fullnodeUrl,
102
+ fetchedAt: new Date().toISOString(),
103
+ abis,
104
+ errors,
105
+ summary: {
106
+ totalModules: SDK_MODULES.length,
107
+ totalFunctions,
108
+ successful: totalFunctions,
109
+ failed: errors.length,
110
+ },
111
+ modules: SDK_MODULES,
112
+ };
113
+ // Write to JSON file
114
+ const outputPath = path.join(__dirname, "abis.json");
115
+ fs.writeFileSync(outputPath, JSON.stringify(result, null, 2));
116
+ console.log("\nšŸ“Š Summary:");
117
+ console.log(`Total modules fetched: ${SDK_MODULES.length}`);
118
+ console.log(`Total functions found: ${result.summary.successful}`);
119
+ console.log(`Failed modules: ${result.summary.failed}`);
120
+ if (errors.length > 0) {
121
+ console.log("\nāŒ Errors:");
122
+ errors.forEach(({ module, function: funcName, error }) => {
123
+ console.log(`${module}::${funcName}: ${error}\n`);
124
+ });
125
+ }
126
+ console.log(`\nšŸ“ ABIs saved to: ${outputPath}`);
127
+ console.log("\nšŸŽ‰ ABI fetching complete!");
128
+ }
129
+ // Run the script
130
+ if (require.main === module) {
131
+ fetchAllAbis().catch(console.error);
132
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Bytecode fetcher that gets the actual compiled bytecode directly from the blockchain
3
+ * This is more efficient than fetching ABIs and generating bytecode
4
+ */
5
+ export interface BytecodeData {
6
+ packageAddress: string;
7
+ network: string;
8
+ fullnodeUrl: string;
9
+ fetchedAt: string;
10
+ bytecode: Record<string, string>;
11
+ errors: Array<{
12
+ module: string;
13
+ error: string;
14
+ }>;
15
+ summary: {
16
+ totalModules: number;
17
+ successful: number;
18
+ failed: number;
19
+ };
20
+ modules: string[];
21
+ }
22
+ declare function fetchAllBytecode(): Promise<void>;
23
+ export { fetchAllBytecode };
24
+ //# sourceMappingURL=fetch-bytecode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-bytecode.d.ts","sourceRoot":"","sources":["../../src/abi/fetch-bytecode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAQD,iBAAe,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkF/C;AAOD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ /**
3
+ * Bytecode fetcher that gets the actual compiled bytecode directly from the blockchain
4
+ * This is more efficient than fetching ABIs and generating bytecode
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.fetchAllBytecode = fetchAllBytecode;
41
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const constants_1 = require("../constants");
45
+ // Configuration
46
+ const CONFIG = constants_1.NETNA_CONFIG;
47
+ // All modules used in the SDK
48
+ const SDK_MODULES = ["dex_accounts", "perp_engine", "pyth", "usdc"];
49
+ async function fetchAllBytecode() {
50
+ console.log("šŸš€ Fetching bytecode directly from blockchain...");
51
+ console.log(`šŸ“¦ Package: ${CONFIG.deployment.package}`);
52
+ console.log(`🌐 Network: ${CONFIG.network}`);
53
+ console.log(`šŸ”— Fullnode: ${CONFIG.fullnodeUrl}\n`);
54
+ if (!CONFIG.deployment.package || !CONFIG.fullnodeUrl) {
55
+ console.error("āŒ Error: deployment.package or CONFIG.fullnodeUrl is not set");
56
+ process.exit(1);
57
+ }
58
+ const config = new ts_sdk_1.AptosConfig({
59
+ network: CONFIG.network,
60
+ fullnode: CONFIG.fullnodeUrl,
61
+ });
62
+ const bytecode = {};
63
+ const errors = [];
64
+ const aptos = new ts_sdk_1.Aptos(config);
65
+ // Fetch bytecode for each module
66
+ for (const module of SDK_MODULES) {
67
+ try {
68
+ console.log(`šŸ“” Fetching bytecode for module: ${module}...`);
69
+ // Get the module bytecode directly
70
+ const moduleBytecode = await aptos.getAccountModule({
71
+ accountAddress: CONFIG.deployment.package,
72
+ moduleName: module,
73
+ });
74
+ if (!moduleBytecode.bytecode) {
75
+ throw new Error("Module bytecode not found");
76
+ }
77
+ // Store the raw bytecode
78
+ bytecode[module] = moduleBytecode.bytecode;
79
+ console.log(`āœ… Successfully fetched bytecode for ${module}`);
80
+ console.log(` - Bytecode length: ${moduleBytecode.bytecode.length} chars`);
81
+ }
82
+ catch (error) {
83
+ const errorMessage = error instanceof Error ? error.message : String(error);
84
+ console.log(`āŒ ${module}: ${errorMessage}`);
85
+ errors.push({ module, error: errorMessage });
86
+ }
87
+ }
88
+ // Create the final structure
89
+ const result = {
90
+ packageAddress: CONFIG.deployment.package,
91
+ network: CONFIG.network,
92
+ fullnodeUrl: CONFIG.fullnodeUrl,
93
+ fetchedAt: new Date().toISOString(),
94
+ bytecode,
95
+ errors,
96
+ summary: {
97
+ totalModules: SDK_MODULES.length,
98
+ successful: Object.keys(bytecode).length,
99
+ failed: errors.length,
100
+ },
101
+ modules: SDK_MODULES,
102
+ };
103
+ // Write to JSON file
104
+ const outputPath = path.join(__dirname, "bytecode.json");
105
+ fs.writeFileSync(outputPath, JSON.stringify(result, null, 2));
106
+ console.log("\nšŸ“Š Summary:");
107
+ console.log(`Total modules fetched: ${SDK_MODULES.length}`);
108
+ console.log(`Successful: ${result.summary.successful}`);
109
+ console.log(`Failed: ${result.summary.failed}`);
110
+ if (errors.length > 0) {
111
+ console.log("\nāŒ Errors:");
112
+ errors.forEach(({ module, error }) => {
113
+ console.log(`${module}: ${error}\n`);
114
+ });
115
+ }
116
+ console.log(`\nšŸ“ Bytecode saved to: ${outputPath}`);
117
+ console.log("\nšŸŽ‰ Bytecode fetching complete!");
118
+ console.log("āœ… Direct bytecode from blockchain - no ABI processing needed!");
119
+ }
120
+ // Run the script
121
+ if (require.main === module) {
122
+ fetchAllBytecode().catch(console.error);
123
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ABI fetcher that gets all ABIs used by the Decibel SDK
3
+ * Based on actual function calls found in the SDK source code
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=generate-abis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-abis.d.ts","sourceRoot":"","sources":["../../src/abi/generate-abis.ts"],"names":[],"mappings":"AAAA;;;GAGG"}