@affluent-org/sdk 0.0.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 (218) hide show
  1. package/.prettierrc +11 -0
  2. package/Refactoring.md +548 -0
  3. package/dist/_compiled/Account.compiled.json +1 -0
  4. package/dist/_compiled/Receipt.compiled.json +1 -0
  5. package/dist/_compiled/WTONWallet.compiled.json +1 -0
  6. package/dist/_compiled/index.d.ts +4 -0
  7. package/dist/_compiled/index.js +12 -0
  8. package/dist/affluent.d.ts +14 -0
  9. package/dist/affluent.js +20 -0
  10. package/dist/constants/constants.d.ts +2 -0
  11. package/dist/constants/constants.js +5 -0
  12. package/dist/constants/contracts.d.ts +9 -0
  13. package/dist/constants/contracts.js +18 -0
  14. package/dist/context.d.ts +43 -0
  15. package/dist/context.js +90 -0
  16. package/dist/contracts/common/type.d.ts +16 -0
  17. package/dist/contracts/common/type.js +2 -0
  18. package/dist/contracts/common/utils.d.ts +3 -0
  19. package/dist/contracts/common/utils.js +16 -0
  20. package/dist/contracts/core/account/index.d.ts +38 -0
  21. package/dist/contracts/core/account/index.js +128 -0
  22. package/dist/contracts/core/account/type.d.ts +18 -0
  23. package/dist/contracts/core/account/type.js +2 -0
  24. package/dist/contracts/core/pool/index.d.ts +149 -0
  25. package/dist/contracts/core/pool/index.js +379 -0
  26. package/dist/contracts/core/pool/serializer.d.ts +15 -0
  27. package/dist/contracts/core/pool/serializer.js +307 -0
  28. package/dist/contracts/core/pool/type.d.ts +136 -0
  29. package/dist/contracts/core/pool/type.js +2 -0
  30. package/dist/contracts/dedust-farm/MockDedustFarm.d.ts +41 -0
  31. package/dist/contracts/dedust-farm/MockDedustFarm.js +79 -0
  32. package/dist/contracts/external/tonstaker.d.ts +18 -0
  33. package/dist/contracts/external/tonstaker.js +26 -0
  34. package/dist/contracts/factory/factory.d.ts +24 -0
  35. package/dist/contracts/factory/factory.js +58 -0
  36. package/dist/contracts/factory/type.d.ts +11 -0
  37. package/dist/contracts/factory/type.js +2 -0
  38. package/dist/contracts/farm/distributor.d.ts +43 -0
  39. package/dist/contracts/farm/distributor.js +83 -0
  40. package/dist/contracts/farm/receipt.d.ts +40 -0
  41. package/dist/contracts/farm/receipt.js +68 -0
  42. package/dist/contracts/irm/jump-irm/serializer.d.ts +4 -0
  43. package/dist/contracts/irm/jump-irm/serializer.js +26 -0
  44. package/dist/contracts/irm/jump-irm/type.d.ts +8 -0
  45. package/dist/contracts/irm/jump-irm/type.js +2 -0
  46. package/dist/contracts/jetton/jetton-minter.d.ts +23 -0
  47. package/dist/contracts/jetton/jetton-minter.js +46 -0
  48. package/dist/contracts/jetton/jetton-wallet.d.ts +67 -0
  49. package/dist/contracts/jetton/jetton-wallet.js +119 -0
  50. package/dist/contracts/jetton/type.d.ts +7 -0
  51. package/dist/contracts/jetton/type.js +2 -0
  52. package/dist/contracts/liquid_token/dedust/minter.d.ts +56 -0
  53. package/dist/contracts/liquid_token/dedust/minter.js +112 -0
  54. package/dist/contracts/liquid_token/dedust/wallet.d.ts +127 -0
  55. package/dist/contracts/liquid_token/dedust/wallet.js +213 -0
  56. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonMinter.d.ts +53 -0
  57. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonMinter.js +110 -0
  58. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonWallet.d.ts +169 -0
  59. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonWallet.js +288 -0
  60. package/dist/contracts/oracle/composite-onchain-oracle/index.d.ts +108 -0
  61. package/dist/contracts/oracle/composite-onchain-oracle/index.js +185 -0
  62. package/dist/contracts/oracle/parser.d.ts +7 -0
  63. package/dist/contracts/oracle/parser.js +77 -0
  64. package/dist/contracts/oracle/redstone-onchain-oracle/index.d.ts +56 -0
  65. package/dist/contracts/oracle/redstone-onchain-oracle/index.js +159 -0
  66. package/dist/contracts/oracle/redstone-onchain-oracle/serializer.d.ts +4 -0
  67. package/dist/contracts/oracle/redstone-onchain-oracle/serializer.js +137 -0
  68. package/dist/contracts/oracle/redstone-onchain-oracle/type.d.ts +57 -0
  69. package/dist/contracts/oracle/redstone-onchain-oracle/type.js +18 -0
  70. package/dist/contracts/oracle/redstone-oracle/serializer.d.ts +3 -0
  71. package/dist/contracts/oracle/redstone-oracle/serializer.js +30 -0
  72. package/dist/contracts/oracle/redstone-oracle/type.d.ts +9 -0
  73. package/dist/contracts/oracle/redstone-oracle/type.js +2 -0
  74. package/dist/contracts/oracle/redstone-parser.d.ts +9 -0
  75. package/dist/contracts/oracle/redstone-parser.js +58 -0
  76. package/dist/contracts/rfq/rfq_auction/index.d.ts +216 -0
  77. package/dist/contracts/rfq/rfq_auction/index.js +334 -0
  78. package/dist/contracts/rfq/rfq_batch/index.d.ts +346 -0
  79. package/dist/contracts/rfq/rfq_batch/index.js +448 -0
  80. package/dist/contracts/rfq/rfq_event_emitter/index.d.ts +132 -0
  81. package/dist/contracts/rfq/rfq_event_emitter/index.js +143 -0
  82. package/dist/contracts/stonfi-farm/MockStonfiFarmItem.d.ts +41 -0
  83. package/dist/contracts/stonfi-farm/MockStonfiFarmItem.js +83 -0
  84. package/dist/contracts/stonfi-farm/MockStonfiFarmMinter.d.ts +45 -0
  85. package/dist/contracts/stonfi-farm/MockStonfiFarmMinter.js +92 -0
  86. package/dist/contracts/unknown-contract/index.d.ts +14 -0
  87. package/dist/contracts/unknown-contract/index.js +18 -0
  88. package/dist/contracts/vault/share-vault/index.d.ts +206 -0
  89. package/dist/contracts/vault/share-vault/index.js +373 -0
  90. package/dist/contracts/vault/strategy-vault/codec.d.ts +710 -0
  91. package/dist/contracts/vault/strategy-vault/codec.js +1256 -0
  92. package/dist/contracts/vault/strategy-vault/computation.d.ts +11 -0
  93. package/dist/contracts/vault/strategy-vault/computation.js +56 -0
  94. package/dist/contracts/vault/strategy-vault/constants.d.ts +163 -0
  95. package/dist/contracts/vault/strategy-vault/constants.js +170 -0
  96. package/dist/contracts/vault/strategy-vault/index.d.ts +587 -0
  97. package/dist/contracts/vault/strategy-vault/index.js +406 -0
  98. package/dist/contracts/vault/strategy-vault/type.d.ts +115 -0
  99. package/dist/contracts/vault/strategy-vault/type.js +2 -0
  100. package/dist/contracts/wton/jetton-minter.d.ts +35 -0
  101. package/dist/contracts/wton/jetton-minter.js +71 -0
  102. package/dist/contracts/wton/jetton-wallet.d.ts +90 -0
  103. package/dist/contracts/wton/jetton-wallet.js +153 -0
  104. package/dist/contracts/wton/type.d.ts +7 -0
  105. package/dist/contracts/wton/type.js +2 -0
  106. package/dist/index.d.ts +34 -0
  107. package/dist/index.js +65 -0
  108. package/dist/lib/assert.d.ts +1 -0
  109. package/dist/lib/assert.js +9 -0
  110. package/dist/lib/query-cache.d.ts +5 -0
  111. package/dist/lib/query-cache.js +57 -0
  112. package/dist/lib/send-msg.d.ts +11 -0
  113. package/dist/lib/send-msg.js +9 -0
  114. package/dist/services/composite-oracle/computation.d.ts +55 -0
  115. package/dist/services/composite-oracle/computation.js +295 -0
  116. package/dist/services/composite-oracle/index.d.ts +45 -0
  117. package/dist/services/composite-oracle/index.js +110 -0
  118. package/dist/services/composite-oracle/query.d.ts +36 -0
  119. package/dist/services/composite-oracle/query.js +251 -0
  120. package/dist/services/composite-oracle/types.d.ts +82 -0
  121. package/dist/services/composite-oracle/types.js +11 -0
  122. package/dist/services/pool/computation.d.ts +75 -0
  123. package/dist/services/pool/computation.js +219 -0
  124. package/dist/services/pool/index.d.ts +94 -0
  125. package/dist/services/pool/index.js +139 -0
  126. package/dist/services/pool/oracle.d.ts +20 -0
  127. package/dist/services/pool/oracle.js +61 -0
  128. package/dist/services/pool/owner/index.d.ts +37 -0
  129. package/dist/services/pool/owner/index.js +76 -0
  130. package/dist/services/pool/owner/types.d.ts +18 -0
  131. package/dist/services/pool/owner/types.js +2 -0
  132. package/dist/services/pool/query.d.ts +64 -0
  133. package/dist/services/pool/query.js +282 -0
  134. package/dist/services/pool/user/index.d.ts +86 -0
  135. package/dist/services/pool/user/index.js +285 -0
  136. package/dist/services/pool/user/types.d.ts +44 -0
  137. package/dist/services/pool/user/types.js +2 -0
  138. package/dist/services/rfq-auction/index.d.ts +81 -0
  139. package/dist/services/rfq-auction/index.js +93 -0
  140. package/dist/services/rfq-auction/oracle.d.ts +19 -0
  141. package/dist/services/rfq-auction/oracle.js +60 -0
  142. package/dist/services/rfq-auction/query.d.ts +50 -0
  143. package/dist/services/rfq-auction/query.js +19 -0
  144. package/dist/services/rfq-auction/user/index.d.ts +63 -0
  145. package/dist/services/rfq-auction/user/index.js +218 -0
  146. package/dist/services/rfq-auction/user/types.d.ts +29 -0
  147. package/dist/services/rfq-auction/user/types.js +2 -0
  148. package/dist/services/rfq-batch/index.d.ts +78 -0
  149. package/dist/services/rfq-batch/index.js +132 -0
  150. package/dist/services/rfq-batch/oracle.d.ts +22 -0
  151. package/dist/services/rfq-batch/oracle.js +54 -0
  152. package/dist/services/rfq-batch/query.d.ts +46 -0
  153. package/dist/services/rfq-batch/query.js +34 -0
  154. package/dist/services/rfq-batch/user/index.d.ts +79 -0
  155. package/dist/services/rfq-batch/user/index.js +171 -0
  156. package/dist/services/rfq-batch/user/types.d.ts +37 -0
  157. package/dist/services/rfq-batch/user/types.js +2 -0
  158. package/dist/services/share-vault/computation.d.ts +24 -0
  159. package/dist/services/share-vault/computation.js +42 -0
  160. package/dist/services/share-vault/index.d.ts +90 -0
  161. package/dist/services/share-vault/index.js +128 -0
  162. package/dist/services/share-vault/manager/index.d.ts +40 -0
  163. package/dist/services/share-vault/manager/index.js +111 -0
  164. package/dist/services/share-vault/manager/types.d.ts +23 -0
  165. package/dist/services/share-vault/manager/types.js +2 -0
  166. package/dist/services/share-vault/owner/index.d.ts +64 -0
  167. package/dist/services/share-vault/owner/index.js +122 -0
  168. package/dist/services/share-vault/owner/types.d.ts +33 -0
  169. package/dist/services/share-vault/owner/types.js +2 -0
  170. package/dist/services/share-vault/query.d.ts +34 -0
  171. package/dist/services/share-vault/query.js +138 -0
  172. package/dist/services/share-vault/user/index.d.ts +33 -0
  173. package/dist/services/share-vault/user/index.js +106 -0
  174. package/dist/services/share-vault/user/types.d.ts +13 -0
  175. package/dist/services/share-vault/user/types.js +2 -0
  176. package/dist/services/strategy-vault/index.d.ts +2124 -0
  177. package/dist/services/strategy-vault/index.js +268 -0
  178. package/dist/services/strategy-vault/manager/index.d.ts +1968 -0
  179. package/dist/services/strategy-vault/manager/index.js +475 -0
  180. package/dist/services/strategy-vault/manager/types.d.ts +144 -0
  181. package/dist/services/strategy-vault/manager/types.js +2 -0
  182. package/dist/services/strategy-vault/oracle.d.ts +66 -0
  183. package/dist/services/strategy-vault/oracle.js +162 -0
  184. package/dist/services/strategy-vault/owner/index.d.ts +277 -0
  185. package/dist/services/strategy-vault/owner/index.js +333 -0
  186. package/dist/services/strategy-vault/owner/types.d.ts +146 -0
  187. package/dist/services/strategy-vault/owner/types.js +2 -0
  188. package/dist/services/strategy-vault/query.d.ts +138 -0
  189. package/dist/services/strategy-vault/query.js +59 -0
  190. package/dist/services/strategy-vault/user/index.d.ts +89 -0
  191. package/dist/services/strategy-vault/user/index.js +219 -0
  192. package/dist/services/strategy-vault/user/types.d.ts +46 -0
  193. package/dist/services/strategy-vault/user/types.js +2 -0
  194. package/dist/types/sender.d.ts +7 -0
  195. package/dist/types/sender.js +2 -0
  196. package/dist/utils/action-parser.d.ts +7 -0
  197. package/dist/utils/action-parser.js +20 -0
  198. package/dist/utils/external-message-hash.d.ts +45 -0
  199. package/dist/utils/external-message-hash.js +65 -0
  200. package/dist/utils/oracle/redstone/readonlyCachedRedstone.d.ts +3 -0
  201. package/dist/utils/oracle/redstone/readonlyCachedRedstone.js +25 -0
  202. package/dist/utils/oracle/redstone/redstoneHelper.d.ts +21 -0
  203. package/dist/utils/oracle/redstone/redstoneHelper.js +228 -0
  204. package/dist/utils/parser.d.ts +40 -0
  205. package/dist/utils/parser.js +580 -0
  206. package/dist/utils/pending-tracker/index.d.ts +14 -0
  207. package/dist/utils/pending-tracker/index.js +34 -0
  208. package/dist/utils/pending-tracker/trackable-sender.d.ts +16 -0
  209. package/dist/utils/pending-tracker/trackable-sender.js +87 -0
  210. package/dist/utils/pending-tracker/type.d.ts +78 -0
  211. package/dist/utils/pending-tracker/type.js +2 -0
  212. package/dist/utils/pending-tracker/v3-client.d.ts +31 -0
  213. package/dist/utils/pending-tracker/v3-client.js +104 -0
  214. package/dist/utils/risk_calculator/risk_calculator.d.ts +45 -0
  215. package/dist/utils/risk_calculator/risk_calculator.js +332 -0
  216. package/dist/utils/utils.d.ts +5 -0
  217. package/dist/utils/utils.js +12 -0
  218. package/package.json +46 -0
