@affluent-org/sdk 0.0.5 → 0.0.7

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 (96) 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 +15 -21
  12. package/dist/common/transform.js +63 -150
  13. package/dist/common/types.d.ts +9 -13
  14. package/dist/common/types.js +2 -2
  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/vault/strategy-vault/index.d.ts +2 -1
  19. package/dist/contracts/vault/strategy-vault/index.js +1 -0
  20. package/dist/factorial.d.ts +18 -8
  21. package/dist/factorial.js +26 -14
  22. package/dist/index.d.ts +4 -2
  23. package/dist/index.js +18 -2
  24. package/dist/lib/send-msg.d.ts +16 -2
  25. package/dist/lib/send-msg.js +23 -2
  26. package/dist/monitor.js +2 -0
  27. package/dist/monitorCacheV1.js +3 -2
  28. package/dist/oracle/oracle.d.ts +3 -2
  29. package/dist/oracle/oracle.js +25 -2
  30. package/dist/pool.d.ts +41 -0
  31. package/dist/pool.js +146 -178
  32. package/dist/poolCacheV1.js +1 -0
  33. package/dist/rfq-auction.d.ts +2 -2
  34. package/dist/rfq-auction.js +6 -6
  35. package/dist/rfq-batch.d.ts +21 -11
  36. package/dist/rfq-batch.js +81 -9
  37. package/dist/services/composite-oracle/computation.d.ts +3 -8
  38. package/dist/services/composite-oracle/computation.js +91 -56
  39. package/dist/services/composite-oracle/index.js +4 -5
  40. package/dist/services/composite-oracle/query.js +1 -3
  41. package/dist/services/pool/computation.js +9 -61
  42. package/dist/services/pool/index.d.ts +10 -59
  43. package/dist/services/pool/index.js +71 -8
  44. package/dist/services/pool/query.js +1 -1
  45. package/dist/services/pool/user/trace.d.ts +90 -0
  46. package/dist/services/pool/user/trace.js +168 -0
  47. package/dist/services/rfq-auction/index.d.ts +7 -23
  48. package/dist/services/rfq-auction/index.js +55 -6
  49. package/dist/services/rfq-auction/user/index.js +1 -1
  50. package/dist/services/rfq-auction/user/trace.d.ts +53 -0
  51. package/dist/services/rfq-auction/user/trace.js +68 -0
  52. package/dist/services/rfq-batch/index.d.ts +9 -26
  53. package/dist/services/rfq-batch/index.js +48 -10
  54. package/dist/services/rfq-batch/user/trace.d.ts +49 -0
  55. package/dist/services/rfq-batch/user/trace.js +67 -0
  56. package/dist/services/share-vault/index.d.ts +12 -56
  57. package/dist/services/share-vault/index.js +57 -10
  58. package/dist/services/share-vault/query.js +1 -1
  59. package/dist/services/share-vault/user/trace.d.ts +54 -0
  60. package/dist/services/share-vault/user/trace.js +84 -0
  61. package/dist/services/strategy-vault/index.d.ts +68 -1981
  62. package/dist/services/strategy-vault/index.js +214 -53
  63. package/dist/services/strategy-vault/oracle.js +1 -0
  64. package/dist/services/strategy-vault/owner/index.d.ts +2 -2
  65. package/dist/services/strategy-vault/owner/index.js +1 -1
  66. package/dist/services/strategy-vault/owner/types.d.ts +4 -0
  67. package/dist/services/strategy-vault/query.js +1 -1
  68. package/dist/services/strategy-vault/user/trace.d.ts +156 -0
  69. package/dist/services/strategy-vault/user/trace.js +264 -0
  70. package/dist/share-vault.d.ts +164 -8
  71. package/dist/share-vault.js +222 -67
  72. package/dist/strategy_vault/base.d.ts +521 -105
  73. package/dist/strategy_vault/base.js +493 -41
  74. package/dist/strategy_vault/steps.d.ts +120 -3
  75. package/dist/strategy_vault/steps.js +161 -0
  76. package/dist/types/sender.d.ts +1 -0
  77. package/dist/utils/_parse_temp/StrategyVault.d.ts +9 -9
  78. package/dist/utils/_parse_temp/StrategyVault.js +48 -40
  79. package/dist/utils/_parse_temp/parseMsgBody.d.ts +2 -2
  80. package/dist/utils/_parse_temp/parseMsgBody.js +84 -84
  81. package/dist/utils/external-message-hash.d.ts +7 -3
  82. package/dist/utils/external-message-hash.js +20 -7
  83. package/dist/utils/oracle/redstone/helper.js +2 -0
  84. package/dist/utils/oracle/redstone/redstoneHelper.d.ts +7 -0
  85. package/dist/utils/oracle/redstone/redstoneHelper.js +103 -1
  86. package/dist/utils/pending-tracker/trackable-sender.d.ts +37 -4
  87. package/dist/utils/pending-tracker/trackable-sender.js +47 -8
  88. package/dist/utils/pending-tracker/v3-client.d.ts +16 -0
  89. package/dist/utils/pending-tracker/v3-client.js +80 -2
  90. package/dist/utils/toncenter/index.d.ts +1 -0
  91. package/dist/utils/toncenter/index.js +17 -0
  92. package/dist/utils/toncenter/transform.d.ts +11 -0
  93. package/dist/utils/toncenter/transform.js +40 -0
  94. package/dist/utils/toncenter/type.d.ts +227 -0
  95. package/dist/utils/toncenter/type.js +2 -0
  96. package/package.json +3 -3
