@affluent-org/sdk 0.0.4 → 0.0.6

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 (110) hide show
  1. package/dist/affluent.d.ts +3 -3
  2. package/dist/affluent.js +3 -3
  3. package/dist/common/computation.d.ts +6 -0
  4. package/dist/common/computation.js +54 -0
  5. package/dist/common/helper.d.ts +5 -0
  6. package/dist/common/helper.js +29 -0
  7. package/dist/common/service.d.ts +10 -2
  8. package/dist/common/service.js +56 -3
  9. package/dist/common/trace-action.d.ts +92 -0
  10. package/dist/common/trace-action.js +187 -0
  11. package/dist/common/transform.d.ts +87 -0
  12. package/dist/common/transform.js +264 -0
  13. package/dist/common/types.d.ts +140 -0
  14. package/dist/common/types.js +11 -0
  15. package/dist/context.d.ts +3 -0
  16. package/dist/context.js +9 -0
  17. package/dist/contracts/oracle/redstone-onchain-oracle/index.js +2 -0
  18. package/dist/contracts/oracle/redstone-onchain-oracle/type.d.ts +1 -1
  19. package/dist/contracts/vault/strategy-vault/index.d.ts +2 -1
  20. package/dist/contracts/vault/strategy-vault/index.js +1 -0
  21. package/dist/factorial.d.ts +18 -8
  22. package/dist/factorial.js +26 -14
  23. package/dist/index.d.ts +4 -2
  24. package/dist/index.js +18 -2
  25. package/dist/lib/send-msg.d.ts +16 -2
  26. package/dist/lib/send-msg.js +23 -2
  27. package/dist/monitor.js +2 -0
  28. package/dist/monitorCacheV1.js +3 -2
  29. package/dist/oracle/oracle.d.ts +3 -2
  30. package/dist/oracle/oracle.js +25 -2
  31. package/dist/pool.d.ts +41 -0
  32. package/dist/pool.js +146 -178
  33. package/dist/poolCacheV1.js +1 -0
  34. package/dist/rfq-auction.d.ts +2 -2
  35. package/dist/rfq-auction.js +6 -6
  36. package/dist/rfq-batch.d.ts +21 -11
  37. package/dist/rfq-batch.js +81 -9
  38. package/dist/services/composite-oracle/codec.d.ts +76 -0
  39. package/dist/services/composite-oracle/codec.js +281 -0
  40. package/dist/services/composite-oracle/computation.d.ts +8 -19
  41. package/dist/services/composite-oracle/computation.js +119 -76
  42. package/dist/services/composite-oracle/index.d.ts +2 -2
  43. package/dist/services/composite-oracle/index.js +5 -6
  44. package/dist/services/composite-oracle/query.d.ts +6 -6
  45. package/dist/services/composite-oracle/query.js +6 -47
  46. package/dist/services/pool/computation.d.ts +3 -9
  47. package/dist/services/pool/computation.js +12 -78
  48. package/dist/services/pool/index.d.ts +10 -59
  49. package/dist/services/pool/index.js +55 -8
  50. package/dist/services/pool/oracle.d.ts +2 -2
  51. package/dist/services/pool/query.d.ts +1 -1
  52. package/dist/services/pool/query.js +1 -1
  53. package/dist/services/pool/user/trace.d.ts +90 -0
  54. package/dist/services/pool/user/trace.js +168 -0
  55. package/dist/services/rfq-auction/index.d.ts +7 -23
  56. package/dist/services/rfq-auction/index.js +45 -6
  57. package/dist/services/rfq-auction/oracle.d.ts +2 -2
  58. package/dist/services/rfq-auction/user/index.js +1 -1
  59. package/dist/services/rfq-auction/user/trace.d.ts +53 -0
  60. package/dist/services/rfq-auction/user/trace.js +68 -0
  61. package/dist/services/rfq-batch/index.d.ts +16 -13
  62. package/dist/services/rfq-batch/index.js +34 -10
  63. package/dist/services/rfq-batch/oracle.d.ts +2 -2
  64. package/dist/services/rfq-batch/user/trace.d.ts +49 -0
  65. package/dist/services/rfq-batch/user/trace.js +67 -0
  66. package/dist/services/share-vault/index.d.ts +14 -88
  67. package/dist/services/share-vault/index.js +37 -10
  68. package/dist/services/share-vault/query.d.ts +5 -32
  69. package/dist/services/share-vault/query.js +25 -12
  70. package/dist/services/share-vault/user/trace.d.ts +54 -0
  71. package/dist/services/share-vault/user/trace.js +84 -0
  72. package/dist/services/strategy-vault/index.d.ts +77 -2115
  73. package/dist/services/strategy-vault/index.js +119 -54
  74. package/dist/services/strategy-vault/oracle.d.ts +3 -3
  75. package/dist/services/strategy-vault/oracle.js +1 -0
  76. package/dist/services/strategy-vault/owner/index.d.ts +2 -2
  77. package/dist/services/strategy-vault/owner/index.js +1 -1
  78. package/dist/services/strategy-vault/owner/types.d.ts +4 -0
  79. package/dist/services/strategy-vault/query.d.ts +14 -143
  80. package/dist/services/strategy-vault/query.js +28 -40
  81. package/dist/services/strategy-vault/user/trace.d.ts +156 -0
  82. package/dist/services/strategy-vault/user/trace.js +264 -0
  83. package/dist/share-vault.d.ts +164 -8
  84. package/dist/share-vault.js +222 -67
  85. package/dist/strategy_vault/base.d.ts +521 -105
  86. package/dist/strategy_vault/base.js +493 -41
  87. package/dist/strategy_vault/steps.d.ts +120 -3
  88. package/dist/strategy_vault/steps.js +161 -0
  89. package/dist/types/sender.d.ts +1 -0
  90. package/dist/utils/_parse_temp/StrategyVault.d.ts +9 -9
  91. package/dist/utils/_parse_temp/StrategyVault.js +48 -40
  92. package/dist/utils/_parse_temp/parseMsgBody.d.ts +2 -2
  93. package/dist/utils/_parse_temp/parseMsgBody.js +84 -84
  94. package/dist/utils/external-message-hash.d.ts +7 -3
  95. package/dist/utils/external-message-hash.js +20 -7
  96. package/dist/utils/oracle/redstone/helper.js +2 -0
  97. package/dist/utils/oracle/redstone/redstoneHelper.d.ts +7 -0
  98. package/dist/utils/oracle/redstone/redstoneHelper.js +103 -1
  99. package/dist/utils/pending-tracker/trackable-sender.d.ts +37 -4
  100. package/dist/utils/pending-tracker/trackable-sender.js +47 -8
  101. package/dist/utils/pending-tracker/v3-client.d.ts +16 -0
  102. package/dist/utils/pending-tracker/v3-client.js +80 -2
  103. package/dist/utils/risk_calculator/risk_calculator.d.ts +3 -3
  104. package/dist/utils/toncenter/index.d.ts +1 -0
  105. package/dist/utils/toncenter/index.js +17 -0
  106. package/dist/utils/toncenter/transform.d.ts +11 -0
  107. package/dist/utils/toncenter/transform.js +40 -0
  108. package/dist/utils/toncenter/type.d.ts +227 -0
  109. package/dist/utils/toncenter/type.js +2 -0
  110. package/package.json +3 -3