@@ -0,0 +1,448 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RFQBatch = void 0;
4
+ const core_1 = require("@ton/core");
5
+ const parser_1 = require("../../oracle/parser");
6
+ class RFQBatch {
7
+ address;
8
+ init;
9
+ constructor(address, init) {
10
+ this.address = address;
11
+ this.init = init;
12
+ }
13
+ static State = {
14
+ Open: 0,
15
+ Closed: 1,
16
+ };
17
+ static Constant = {
18
+ Open: 0,
19
+ Closed: 1,
20
+ };
21
+ static Fee = {
22
+ AddOrder: 20000000n,
23
+ Settle: 20000000n,
24
+ JettonTransfer: 60000000n,
25
+ };
26
+ static Op = {
27
+ Initialize: 0xbe5a7595,
28
+ AddOrder: 0x193a4483,
29
+ IterOrders: 0x45f879fa,
30
+ Settle: 0xb48a809e,
31
+ ProvideAggregatedData: 0xb0c69ffe,
32
+ TakeAggregatedData: 0x77c65602,
33
+ Distribute: 0xf0bf073f,
34
+ Lock: 0x683a7dab,
35
+ CancelOrder: 0x67134629,
36
+ Reset: 0xf6ce5dcc,
37
+ Payout: 0xd4374956,
38
+ Reopen: 0xb9d749b8,
39
+ CollectFee: 0x9d21f1da,
40
+ VerifiedWallet: 0xb97c1901,
41
+ };
42
+ static Error = {
43
+ UnknownOp: 0xffff,
44
+ Unauthorized: 1000,
45
+ Locked: 1001,
46
+ NotEnoughGas: 1002,
47
+ OrderNotFound: 1003,
48
+ Closed: 1004,
49
+ Opened: 1005,
50
+ // NotFoundPrice: 1006,
51
+ NotWhitelistedSettler: 1007,
52
+ WrongDepositAsset: 1008,
53
+ NotEnoughDepositAsset: 1009,
54
+ ExistOrder: 1010,
55
+ NotLocked: 1011,
56
+ NotLockOwner: 1012,
57
+ CellUnderflow: 9,
58
+ CountTooLarge: 1034,
59
+ OrderLimitReached: 1013,
60
+ NotFoundPrice: 7300,
61
+ };
62
+ static computeOrderReserveFee(forwardTonAmount, isFirst) {
63
+ let fee = forwardTonAmount;
64
+ if (isFirst) {
65
+ fee = forwardTonAmount + RFQBatch.Fee.JettonTransfer + RFQBatch.Fee.Settle;
66
+ }
67
+ return fee;
68
+ }
69
+ static createFromAddress(address) {
70
+ return new RFQBatch(address);
71
+ }
72
+ static createFromConfig(config, code, workchain = 0) {
73
+ const data = (0, core_1.beginCell)()
74
+ .storeCoins(config.index ?? 0n)
75
+ .storeAddress(config.asset0Address)
76
+ .storeAddress(config.asset1Address)
77
+ .storeCoins(0)
78
+ .storeCoins(0)
79
+ .storeMaybeRef(null)
80
+ .storeMaybeRef(null)
81
+ .storeUint(0, 8)
82
+ .storeUint(0, 40)
83
+ .storeRef((0, core_1.beginCell)()
84
+ .storeAddress(null)
85
+ .storeAddress(null)
86
+ .storeRef(config.aggregatorCode)
87
+ .storeCoins(0)
88
+ .storeMaybeRef(config.oracleConfig)
89
+ .storeCoins(config.feeRate)
90
+ .storeAddress(config.feeConfigurer)
91
+ .storeMaybeRef(config.whitelistedSettlers)
92
+ .storeUint(config.lockPeriod, 32)
93
+ .storeUint(config.lockCooldown, 32)
94
+ .endCell())
95
+ .storeRef((0, core_1.beginCell)()
96
+ .storeAddress(null)
97
+ .storeCoins(0)
98
+ .storeCoins(0)
99
+ .storeCoins(0)
100
+ .storeCoins(config.orderLimit ?? 1000n)
101
+ .storeCoins(config.asset0MinAmount ?? 0n)
102
+ .storeCoins(config.asset1MinAmount ?? 0n)
103
+ .storeRef((0, core_1.beginCell)()
104
+ .storeCoins(config.asset0MaxAmount ?? 0n)
105
+ .storeCoins(config.asset1MaxAmount ?? 0n)
106
+ .storeAddress(config.guardianAddress ?? null)
107
+ .storeCoins(0)
108
+ .storeCoins(0)
109
+ .endCell())
110
+ .endCell())
111
+ .endCell();
112
+ const init = { code, data };
113
+ return new RFQBatch((0, core_1.contractAddress)(workchain, init), init);
114
+ }
115
+ async sendLock(provider, via, value) {
116
+ await provider.internal(via, {
117
+ value,
118
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
119
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.Lock, 32).storeUint(0, 64).endCell(),
120
+ });
121
+ }
122
+ async sendDeploy(provider, via, value) {
123
+ await provider.internal(via, {
124
+ value,
125
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
126
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.Initialize, 32).endCell(),
127
+ });
128
+ }
129
+ static createOrderMsg(response, forwardTonAmount = 0n, forwardPayload) {
130
+ return (0, core_1.beginCell)()
131
+ .storeUint(RFQBatch.Op.AddOrder, 32)
132
+ .storeAddress(response)
133
+ .storeCoins(forwardTonAmount)
134
+ .storeMaybeRef(forwardPayload)
135
+ .endCell();
136
+ }
137
+ static createSettleMsg(oracleParams) {
138
+ return (0, core_1.beginCell)().storeUint(RFQBatch.Op.Settle, 32).storeMaybeRef(oracleParams).endCell();
139
+ }
140
+ async sendInitialize(provider, via, value) {
141
+ await provider.internal(via, {
142
+ value,
143
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
144
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.Initialize, 32).storeUint(0, 64).endCell(),
145
+ });
146
+ }
147
+ async sendAddOrder(provider, via, value, { isAsset0, amount, }) {
148
+ await provider.internal(via, {
149
+ value,
150
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
151
+ body: (0, core_1.beginCell)()
152
+ .storeUint(RFQBatch.Op.AddOrder, 32)
153
+ .storeUint(0, 64)
154
+ .storeBit(isAsset0)
155
+ .storeCoins(amount)
156
+ .endCell(),
157
+ });
158
+ }
159
+ async sendCancelOrder(provider, via, value, { assetIdx, }) {
160
+ await provider.internal(via, {
161
+ value,
162
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
163
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.CancelOrder, 32).storeUint(0, 64).storeUint(assetIdx, 1).endCell(),
164
+ });
165
+ }
166
+ async sendIterOrders(provider, via, value) {
167
+ await provider.internal(via, {
168
+ value,
169
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
170
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.IterOrders, 32).storeUint(0, 64).endCell(),
171
+ });
172
+ }
173
+ async sendSettle(provider, via, value, { oracleParams, }) {
174
+ await provider.internal(via, {
175
+ value,
176
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
177
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.Settle, 32).storeUint(0, 64).storeRef(oracleParams).endCell(),
178
+ });
179
+ }
180
+ async sendPayout(provider, via, value, { assetIdx, count, }) {
181
+ await provider.internal(via, {
182
+ value,
183
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
184
+ body: (0, core_1.beginCell)()
185
+ .storeUint(RFQBatch.Op.Payout, 32)
186
+ .storeUint(0, 64)
187
+ .storeUint(assetIdx, 1)
188
+ .storeCoins(count)
189
+ .endCell(),
190
+ });
191
+ }
192
+ async sendReopen(provider, via, value) {
193
+ await provider.internal(via, {
194
+ value,
195
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
196
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.Reopen, 32).storeUint(0, 64).endCell(),
197
+ });
198
+ }
199
+ async sendCollectFee(provider, via, value) {
200
+ await provider.internal(via, {
201
+ value,
202
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
203
+ body: (0, core_1.beginCell)().storeUint(RFQBatch.Op.CollectFee, 32).storeUint(0, 64).endCell(),
204
+ });
205
+ }
206
+ static parseRFQBatchEvent(externals) {
207
+ const msg = externals.map((item) => {
208
+ try {
209
+ if (item.info.dest?.value) {
210
+ const op = Number(item.info.dest.value);
211
+ const ds = item.body.asSlice();
212
+ if (op === RFQBatch.Op.Initialize) {
213
+ const storage = RFQBatch.parseRFQBatchStorage(ds.loadRef());
214
+ return {
215
+ name: "RFQBatch.Op.Initialize",
216
+ op,
217
+ success: true,
218
+ storage,
219
+ };
220
+ }
221
+ else if (op === RFQBatch.Op.VerifiedWallet) {
222
+ const asset = ds.loadAddress();
223
+ return {
224
+ name: "RFQBatch.Op.VerifiedWallet",
225
+ op,
226
+ success: true,
227
+ asset,
228
+ };
229
+ }
230
+ else if (op === RFQBatch.Op.AddOrder) {
231
+ const assetIdx = ds.loadUint(1);
232
+ const amount = ds.loadCoins();
233
+ const fromAddress = ds.loadAddress();
234
+ return {
235
+ name: "RFQBatch.Op.AddOrder",
236
+ op,
237
+ success: true,
238
+ assetIdx,
239
+ amount,
240
+ fromAddress,
241
+ };
242
+ }
243
+ else if (op === RFQBatch.Op.Lock) {
244
+ const lockedTimestamp = ds.loadUint(40);
245
+ const lockOwner = ds.loadAddress();
246
+ return {
247
+ name: "RFQBatch.Op.Lock",
248
+ op,
249
+ success: true,
250
+ lockOwner,
251
+ lockedTimestamp,
252
+ };
253
+ }
254
+ else if (op === RFQBatch.Op.CancelOrder) {
255
+ const assetIdx = ds.loadUint(1);
256
+ const amount = ds.loadCoins();
257
+ const fromAddress = ds.loadAddress();
258
+ return {
259
+ name: "RFQBatch.Op.CancelOrder",
260
+ op,
261
+ success: true,
262
+ assetIdx,
263
+ amount,
264
+ fromAddress,
265
+ };
266
+ }
267
+ else if (op === RFQBatch.Op.Settle) {
268
+ const assetIdx = ds.loadUint(1);
269
+ const fromAddress = ds.loadAddress();
270
+ const currentPrice = ds.loadCoins();
271
+ const targetPrice = ds.loadCoins();
272
+ return {
273
+ name: "RFQBatch.Op.Settle",
274
+ op,
275
+ success: true,
276
+ assetIdx,
277
+ fromAddress,
278
+ currentPrice,
279
+ targetPrice,
280
+ };
281
+ }
282
+ else if (op === RFQBatch.Op.Payout) {
283
+ const assetIdx = ds.loadUint(1);
284
+ const count = ds.loadUint(16);
285
+ const isRest = ds.loadBit();
286
+ return {
287
+ name: "RFQBatch.Op.Payout",
288
+ op,
289
+ success: true,
290
+ assetIdx,
291
+ count,
292
+ isRest,
293
+ };
294
+ }
295
+ else if (op === RFQBatch.Op.Reopen) {
296
+ return {
297
+ name: "RFQBatch.Op.Reopen",
298
+ op,
299
+ success: true,
300
+ };
301
+ }
302
+ }
303
+ }
304
+ catch (e) { }
305
+ return {
306
+ name: "Unknown op",
307
+ op: item.info.dest?.value ?? 0,
308
+ dest: item.info.dest?.value,
309
+ };
310
+ });
311
+ return msg;
312
+ }
313
+ static parseRFQBatchStorage(dataCell) {
314
+ const data = dataCell.beginParse();
315
+ const index = data.loadCoins();
316
+ const asset0Address = data.loadAddress();
317
+ const asset1Address = data.loadAddress();
318
+ const asset0TotalAmount = data.loadCoins();
319
+ const asset1TotalAmount = data.loadCoins();
320
+ const _asset0Orders = data.loadMaybeRef();
321
+ const _asset1Orders = data.loadMaybeRef();
322
+ const status = data.loadUint(8);
323
+ const lockedTimestamp = data.loadUint(40);
324
+ const additional1DS = data.loadRef().beginParse();
325
+ const asset0WalletAddress = additional1DS.loadMaybeAddress();
326
+ const asset1WalletAddress = additional1DS.loadMaybeAddress();
327
+ const aggregatorCode = additional1DS.loadRef();
328
+ const aggregatorIndex = additional1DS.loadCoins();
329
+ const oracleConfigRaw = additional1DS.loadMaybeRef();
330
+ const oracleConfig = oracleConfigRaw ? (0, parser_1.parseOracleConfig)(oracleConfigRaw) : null;
331
+ const feeRate = additional1DS.loadCoins();
332
+ const feeManager = additional1DS.loadMaybeAddress();
333
+ const _whitelistedSettlers = additional1DS.loadMaybeRef();
334
+ const lockPeriod = additional1DS.loadUint(32);
335
+ const lockCooldown = additional1DS.loadUint(32);
336
+ const additional2DS = data.loadRef().beginParse();
337
+ const lockOwner = additional2DS.loadMaybeAddress();
338
+ const asset0CollectedFee = additional2DS.loadCoins();
339
+ const asset1CollectedFee = additional2DS.loadCoins();
340
+ const orderCount = additional2DS.loadCoins();
341
+ const orderLimit = additional2DS.loadCoins();
342
+ const asset0MinAmount = additional2DS.loadCoins();
343
+ const asset1MinAmount = additional2DS.loadCoins();
344
+ const additional3DS = additional2DS.loadRef().beginParse();
345
+ const asset0MaxAmount = additional3DS.loadCoins();
346
+ const asset1MaxAmount = additional3DS.loadCoins();
347
+ const guardianAddress = additional3DS.loadMaybeAddress();
348
+ const asset0Price = additional3DS.loadCoins();
349
+ const asset1Price = additional3DS.loadCoins();
350
+ let asset0Orders = {};
351
+ let asset1Orders = {};
352
+ if (_asset0Orders) {
353
+ const _orders = _asset0Orders
354
+ .beginParse()
355
+ .loadDictDirect(core_1.Dictionary.Keys.Address(), RFQBatch.Dictionary.Values.Order());
356
+ _orders.keys().forEach((key) => {
357
+ asset0Orders[key.toString()] = _orders.get(key);
358
+ });
359
+ }
360
+ if (_asset1Orders) {
361
+ const _orders = _asset1Orders
362
+ .beginParse()
363
+ .loadDictDirect(core_1.Dictionary.Keys.Address(), RFQBatch.Dictionary.Values.Order());
364
+ _orders.keys().forEach((key) => {
365
+ asset1Orders[key.toString()] = _orders.get(key);
366
+ });
367
+ }
368
+ let whitelistedSettlers = {};
369
+ if (_whitelistedSettlers) {
370
+ const _settlers = _whitelistedSettlers
371
+ .beginParse()
372
+ .loadDictDirect(core_1.Dictionary.Keys.Address(), RFQBatch.Dictionary.Values.Empty());
373
+ _settlers.keys().forEach((key) => {
374
+ whitelistedSettlers[key.toString()] = true;
375
+ });
376
+ }
377
+ return {
378
+ index,
379
+ asset0Address,
380
+ asset1Address,
381
+ asset0TotalAmount,
382
+ asset1TotalAmount,
383
+ asset0Orders,
384
+ asset1Orders,
385
+ status,
386
+ lockedTimestamp,
387
+ lockOwner,
388
+ asset0WalletAddress,
389
+ asset1WalletAddress,
390
+ aggregatorIndex,
391
+ feeRate,
392
+ feeManager,
393
+ whitelistedSettlers,
394
+ lockPeriod,
395
+ lockCooldown,
396
+ asset0CollectedFee,
397
+ asset1CollectedFee,
398
+ orderCount,
399
+ orderLimit,
400
+ asset0MinAmount,
401
+ asset1MinAmount,
402
+ asset0MaxAmount,
403
+ asset1MaxAmount,
404
+ guardianAddress,
405
+ asset0Price,
406
+ asset1Price,
407
+ oracleConfig,
408
+ };
409
+ }
410
+ static Dictionary = {
411
+ Values: {
412
+ Order: () => ({
413
+ serialize: (src, builder) => { },
414
+ parse: (src) => {
415
+ const amount = src.loadCoins();
416
+ const response = src.loadAddress();
417
+ const forwardTonAmount = src.loadCoins();
418
+ const forwardPayload = src.loadMaybeRef();
419
+ return {
420
+ amount,
421
+ response,
422
+ forwardTonAmount,
423
+ forwardPayload: forwardPayload ? forwardPayload.hash().toString("hex") : null,
424
+ };
425
+ },
426
+ }),
427
+ Empty: () => ({
428
+ serialize: (src, builder) => { },
429
+ parse: (src) => {
430
+ return null;
431
+ },
432
+ }),
433
+ },
434
+ };
435
+ async getRFQData(provider) {
436
+ const _state = await provider.getState();
437
+ if (_state.state.type !== "active")
438
+ throw "not active";
439
+ if (!_state.state.data)
440
+ throw "not active";
441
+ return RFQBatch.parseRFQBatchStorage(core_1.Cell.fromBoc(_state.state.data)[0]);
442
+ }
443
+ async getState(provider) {
444
+ const _state = await provider.getState();
445
+ return _state;
446
+ }
447
+ }
448
+ exports.RFQBatch = RFQBatch;
@@ -0,0 +1,132 @@
1
+ import { Address, Cell, Contract, ContractProvider, Sender } from "@ton/core";
2
+ export type RFQActionConfig = {
3
+ rfqAuctionCode: Cell;
4
+ rfqBatchCode: Cell;
5
+ };
6
+ export declare class RFQEventEmitter implements Contract {
7
+ readonly address: Address;
8
+ readonly init?: {
9
+ code: Cell;
10
+ data: Cell;
11
+ } | undefined;
12
+ constructor(address: Address, init?: {
13
+ code: Cell;
14
+ data: Cell;
15
+ } | undefined);
16
+ static Op: {
17
+ EmitEvent: number;
18
+ };
19
+ static Error: {
20
+ UnknownOp: number;
21
+ Unauthorized: number;
22
+ };
23
+ static createFromAddress(address: Address): RFQEventEmitter;
24
+ static createFromConfig(config: RFQActionConfig, code: Cell, workchain?: number): RFQEventEmitter;
25
+ sendDeploy(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
26
+ static parseRFQEvent(cell: Cell): {
27
+ parsed: boolean;
28
+ storage: {
29
+ initialized: boolean;
30
+ index: bigint;
31
+ state: number;
32
+ sellerAddress: Address;
33
+ verifiedSellWallet: boolean;
34
+ verifiedBuyWallet: boolean;
35
+ depositedSellAsset: boolean;
36
+ bids: Record<string, {
37
+ bidValue: bigint;
38
+ escrowAmount: bigint;
39
+ lt: bigint;
40
+ responseAddress: Address;
41
+ forwardTonAmount: bigint;
42
+ forwardPayload: string | null;
43
+ }>;
44
+ sellAssetAddress: Address;
45
+ buyAssetAddress: Address;
46
+ sellAssetAmount: bigint;
47
+ config: {
48
+ auctionMode: number;
49
+ bidCloseTimestamp: number;
50
+ minBuyAssetValue: bigint;
51
+ maxBuyAssetValue: bigint;
52
+ allowSellerCancel: boolean;
53
+ allowBidderCancel: boolean;
54
+ priceDeviationTolerance: bigint;
55
+ };
56
+ sellAssetWalletAddress: Address | null;
57
+ buyAssetWalletAddress: Address | null;
58
+ rfqEventEmitterAddress: Address | null;
59
+ dataAggregatorCodeHash: string | null;
60
+ dataAggregatorIndex: bigint;
61
+ oracleConfig: Cell | import("../../oracle/redstone-onchain-oracle/type").RedstoneOnchainOracleConfig | import("../../oracle/redstone-oracle/type").RedstonOracleConfig | null;
62
+ jettonForwardTonAmount: bigint;
63
+ jettonForwardPayloadHash: string | null;
64
+ responseAddress: Address;
65
+ rfqNotiForwardTonAmount: bigint;
66
+ rfqNotiForwardPayloadHash: string | null;
67
+ };
68
+ rfqIndex: bigint;
69
+ ownerAddress: Address;
70
+ excessesAddress: Address;
71
+ op: number;
72
+ type: string;
73
+ } | {
74
+ parsed: boolean;
75
+ asset: Address;
76
+ rfqIndex: bigint;
77
+ ownerAddress: Address;
78
+ excessesAddress: Address;
79
+ op: number;
80
+ type: string;
81
+ } | {
82
+ parsed: boolean;
83
+ rfqIndex: bigint;
84
+ ownerAddress: Address;
85
+ excessesAddress: Address;
86
+ op: number;
87
+ type: string;
88
+ } | {
89
+ parsed: boolean;
90
+ bidder: Address;
91
+ bidValue: bigint;
92
+ escrowAmount: bigint;
93
+ lt: number;
94
+ rfqIndex: bigint;
95
+ ownerAddress: Address;
96
+ excessesAddress: Address;
97
+ op: number;
98
+ type: string;
99
+ } | {
100
+ parsed: boolean;
101
+ bidder: Address | null;
102
+ settleAmount: bigint;
103
+ rfqIndex: bigint;
104
+ ownerAddress: Address;
105
+ excessesAddress: Address;
106
+ op: number;
107
+ type: string;
108
+ } | {
109
+ parsed: boolean;
110
+ bidder: Address;
111
+ rfqIndex: bigint;
112
+ ownerAddress: Address;
113
+ excessesAddress: Address;
114
+ op: number;
115
+ type: string;
116
+ } | {
117
+ parsed: boolean;
118
+ count: bigint;
119
+ isRemaining: boolean;
120
+ rfqIndex: bigint;
121
+ ownerAddress: Address;
122
+ excessesAddress: Address;
123
+ op: number;
124
+ type: string;
125
+ } | {
126
+ rfqIndex: bigint;
127
+ ownerAddress: Address;
128
+ excessesAddress: Address;
129
+ op: number;
130
+ parsed: boolean;
131
+ } | null;
132
+ }