@@ -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,31 +50,12 @@ 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
- }>;
59
- sendSettle(sender: AddressSender, params: user.SettleParams, value?: bigint): Promise<{
60
- recipient: import("@ton/core").Address;
61
- response: import("@ton/core").Address;
62
- amount: bigint;
63
- forwardTonAmount: bigint;
64
- forwardPayload: import("@ton/core").Cell;
65
- queryId: bigint | undefined;
66
- }>;
67
- sendLock(sender: AddressSender, params: user.LockParams, value?: bigint): Promise<{}>;
68
- sendCancelOrder(sender: AddressSender, params: user.CancelOrderParams, value?: bigint): Promise<{
69
- assetIdx: 0 | 1;
70
- }>;
71
- sendPayout(sender: AddressSender, params: user.PayoutParams, value?: bigint): Promise<{
72
- assetIdx: 0 | 1;
73
- count: number;
74
- }>;
75
- sendReopen(sender: AddressSender, params: user.ReopenParams, value?: bigint): Promise<{}>;
76
- sendCollectFee(sender: AddressSender, params: user.CollectFeeParams, value?: bigint): Promise<{}>;
53
+ sendAddOrder(sender: AddressSender, params: user.AddOrderParams, value?: bigint): Promise<RFQBatchAddOrderTracer>;
54
+ sendCancelOrder(sender: AddressSender, params: user.CancelOrderParams, value?: bigint): Promise<RFQBatchCancelOrderTracer>;
55
+ sendSettle(sender: AddressSender, params: user.SettleParams, value?: bigint): Promise<import("../..").SimpleTracer>;
56
+ sendLock(sender: AddressSender, params: user.LockParams, value?: bigint): Promise<import("../..").SimpleTracer>;
57
+ sendPayout(sender: AddressSender, params: user.PayoutParams, value?: bigint): Promise<import("../..").SimpleTracer>;
58
+ sendReopen(sender: AddressSender, params: user.ReopenParams, value?: bigint): Promise<import("../..").SimpleTracer>;
59
+ sendCollectFee(sender: AddressSender, params: user.CollectFeeParams, value?: bigint): Promise<import("../..").SimpleTracer>;
77
60
  sendBatchPayout(sender: MultiSender, params: user.BatchPayoutParams, value?: bigint): Promise<void>;
78
61
  }
@@ -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,63 @@ 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
+ const trace = await 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
+ });
92
+ await trace.wait();
93
+ return trace;
80
94
  }
95
+ async sendCancelOrder(sender, params, value) {
96
+ const msg = await user.createCancelOrderMsg(this.ctx, params, value);
97
+ const result = await (0, send_msg_1.sendMsgAndWaitTx)(this.ctx, sender, msg);
98
+ const trace = await trace_1.RFQBatchCancelOrderTracer.create({
99
+ ctx: this.ctx,
100
+ msgBody: msg.input.body,
101
+ extHash: await result.getExternalHash(),
102
+ actor: sender.address,
103
+ asset: (0, utils_1.toAddress)(params.assetAddress),
104
+ rfqBatch: (0, utils_1.toAddress)(params.rfqBatchAddress),
105
+ });
106
+ await trace.wait();
107
+ return trace;
108
+ }
109
+ // ============================================================
110
+ // Market Maker
111
+ // ============================================================
81
112
  async sendSettle(sender, params, value) {
82
- return (0, send_msg_1.sendMsg)(sender, user.createSettleMsg(this.ctx, sender, params, value));
113
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await user.createSettleMsg(this.ctx, sender, params, value));
114
+ await trace.wait();
115
+ return trace;
83
116
  }
