@affluent-org/sdk 0.0.2 → 0.0.3

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 (104) hide show
  1. package/dist/build/Account.compiled.json +1 -0
  2. package/dist/build/Receipt.compiled.json +1 -0
  3. package/dist/build/WTONWallet.compiled.json +1 -0
  4. package/dist/common/cache.d.ts +16 -0
  5. package/dist/common/cache.js +96 -0
  6. package/dist/common/service.d.ts +20 -0
  7. package/dist/common/service.js +69 -0
  8. package/dist/common/type.d.ts +14 -0
  9. package/dist/common/type.js +2 -0
  10. package/dist/common/unknown-contract.d.ts +14 -0
  11. package/dist/common/unknown-contract.js +18 -0
  12. package/dist/common/versions.d.ts +14 -0
  13. package/dist/common/versions.js +22 -0
  14. package/dist/constants/pool.d.ts +1 -0
  15. package/dist/constants/pool.js +2 -0
  16. package/dist/contracts/_mock/simple-oracle.d.ts +34 -0
  17. package/dist/contracts/_mock/simple-oracle.js +73 -0
  18. package/dist/contracts/vault/share-vault/type.d.ts +30 -0
  19. package/dist/contracts/vault/share-vault/type.js +2 -0
  20. package/dist/contracts/vault/strategy-vault/utils.d.ts +6 -0
  21. package/dist/contracts/vault/strategy-vault/utils.js +32 -0
  22. package/dist/factorial.d.ts +14 -0
  23. package/dist/factorial.js +20 -0
  24. package/dist/farm.d.ts +92 -0
  25. package/dist/farm.js +209 -0
  26. package/dist/monitor.d.ts +57 -0
  27. package/dist/monitor.js +527 -0
  28. package/dist/monitorCacheV1.d.ts +52 -0
  29. package/dist/monitorCacheV1.js +504 -0
  30. package/dist/oracle/oracle-v2.d.ts +39 -0
  31. package/dist/oracle/oracle-v2.js +151 -0
  32. package/dist/oracle/oracle.d.ts +107 -0
  33. package/dist/oracle/oracle.js +392 -0
  34. package/dist/periphery.d.ts +259 -0
  35. package/dist/periphery.js +1087 -0
  36. package/dist/pool.d.ts +216 -0
  37. package/dist/pool.js +2298 -0
  38. package/dist/poolCacheV1.d.ts +139 -0
  39. package/dist/poolCacheV1.js +1841 -0
  40. package/dist/rfq-auction.d.ts +75 -0
  41. package/dist/rfq-auction.js +220 -0
  42. package/dist/rfq-batch.d.ts +112 -0
  43. package/dist/rfq-batch.js +284 -0
  44. package/dist/services/share-vault/computation.d.ts +14 -17
  45. package/dist/services/share-vault/computation.js +39 -0
  46. package/dist/services/share-vault/index.js +6 -3
  47. package/dist/services/share-vault/query.d.ts +38 -8
  48. package/dist/services/share-vault/query.js +20 -27
  49. package/dist/services/share-vault/type.d.ts +19 -0
  50. package/dist/services/share-vault/type.js +2 -0
  51. package/dist/services/share-vault/user/index.js +3 -1
  52. package/dist/services/strategy-vault/computation.d.ts +1 -0
  53. package/dist/services/strategy-vault/computation.js +15 -0
  54. package/dist/services/strategy-vault/query.d.ts +147 -0
  55. package/dist/services/strategy-vault/query.js +67 -0
  56. package/dist/services/strategy-vault/type.d.ts +2 -0
  57. package/dist/services/strategy-vault/type.js +2 -0
  58. package/dist/share-vault.d.ts +91 -0
  59. package/dist/share-vault.js +747 -0
  60. package/dist/stonfi.d.ts +18 -0
  61. package/dist/stonfi.js +76 -0
  62. package/dist/strategy_vault/base.d.ts +399 -0
  63. package/dist/strategy_vault/base.js +1199 -0
  64. package/dist/strategy_vault/index.d.ts +3 -0
  65. package/dist/strategy_vault/index.js +7 -0
  66. package/dist/strategy_vault/steps.d.ts +49 -0
  67. package/dist/strategy_vault/steps.js +170 -0
  68. package/dist/types/action.d.ts +55 -0
  69. package/dist/types/action.js +2 -0
  70. package/dist/types/messages.d.ts +7 -0
  71. package/dist/types/messages.js +2 -0
  72. package/dist/types/params.d.ts +19 -0
  73. package/dist/types/params.js +2 -0
  74. package/dist/types/pool.d.ts +83 -0
  75. package/dist/types/pool.js +2 -0
  76. package/dist/types/transaction.d.ts +40 -0
  77. package/dist/types/transaction.js +2 -0
  78. package/dist/utils/_parse_temp/JumpIRM.d.ts +37 -0
  79. package/dist/utils/_parse_temp/JumpIRM.js +71 -0
  80. package/dist/utils/_parse_temp/Pool.d.ts +559 -0
  81. package/dist/utils/_parse_temp/Pool.js +1023 -0
  82. package/dist/utils/_parse_temp/ShareVault.d.ts +264 -0
  83. package/dist/utils/_parse_temp/ShareVault.js +479 -0
  84. package/dist/utils/_parse_temp/StrategyVault.d.ts +729 -0
  85. package/dist/utils/_parse_temp/StrategyVault.js +1865 -0
  86. package/dist/utils/_parse_temp/parseMsgBody.d.ts +13 -0
  87. package/dist/utils/_parse_temp/parseMsgBody.js +313 -0
  88. package/dist/utils/assert.d.ts +1 -0
  89. package/dist/utils/assert.js +9 -0
  90. package/dist/utils/client-for-parameter.d.ts +12 -0
  91. package/dist/utils/client-for-parameter.js +97 -0
  92. package/dist/utils/oracle/index.d.ts +4 -0
  93. package/dist/utils/oracle/index.js +19 -0
  94. package/dist/utils/oracle/redstone/helper.d.ts +22 -0
  95. package/dist/utils/oracle/redstone/helper.js +186 -0
  96. package/dist/utils/tracer.d.ts +13 -0
  97. package/dist/utils/tracer.js +137 -0
  98. package/dist/utils/tracker/index.d.ts +5 -0
  99. package/dist/utils/tracker/index.js +118 -0
  100. package/dist/utils/tracker/query-id-generactor.d.ts +2 -0
  101. package/dist/utils/tracker/query-id-generactor.js +12 -0
  102. package/dist/utils/tracker/type.d.ts +34 -0
  103. package/dist/utils/tracker/type.js +2 -0
  104. package/package.json +1 -1
