@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.
- package/dist/affluent.d.ts +3 -3
- package/dist/affluent.js +3 -3
- package/dist/common/computation.d.ts +6 -0
- package/dist/common/computation.js +54 -0
- package/dist/common/helper.d.ts +5 -0
- package/dist/common/helper.js +29 -0
- package/dist/common/service.d.ts +10 -2
- package/dist/common/service.js +56 -3
- package/dist/common/trace-action.d.ts +92 -0
- package/dist/common/trace-action.js +187 -0
- package/dist/common/transform.d.ts +15 -21
- package/dist/common/transform.js +63 -150
- package/dist/common/types.d.ts +9 -13
- package/dist/common/types.js +2 -2
- package/dist/context.d.ts +3 -0
- package/dist/context.js +9 -0
- package/dist/contracts/oracle/redstone-onchain-oracle/index.js +2 -0
- package/dist/contracts/vault/strategy-vault/index.d.ts +2 -1
- package/dist/contracts/vault/strategy-vault/index.js +1 -0
- package/dist/factorial.d.ts +18 -8
- package/dist/factorial.js +26 -14
- package/dist/index.d.ts +4 -2
- package/dist/index.js +18 -2
- package/dist/lib/send-msg.d.ts +16 -2
- package/dist/lib/send-msg.js +23 -2
- package/dist/monitor.js +2 -0
- package/dist/monitorCacheV1.js +3 -2
- package/dist/oracle/oracle.d.ts +3 -2
- package/dist/oracle/oracle.js +25 -2
- package/dist/pool.d.ts +41 -0
- package/dist/pool.js +146 -178
- package/dist/poolCacheV1.js +1 -0
- package/dist/rfq-auction.d.ts +2 -2
- package/dist/rfq-auction.js +6 -6
- package/dist/rfq-batch.d.ts +21 -11
- package/dist/rfq-batch.js +81 -9
- package/dist/services/composite-oracle/computation.d.ts +3 -8
- package/dist/services/composite-oracle/computation.js +91 -56
- package/dist/services/composite-oracle/index.js +4 -5
- package/dist/services/composite-oracle/query.js +1 -3
- package/dist/services/pool/computation.js +9 -61
- package/dist/services/pool/index.d.ts +10 -59
- package/dist/services/pool/index.js +71 -8
- package/dist/services/pool/query.js +1 -1
- package/dist/services/pool/user/trace.d.ts +90 -0
- package/dist/services/pool/user/trace.js +168 -0
- package/dist/services/rfq-auction/index.d.ts +7 -23
- package/dist/services/rfq-auction/index.js +55 -6
- package/dist/services/rfq-auction/user/index.js +1 -1
- package/dist/services/rfq-auction/user/trace.d.ts +53 -0
- package/dist/services/rfq-auction/user/trace.js +68 -0
- package/dist/services/rfq-batch/index.d.ts +9 -26
- package/dist/services/rfq-batch/index.js +48 -10
- package/dist/services/rfq-batch/user/trace.d.ts +49 -0
- package/dist/services/rfq-batch/user/trace.js +67 -0
- package/dist/services/share-vault/index.d.ts +12 -56
- package/dist/services/share-vault/index.js +57 -10
- package/dist/services/share-vault/query.js +1 -1
- package/dist/services/share-vault/user/trace.d.ts +54 -0
- package/dist/services/share-vault/user/trace.js +84 -0
- package/dist/services/strategy-vault/index.d.ts +68 -1981
- package/dist/services/strategy-vault/index.js +214 -53
- package/dist/services/strategy-vault/oracle.js +1 -0
- package/dist/services/strategy-vault/owner/index.d.ts +2 -2
- package/dist/services/strategy-vault/owner/index.js +1 -1
- package/dist/services/strategy-vault/owner/types.d.ts +4 -0
- package/dist/services/strategy-vault/query.js +1 -1
- package/dist/services/strategy-vault/user/trace.d.ts +156 -0
- package/dist/services/strategy-vault/user/trace.js +264 -0
- package/dist/share-vault.d.ts +164 -8
- package/dist/share-vault.js +222 -67
- package/dist/strategy_vault/base.d.ts +521 -105
- package/dist/strategy_vault/base.js +493 -41
- package/dist/strategy_vault/steps.d.ts +120 -3
- package/dist/strategy_vault/steps.js +161 -0
- package/dist/types/sender.d.ts +1 -0
- package/dist/utils/_parse_temp/StrategyVault.d.ts +9 -9
- package/dist/utils/_parse_temp/StrategyVault.js +48 -40
- package/dist/utils/_parse_temp/parseMsgBody.d.ts +2 -2
- package/dist/utils/_parse_temp/parseMsgBody.js +84 -84
- package/dist/utils/external-message-hash.d.ts +7 -3
- package/dist/utils/external-message-hash.js +20 -7
- package/dist/utils/oracle/redstone/helper.js +2 -0
- package/dist/utils/oracle/redstone/redstoneHelper.d.ts +7 -0
- package/dist/utils/oracle/redstone/redstoneHelper.js +103 -1
- package/dist/utils/pending-tracker/trackable-sender.d.ts +37 -4
- package/dist/utils/pending-tracker/trackable-sender.js +47 -8
- package/dist/utils/pending-tracker/v3-client.d.ts +16 -0
- package/dist/utils/pending-tracker/v3-client.js +80 -2
- package/dist/utils/toncenter/index.d.ts +1 -0
- package/dist/utils/toncenter/index.js +17 -0
- package/dist/utils/toncenter/transform.d.ts +11 -0
- package/dist/utils/toncenter/transform.js +40 -0
- package/dist/utils/toncenter/type.d.ts +227 -0
- package/dist/utils/toncenter/type.js +2 -0
- 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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
|
79
|
+
// User
|
|
77
80
|
// ============================================================
|
|
78
81
|
async sendAddOrder(sender, params, value) {
|
|
79
|
-
|
|
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
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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;
|