84
117
  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));
118
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await user.createLockMsg(this.ctx, params, value));
119
+ await trace.wait();
120
+ return trace;
89
121
  }
90
122
  async sendPayout(sender, params, value) {
91
- return (0, send_msg_1.sendMsg)(sender, user.createPayoutMsg(this.ctx, params, value));
123
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await user.createPayoutMsg(this.ctx, params, value));
124
+ await trace.wait();
125
+ return trace;
92
126
  }
93
127
  async sendReopen(sender, params, value) {
94
- return (0, send_msg_1.sendMsg)(sender, user.createReopenMsg(this.ctx, params, value));
128
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await user.createReopenMsg(this.ctx, params, value));
129
+ await trace.wait();
130
+ return trace;
95
131
  }
96
132
  async sendCollectFee(sender, params, value) {
97
- return (0, send_msg_1.sendMsg)(sender, user.createCollectFeeMsg(this.ctx, params, value));
133
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await user.createCollectFeeMsg(this.ctx, params, value));
134
+ await trace.wait();
135
+ return trace;
98
136
  }
99
137
  async sendBatchPayout(sender, params, value) {
100
138
  const rfqBatchData = await this.getRFQBatchData(params.rfqBatchAddress);
@@ -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,62 +33,16 @@ 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
47
  vaultStateContext: import("../../common/transform").VaultStateContext;
92
48
  amountContext: import("../../common/transform").VaultAmountContext;
@@ -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,84 @@ 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
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createSetWhitelistPoolsMsg(this.ctx, params, value));
99
+ await trace.wait();
100
+ return trace;
96
101
  }
97
102
  async sendSetGasConfig(sender, params, value) {
98
- return (0, send_msg_1.sendMsg)(sender, owner.createSetGasConfigMsg(this.ctx, params, value));
103
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createSetGasConfigMsg(this.ctx, params, value));
104
+ await trace.wait();
105
+ return trace;
99
106
  }
100
107
  async sendChangeManager(sender, params, value) {
101
- return (0, send_msg_1.sendMsg)(sender, owner.createChangeManagerMsg(this.ctx, params, value));
108
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createChangeManagerMsg(this.ctx, params, value));
109
+ await trace.wait();
110
+ return trace;
102
111
  }
103
112
  async sendChangeAdmin(sender, params, value) {
104
- return (0, send_msg_1.sendMsg)(sender, owner.createChangeAdminMsg(this.ctx, params, value));
113
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createChangeAdminMsg(this.ctx, params, value));
114
+ await trace.wait();
115
+ return trace;
105
116
  }
106
117
  async sendUpgradeCode(sender, params, value) {
107
- return (0, send_msg_1.sendMsg)(sender, owner.createUpgradeCodeMsg(this.ctx, params, value));
118
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await owner.createUpgradeCodeMsg(this.ctx, params, value));
119
+ await trace.wait();
120
+ return trace;
108
121
  }
109
122
  // ============================================================
110
123
  // Manager
111
124
  // ============================================================
112
125
  async sendSupplyToPool(sender, params, value) {
113
- return (0, send_msg_1.sendMsg)(sender, manager.createSupplyToPoolMsg(this.ctx, params, value));
126
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await manager.createSupplyToPoolMsg(this.ctx, params, value));
127
+ await trace.wait();
128
+ return trace;
114
129
  }
115
130
  async sendWithdrawFromPool(sender, params, value) {
116
- return (0, send_msg_1.sendMsg)(sender, manager.createWithdrawFromPoolMsg(this.ctx, params, value));
131
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await manager.createWithdrawFromPoolMsg(this.ctx, params, value));
132
+ await trace.wait();
133
+ return trace;
117
134
  }
118
135
  async sendSetTargetWeight(sender, params, value) {
119
- return (0, send_msg_1.sendMsg)(sender, manager.createSetTargetWeightMsg(this.ctx, params, value));
136
+ const trace = await (0, send_msg_1.sendMsgAndWaitTxSimple)(this.ctx, sender, await manager.createSetTargetWeightMsg(this.ctx, params, value));
137
+ await trace.wait();
138
+ return trace;
120
139
  }
121
140
  // ============================================================
122
141
  // User
123
142
  // ============================================================