@@ -0,0 +1,53 @@
1
+ import { Address, Cell } from "@ton/core";
2
+ import { TracerBase } from "../../../common/trace-action";
3
+ import { MessageHash } from "../../../utils/external-message-hash";
4
+ import { TonClient } from "@ton/ton";
5
+ import { AffluentContext } from "../../../context";
6
+ import { ToncenterV3Client } from "../../../utils/pending-tracker/v3-client";
7
+ export type RFQAuctionAddresses = {
8
+ actor: Address;
9
+ actorBidAssetWallet: Address;
10
+ rfqAuction: Address;
11
+ rfqAuctionBidAssetWallet: Address;
12
+ };
13
+ export declare function getRFQAuctionAddresses(client: TonClient, params: {
14
+ actor: Address;
15
+ bidAsset: Address;
16
+ rfqAuction: Address;
17
+ }): Promise<RFQAuctionAddresses>;
18
+ export type RFQAuctionBidTracerParams = {
19
+ ctx: AffluentContext;
20
+ msgBody: Cell;
21
+ extHash: MessageHash;
22
+ actor: Address;
23
+ bidAsset: Address;
24
+ rfqAuction: Address;
25
+ isWTON: boolean;
26
+ };
27
+ export declare class RFQAuctionBidTracer extends TracerBase<"jetton" | "wton"> {
28
+ static create(params: RFQAuctionBidTracerParams): Promise<RFQAuctionBidTracer>;
29
+ constructor(toncenterClient: ToncenterV3Client, params: {
30
+ isWTON: boolean;
31
+ queryId: bigint;
32
+ extHash: MessageHash;
33
+ addresses: RFQAuctionAddresses;
34
+ });
35
+ }
36
+ export type RFQAuctionCancelBidTracerParams = {
37
+ ctx: AffluentContext;
38
+ msgBody: Cell;
39
+ extHash: MessageHash;
40
+ actor: Address;
41
+ bidAsset: Address;
42
+ rfqAuction: Address;
43
+ isWTON: boolean;
44
+ };
45
+ export declare class RFQAuctionCancelBidTracer extends TracerBase<"cancel"> {
46
+ static create(params: RFQAuctionCancelBidTracerParams): Promise<RFQAuctionCancelBidTracer>;
47
+ constructor(toncenterClient: ToncenterV3Client, params: {
48
+ isWTON: boolean;
49
+ queryId: bigint;
50
+ extHash: MessageHash;
51
+ addresses: RFQAuctionAddresses;
52
+ });
53
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RFQAuctionCancelBidTracer = exports.RFQAuctionBidTracer = void 0;
4
+ exports.getRFQAuctionAddresses = getRFQAuctionAddresses;
5
+ const trace_action_1 = require("../../../common/trace-action");
6
+ const rfq_auction_1 = require("../../../contracts/rfq/rfq_auction");
7
+ const jetton_minter_1 = require("../../../contracts/jetton/jetton-minter");
8
+ async function getRFQAuctionAddresses(client, params) {
9
+ const { actor, bidAsset, rfqAuction } = params;
10
+ const _bidAsset = client.open(jetton_minter_1.JettonMinter.createFromAddress(bidAsset));
11
+ return {
12
+ actor,
13
+ actorBidAssetWallet: await _bidAsset.getWalletAddress(actor),
14
+ rfqAuction,
15
+ rfqAuctionBidAssetWallet: await _bidAsset.getWalletAddress(rfqAuction),
16
+ };
17
+ }
18
+ class RFQAuctionBidTracer extends trace_action_1.TracerBase {
19
+ static async create(params) {
20
+ const { ctx, msgBody, extHash, actor, bidAsset, rfqAuction, isWTON } = params;
21
+ const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
22
+ const addresses = await getRFQAuctionAddresses(ctx.client, { actor, bidAsset, rfqAuction });
23
+ return new RFQAuctionBidTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
24
+ }
25
+ constructor(toncenterClient, params) {
26
+ const { isWTON, queryId, extHash, addresses } = params;
27
+ const type = isWTON ? "wton" : "jetton";
28
+ const steps = [
29
+ ...(0, trace_action_1.createJettonSendSteps)({
30
+ isWTON,
31
+ actor: addresses.actor,
32
+ actorWallet: addresses.actorBidAssetWallet,
33
+ targetWallet: addresses.rfqAuctionBidAssetWallet,
34
+ target: addresses.rfqAuction,
35
+ description: "Transferring Bid Asset",
36
+ }),
37
+ ];
38
+ super(toncenterClient, extHash, type, queryId, steps);
39
+ }
40
+ }
41
+ exports.RFQAuctionBidTracer = RFQAuctionBidTracer;
42
+ class RFQAuctionCancelBidTracer extends trace_action_1.TracerBase {
43
+ static async create(params) {
44
+ const { ctx, msgBody, extHash, actor, bidAsset, rfqAuction, isWTON } = params;
45
+ const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
46
+ const addresses = await getRFQAuctionAddresses(ctx.client, { actor, bidAsset, rfqAuction });
47
+ return new RFQAuctionCancelBidTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
48
+ }
49
+ constructor(toncenterClient, params) {
50
+ const { isWTON, queryId, extHash, addresses } = params;
51
+ const steps = [
52
+ {
53
+ op: rfq_auction_1.RFQAuction.Op.CancelBid,
54
+ from: addresses.actor,
55
+ to: addresses.rfqAuction,
56
+ description: "Cancelling Bid",
57
+ },
58
+ ...(0, trace_action_1.createJettonReceiveSteps)({
59
+ isWTON,
60
+ sourceWallet: addresses.rfqAuctionBidAssetWallet,
61
+ actorWallet: addresses.actorBidAssetWallet,
62
+ description: "Refunding Bid Asset",
63
+ }),
64
+ ];
65
+ super(toncenterClient, extHash, "cancel", queryId, steps);
66
+ }
67
+ }
68
+ exports.RFQAuctionCancelBidTracer = RFQAuctionCancelBidTracer;
@@ -1,11 +1,13 @@
1
1
  import { AffluentContext } from "../../context";
2
2
  import { AddressInput } from "../../contracts/common/type";
3
3
  import { AddressSender, MultiSender } from "../../types/sender";
4
+ import { RFQBatchAddOrderTracer, RFQBatchCancelOrderTracer } from "./user/trace";
4
5
  import * as query from "./query";
5
6
  import * as oracle from "./oracle";
6
7
  import * as user from "./user";
7
8
  export { sendMsg } from "../../lib/send-msg";
8
9
  export * from "./user/types";
10
+ export * from "./user/trace";
9
11
  export { query, oracle, user };
10
12
  export declare class RFQBatchServiceV1 {
11
13
  private ctx;
@@ -48,14 +50,8 @@ export declare class RFQBatchServiceV1 {
48
50
  oracleParams: import("@ton/core").Cell;
49
51
  bucket: oracle.OracleExposures;
50
52
  }>;
51
- sendAddOrder(sender: AddressSender, params: user.AddOrderParams, value?: bigint): Promise<{
52
- recipient: import("@ton/core").Address;
53
- response: import("@ton/core").Address;
54
- amount: bigint;
55
- forwardTonAmount: bigint;
56
- forwardPayload: import("@ton/core").Cell;
57
- queryId: bigint | undefined;
58
- }>;
53
+ sendAddOrder(sender: AddressSender, params: user.AddOrderParams, value?: bigint): Promise<RFQBatchAddOrderTracer>;
54
+ sendCancelOrder(sender: AddressSender, params: user.CancelOrderParams, value?: bigint): Promise<RFQBatchCancelOrderTracer>;
59
55
  sendSettle(sender: AddressSender, params: user.SettleParams, value?: bigint): Promise<{
60
56
  recipient: import("@ton/core").Address;
61
57
  response: import("@ton/core").Address;
@@ -63,16 +59,23 @@ export declare class RFQBatchServiceV1 {
63
59
  forwardTonAmount: bigint;
64
60
  forwardPayload: import("@ton/core").Cell;
65
61
  queryId: bigint | undefined;
62
+ } & {
63
+ seqno: number;
66
64
  }>;
67
- sendLock(sender: AddressSender, params: user.LockParams, value?: bigint): Promise<{}>;
68
- sendCancelOrder(sender: AddressSender, params: user.CancelOrderParams, value?: bigint): Promise<{
69
- assetIdx: 0 | 1;
65
+ sendLock(sender: AddressSender, params: user.LockParams, value?: bigint): Promise<{
66
+ seqno: number;
70
67
  }>;
71
68
  sendPayout(sender: AddressSender, params: user.PayoutParams, value?: bigint): Promise<{
72
69
  assetIdx: 0 | 1;
73
70
  count: number;
71
+ } & {
72
+ seqno: number;
73
+ }>;
74
+ sendReopen(sender: AddressSender, params: user.ReopenParams, value?: bigint): Promise<{
75
+ seqno: number;
76
+ }>;
77
+ sendCollectFee(sender: AddressSender, params: user.CollectFeeParams, value?: bigint): Promise<{
78
+ seqno: number;
74
79
  }>;
75
- sendReopen(sender: AddressSender, params: user.ReopenParams, value?: bigint): Promise<{}>;
76
- sendCollectFee(sender: AddressSender, params: user.CollectFeeParams, value?: bigint): Promise<{}>;
77
80
  sendBatchPayout(sender: MultiSender, params: user.BatchPayoutParams, value?: bigint): Promise<void>;
78
81
  }
@@ -40,6 +40,8 @@ exports.RFQBatchServiceV1 = exports.user = exports.oracle = exports.query = expo
40
40
  const core_1 = require("@ton/core");
41
41
  const context_1 = require("../../context");
42
42
  const send_msg_1 = require("../../lib/send-msg");
43
+ const utils_1 = require("../../contracts/common/utils");
44
+ const trace_1 = require("./user/trace");
43
45
  const query = __importStar(require("./query"));
44
46
  exports.query = query;
45
47
  const oracle = __importStar(require("./oracle"));
@@ -49,6 +51,7 @@ exports.user = user;
49
51
  var send_msg_2 = require("../../lib/send-msg");
50
52
  Object.defineProperty(exports, "sendMsg", { enumerable: true, get: function () { return send_msg_2.sendMsg; } });
51
53
  __exportStar(require("./user/types"), exports);
54
+ __exportStar(require("./user/trace"), exports);
52
55
  class RFQBatchServiceV1 {
53
56
  ctx;
54
57
  constructor(ctx = context_1.AffluentContext.getInstance()) {
@@ -73,28 +76,49 @@ class RFQBatchServiceV1 {
73
76
  return oracle.getOracleParams(this.ctx, rfqBatchAddress);
74
77
  }
75
78
  // ============================================================
76
- // User Operations
79
+ // User
77
80
  // ============================================================
78
81
  async sendAddOrder(sender, params, value) {
79
- return (0, send_msg_1.sendMsg)(sender, user.createAddOrderMsg(this.ctx, sender, params, value));
82
+ const msg = await user.createAddOrderMsg(this.ctx, sender, params, value);
83
+ const result = await (0, send_msg_1.sendMsgAndWaitTx)(this.ctx, sender, msg);
84
+ return trace_1.RFQBatchAddOrderTracer.create({
85
+ ctx: this.ctx,
86
+ msgBody: msg.input.body,
87
+ extHash: await result.getExternalHash(),
88
+ actor: sender.address,
89
+ asset: (0, utils_1.toAddress)(params.assetAddress),
90
+ rfqBatch: (0, utils_1.toAddress)(params.rfqBatchAddress),
91
+ });
80
92
  }
93
+ async sendCancelOrder(sender, params, value) {
94
+ const msg = await user.createCancelOrderMsg(this.ctx, params, value);
95
+ const result = await (0, send_msg_1.sendMsgAndWaitTx)(this.ctx, sender, msg);
96
+ return trace_1.RFQBatchCancelOrderTracer.create({
97
+ ctx: this.ctx,
98
+ msgBody: msg.input.body,
99
+ extHash: await result.getExternalHash(),
100
+ actor: sender.address,
101
+ asset: (0, utils_1.toAddress)(params.assetAddress),
102
+ rfqBatch: (0, utils_1.toAddress)(params.rfqBatchAddress),
103
+ });
104
+ }
105
+ // ============================================================
106
+ // Market Maker
107
+ // ============================================================
81
108
  async sendSettle(sender, params, value) {
82
- return (0, send_msg_1.sendMsg)(sender, user.createSettleMsg(this.ctx, sender, params, value));
109
+ return (0, send_msg_1.sendMsg)(sender, await user.createSettleMsg(this.ctx, sender, params, value));
83
110
  }
84
111
  async sendLock(sender, params, value) {
85
- return (0, send_msg_1.sendMsg)(sender, user.createLockMsg(this.ctx, params, value));
86
- }
87
- async sendCancelOrder(sender, params, value) {
88
- return (0, send_msg_1.sendMsg)(sender, user.createCancelOrderMsg(this.ctx, params, value));
112
+ return (0, send_msg_1.sendMsg)(sender, await user.createLockMsg(this.ctx, params, value));
89
113
  }
90
114
  async sendPayout(sender, params, value) {
91
- return (0, send_msg_1.sendMsg)(sender, user.createPayoutMsg(this.ctx, params, value));
115
+ return (0, send_msg_1.sendMsg)(sender, await user.createPayoutMsg(this.ctx, params, value));
92
116
  }
93
117
  async sendReopen(sender, params, value) {
94
- return (0, send_msg_1.sendMsg)(sender, user.createReopenMsg(this.ctx, params, value));
118
+ return (0, send_msg_1.sendMsg)(sender, await user.createReopenMsg(this.ctx, params, value));
95
119
  }
96
120
  async sendCollectFee(sender, params, value) {
97
- return (0, send_msg_1.sendMsg)(sender, user.createCollectFeeMsg(this.ctx, params, value));
121
+ return (0, send_msg_1.sendMsg)(sender, await user.createCollectFeeMsg(this.ctx, params, value));
98
122
  }
99
123
  async sendBatchPayout(sender, params, value) {
100
124
  const rfqBatchData = await this.getRFQBatchData(params.rfqBatchAddress);
@@ -2,13 +2,13 @@ import { Cell } from "@ton/core";
2
2
  import { AffluentContext } from "../../context";
3
3
  import { AddressInput } from "../../contracts/common/type";
4
4
  import { OracleExposures } from "../composite-oracle/computation";
5
- import { VaultPositions } from "../composite-oracle/types";
5
+ import { IVaultStateContext } from "../../common/types";
6
6
  export { OracleExposures, createOracleExposures } from "../composite-oracle/computation";
7
7
  /**
8
8
  * Build oracle params Cell from pre-fetched vault positions
9
9
  * Pure computation - no network calls
10
10
  */
11
- export declare function buildOracleParamsCellFromData(assetAddresses: string[], oracleConfig: any, vaultPositions: VaultPositions): Promise<{
11
+ export declare function buildOracleParamsCellFromData(assetAddresses: string[], oracleConfig: any, vaultPositions: Record<string, IVaultStateContext>): Promise<{
12
12
  oracleParams: Cell;
13
13
  bucket: OracleExposures;
14
14
  }>;
@@ -0,0 +1,49 @@
1
+ import { Address, Cell } from "@ton/core";
2
+ import { TracerBase } from "../../../common/trace-action";
3
+ import { MessageHash } from "../../../utils/external-message-hash";
4
+ import { TonClient } from "@ton/ton";
5
+ import { AffluentContext } from "../../../context";
6
+ import { ToncenterV3Client } from "../../../utils/pending-tracker/v3-client";
7
+ export type RFQBatchAddresses = {
8
+ actor: Address;
9
+ actorAssetWallet: Address;
10
+ rfqBatch: Address;
11
+ rfqBatchAssetWallet: Address;
12
+ };
13
+ export declare function getRFQBatchAddresses(client: TonClient, params: {
14
+ actor: Address;
15
+ asset: Address;
16
+ rfqBatch: Address;
17
+ }): Promise<RFQBatchAddresses>;
18
+ export type RFQBatchAddOrderTracerParams = {
19
+ ctx: AffluentContext;
20
+ msgBody: Cell;
21
+ extHash: MessageHash;
22
+ actor: Address;
23
+ asset: Address;
24
+ rfqBatch: Address;
25
+ };
26
+ export declare class RFQBatchAddOrderTracer extends TracerBase<"jetton"> {
27
+ static create(params: RFQBatchAddOrderTracerParams): Promise<RFQBatchAddOrderTracer>;
28
+ constructor(toncenterClient: ToncenterV3Client, params: {
29
+ queryId: bigint;
30
+ extHash: MessageHash;
31
+ addresses: RFQBatchAddresses;
32
+ });
33
+ }
34
+ export type RFQBatchCancelOrderTracerParams = {
35
+ ctx: AffluentContext;
36
+ msgBody: Cell;
37
+ extHash: MessageHash;
38
+ actor: Address;
39
+ asset: Address;
40
+ rfqBatch: Address;
41
+ };
42
+ export declare class RFQBatchCancelOrderTracer extends TracerBase<"cancel"> {
43
+ static create(params: RFQBatchCancelOrderTracerParams): Promise<RFQBatchCancelOrderTracer>;
44
+ constructor(toncenterClient: ToncenterV3Client, params: {
45
+ queryId: bigint;
46
+ extHash: MessageHash;
47
+ addresses: RFQBatchAddresses;
48
+ });
49
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RFQBatchCancelOrderTracer = exports.RFQBatchAddOrderTracer = void 0;
4
+ exports.getRFQBatchAddresses = getRFQBatchAddresses;
5
+ const trace_action_1 = require("../../../common/trace-action");
6
+ const rfq_batch_1 = require("../../../contracts/rfq/rfq_batch");
7
+ const jetton_minter_1 = require("../../../contracts/jetton/jetton-minter");
8
+ async function getRFQBatchAddresses(client, params) {
9
+ const { actor, asset, rfqBatch } = params;
10
+ const _asset = client.open(jetton_minter_1.JettonMinter.createFromAddress(asset));
11
+ return {
12
+ actor,
13
+ actorAssetWallet: await _asset.getWalletAddress(actor),
14
+ rfqBatch,
15
+ rfqBatchAssetWallet: await _asset.getWalletAddress(rfqBatch),
16
+ };
17
+ }
18
+ class RFQBatchAddOrderTracer extends trace_action_1.TracerBase {
19
+ static async create(params) {
20
+ const { ctx, msgBody, extHash, actor, asset, rfqBatch } = params;
21
+ const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
22
+ const addresses = await getRFQBatchAddresses(ctx.client, { actor, asset, rfqBatch });
23
+ return new RFQBatchAddOrderTracer(ctx.toncenterClient, { queryId, extHash, addresses });
24
+ }
25
+ constructor(toncenterClient, params) {
26
+ const { queryId, extHash, addresses } = params;
27
+ const steps = [
28
+ ...(0, trace_action_1.createJettonSendSteps)({
29
+ isWTON: false,
30
+ actor: addresses.actor,
31
+ actorWallet: addresses.actorAssetWallet,
32
+ targetWallet: addresses.rfqBatchAssetWallet,
33
+ target: addresses.rfqBatch,
34
+ description: "Adding Order",
35
+ }),
36
+ ];
37
+ super(toncenterClient, extHash, "jetton", queryId, steps);
38
+ }
39
+ }
40
+ exports.RFQBatchAddOrderTracer = RFQBatchAddOrderTracer;
41
+ class RFQBatchCancelOrderTracer extends trace_action_1.TracerBase {
42
+ static async create(params) {
43
+ const { ctx, msgBody, extHash, actor, asset, rfqBatch } = params;
44
+ const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
45
+ const addresses = await getRFQBatchAddresses(ctx.client, { actor, asset, rfqBatch });
46
+ return new RFQBatchCancelOrderTracer(ctx.toncenterClient, { queryId, extHash, addresses });
47
+ }
48
+ constructor(toncenterClient, params) {
49
+ const { queryId, extHash, addresses } = params;
50
+ const steps = [
51
+ {
52
+ op: rfq_batch_1.RFQBatch.Op.CancelOrder,
53
+ from: addresses.actor,
54
+ to: addresses.rfqBatch,
55
+ description: "Cancelling Order",
56
+ },
57
+ ...(0, trace_action_1.createJettonReceiveSteps)({
58
+ isWTON: false,
59
+ sourceWallet: addresses.rfqBatchAssetWallet,
60
+ actorWallet: addresses.actorAssetWallet,
61
+ description: "Refunding Asset",
62
+ }),
63
+ ];
64
+ super(toncenterClient, extHash, "cancel", queryId, steps);
65
+ }
66
+ }
67
+ exports.RFQBatchCancelOrderTracer = RFQBatchCancelOrderTracer;
@@ -7,10 +7,12 @@ import * as query from "./query";
7
7
  import * as owner from "./owner";
8
8
  import * as manager from "./manager";
9
9
  import * as user from "./user";
10
+ import { ShareVaultSupplyTracer, ShareVaultWithdrawTracer } from "./user/trace";
10
11
  export { sendMsg } from "../../lib/send-msg";
11
12
  export * from "./owner/types";
12
13
  export * from "./manager/types";
13
14
  export * from "./user/types";
15
+ export * from "./user/trace";
14
16
  export { owner, manager, user, query };
15
17
  export { PoolInfoForShareVault, PoolTuple } from "./query";
16
18
  export declare class ShareVaultServiceV1 {
@@ -31,95 +33,19 @@ export declare class ShareVaultServiceV1 {
31
33
  count: number;
32
34
  sortedPools: query.PoolTuple[];
33
35
  }>;
34
- sendSetWhitelistPools(sender: AddressSender, params: owner.SetWhitelistPoolsParams, value?: bigint): Promise<{
35
- whitelists: [Address, 0 | 1][];
36
- queryID: bigint | undefined;
37
- }>;
38
- sendSetGasConfig(sender: AddressSender, params: owner.SetGasConfigParams, value?: bigint): Promise<{
39
- gasFee: {
40
- supply: bigint;
41
- withdraw: bigint;
42
- factorialSupply: bigint;
43
- factorialWithdraw: bigint;
44
- mintVaultShareTokens: bigint;
45
- };
46
- queryID: bigint | undefined;
47
- }>;
48
- sendChangeManager(sender: AddressSender, params: owner.ChangeManagerParams, value?: bigint): Promise<{
49
- manager: Address;
50
- queryID: bigint | undefined;
51
- }>;
52
- sendChangeAdmin(sender: AddressSender, params: owner.ChangeAdminParams, value?: bigint): Promise<{
53
- address: Address;
54
- queryID: number | undefined;
55
- }>;
56
- sendUpgradeCode(sender: AddressSender, params: owner.UpgradeCodeParams, value?: bigint): Promise<{
57
- newCode: import("@ton/core").Cell;
58
- queryID: number | undefined;
59
- }>;
60
- sendSupplyToPool(sender: AddressSender, params: manager.SupplyToPoolParams, value?: bigint): Promise<{
61
- pool: Address;
62
- amount: bigint;
63
- queryID: number | undefined;
64
- }>;
65
- sendWithdrawFromPool(sender: AddressSender, params: manager.WithdrawFromPoolParams, value?: bigint): Promise<{
66
- pool: Address;
67
- amount: bigint;
68
- isShare: boolean;
69
- queryID: number | undefined;
70
- }>;
71
- sendSetTargetWeight(sender: AddressSender, params: manager.SetTargetWeightParams, value?: bigint): Promise<{
72
- pool: Address;
73
- targetWeight: number;
74
- queryID: number | undefined;
75
- }>;
76
- sendSupply(sender: AddressSender, params: user.SupplyParams, value?: bigint): Promise<{
77
- recipient: Address;
78
- response: Address;
79
- amount: bigint;
80
- forwardTonAmount: bigint;
81
- forwardPayload: import("@ton/core").Cell;
82
- queryId: bigint | undefined;
83
- }>;
84
- sendWithdraw(sender: AddressSender, params: user.WithdrawParams, value?: bigint): Promise<{
85
- amount: bigint;
86
- response: Address;
87
- forwardPayload: import("@ton/core").Cell;
88
- queryId: bigint | undefined;
89
- }>;
36
+ sendSetWhitelistPools(sender: AddressSender, params: owner.SetWhitelistPoolsParams, value?: bigint): Promise<import("../..").SimpleTracer>;
37
+ sendSetGasConfig(sender: AddressSender, params: owner.SetGasConfigParams, value?: bigint): Promise<import("../..").SimpleTracer>;
38
+ sendChangeManager(sender: AddressSender, params: owner.ChangeManagerParams, value?: bigint): Promise<import("../..").SimpleTracer>;
39
+ sendChangeAdmin(sender: AddressSender, params: owner.ChangeAdminParams, value?: bigint): Promise<import("../..").SimpleTracer>;
40
+ sendUpgradeCode(sender: AddressSender, params: owner.UpgradeCodeParams, value?: bigint): Promise<import("../..").SimpleTracer>;
41
+ sendSupplyToPool(sender: AddressSender, params: manager.SupplyToPoolParams, value?: bigint): Promise<import("../..").SimpleTracer>;
42
+ sendWithdrawFromPool(sender: AddressSender, params: manager.WithdrawFromPoolParams, value?: bigint): Promise<import("../..").SimpleTracer>;
43
+ sendSetTargetWeight(sender: AddressSender, params: manager.SetTargetWeightParams, value?: bigint): Promise<import("../..").SimpleTracer>;
44
+ sendSupply(sender: AddressSender, params: user.SupplyParams, value?: bigint): Promise<ShareVaultSupplyTracer>;
45
+ sendWithdraw(sender: AddressSender, params: user.WithdrawParams, value?: bigint): Promise<ShareVaultWithdrawTracer>;
90
46
  getValuationContext(vaultAddress: AddressInput): Promise<{
91
- storage: {
92
- totalSupply: bigint;
93
- owner: Address | null;
94
- manager: Address | null;
95
- asset: Address;
96
- balance: bigint;
97
- cash: bigint;
98
- totalTargetWeight: bigint;
99
- nextAggregatorIndex: bigint;
100
- isWtonVault: boolean;
101
- assetWallet: Address | null;
102
- whitelistedPools: Record<string, {
103
- isWhitelisted: boolean;
104
- targetWeight: bigint;
105
- supply: bigint;
106
- } & {
107
- address: Address;
108
- }>;
109
- minimumGasFee: {
110
- supply: bigint;
111
- withdraw: bigint;
112
- factorialSupply: bigint;
113
- factorialWithdraw: bigint;
114
- mintVaultShareTokens: bigint;
115
- };
116
- code: import("@ton/core").Cell;
117
- address: Address;
118
- };
119
- totalSupply: bigint;
120
- asset: Address;
121
- reserve: bigint;
122
- poolPositions: Record<string, query.PoolInfoForShareVault>;
47
+ vaultStateContext: import("../../common/transform").VaultStateContext;
48
+ amountContext: import("../../common/transform").VaultAmountContext;
123
49
  netAmount: bigint;
124
50
  exr: number;
125
51
  }>;
@@ -38,6 +38,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.ShareVaultServiceV1 = exports.query = exports.user = exports.manager = exports.owner = exports.sendMsg = void 0;
40
40
  const context_1 = require("../../context");
41
+ const utils_1 = require("../../contracts/common/utils");
41
42
  const send_msg_1 = require("../../lib/send-msg");
42
43
  const query = __importStar(require("./query"));
43
44
  exports.query = query;
@@ -48,11 +49,13 @@ const manager = __importStar(require("./manager"));
48
49
  exports.manager = manager;
49
50
  const user = __importStar(require("./user"));
50
51
  exports.user = user;
52
+ const trace_1 = require("./user/trace");
51
53
  var send_msg_2 = require("../../lib/send-msg");
52
54
  Object.defineProperty(exports, "sendMsg", { enumerable: true, get: function () { return send_msg_2.sendMsg; } });
53
55
  __exportStar(require("./owner/types"), exports);
54
56
  __exportStar(require("./manager/types"), exports);
55
57
  __exportStar(require("./user/types"), exports);
58
+ __exportStar(require("./user/trace"), exports);
56
59
  class ShareVaultServiceV1 {
57
60
  ctx;
58
61
  constructor(ctx = context_1.AffluentContext.getInstance()) {
@@ -92,40 +95,64 @@ class ShareVaultServiceV1 {
92
95
  // Owner
93
96
  // ============================================================
94
97
  async sendSetWhitelistPools(sender, params, value) {
95
- return (0, send_msg_1.sendMsg)(sender, owner.createSetWhitelistPoolsMsg(this.ctx, params, value));
98
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createSetWhitelistPoolsMsg(this.ctx, params, value));
96
99
  }
97
100
  async sendSetGasConfig(sender, params, value) {
98
- return (0, send_msg_1.sendMsg)(sender, owner.createSetGasConfigMsg(this.ctx, params, value));
101
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createSetGasConfigMsg(this.ctx, params, value));
99
102
  }
100
103
  async sendChangeManager(sender, params, value) {
101
- return (0, send_msg_1.sendMsg)(sender, owner.createChangeManagerMsg(this.ctx, params, value));
104
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createChangeManagerMsg(this.ctx, params, value));
102
105
  }
103
106
  async sendChangeAdmin(sender, params, value) {
104
- return (0, send_msg_1.sendMsg)(sender, owner.createChangeAdminMsg(this.ctx, params, value));
107
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createChangeAdminMsg(this.ctx, params, value));
105
108
  }
106
109
  async sendUpgradeCode(sender, params, value) {
107
- return (0, send_msg_1.sendMsg)(sender, owner.createUpgradeCodeMsg(this.ctx, params, value));
110
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createUpgradeCodeMsg(this.ctx, params, value));
108
111
  }
109
112
  // ============================================================
110
113
  // Manager
111
114
  // ============================================================
112
115
  async sendSupplyToPool(sender, params, value) {
113
- return (0, send_msg_1.sendMsg)(sender, manager.createSupplyToPoolMsg(this.ctx, params, value));
116
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await manager.createSupplyToPoolMsg(this.ctx, params, value));
114
117
  }
115
118
  async sendWithdrawFromPool(sender, params, value) {
116
- return (0, send_msg_1.sendMsg)(sender, manager.createWithdrawFromPoolMsg(this.ctx, params, value));
119
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await manager.createWithdrawFromPoolMsg(this.ctx, params, value));
117
120
  }
118
121
  async sendSetTargetWeight(sender, params, value) {
119
- return (0, send_msg_1.sendMsg)(sender, manager.createSetTargetWeightMsg(this.ctx, params, value));
122
+ return (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await manager.createSetTargetWeightMsg(this.ctx, params, value));
120
123
  }
121
124
  // ============================================================
122
125
  // User
123
126
  // ============================================================
124
127
  async sendSupply(sender, params, value) {
125
- return (0, send_msg_1.sendMsg)(sender, user.createSupplyMsg(this.ctx, sender, params, value));
128
+ const vault = (0, utils_1.toAddress)(params.vaultAddress);
129
+ const vaultData = await query.getVaultData(this.ctx, vault);
130
+ const msg = await user.createSupplyMsg(this.ctx, sender, params, value);
131
+ const result = await (0, send_msg_1.sendMsgAndWaitTx)(this.ctx, sender, msg);
132
+ return trace_1.ShareVaultSupplyTracer.create({
133
+ ctx: this.ctx,
134
+ msgBody: msg.input.body,
135
+ extHash: await result.getExternalHash(),
136
+ actor: sender.address,
137
+ asset: vaultData.asset,
138
+ vault,
139
+ isWTON: this.ctx.isWTON(vaultData.asset),
140
+ });
126
141
  }
127
142
  async sendWithdraw(sender, params, value) {
128
- return (0, send_msg_1.sendMsg)(sender, user.createWithdrawMsg(this.ctx, sender, params, value));
143
+ const vault = (0, utils_1.toAddress)(params.vaultAddress);
144
+ const vaultData = await query.getVaultData(this.ctx, vault);
145
+ const msg = await user.createWithdrawMsg(this.ctx, sender, params, value);
146
+ const result = await (0, send_msg_1.sendMsgAndWaitTx)(this.ctx, sender, msg);
147
+ return trace_1.ShareVaultWithdrawTracer.create({
148
+ ctx: this.ctx,
149
+ msgBody: msg.input.body,
150
+ extHash: await result.getExternalHash(),
151
+ actor: sender.address,
152
+ asset: vaultData.asset,
153
+ vault,
154
+ isWTON: this.ctx.isWTON(vaultData.asset),
155
+ });
129
156
  }
130
157
  async getValuationContext(vaultAddress) {
131
158
  return query.getValuationContext(this.ctx, vaultAddress);
@@ -4,6 +4,8 @@ import { AddressInput, AddressLike } from "../../contracts/common/type";
4
4
  import { ShareVault, ShareVaultState } from "../../contracts/vault/share-vault";
5
5
  import { JettonWallet } from "../../contracts/jetton/jetton-wallet";
6
6
  import { PoolInfoForShareVault } from "./type";
7
+ import { VaultStateContext } from "../../common/transform";
8
+ import { PoolState } from "../../contracts/core/pool/type";
7
9
  export { PoolInfoForShareVault, PoolTuple } from "./type";
8
10
  /**
9
11
  * Get ShareVault contract instance
@@ -25,39 +27,10 @@ export declare function getVaultWallet(ctx: AffluentContext, vaultAddress: Addre
25
27
  * Get pool info for all whitelisted pools
26
28
  */
27
29
  export declare function getPoolInfoForShareVault(ctx: AffluentContext, vaultData: ShareVaultState): Promise<Record<string, PoolInfoForShareVault>>;
30
+ export declare function getPoolDataForShareVault(ctx: AffluentContext, vaultAddress: AddressInput): Promise<Record<string, PoolState>>;
28
31
  export declare function getValuationContext(ctx: AffluentContext, vaultAddress: AddressInput): Promise<{
29
- storage: {
30
- totalSupply: bigint;
31
- owner: Address | null;
32
- manager: Address | null;
33
- asset: Address;
34
- balance: bigint;
35
- cash: bigint;
36
- totalTargetWeight: bigint;
37
- nextAggregatorIndex: bigint;
38
- isWtonVault: boolean;
39
- assetWallet: Address | null;
40
- whitelistedPools: Record<string, {
41
- isWhitelisted: boolean;
42
- targetWeight: bigint;
43
- supply: bigint;
44
- } & {
45
- address: Address;
46
- }>;
47
- minimumGasFee: {
48
- supply: bigint;
49
- withdraw: bigint;
50
- factorialSupply: bigint;
51
- factorialWithdraw: bigint;
52
- mintVaultShareTokens: bigint;
53
- };
54
- code: import("@ton/core").Cell;
55
- address: Address;
56
- };
57
- totalSupply: bigint;
58
- asset: Address;
59
- reserve: bigint;
60
- poolPositions: Record<string, PoolInfoForShareVault>;
32
+ vaultStateContext: VaultStateContext;
33
+ amountContext: import("../../common/transform").VaultAmountContext;
61
34
  netAmount: bigint;
62
35
  exr: number;
63
36
  }>;