@affluent-org/sdk 0.0.5 → 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.
- 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 +55 -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 +45 -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 +16 -13
- package/dist/services/rfq-batch/index.js +34 -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 +37 -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 +114 -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,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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
+
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);
|
|
@@ -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,64 @@ class ShareVaultServiceV1 {
|
|
|
92
95
|
// Owner
|
|
93
96
|
// ============================================================
|
|
94
97
|
async sendSetWhitelistPools(sender, params, value) {
|
|
95
|
-
return (0, send_msg_1.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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);
|
|
@@ -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;
|