@@ -0,0 +1,75 @@
1
+ import { Address, Cell, Sender } from "@ton/ton";
2
+ import { AddressInput, AddressLike } from "./contracts/common/type";
3
+ import { StrategyVaultState } from "./contracts/vault/strategy-vault/type";
4
+ import { ServiceBaseV1 } from "./common/service";
5
+ export declare class RFQAuctionV1 extends ServiceBaseV1 {
6
+ sendAmountBid(sender: Sender, params: {
7
+ rfqAuctionAddress: AddressInput;
8
+ bidAsset: AddressInput;
9
+ intendedBidAmount: bigint;
10
+ forwardTonAmount?: bigint;
11
+ queryId?: bigint;
12
+ }, value?: bigint): Promise<void>;
13
+ sendSlippageBid(sender: Sender, params: {
14
+ rfqAuctionAddress: AddressInput;
15
+ bidAsset: AddressInput;
16
+ slippage: number;
17
+ intendedBidAmount: bigint;
18
+ forwardfee?: bigint;
19
+ queryId?: bigint;
20
+ }, value?: bigint): Promise<void>;
21
+ sendCancelBid(sender: Sender, params: {
22
+ rfqAuctionAddress: AddressInput;
23
+ queryId?: number;
24
+ }, value?: bigint): Promise<void>;
25
+ sendSettle(sender: Sender, params: {
26
+ rfqAuctionAddress: AddressInput;
27
+ queryId?: number;
28
+ }, value?: bigint): Promise<void>;
29
+ sendClearBids(sender: Sender, params: {
30
+ rfqAuctionAddress: AddressInput;
31
+ clear_counts: number;
32
+ queryId?: number;
33
+ }, value?: bigint): Promise<void>;
34
+ getRfqData(rfqAuctionAddress: AddressInput): Promise<{
35
+ initialized: boolean;
36
+ index: bigint;
37
+ state: number;
38
+ sellerAddress: Address;
39
+ verifiedSellWallet: boolean;
40
+ verifiedBuyWallet: boolean;
41
+ depositedSellAsset: boolean;
42
+ bids: Record<string, {
43
+ bidValue: bigint;
44
+ escrowAmount: bigint;
45
+ lt: bigint;
46
+ responseAddress: Address;
47
+ forwardTonAmount: bigint;
48
+ forwardPayload: string | null;
49
+ }>;
50
+ sellAssetAddress: Address;
51
+ buyAssetAddress: Address;
52
+ sellAssetAmount: bigint;
53
+ config: {
54
+ auctionMode: number;
55
+ bidCloseTimestamp: number;
56
+ minBuyAssetValue: bigint;
57
+ maxBuyAssetValue: bigint;
58
+ allowSellerCancel: boolean;
59
+ allowBidderCancel: boolean;
60
+ priceDeviationTolerance: bigint;
61
+ };
62
+ sellAssetWalletAddress: Address | null;
63
+ buyAssetWalletAddress: Address | null;
64
+ rfqEventEmitterAddress: Address | null;
65
+ dataAggregatorCodeHash: string | null;
66
+ dataAggregatorIndex: bigint;
67
+ oracleConfig: import("./contracts/oracle/redstone-oracle/type").RedstonOracleConfig | Cell | import("./contracts/oracle/redstone-onchain-oracle/type").RedstoneOnchainOracleConfig | null;
68
+ jettonForwardTonAmount: bigint;
69
+ jettonForwardPayloadHash: string | null;
70
+ responseAddress: Address;
71
+ rfqNotiForwardTonAmount: bigint;
72
+ rfqNotiForwardPayloadHash: string | null;
73
+ }>;
74
+ getOracleParams(vaultAddress: AddressLike, additionalAssets?: AddressLike[], allFactorialVaults?: AddressLike[], vaultData?: StrategyVaultState): Promise<Cell>;
75
+ }
@@ -0,0 +1,220 @@
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.RFQAuctionV1 = void 0;
7
+ const ton_1 = require("@ton/ton");
8
+ const redstone_onchain_oracle_1 = require("./contracts/oracle/redstone-onchain-oracle");
9
+ const redstoneHelper_1 = require("./utils/oracle/redstone/redstoneHelper");
10
+ const utils_1 = require("./contracts/common/utils");
11
+ const service_1 = require("./common/service");
12
+ const rfq_auction_1 = require("./contracts/rfq/rfq_auction");
13
+ const jetton_minter_1 = require("./contracts/jetton/jetton-minter");
14
+ const jetton_wallet_1 = require("./contracts/jetton/jetton-wallet");
15
+ const strategy_vault_1 = require("./contracts/vault/strategy-vault");
16
+ const jetton_minter_2 = require("./contracts/wton/jetton-minter");
17
+ const jetton_wallet_2 = require("./contracts/wton/jetton-wallet");
18
+ const WTONWallet_compiled_json_1 = __importDefault(require("./build/WTONWallet.compiled.json"));
19
+ const strategy_vault_2 = require("./strategy_vault");
20
+ const oracle_1 = require("./oracle/oracle");
21
+ const toString = (value) => {
22
+ if (value instanceof ton_1.Address) {
23
+ return value.toString();
24
+ }
25
+ return value;
26
+ };
27
+ class RFQAuctionV1 extends service_1.ServiceBaseV1 {
28
+ async sendAmountBid(sender, params, value) {
29
+ const rfqAuction = this.getByContract(rfq_auction_1.RFQAuction, (0, utils_1.toAddress)(params.rfqAuctionAddress));
30
+ const rfqData = await rfqAuction.getRfqData();
31
+ if (rfqData.config.auctionMode !== rfq_auction_1.RFQAuction.AuctionMode.AmountBid)
32
+ throw new Error("Auction mode must be AmountBid.");
33
+ const existingBid = rfqData.bids[sender.address.toString()];
34
+ const maxEscrow = rfqData.config.maxBuyAssetValue;
35
+ const existingEscrow = existingBid?.escrowAmount ?? 0n;
36
+ const intendedBidAmount = params.intendedBidAmount > maxEscrow
37
+ ? maxEscrow
38
+ : params.intendedBidAmount;
39
+ const transferBidAmount = intendedBidAmount > existingEscrow
40
+ ? intendedBidAmount - existingEscrow
41
+ : 0n;
42
+ const rfqAddress = (0, utils_1.toAddress)(params.rfqAuctionAddress);
43
+ const bidAssetAddress = (0, utils_1.toAddress)(params.bidAsset);
44
+ const sellAsset = (0, utils_1.toAddress)(rfqData.sellAssetAddress);
45
+ const wtonAddress = (0, utils_1.toAddress)(this.contracts.WTON);
46
+ const jettonForwardTonAmount = sellAsset.toString() === wtonAddress.toString() ||
47
+ bidAssetAddress.toString() === wtonAddress.toString()
48
+ ? (0, ton_1.toNano)(0.02)
49
+ : 0n;
50
+ const jettonForwardPayload = sellAsset.toString() === wtonAddress.toString() ||
51
+ bidAssetAddress.toString() === wtonAddress.toString()
52
+ ? jetton_minter_2.WTON_UNWRAP_CELL
53
+ : null;
54
+ if (bidAssetAddress.toString() === wtonAddress.toString()) {
55
+ // send to rfqContract wton wallet
56
+ const wtonMaster = this.getByContract(jetton_minter_2.WTONMinter, bidAssetAddress);
57
+ let wtonWallet = this.client.open(jetton_wallet_2.WTONWallet.createFromConfig({
58
+ jettonMinter: wtonMaster.address,
59
+ owner: rfqAddress,
60
+ walletCode: ton_1.Cell.fromHex(WTONWallet_compiled_json_1.default.hex),
61
+ }, ton_1.Cell.fromHex(WTONWallet_compiled_json_1.default.hex)));
62
+ let gas = jetton_wallet_2.WTONWallet.Gas.ExternalTransfer + (0, ton_1.toNano)(0.1);
63
+ if (await this.client.isContractDeployed(wtonWallet.address)) {
64
+ wtonWallet = this.client.open(jetton_wallet_2.WTONWallet.createFromAddress(wtonWallet.address));
65
+ gas += (0, ton_1.toNano)(0.05);
66
+ }
67
+ await wtonWallet.sendExternalTransfer(sender, value ?? gas, {
68
+ recipient: rfqAddress,
69
+ amount: transferBidAmount,
70
+ response: sender.address,
71
+ forwardTonAmount: params.forwardTonAmount ?? (0, ton_1.toNano)(0.2) + jettonForwardTonAmount, // RFQAuction.Constants.BID_FEE ??
72
+ forwardPayload: rfq_auction_1.RFQAuction.createBidMsg(intendedBidAmount, sender.address, jettonForwardTonAmount, jettonForwardPayload),
73
+ queryId: params.queryId,
74
+ });
75
+ }
76
+ else {
77
+ const bidWalletAddress = await this.getByContract(jetton_minter_1.JettonMinter, params.bidAsset).getWalletAddress(sender.address);
78
+ const bidWallet = this.getByContract(jetton_wallet_1.JettonWallet, bidWalletAddress);
79
+ await bidWallet.sendTransfer(sender, value ?? (0, ton_1.toNano)(0.3), {
80
+ recipient: (0, utils_1.toAddress)(params.rfqAuctionAddress),
81
+ response: sender.address,
82
+ amount: transferBidAmount,
83
+ forwardTonAmount: params.forwardTonAmount ?? (0, ton_1.toNano)(0.2) + jettonForwardTonAmount,
84
+ forwardPayload: rfq_auction_1.RFQAuction.createBidMsg(intendedBidAmount, sender.address, jettonForwardTonAmount, jettonForwardPayload),
85
+ });
86
+ }
87
+ }
88
+ async sendSlippageBid(sender, params, value) {
89
+ const rfqAuction = this.getByContract(rfq_auction_1.RFQAuction, (0, utils_1.toAddress)(params.rfqAuctionAddress));
90
+ const rfqData = await rfqAuction.getRfqData();
91
+ if (rfqData.config.auctionMode !== rfq_auction_1.RFQAuction.AuctionMode.SlippageBid)
92
+ throw new Error("Auction mode must be SlippageBid.");
93
+ if (params.slippage < 0)
94
+ throw new Error("Slippage must not be negative in SlippageBid mode.");
95
+ const existingBid = rfqData.bids[sender.address.toString()];
96
+ const existingEscrow = existingBid?.escrowAmount ?? 0n;
97
+ const intendedBidAmount = params.intendedBidAmount > existingEscrow
98
+ ? params.intendedBidAmount - existingEscrow
99
+ : 0n;
100
+ const slippage = (0, ton_1.toNano)(params.slippage);
101
+ const rfqAddress = (0, utils_1.toAddress)(params.rfqAuctionAddress);
102
+ const bidAssetAddress = (0, utils_1.toAddress)(params.bidAsset);
103
+ const sellAsset = (0, utils_1.toAddress)(rfqData.sellAssetAddress);
104
+ const wtonAddress = (0, utils_1.toAddress)(this.contracts.WTON);
105
+ const jettonForwardTonAmount = sellAsset.toString() === wtonAddress.toString() ||
106
+ bidAssetAddress.toString() === wtonAddress.toString()
107
+ ? (0, ton_1.toNano)(0.02)
108
+ : 0n;
109
+ const jettonForwardPayload = sellAsset.toString() === wtonAddress.toString() ||
110
+ bidAssetAddress.toString() === wtonAddress.toString()
111
+ ? jetton_minter_2.WTON_UNWRAP_CELL
112
+ : null;
113
+ if (bidAssetAddress.toString() === (0, utils_1.toAddress)(this.contracts.WTON).toString()) {
114
+ // send to rfqContract wton wallet
115
+ const wtonMaster = this.getByContract(jetton_minter_2.WTONMinter, bidAssetAddress);
116
+ let wtonWallet = this.client.open(jetton_wallet_2.WTONWallet.createFromConfig({
117
+ jettonMinter: wtonMaster.address,
118
+ owner: rfqAddress,
119
+ walletCode: ton_1.Cell.fromHex(WTONWallet_compiled_json_1.default.hex),
120
+ }, ton_1.Cell.fromHex(WTONWallet_compiled_json_1.default.hex)));
121
+ let gas = jetton_wallet_2.WTONWallet.Gas.ExternalTransfer + (0, ton_1.toNano)(0.1);
122
+ if (await this.client.isContractDeployed(wtonWallet.address)) {
123
+ wtonWallet = this.client.open(jetton_wallet_2.WTONWallet.createFromAddress(wtonWallet.address));
124
+ gas += (0, ton_1.toNano)(0.05);
125
+ }
126
+ await wtonWallet.sendExternalTransfer(sender, value ?? gas, {
127
+ recipient: rfqAddress,
128
+ amount: intendedBidAmount,
129
+ response: sender.address,
130
+ forwardTonAmount: params.forwardfee ?? (0, ton_1.toNano)(0.2) + jettonForwardTonAmount, // RFQAuction.Constants.BID_FEE ??
131
+ forwardPayload: rfq_auction_1.RFQAuction.createBidMsg(slippage, sender.address, jettonForwardTonAmount, jettonForwardPayload),
132
+ queryId: params.queryId,
133
+ });
134
+ }
135
+ else {
136
+ // send to sender jetton wallet
137
+ const bidWalletAddress = await this.getByContract(jetton_minter_1.JettonMinter, bidAssetAddress).getWalletAddress(sender.address);
138
+ const bidWallet = this.getByContract(jetton_wallet_1.JettonWallet, bidWalletAddress);
139
+ await bidWallet.sendTransfer(sender, value ?? (0, ton_1.toNano)(0.3), {
140
+ recipient: rfqAddress,
141
+ response: sender.address,
142
+ amount: intendedBidAmount,
143
+ forwardTonAmount: params.forwardfee ?? (0, ton_1.toNano)(0.2) + jettonForwardTonAmount, // RFQAuction.Constants.BID_FEE ??
144
+ forwardPayload: rfq_auction_1.RFQAuction.createBidMsg(slippage, sender.address, jettonForwardTonAmount, jettonForwardPayload),
145
+ queryId: params.queryId,
146
+ });
147
+ }
148
+ }
149
+ async sendCancelBid(sender, params, value) {
150
+ const rfqAuction = this.getByContract(rfq_auction_1.RFQAuction, (0, utils_1.toAddress)(params.rfqAuctionAddress));
151
+ await rfqAuction.sendCancelBid(sender, value ?? (0, ton_1.toNano)(0.1));
152
+ }
153
+ async sendSettle(sender, params, value) {
154
+ const rfqAuction = this.getByContract(rfq_auction_1.RFQAuction, (0, utils_1.toAddress)(params.rfqAuctionAddress));
155
+ const oracleLibs = new oracle_1.OracleLibs(this.client, this.network);
156
+ const oracleParams = await oracleLibs.getOracleParamsForStrategyVaultRFQAuction(await rfqAuction.getRfqData());
157
+ await rfqAuction.sendSettle(sender, value ?? (0, ton_1.toNano)(1), { oracleParams });
158
+ }
159
+ async sendClearBids(sender, params, value) {
160
+ const rfqAuction = this.getByContract(rfq_auction_1.RFQAuction, (0, utils_1.toAddress)(params.rfqAuctionAddress));
161
+ const fee = value ?? (0, ton_1.toNano)(0.005 * params.clear_counts) + (0, ton_1.toNano)(0.1);
162
+ await rfqAuction.sendClearBids(sender, fee, params.clear_counts);
163
+ }
164
+ async getRfqData(rfqAuctionAddress) {
165
+ const rfqAuction = this.getByContract(rfq_auction_1.RFQAuction, (0, utils_1.toAddress)(rfqAuctionAddress));
166
+ return await rfqAuction.getRfqData();
167
+ }
168
+ async getOracleParams(vaultAddress, additionalAssets = [], allFactorialVaults = [], vaultData) {
169
+ const sv = new strategy_vault_2.StrategyVaultV1(this.client, this.network);
170
+ const vault = this.getByContract(strategy_vault_1.StrategyVault, (0, utils_1.toAddress)(vaultAddress));
171
+ vaultData = vaultData ?? (await vault.getVaultData());
172
+ const allAssetAddresses = new Set();
173
+ additionalAssets.map((item) => allAssetAddresses.add(item.toString()));
174
+ Object.keys(vaultData.assets).forEach((assetAddress) => {
175
+ const asset = vaultData.assets[assetAddress];
176
+ if (asset.cash > 0) {
177
+ allAssetAddresses.add(assetAddress);
178
+ }
179
+ });
180
+ const pools = [];
181
+ for (const poolAddress of Object.keys(vaultData.factorialPools)) {
182
+ const assets = vaultData.factorialPools[poolAddress];
183
+ for (const assetAddress of Object.keys(assets)) {
184
+ if (assets[assetAddress].supply > 0 ||
185
+ assets[assetAddress].borrow > 0) {
186
+ pools.push(poolAddress);
187
+ break;
188
+ }
189
+ }
190
+ }
191
+ const { vaultAssetAddresses, pureAssetAddresses } = await sv.splitPureAndVaultAsset([...allAssetAddresses]);
192
+ const result = redstone_onchain_oracle_1.RedstoneOnchainOracle.getOracleRequestParams(pureAssetAddresses,
193
+ // @ts-ignore
194
+ vaultData.oracleConfig);
195
+ const helper = (0, redstoneHelper_1.createRedstoneHelper)("prod");
196
+ const payload = await helper.createPayload(result.redstoneAssetNames);
197
+ const requestAssetCell = redstone_onchain_oracle_1.RedstoneOnchainOracle.createAddressToTupleCell(result.requestAssets);
198
+ const dataFeedIdsTupleBuilder = new ton_1.TupleBuilder();
199
+ result.feedIds.forEach((item) => dataFeedIdsTupleBuilder.writeNumber(item));
200
+ const feedIdCell = (0, ton_1.serializeTuple)(dataFeedIdsTupleBuilder.build());
201
+ let requestFactorialPoolsCell = pools.length > 0
202
+ ? redstone_onchain_oracle_1.RedstoneOnchainOracle.createAddressToTupleCell(pools.map((item) => ton_1.Address.parse(item)))
203
+ : null;
204
+ let requestFactorialVaultsCell = vaultAssetAddresses.length > 0
205
+ ? redstone_onchain_oracle_1.RedstoneOnchainOracle.createAddressToTupleCell(vaultAssetAddresses.map((item) => ton_1.Address.parse(item)))
206
+ : null;
207
+ let requestFactorialCell = (0, ton_1.beginCell)()
208
+ .storeMaybeRef(requestFactorialPoolsCell)
209
+ .storeMaybeRef(requestFactorialVaultsCell)
210
+ .endCell();
211
+ const oracleParams = (0, ton_1.beginCell)()
212
+ .storeRef(feedIdCell)
213
+ .storeRef(payload)
214
+ .storeRef(requestAssetCell)
215
+ .storeRef(requestFactorialCell)
216
+ .endCell();
217
+ return oracleParams;
218
+ }
219
+ }
220
+ exports.RFQAuctionV1 = RFQAuctionV1;
@@ -0,0 +1,112 @@
1
+ import { Address, Cell, internal, Sender } from "@ton/ton";
2
+ import { AddressInput } from "./contracts/common/type";
3
+ import { ServiceBaseV1 } from "./common/service";
4
+ export declare class RFQBatchV1 extends ServiceBaseV1 {
5
+ sendAddOrder(sender: Sender, params: {
6
+ senderAddress: AddressInput;
7
+ rfqBatchAddress: AddressInput;
8
+ assetAddress: AddressInput;
9
+ amount: bigint;
10
+ forwardTonAmount?: bigint;
11
+ forwardPayload?: Cell | null;
12
+ queryId?: bigint;
13
+ }, value?: bigint): Promise<void>;
14
+ sendSettle(sender: Sender, params: {
15
+ senderAddress: AddressInput;
16
+ rfqBatchAddress: AddressInput;
17
+ assetAddress: AddressInput;
18
+ amount: bigint;
19
+ forwardTonAmount?: bigint;
20
+ forwardPayload?: Cell | null;
21
+ queryId?: bigint;
22
+ }, value?: bigint): Promise<void>;
23
+ separateAssets(_assets: string[], oracleConfig: any): Promise<{
24
+ assets: string[];
25
+ vaultAssets: string[];
26
+ }>;
27
+ getParsedVaults(vaultAddresses: (Address | string)[]): Promise<Record<string, VaultPosition>>;
28
+ getExposures(vaults: Record<string, VaultPosition>): Promise<{
29
+ pools: string[];
30
+ assets: string[];
31
+ }>;
32
+ getOracleParams(rfqBatchAddress: AddressInput): Promise<Cell>;
33
+ sendLock(sender: Sender, params: {
34
+ rfqBatchAddress: AddressInput;
35
+ }, value?: bigint): Promise<void>;
36
+ sendCancelOrder(sender: Sender, params: {
37
+ rfqBatchAddress: AddressInput;
38
+ assetAddress: AddressInput;
39
+ }, value?: bigint): Promise<void>;
40
+ sendPayout(sender: Sender, params: {
41
+ rfqBatchAddress: AddressInput;
42
+ assetAddress: AddressInput;
43
+ count: number;
44
+ }, value?: bigint): Promise<void>;
45
+ sendReopen(sender: Sender, params: {
46
+ rfqBatchAddress: AddressInput;
47
+ }, value?: bigint): Promise<void>;
48
+ sendCollectFee(sender: Sender, params: {
49
+ rfqBatchAddress: AddressInput;
50
+ }, value?: bigint): Promise<void>;
51
+ getRfqBatchData(rfqBatchAddress: AddressInput): Promise<{
52
+ index: bigint;
53
+ asset0Address: Address;
54
+ asset1Address: Address;
55
+ asset0TotalAmount: bigint;
56
+ asset1TotalAmount: bigint;
57
+ asset0Orders: Record<string, import("./contracts/rfq/rfq_batch").Order>;
58
+ asset1Orders: Record<string, import("./contracts/rfq/rfq_batch").Order>;
59
+ status: number;
60
+ lockedTimestamp: number;
61
+ lockOwner: Address | null;
62
+ asset0WalletAddress: Address | null;
63
+ asset1WalletAddress: Address | null;
64
+ aggregatorIndex: bigint;
65
+ feeRate: bigint;
66
+ feeManager: Address | null;
67
+ whitelistedSettlers: Record<string, boolean>;
68
+ lockPeriod: number;
69
+ lockCooldown: number;
70
+ asset0CollectedFee: bigint;
71
+ asset1CollectedFee: bigint;
72
+ orderCount: bigint;
73
+ orderLimit: bigint;
74
+ asset0MinAmount: bigint;
75
+ asset1MinAmount: bigint;
76
+ asset0MaxAmount: bigint;
77
+ asset1MaxAmount: bigint;
78
+ guardianAddress: Address | null;
79
+ asset0Price: bigint;
80
+ asset1Price: bigint;
81
+ oracleConfig: import("./contracts/oracle/redstone-oracle/type").RedstonOracleConfig | Cell | import("./contracts/oracle/redstone-onchain-oracle/type").RedstoneOnchainOracleConfig | null;
82
+ }>;
83
+ createInternalAddOrder(sender: Sender, params: {
84
+ senderAddress: AddressInput;
85
+ rfqBatchAddress: AddressInput;
86
+ assetAddress: AddressInput;
87
+ amount: bigint;
88
+ forwardTonAmount?: bigint;
89
+ forwardPayload?: Cell | null;
90
+ queryId?: bigint;
91
+ }, value?: bigint): Promise<{
92
+ to: Address | string;
93
+ value: bigint | string;
94
+ extracurrency?: import("@ton/core/dist/utils/maybe").Maybe<import("@ton/ton").ExtraCurrency>;
95
+ bounce?: import("@ton/core/dist/utils/maybe").Maybe<boolean>;
96
+ init?: import("@ton/core/dist/utils/maybe").Maybe<import("@ton/ton").StateInit>;
97
+ body?: import("@ton/core/dist/utils/maybe").Maybe<Cell | string>;
98
+ }>;
99
+ createInternalCancelOrder(params: {
100
+ rfqBatchAddress: AddressInput;
101
+ assetAddress: AddressInput;
102
+ }, value?: bigint): Promise<Parameters<typeof internal>[0]>;
103
+ }
104
+ type VaultPosition = {
105
+ assets: Record<string, bigint>;
106
+ poolPositions: Record<string, Record<string, {
107
+ supply: bigint;
108
+ borrow: bigint;
109
+ }>>;
110
+ totalSupply: bigint;
111
+ };
112
+ export {};