124
143
  async sendSupply(sender, params, value) {
125
- return (0, send_msg_1.sendMsg)(sender, user.createSupplyMsg(this.ctx, sender, params, value));
144
+ const vault = (0, utils_1.toAddress)(params.vaultAddress);
145
+ const vaultData = await query.getVaultData(this.ctx, vault);
146
+ const msg = await user.createSupplyMsg(this.ctx, sender, params, value);
147
+ const result = await (0, send_msg_1.sendMsgAndWaitTx)(this.ctx, sender, msg);
148
+ const trace = await trace_1.ShareVaultSupplyTracer.create({
149
+ ctx: this.ctx,
150
+ msgBody: msg.input.body,
151
+ extHash: await result.getExternalHash(),
152
+ actor: sender.address,
153
+ asset: vaultData.asset,
154
+ vault,
155
+ isWTON: this.ctx.isWTON(vaultData.asset),
156
+ });
157
+ await trace.wait();
158
+ return trace;
126
159
  }
127
160
  async sendWithdraw(sender, params, value) {
128
- return (0, send_msg_1.sendMsg)(sender, user.createWithdrawMsg(this.ctx, sender, params, value));
161
+ const vault = (0, utils_1.toAddress)(params.vaultAddress);
162
+ const vaultData = await query.getVaultData(this.ctx, vault);
163
+ const msg = await user.createWithdrawMsg(this.ctx, sender, params, value);
164
+ const result = await (0, send_msg_1.sendMsgAndWaitTx)(this.ctx, sender, msg);
165
+ const trace = await trace_1.ShareVaultWithdrawTracer.create({
166
+ ctx: this.ctx,
167
+ msgBody: msg.input.body,
168
+ extHash: await result.getExternalHash(),
169
+ actor: sender.address,
170
+ asset: vaultData.asset,
171
+ vault,
172
+ isWTON: this.ctx.isWTON(vaultData.asset),
173
+ });
174
+ await trace.wait();
175
+ return trace;
129
176
  }
