@affluent-org/sdk 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +87 -0
- package/dist/common/transform.js +264 -0
- package/dist/common/types.d.ts +140 -0
- package/dist/common/types.js +11 -0
- 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/oracle/redstone-onchain-oracle/type.d.ts +1 -1
- 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/codec.d.ts +76 -0
- package/dist/services/composite-oracle/codec.js +281 -0
- package/dist/services/composite-oracle/computation.d.ts +8 -19
- package/dist/services/composite-oracle/computation.js +119 -76
- package/dist/services/composite-oracle/index.d.ts +2 -2
- package/dist/services/composite-oracle/index.js +5 -6
- package/dist/services/composite-oracle/query.d.ts +6 -6
- package/dist/services/composite-oracle/query.js +6 -47
- package/dist/services/pool/computation.d.ts +3 -9
- package/dist/services/pool/computation.js +12 -78
- package/dist/services/pool/index.d.ts +10 -59
- package/dist/services/pool/index.js +55 -8
- package/dist/services/pool/oracle.d.ts +2 -2
- package/dist/services/pool/query.d.ts +1 -1
- 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/oracle.d.ts +2 -2
- 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/oracle.d.ts +2 -2
- 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 +14 -88
- package/dist/services/share-vault/index.js +37 -10
- package/dist/services/share-vault/query.d.ts +5 -32
- package/dist/services/share-vault/query.js +25 -12
- 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 +77 -2115
- package/dist/services/strategy-vault/index.js +119 -54
- package/dist/services/strategy-vault/oracle.d.ts +3 -3
- 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.d.ts +14 -143
- package/dist/services/strategy-vault/query.js +28 -40
- 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/risk_calculator/risk_calculator.d.ts +3 -3
- 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
|
@@ -8,10 +8,10 @@ exports.getRFQAuction = getRFQAuction;
|
|
|
8
8
|
exports.isVaultAsset = isVaultAsset;
|
|
9
9
|
exports.splitPureAndVaultAsset = splitPureAndVaultAsset;
|
|
10
10
|
exports.getPoolDataForStrategyVault = getPoolDataForStrategyVault;
|
|
11
|
-
exports.getPoolPositionsForStrategyVault = getPoolPositionsForStrategyVault;
|
|
12
11
|
exports.getValuationContext = getValuationContext;
|
|
13
12
|
exports.getPrice = getPrice;
|
|
14
13
|
exports.getUnderlyingPrices = getUnderlyingPrices;
|
|
14
|
+
exports.getNativeAmountDecomposedContext = getNativeAmountDecomposedContext;
|
|
15
15
|
const core_1 = require("@ton/core");
|
|
16
16
|
const utils_1 = require("../../contracts/common/utils");
|
|
17
17
|
const jetton_wallet_1 = require("../../contracts/jetton/jetton-wallet");
|
|
@@ -19,6 +19,7 @@ const rfq_auction_1 = require("../../contracts/rfq/rfq_auction");
|
|
|
19
19
|
const strategy_vault_1 = require("../../contracts/vault/strategy-vault");
|
|
20
20
|
const composite_oracle_1 = require("../composite-oracle");
|
|
21
21
|
const pool_1 = require("../../contracts/core/pool");
|
|
22
|
+
const transform_1 = require("../../common/transform");
|
|
22
23
|
function getVault(ctx, strategyVaultAddress) {
|
|
23
24
|
return ctx.getByContract(strategy_vault_1.StrategyVault, (0, utils_1.toAddress)(strategyVaultAddress));
|
|
24
25
|
}
|
|
@@ -75,57 +76,44 @@ async function getPoolDataForStrategyVault(ctx, strategyVaultAddress) {
|
|
|
75
76
|
const poolDataEntries = await Promise.all(poolDataEntriesPromises);
|
|
76
77
|
return Object.fromEntries(poolDataEntries);
|
|
77
78
|
}
|
|
78
|
-
async function
|
|
79
|
-
const strategyVault = getVault(ctx, strategyVaultAddress);
|
|
80
|
-
const vaultData = await strategyVault.getVaultData();
|
|
81
|
-
const poolInfo = {};
|
|
82
|
-
const poolDatas = await getPoolDataForStrategyVault(ctx, strategyVaultAddress);
|
|
83
|
-
for (const [poolAddress, poolPosition] of Object.entries(vaultData.factorialPools)) {
|
|
84
|
-
const poolData = poolDatas[poolAddress];
|
|
85
|
-
const position = {};
|
|
86
|
-
for (const [assetAddress, assetPosition] of Object.entries(poolPosition)) {
|
|
87
|
-
const amountPosition = (0, pool_1.positionShareToAmount)(assetPosition, poolData.assets[assetAddress]);
|
|
88
|
-
position[assetAddress] = {
|
|
89
|
-
supplyShare: assetPosition.supply,
|
|
90
|
-
supplyAmount: amountPosition.supply,
|
|
91
|
-
borrowShare: assetPosition.borrow,
|
|
92
|
-
borrowAmount: amountPosition.borrow,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
poolInfo[poolAddress] = position;
|
|
96
|
-
}
|
|
97
|
-
return poolInfo;
|
|
98
|
-
}
|
|
99
|
-
async function getValuationContext(ctx, strategyVaultAddress) {
|
|
79
|
+
async function getValuationContext(ctx, vaultAddress) {
|
|
100
80
|
const compositeOracle = new composite_oracle_1.CompositeOracleV1(ctx);
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
81
|
+
const vault = ctx.getByContract(strategy_vault_1.StrategyVault, (0, utils_1.toAddress)(vaultAddress));
|
|
82
|
+
const vaultData = await vault.getVaultData();
|
|
83
|
+
const priceInfo = await compositeOracle.getVaultPriceWithDetails(vaultAddress, vaultData);
|
|
84
|
+
const poolPositions = await getPoolDataForStrategyVault(ctx, vaultAddress);
|
|
85
|
+
const poolContexts = {};
|
|
86
|
+
Object.entries(poolPositions).forEach(([poolAddress, poolState]) => poolContexts[poolAddress] = transform_1.PoolContext.fromPoolState(poolState));
|
|
87
|
+
const vaultStateContext = transform_1.VaultStateContext.fromStrategyVaultState(vaultData);
|
|
88
|
+
const amountContext = vaultStateContext.toAmountContext(poolContexts);
|
|
89
|
+
const valueContext = amountContext.toValueContext(priceInfo.allPrices);
|
|
90
|
+
const nativeValueDecomposedContext = transform_1.VaultNativeValueDecomposedContext.fromValueContext(valueContext, priceInfo.allPrices);
|
|
91
|
+
const nativeAmountDecomposedContext = transform_1.VaultNativeAmountDecomposedContext.fromAmountContext(amountContext, priceInfo.allPrices);
|
|
107
92
|
return {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
price: vaultPrice,
|
|
93
|
+
vaultStateContext,
|
|
94
|
+
amountContext,
|
|
95
|
+
valueContext,
|
|
96
|
+
nativeValueDecomposedContext,
|
|
97
|
+
nativeAmountDecomposedContext,
|
|
114
98
|
priceInfo,
|
|
115
99
|
};
|
|
116
100
|
}
|
|
117
101
|
async function getPrice(ctx, strategyVaultAddress) {
|
|
118
|
-
const valuationCtx = await getValuationContext(ctx, strategyVaultAddress);
|
|
119
|
-
return valuationCtx.price;
|
|
102
|
+
const valuationCtx = await getValuationContext(ctx, (0, utils_1.toAddress)(strategyVaultAddress));
|
|
103
|
+
return valuationCtx.priceInfo.price;
|
|
120
104
|
}
|
|
121
105
|
async function getUnderlyingPrices(ctx, strategyVaultAddress) {
|
|
122
|
-
const valuationCtx = await getValuationContext(ctx, strategyVaultAddress);
|
|
123
|
-
const underlyingPriceEntries = Object.keys(valuationCtx.
|
|
106
|
+
const valuationCtx = await getValuationContext(ctx, (0, utils_1.toAddress)(strategyVaultAddress));
|
|
107
|
+
const underlyingPriceEntries = Object.keys(valuationCtx.vaultStateContext.assets)
|
|
124
108
|
.map(assetAddress => {
|
|
125
|
-
const priceData = valuationCtx.priceInfo[assetAddress];
|
|
109
|
+
const priceData = valuationCtx.priceInfo.allPrices[assetAddress];
|
|
126
110
|
if (!priceData)
|
|
127
111
|
throw new Error(`Price data not found for asset ${assetAddress}`);
|
|
128
112
|
return [assetAddress, priceData.price];
|
|
129
113
|
});
|
|
130
114
|
return Object.fromEntries(underlyingPriceEntries);
|
|
131
115
|
}
|
|
116
|
+
async function getNativeAmountDecomposedContext(ctx, strategyVaultAddress) {
|
|
117
|
+
const valuationCtx = await getValuationContext(ctx, (0, utils_1.toAddress)(strategyVaultAddress));
|
|
118
|
+
return valuationCtx.nativeAmountDecomposedContext;
|
|
119
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
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 StrategyVaultDepositAddresses = {
|
|
8
|
+
actor: Address;
|
|
9
|
+
actorAssetWallet: Address;
|
|
10
|
+
actorVaultWallet: Address;
|
|
11
|
+
vault: Address;
|
|
12
|
+
vaultAssetWallet: Address;
|
|
13
|
+
};
|
|
14
|
+
export type StrategyVaultWithdrawAddresses = {
|
|
15
|
+
actor: Address;
|
|
16
|
+
actorVaultWallet: Address;
|
|
17
|
+
actorWithdrawAssetWallet: Address;
|
|
18
|
+
vault: Address;
|
|
19
|
+
vaultWithdrawAssetWallet: Address;
|
|
20
|
+
};
|
|
21
|
+
export declare function getDepositAddresses(client: TonClient, params: {
|
|
22
|
+
actor: Address;
|
|
23
|
+
asset: Address;
|
|
24
|
+
vault: Address;
|
|
25
|
+
}): Promise<StrategyVaultDepositAddresses>;
|
|
26
|
+
export declare function getWithdrawAddresses(client: TonClient, params: {
|
|
27
|
+
actor: Address;
|
|
28
|
+
withdrawAsset: Address;
|
|
29
|
+
vault: Address;
|
|
30
|
+
}): Promise<StrategyVaultWithdrawAddresses>;
|
|
31
|
+
export type StrategyVaultDepositTracerParams = {
|
|
32
|
+
ctx: AffluentContext;
|
|
33
|
+
msgBody: Cell;
|
|
34
|
+
extHash: MessageHash;
|
|
35
|
+
actor: Address;
|
|
36
|
+
asset: Address;
|
|
37
|
+
vault: Address;
|
|
38
|
+
isWTON: boolean;
|
|
39
|
+
};
|
|
40
|
+
export declare class StrategyVaultDepositTracer extends TracerBase<"jetton" | "wton"> {
|
|
41
|
+
static create(params: StrategyVaultDepositTracerParams): Promise<StrategyVaultDepositTracer>;
|
|
42
|
+
constructor(toncenterClient: ToncenterV3Client, params: {
|
|
43
|
+
isWTON: boolean;
|
|
44
|
+
queryId: bigint;
|
|
45
|
+
extHash: MessageHash;
|
|
46
|
+
addresses: StrategyVaultDepositAddresses;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export type StrategyVaultWithdrawTracerParams = {
|
|
50
|
+
ctx: AffluentContext;
|
|
51
|
+
msgBody: Cell;
|
|
52
|
+
extHash: MessageHash;
|
|
53
|
+
actor: Address;
|
|
54
|
+
withdrawAsset: Address;
|
|
55
|
+
vault: Address;
|
|
56
|
+
isWTON: boolean;
|
|
57
|
+
};
|
|
58
|
+
export declare class StrategyVaultWithdrawTracer extends TracerBase<"jetton" | "wton"> {
|
|
59
|
+
static create(params: StrategyVaultWithdrawTracerParams): Promise<StrategyVaultWithdrawTracer>;
|
|
60
|
+
constructor(toncenterClient: ToncenterV3Client, params: {
|
|
61
|
+
isWTON: boolean;
|
|
62
|
+
queryId: bigint;
|
|
63
|
+
extHash: MessageHash;
|
|
64
|
+
addresses: StrategyVaultWithdrawAddresses;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
export type StrategyVaultDepositQueueTracerParams = {
|
|
68
|
+
ctx: AffluentContext;
|
|
69
|
+
msgBody: Cell;
|
|
70
|
+
extHash: MessageHash;
|
|
71
|
+
actor: Address;
|
|
72
|
+
asset: Address;
|
|
73
|
+
vault: Address;
|
|
74
|
+
isWTON: boolean;
|
|
75
|
+
};
|
|
76
|
+
export declare class StrategyVaultDepositQueueTracer extends TracerBase<"jetton" | "wton"> {
|
|
77
|
+
static create(params: StrategyVaultDepositQueueTracerParams): Promise<StrategyVaultDepositQueueTracer>;
|
|
78
|
+
constructor(toncenterClient: ToncenterV3Client, params: {
|
|
79
|
+
isWTON: boolean;
|
|
80
|
+
queryId: bigint;
|
|
81
|
+
extHash: MessageHash;
|
|
82
|
+
addresses: StrategyVaultDepositAddresses;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
export type StrategyVaultWithdrawQueueTracerParams = {
|
|
86
|
+
ctx: AffluentContext;
|
|
87
|
+
msgBody: Cell;
|
|
88
|
+
extHash: MessageHash;
|
|
89
|
+
actor: Address;
|
|
90
|
+
vault: Address;
|
|
91
|
+
};
|
|
92
|
+
export declare class StrategyVaultWithdrawQueueTracer extends TracerBase<"jetton"> {
|
|
93
|
+
static create(params: StrategyVaultWithdrawQueueTracerParams): Promise<StrategyVaultWithdrawQueueTracer>;
|
|
94
|
+
constructor(toncenterClient: ToncenterV3Client, params: {
|
|
95
|
+
queryId: bigint;
|
|
96
|
+
extHash: MessageHash;
|
|
97
|
+
addresses: {
|
|
98
|
+
actor: Address;
|
|
99
|
+
actorVaultWallet: Address;
|
|
100
|
+
vault: Address;
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
export type StrategyVaultCancelDepositQueueAddresses = {
|
|
105
|
+
actor: Address;
|
|
106
|
+
actorAssetWallet: Address;
|
|
107
|
+
vault: Address;
|
|
108
|
+
vaultAssetWallet: Address;
|
|
109
|
+
};
|
|
110
|
+
export declare function getCancelDepositQueueAddresses(client: TonClient, params: {
|
|
111
|
+
actor: Address;
|
|
112
|
+
asset: Address;
|
|
113
|
+
vault: Address;
|
|
114
|
+
}): Promise<StrategyVaultCancelDepositQueueAddresses>;
|
|
115
|
+
export type StrategyVaultCancelDepositQueueTracerParams = {
|
|
116
|
+
ctx: AffluentContext;
|
|
117
|
+
msgBody: Cell;
|
|
118
|
+
extHash: MessageHash;
|
|
119
|
+
actor: Address;
|
|
120
|
+
asset: Address;
|
|
121
|
+
vault: Address;
|
|
122
|
+
isWTON: boolean;
|
|
123
|
+
};
|
|
124
|
+
export declare class StrategyVaultCancelDepositQueueTracer extends TracerBase<"cancel"> {
|
|
125
|
+
static create(params: StrategyVaultCancelDepositQueueTracerParams): Promise<StrategyVaultCancelDepositQueueTracer>;
|
|
126
|
+
constructor(toncenterClient: ToncenterV3Client, params: {
|
|
127
|
+
isWTON: boolean;
|
|
128
|
+
queryId: bigint;
|
|
129
|
+
extHash: MessageHash;
|
|
130
|
+
addresses: StrategyVaultCancelDepositQueueAddresses;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
export type StrategyVaultCancelWithdrawQueueAddresses = {
|
|
134
|
+
actor: Address;
|
|
135
|
+
actorVaultWallet: Address;
|
|
136
|
+
vault: Address;
|
|
137
|
+
};
|
|
138
|
+
export declare function getCancelWithdrawQueueAddresses(client: TonClient, params: {
|
|
139
|
+
actor: Address;
|
|
140
|
+
vault: Address;
|
|
141
|
+
}): Promise<StrategyVaultCancelWithdrawQueueAddresses>;
|
|
142
|
+
export type StrategyVaultCancelWithdrawQueueTracerParams = {
|
|
143
|
+
ctx: AffluentContext;
|
|
144
|
+
msgBody: Cell;
|
|
145
|
+
extHash: MessageHash;
|
|
146
|
+
actor: Address;
|
|
147
|
+
vault: Address;
|
|
148
|
+
};
|
|
149
|
+
export declare class StrategyVaultCancelWithdrawQueueTracer extends TracerBase<"cancel"> {
|
|
150
|
+
static create(params: StrategyVaultCancelWithdrawQueueTracerParams): Promise<StrategyVaultCancelWithdrawQueueTracer>;
|
|
151
|
+
constructor(toncenterClient: ToncenterV3Client, params: {
|
|
152
|
+
queryId: bigint;
|
|
153
|
+
extHash: MessageHash;
|
|
154
|
+
addresses: StrategyVaultCancelWithdrawQueueAddresses;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StrategyVaultCancelWithdrawQueueTracer = exports.StrategyVaultCancelDepositQueueTracer = exports.StrategyVaultWithdrawQueueTracer = exports.StrategyVaultDepositQueueTracer = exports.StrategyVaultWithdrawTracer = exports.StrategyVaultDepositTracer = void 0;
|
|
4
|
+
exports.getDepositAddresses = getDepositAddresses;
|
|
5
|
+
exports.getWithdrawAddresses = getWithdrawAddresses;
|
|
6
|
+
exports.getCancelDepositQueueAddresses = getCancelDepositQueueAddresses;
|
|
7
|
+
exports.getCancelWithdrawQueueAddresses = getCancelWithdrawQueueAddresses;
|
|
8
|
+
const trace_action_1 = require("../../../common/trace-action");
|
|
9
|
+
const jetton_wallet_1 = require("../../../contracts/jetton/jetton-wallet");
|
|
10
|
+
const jetton_minter_1 = require("../../../contracts/jetton/jetton-minter");
|
|
11
|
+
const strategy_vault_1 = require("../../../contracts/vault/strategy-vault");
|
|
12
|
+
async function getDepositAddresses(client, params) {
|
|
13
|
+
const { actor, asset, vault } = params;
|
|
14
|
+
const _asset = client.open(jetton_minter_1.JettonMinter.createFromAddress(asset));
|
|
15
|
+
const _vault = client.open(strategy_vault_1.StrategyVault.createFromAddress(vault));
|
|
16
|
+
return {
|
|
17
|
+
actor,
|
|
18
|
+
actorAssetWallet: await _asset.getWalletAddress(actor),
|
|
19
|
+
actorVaultWallet: await _vault.getWalletAddress(actor),
|
|
20
|
+
vault,
|
|
21
|
+
vaultAssetWallet: await _asset.getWalletAddress(vault),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async function getWithdrawAddresses(client, params) {
|
|
25
|
+
const { actor, withdrawAsset, vault } = params;
|
|
26
|
+
const _withdrawAsset = client.open(jetton_minter_1.JettonMinter.createFromAddress(withdrawAsset));
|
|
27
|
+
const _vault = client.open(strategy_vault_1.StrategyVault.createFromAddress(vault));
|
|
28
|
+
return {
|
|
29
|
+
actor,
|
|
30
|
+
actorVaultWallet: await _vault.getWalletAddress(actor),
|
|
31
|
+
actorWithdrawAssetWallet: await _withdrawAsset.getWalletAddress(actor),
|
|
32
|
+
vault,
|
|
33
|
+
vaultWithdrawAssetWallet: await _withdrawAsset.getWalletAddress(vault),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
class StrategyVaultDepositTracer extends trace_action_1.TracerBase {
|
|
37
|
+
static async create(params) {
|
|
38
|
+
const { ctx, msgBody, extHash, actor, asset, vault, isWTON } = params;
|
|
39
|
+
const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
|
|
40
|
+
const addresses = await getDepositAddresses(ctx.client, { actor, asset, vault });
|
|
41
|
+
return new StrategyVaultDepositTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
|
|
42
|
+
}
|
|
43
|
+
constructor(toncenterClient, params) {
|
|
44
|
+
const { isWTON, queryId, extHash, addresses } = params;
|
|
45
|
+
const type = isWTON ? "wton" : "jetton";
|
|
46
|
+
const steps = [
|
|
47
|
+
...(0, trace_action_1.createJettonSendSteps)({
|
|
48
|
+
isWTON,
|
|
49
|
+
actor: addresses.actor,
|
|
50
|
+
actorWallet: addresses.actorAssetWallet,
|
|
51
|
+
targetWallet: addresses.vaultAssetWallet,
|
|
52
|
+
target: addresses.vault,
|
|
53
|
+
description: "Transferring Tokens",
|
|
54
|
+
}),
|
|
55
|
+
...(0, trace_action_1.createMintSteps)({
|
|
56
|
+
minter: addresses.vault,
|
|
57
|
+
actorWallet: addresses.actorVaultWallet,
|
|
58
|
+
description: "Receiving Vault Tokens",
|
|
59
|
+
}),
|
|
60
|
+
];
|
|
61
|
+
const failStep = {
|
|
62
|
+
op: jetton_wallet_1.JettonWallet.Op.InternalTransfer,
|
|
63
|
+
from: addresses.vaultAssetWallet,
|
|
64
|
+
to: addresses.actorAssetWallet,
|
|
65
|
+
description: "Refunding Tokens",
|
|
66
|
+
};
|
|
67
|
+
super(toncenterClient, extHash, type, queryId, steps, failStep);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.StrategyVaultDepositTracer = StrategyVaultDepositTracer;
|
|
71
|
+
class StrategyVaultWithdrawTracer extends trace_action_1.TracerBase {
|
|
72
|
+
static async create(params) {
|
|
73
|
+
const { ctx, msgBody, extHash, actor, withdrawAsset, vault, isWTON } = params;
|
|
74
|
+
const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
|
|
75
|
+
const addresses = await getWithdrawAddresses(ctx.client, { actor, withdrawAsset, vault });
|
|
76
|
+
return new StrategyVaultWithdrawTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
|
|
77
|
+
}
|
|
78
|
+
constructor(toncenterClient, params) {
|
|
79
|
+
const { isWTON, queryId, extHash, addresses } = params;
|
|
80
|
+
const type = isWTON ? "wton" : "jetton";
|
|
81
|
+
const steps = [
|
|
82
|
+
...(0, trace_action_1.createBurnSteps)({
|
|
83
|
+
actor: addresses.actor,
|
|
84
|
+
actorWallet: addresses.actorVaultWallet,
|
|
85
|
+
minter: addresses.vault,
|
|
86
|
+
description: "Burning Vault Tokens",
|
|
87
|
+
}),
|
|
88
|
+
...(0, trace_action_1.createJettonReceiveSteps)({
|
|
89
|
+
isWTON,
|
|
90
|
+
sourceWallet: addresses.vaultWithdrawAssetWallet,
|
|
91
|
+
actorWallet: addresses.actorWithdrawAssetWallet,
|
|
92
|
+
actor: addresses.actor,
|
|
93
|
+
description: "Receiving Withdraw Asset",
|
|
94
|
+
}),
|
|
95
|
+
];
|
|
96
|
+
const failStep = {
|
|
97
|
+
op: jetton_wallet_1.JettonWallet.Op.InternalTransfer,
|
|
98
|
+
from: addresses.vaultWithdrawAssetWallet,
|
|
99
|
+
to: addresses.actorWithdrawAssetWallet,
|
|
100
|
+
description: "Refunding Withdraw Asset",
|
|
101
|
+
};
|
|
102
|
+
super(toncenterClient, extHash, type, queryId, steps, failStep);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.StrategyVaultWithdrawTracer = StrategyVaultWithdrawTracer;
|
|
106
|
+
class StrategyVaultDepositQueueTracer extends trace_action_1.TracerBase {
|
|
107
|
+
static async create(params) {
|
|
108
|
+
const { ctx, msgBody, extHash, actor, asset, vault, isWTON } = params;
|
|
109
|
+
const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
|
|
110
|
+
const addresses = await getDepositAddresses(ctx.client, { actor, asset, vault });
|
|
111
|
+
return new StrategyVaultDepositQueueTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
|
|
112
|
+
}
|
|
113
|
+
constructor(toncenterClient, params) {
|
|
114
|
+
const { isWTON, queryId, extHash, addresses } = params;
|
|
115
|
+
const type = isWTON ? "wton" : "jetton";
|
|
116
|
+
const steps = [
|
|
117
|
+
...(0, trace_action_1.createJettonSendSteps)({
|
|
118
|
+
isWTON,
|
|
119
|
+
actor: addresses.actor,
|
|
120
|
+
actorWallet: addresses.actorAssetWallet,
|
|
121
|
+
targetWallet: addresses.vaultAssetWallet,
|
|
122
|
+
target: addresses.vault,
|
|
123
|
+
description: "Transferring Tokens",
|
|
124
|
+
}),
|
|
125
|
+
{
|
|
126
|
+
op: strategy_vault_1.StrategyVault.Op.Excesses,
|
|
127
|
+
from: addresses.vault,
|
|
128
|
+
to: addresses.actor,
|
|
129
|
+
description: "Queue Registered Excesses",
|
|
130
|
+
},
|
|
131
|
+
];
|
|
132
|
+
const failStep = {
|
|
133
|
+
op: jetton_wallet_1.JettonWallet.Op.Transfer,
|
|
134
|
+
from: addresses.vault,
|
|
135
|
+
to: addresses.vaultAssetWallet,
|
|
136
|
+
description: "Refunding Tokens",
|
|
137
|
+
};
|
|
138
|
+
super(toncenterClient, extHash, type, queryId, steps, failStep);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.StrategyVaultDepositQueueTracer = StrategyVaultDepositQueueTracer;
|
|
142
|
+
class StrategyVaultWithdrawQueueTracer extends trace_action_1.TracerBase {
|
|
143
|
+
static async create(params) {
|
|
144
|
+
const { ctx, msgBody, extHash, actor, vault } = params;
|
|
145
|
+
const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
|
|
146
|
+
const _vault = ctx.client.open(strategy_vault_1.StrategyVault.createFromAddress(vault));
|
|
147
|
+
const actorVaultWallet = await _vault.getWalletAddress(actor);
|
|
148
|
+
return new StrategyVaultWithdrawQueueTracer(ctx.toncenterClient, {
|
|
149
|
+
queryId,
|
|
150
|
+
extHash,
|
|
151
|
+
addresses: { actor, actorVaultWallet, vault },
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
constructor(toncenterClient, params) {
|
|
155
|
+
const { queryId, extHash, addresses } = params;
|
|
156
|
+
const steps = [
|
|
157
|
+
...(0, trace_action_1.createBurnSteps)({
|
|
158
|
+
actor: addresses.actor,
|
|
159
|
+
actorWallet: addresses.actorVaultWallet,
|
|
160
|
+
minter: addresses.vault,
|
|
161
|
+
description: "Burning Vault Tokens",
|
|
162
|
+
}),
|
|
163
|
+
{
|
|
164
|
+
op: strategy_vault_1.StrategyVault.Op.Excesses,
|
|
165
|
+
from: addresses.vault,
|
|
166
|
+
to: addresses.actor,
|
|
167
|
+
description: "Queue Registered Excesses",
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
const failStep = {
|
|
171
|
+
op: jetton_wallet_1.JettonWallet.Op.InternalTransfer,
|
|
172
|
+
from: addresses.vault,
|
|
173
|
+
to: addresses.actorVaultWallet,
|
|
174
|
+
description: "Refunding Vault Tokens",
|
|
175
|
+
};
|
|
176
|
+
super(toncenterClient, extHash, "jetton", queryId, steps, failStep);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
exports.StrategyVaultWithdrawQueueTracer = StrategyVaultWithdrawQueueTracer;
|
|
180
|
+
async function getCancelDepositQueueAddresses(client, params) {
|
|
181
|
+
const { actor, asset, vault } = params;
|
|
182
|
+
const _asset = client.open(jetton_minter_1.JettonMinter.createFromAddress(asset));
|
|
183
|
+
return {
|
|
184
|
+
actor,
|
|
185
|
+
actorAssetWallet: await _asset.getWalletAddress(actor),
|
|
186
|
+
vault,
|
|
187
|
+
vaultAssetWallet: await _asset.getWalletAddress(vault),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
class StrategyVaultCancelDepositQueueTracer extends trace_action_1.TracerBase {
|
|
191
|
+
static async create(params) {
|
|
192
|
+
const { ctx, msgBody, extHash, actor, asset, vault, isWTON } = params;
|
|
193
|
+
const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
|
|
194
|
+
const addresses = await getCancelDepositQueueAddresses(ctx.client, { actor, asset, vault });
|
|
195
|
+
return new StrategyVaultCancelDepositQueueTracer(ctx.toncenterClient, { isWTON, queryId, extHash, addresses });
|
|
196
|
+
}
|
|
197
|
+
constructor(toncenterClient, params) {
|
|
198
|
+
const { isWTON, queryId, extHash, addresses } = params;
|
|
199
|
+
const steps = [
|
|
200
|
+
{
|
|
201
|
+
op: strategy_vault_1.StrategyVault.Op.CancelDepositQueue,
|
|
202
|
+
from: addresses.actor,
|
|
203
|
+
to: addresses.vault,
|
|
204
|
+
description: "Cancelling Deposit Queue",
|
|
205
|
+
},
|
|
206
|
+
...(0, trace_action_1.createJettonReceiveSteps)({
|
|
207
|
+
isWTON,
|
|
208
|
+
sourceWallet: addresses.vaultAssetWallet,
|
|
209
|
+
actorWallet: addresses.actorAssetWallet,
|
|
210
|
+
actor: addresses.actor,
|
|
211
|
+
description: "Refunding Tokens",
|
|
212
|
+
}),
|
|
213
|
+
];
|
|
214
|
+
const failStep = {
|
|
215
|
+
op: 0xffffffff,
|
|
216
|
+
from: addresses.vault,
|
|
217
|
+
to: addresses.actor,
|
|
218
|
+
description: "Bounced",
|
|
219
|
+
};
|
|
220
|
+
super(toncenterClient, extHash, "cancel", queryId, steps, failStep);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
exports.StrategyVaultCancelDepositQueueTracer = StrategyVaultCancelDepositQueueTracer;
|
|
224
|
+
async function getCancelWithdrawQueueAddresses(client, params) {
|
|
225
|
+
const { actor, vault } = params;
|
|
226
|
+
const _vault = client.open(strategy_vault_1.StrategyVault.createFromAddress(vault));
|
|
227
|
+
return {
|
|
228
|
+
actor,
|
|
229
|
+
actorVaultWallet: await _vault.getWalletAddress(actor),
|
|
230
|
+
vault,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
class StrategyVaultCancelWithdrawQueueTracer extends trace_action_1.TracerBase {
|
|
234
|
+
static async create(params) {
|
|
235
|
+
const { ctx, msgBody, extHash, actor, vault } = params;
|
|
236
|
+
const { queryId } = (0, trace_action_1.getOpAndQueryId)(msgBody);
|
|
237
|
+
const addresses = await getCancelWithdrawQueueAddresses(ctx.client, { actor, vault });
|
|
238
|
+
return new StrategyVaultCancelWithdrawQueueTracer(ctx.toncenterClient, { queryId, extHash, addresses });
|
|
239
|
+
}
|
|
240
|
+
constructor(toncenterClient, params) {
|
|
241
|
+
const { queryId, extHash, addresses } = params;
|
|
242
|
+
const steps = [
|
|
243
|
+
{
|
|
244
|
+
op: strategy_vault_1.StrategyVault.Op.CancelWithdrawQueue,
|
|
245
|
+
from: addresses.actor,
|
|
246
|
+
to: addresses.vault,
|
|
247
|
+
description: "Cancelling Withdraw Queue",
|
|
248
|
+
},
|
|
249
|
+
...(0, trace_action_1.createMintSteps)({
|
|
250
|
+
minter: addresses.vault,
|
|
251
|
+
actorWallet: addresses.actorVaultWallet,
|
|
252
|
+
description: "Refunding Vault Tokens",
|
|
253
|
+
}),
|
|
254
|
+
];
|
|
255
|
+
const failStep = {
|
|
256
|
+
op: 0xffffffff,
|
|
257
|
+
from: addresses.vault,
|
|
258
|
+
to: addresses.actor,
|
|
259
|
+
description: "Bounced",
|
|
260
|
+
};
|
|
261
|
+
super(toncenterClient, extHash, "cancel", queryId, steps, failStep);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
exports.StrategyVaultCancelWithdrawQueueTracer = StrategyVaultCancelWithdrawQueueTracer;
|