130
177
  async getValuationContext(vaultAddress) {
131
178
  return query.getValuationContext(this.ctx, vaultAddress);
@@ -129,7 +129,7 @@ async function getValuationContext(ctx, vaultAddress) {
129
129
  Object.entries(poolPositions).forEach(([poolAddress, poolState]) => poolContexts[poolAddress] = transform_1.PoolContext.fromPoolState(poolState));
130
130
  const vaultStateContext = transform_1.VaultStateContext.fromShareVaultState(vaultData);
131
131
  const amountContext = vaultStateContext.toAmountContext(poolContexts);
132
- const netAmount = amountContext.net()[vaultData.asset.toString()].net();
132
+ const netAmount = amountContext.decompose()[vaultData.asset.toString()].net();
133
133
  return {
134
134
  vaultStateContext,
135
135
  amountContext,
@@ -0,0 +1,54 @@
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 ShareVaultAddresses = {
8
+ actor: Address;
9
+ actorAssetWallet: Address;
10
+ actorVaultWallet: Address;
11
+ vault: Address;
12
+ vaultAssetWallet: Address;
13
+ };
14
+ export declare function getShareVaultAddresses(client: TonClient, params: {
15
+ actor: Address;
16
+ asset: Address;
17
+ vault: Address;
18
+ }): Promise<ShareVaultAddresses>;
19
+ export type ShareVaultSupplyTracerParams = {
20
+ ctx: AffluentContext;
21
+ msgBody: Cell;
22
+ extHash: MessageHash;
23
+ actor: Address;
24
+ asset: Address;
25
+ vault: Address;
26
+ isWTON: boolean;
27
+ };
28
+ export declare class ShareVaultSupplyTracer extends TracerBase<"jetton" | "wton"> {
29
+ static create(params: ShareVaultSupplyTracerParams): Promise<ShareVaultSupplyTracer>;
30
+ constructor(toncenterClient: ToncenterV3Client, params: {
31
+ isWTON: boolean;
32
+ queryId: bigint;
33
+ extHash: MessageHash;
34
+ addresses: ShareVaultAddresses;
35
+ });
36
+ }
37
+ export type ShareVaultWithdrawTracerParams = {
38
+ ctx: AffluentContext;
39
+ msgBody: Cell;
40
+ extHash: MessageHash;
41
+ actor: Address;
42
+ asset: Address;
43
+ vault: Address;
44
+ isWTON: boolean;
45
+ };
46
+ export declare class ShareVaultWithdrawTracer extends TracerBase<"jetton" | "wton"> {
47
+ static create(params: ShareVaultWithdrawTracerParams): Promise<ShareVaultWithdrawTracer>;
48
+ constructor(toncenterClient: ToncenterV3Client, params: {
49
+ isWTON: boolean;
50
+ queryId: bigint;
51
+ extHash: MessageHash;
52
+ addresses: ShareVaultAddresses;
53
+ });
54
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShareVaultWithdrawTracer = exports.ShareVaultSupplyTracer = void 0;
4
+ exports.getShareVaultAddresses = getShareVaultAddresses;
5
+ const trace_action_1 = require("../../../common/trace-action");
6
+ const jetton_wallet_1 = require("../../../contracts/jetton/jetton-wallet");
7
+ const jetton_minter_1 = require("../../../contracts/jetton/jetton-minter");
8
+ const share_vault_1 = require("../../../contracts/vault/share-vault");
9
+ async function getShareVaultAddresses(client, params) {
10
+ const { actor, asset, vault } = params;
11
+ const _asset = client.open(jetton_minter_1.JettonMinter.createFromAddress(asset));
12
+ const _vault = client.open(share_vault_1.ShareVault.createFromAddress(vault));
13
+ return {
14
+ actor,
15
+ actorAssetWallet: await _asset.getWalletAddress(actor),
16
+ actorVaultWallet: await _vault.getWalletAddress(actor),
17
+ vault,
18
+ vaultAssetWallet: await _asset.getWalletAddress(vault),
19
+ };
20
+ }
21
+ class ShareVaultSupplyTracer extends trace_action_1.TracerBase {
22
+ static async create(params) {
23
+ const { ctx, msgBody, extHash, actor, asset, vault, isWTON } = params;
24
+ const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
25
+ const addresses = await getShareVaultAddresses(ctx.client, { actor, asset, vault });
26
+ return new ShareVaultSupplyTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
27
+ }
28
+ constructor(toncenterClient, params) {
29
+ const { isWTON, queryId, extHash, addresses } = params;
30
+ const type = isWTON ? "wton" : "jetton";
31
+ const steps = [
32
+ ...(0, trace_action_1.createJettonSendSteps)({
33
+ isWTON,
34
+ actor: addresses.actor,
35
+ actorWallet: addresses.actorAssetWallet,
36
+ targetWallet: addresses.vaultAssetWallet,
37
+ target: addresses.vault,
38
+ description: "Transferring Tokens",
39
+ }),
40
+ ...(0, trace_action_1.createMintSteps)({
41
+ minter: addresses.vault,
42
+ actorWallet: addresses.actorVaultWallet,
43
+ description: "Receiving Vault Tokens",
44
+ }),
45
+ ];
46
+ const failStep = {
47
+ op: jetton_wallet_1.JettonWallet.Op.InternalTransfer,
48
+ from: addresses.vaultAssetWallet,
49
+ to: addresses.actorAssetWallet,
50
+ description: "Refunding Tokens",
51
+ };
52
+ super(toncenterClient, extHash, type, queryId, steps, failStep);
53
+ }
54
+ }
55
+ exports.ShareVaultSupplyTracer = ShareVaultSupplyTracer;
56
+ class ShareVaultWithdrawTracer extends trace_action_1.TracerBase {
57
+ static async create(params) {
58
+ const { ctx, msgBody, extHash, actor, asset, vault, isWTON } = params;
59
+ const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
60
+ const addresses = await getShareVaultAddresses(ctx.client, { actor, asset, vault });
61
+ return new ShareVaultWithdrawTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
62
+ }
63
+ constructor(toncenterClient, params) {
64
+ const { isWTON, queryId, extHash, addresses } = params;
65
+ const type = isWTON ? "wton" : "jetton";
66
+ const steps = [
67
+ ...(0, trace_action_1.createBurnSteps)({
68
+ actor: addresses.actor,
69
+ actorWallet: addresses.actorVaultWallet,
70
+ minter: addresses.vault,
71
+ description: "Burning Vault Tokens",
72
+ }),
73
+ ...(0, trace_action_1.createJettonReceiveSteps)({
74
+ isWTON,
75
+ sourceWallet: addresses.vaultAssetWallet,
76
+ actorWallet: addresses.actorAssetWallet,
77
+ actor: addresses.actor,
78
+ description: "Receiving Asset",
79
+ }),
80
+ ];
81
+ super(toncenterClient, extHash, type, queryId, steps);
82
+ }
83
+ }
84
+ exports.ShareVaultWithdrawTracer = ShareVaultWithdrawTracer;