@affluent-org/sdk 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/affluent.d.ts +3 -3
  2. package/dist/affluent.js +3 -3
  3. package/dist/common/computation.d.ts +6 -0
  4. package/dist/common/computation.js +54 -0
  5. package/dist/common/helper.d.ts +5 -0
  6. package/dist/common/helper.js +29 -0
  7. package/dist/common/service.d.ts +10 -2
  8. package/dist/common/service.js +56 -3
  9. package/dist/common/trace-action.d.ts +92 -0
  10. package/dist/common/trace-action.js +187 -0
  11. package/dist/common/transform.d.ts +87 -0
  12. package/dist/common/transform.js +264 -0
  13. package/dist/common/types.d.ts +140 -0
  14. package/dist/common/types.js +11 -0
  15. package/dist/context.d.ts +3 -0
  16. package/dist/context.js +9 -0
  17. package/dist/contracts/oracle/redstone-onchain-oracle/index.js +2 -0
  18. package/dist/contracts/oracle/redstone-onchain-oracle/type.d.ts +1 -1
  19. package/dist/contracts/vault/strategy-vault/index.d.ts +2 -1
  20. package/dist/contracts/vault/strategy-vault/index.js +1 -0
  21. package/dist/factorial.d.ts +18 -8
  22. package/dist/factorial.js +26 -14
  23. package/dist/index.d.ts +4 -2
  24. package/dist/index.js +18 -2
  25. package/dist/lib/send-msg.d.ts +16 -2
  26. package/dist/lib/send-msg.js +23 -2
  27. package/dist/monitor.js +2 -0
  28. package/dist/monitorCacheV1.js +3 -2
  29. package/dist/oracle/oracle.d.ts +3 -2
  30. package/dist/oracle/oracle.js +25 -2
  31. package/dist/pool.d.ts +41 -0
  32. package/dist/pool.js +146 -178
  33. package/dist/poolCacheV1.js +1 -0
  34. package/dist/rfq-auction.d.ts +2 -2
  35. package/dist/rfq-auction.js +6 -6
  36. package/dist/rfq-batch.d.ts +21 -11
  37. package/dist/rfq-batch.js +81 -9
  38. package/dist/services/composite-oracle/codec.d.ts +76 -0
  39. package/dist/services/composite-oracle/codec.js +281 -0
  40. package/dist/services/composite-oracle/computation.d.ts +8 -19
  41. package/dist/services/composite-oracle/computation.js +119 -76
  42. package/dist/services/composite-oracle/index.d.ts +2 -2
  43. package/dist/services/composite-oracle/index.js +5 -6
  44. package/dist/services/composite-oracle/query.d.ts +6 -6
  45. package/dist/services/composite-oracle/query.js +6 -47
  46. package/dist/services/pool/computation.d.ts +3 -9
  47. package/dist/services/pool/computation.js +12 -78
  48. package/dist/services/pool/index.d.ts +10 -59
  49. package/dist/services/pool/index.js +55 -8
  50. package/dist/services/pool/oracle.d.ts +2 -2
  51. package/dist/services/pool/query.d.ts +1 -1
  52. package/dist/services/pool/query.js +1 -1
  53. package/dist/services/pool/user/trace.d.ts +90 -0
  54. package/dist/services/pool/user/trace.js +168 -0
  55. package/dist/services/rfq-auction/index.d.ts +7 -23
  56. package/dist/services/rfq-auction/index.js +45 -6
  57. package/dist/services/rfq-auction/oracle.d.ts +2 -2
  58. package/dist/services/rfq-auction/user/index.js +1 -1
  59. package/dist/services/rfq-auction/user/trace.d.ts +53 -0
  60. package/dist/services/rfq-auction/user/trace.js +68 -0
  61. package/dist/services/rfq-batch/index.d.ts +16 -13
  62. package/dist/services/rfq-batch/index.js +34 -10
  63. package/dist/services/rfq-batch/oracle.d.ts +2 -2
  64. package/dist/services/rfq-batch/user/trace.d.ts +49 -0
  65. package/dist/services/rfq-batch/user/trace.js +67 -0
  66. package/dist/services/share-vault/index.d.ts +14 -88
  67. package/dist/services/share-vault/index.js +37 -10
  68. package/dist/services/share-vault/query.d.ts +5 -32
  69. package/dist/services/share-vault/query.js +25 -12
  70. package/dist/services/share-vault/user/trace.d.ts +54 -0
  71. package/dist/services/share-vault/user/trace.js +84 -0
  72. package/dist/services/strategy-vault/index.d.ts +77 -2115
  73. package/dist/services/strategy-vault/index.js +119 -54
  74. package/dist/services/strategy-vault/oracle.d.ts +3 -3
  75. package/dist/services/strategy-vault/oracle.js +1 -0
  76. package/dist/services/strategy-vault/owner/index.d.ts +2 -2
  77. package/dist/services/strategy-vault/owner/index.js +1 -1
  78. package/dist/services/strategy-vault/owner/types.d.ts +4 -0
  79. package/dist/services/strategy-vault/query.d.ts +14 -143
  80. package/dist/services/strategy-vault/query.js +28 -40
  81. package/dist/services/strategy-vault/user/trace.d.ts +156 -0
  82. package/dist/services/strategy-vault/user/trace.js +264 -0
  83. package/dist/share-vault.d.ts +164 -8
  84. package/dist/share-vault.js +222 -67
  85. package/dist/strategy_vault/base.d.ts +521 -105
  86. package/dist/strategy_vault/base.js +493 -41
  87. package/dist/strategy_vault/steps.d.ts +120 -3
  88. package/dist/strategy_vault/steps.js +161 -0
  89. package/dist/types/sender.d.ts +1 -0
  90. package/dist/utils/_parse_temp/StrategyVault.d.ts +9 -9
  91. package/dist/utils/_parse_temp/StrategyVault.js +48 -40
  92. package/dist/utils/_parse_temp/parseMsgBody.d.ts +2 -2
  93. package/dist/utils/_parse_temp/parseMsgBody.js +84 -84
  94. package/dist/utils/external-message-hash.d.ts +7 -3
  95. package/dist/utils/external-message-hash.js +20 -7
  96. package/dist/utils/oracle/redstone/helper.js +2 -0
  97. package/dist/utils/oracle/redstone/redstoneHelper.d.ts +7 -0
  98. package/dist/utils/oracle/redstone/redstoneHelper.js +103 -1
  99. package/dist/utils/pending-tracker/trackable-sender.d.ts +37 -4
  100. package/dist/utils/pending-tracker/trackable-sender.js +47 -8
  101. package/dist/utils/pending-tracker/v3-client.d.ts +16 -0
  102. package/dist/utils/pending-tracker/v3-client.js +80 -2
  103. package/dist/utils/risk_calculator/risk_calculator.d.ts +3 -3
  104. package/dist/utils/toncenter/index.d.ts +1 -0
  105. package/dist/utils/toncenter/index.js +17 -0
  106. package/dist/utils/toncenter/transform.d.ts +11 -0
  107. package/dist/utils/toncenter/transform.js +40 -0
  108. package/dist/utils/toncenter/type.d.ts +227 -0
  109. package/dist/utils/toncenter/type.js +2 -0
  110. package/package.json +3 -3
@@ -38,6 +38,7 @@ exports.getVaultData = getVaultData;
38
38
  exports.getVaultWalletAddress = getVaultWalletAddress;
39
39
  exports.getVaultWallet = getVaultWallet;
40
40
  exports.getPoolInfoForShareVault = getPoolInfoForShareVault;
41
+ exports.getPoolDataForShareVault = getPoolDataForShareVault;
41
42
  exports.getValuationContext = getValuationContext;
42
43
  exports.getEXR = getEXR;
43
44
  const core_1 = require("@ton/core");
@@ -45,7 +46,7 @@ const utils_1 = require("../../contracts/common/utils");
45
46
  const share_vault_1 = require("../../contracts/vault/share-vault");
46
47
  const pool_1 = require("../../contracts/core/pool");
47
48
  const jetton_wallet_1 = require("../../contracts/jetton/jetton-wallet");
48
- const computation_1 = require("./computation");
49
+ const transform_1 = require("../../common/transform");
49
50
  /**
50
51
  * Get ShareVault contract instance
51
52
  */
@@ -109,23 +110,35 @@ async function getPoolInfoForShareVault(ctx, vaultData) {
109
110
  }
110
111
  return poolInfo;
111
112
  }
112
- async function getValuationContext(ctx, vaultAddress) {
113
+ async function getPoolDataForShareVault(ctx, vaultAddress) {
113
114
  const vault = getVault(ctx, vaultAddress);
114
115
  const vaultData = await vault.getVaultData();
115
- const poolInfo = await getPoolInfoForShareVault(ctx, vaultData);
116
- const exrInfo = (0, computation_1.getExchangeRate)(vaultData, poolInfo);
116
+ const poolAddresses = Object.keys(vaultData.whitelistedPools);
117
+ const poolDataEntriesPromises = poolAddresses.map(async (poolAddress) => {
118
+ const pool = ctx.getByContract(pool_1.Pool, core_1.Address.parse(poolAddress));
119
+ return [poolAddress, await pool.getPoolData()];
120
+ });
121
+ const poolDataEntries = await Promise.all(poolDataEntriesPromises);
122
+ return Object.fromEntries(poolDataEntries);
123
+ }
124
+ async function getValuationContext(ctx, vaultAddress) {
125
+ const vault = ctx.getByContract(share_vault_1.ShareVault, (0, utils_1.toAddress)(vaultAddress));
126
+ const vaultData = await vault.getVaultData();
127
+ const poolPositions = await getPoolDataForShareVault(ctx, vaultAddress);
128
+ const poolContexts = {};
129
+ Object.entries(poolPositions).forEach(([poolAddress, poolState]) => poolContexts[poolAddress] = transform_1.PoolContext.fromPoolState(poolState));
130
+ const vaultStateContext = transform_1.VaultStateContext.fromShareVaultState(vaultData);
131
+ const amountContext = vaultStateContext.toAmountContext(poolContexts);
132
+ const netAmount = amountContext.decompose()[vaultData.asset.toString()].net();
117
133
  return {
118
- storage: vaultData,
119
- totalSupply: vaultData.totalSupply,
120
- asset: vaultData.asset,
121
- reserve: vaultData.cash,
122
- poolPositions: poolInfo,
123
- netAmount: exrInfo.netAmount,
124
- exr: exrInfo.exr,
134
+ vaultStateContext,
135
+ amountContext,
136
+ netAmount,
137
+ exr: Number(netAmount) / Number(vaultData.totalSupply),
125
138
  };
126
139
  }
127
140
  async function getEXR(ctx, vaultAddress) {
128
- return getValuationContext(ctx, vaultAddress).then((vaultCtx) => {
141
+ return getValuationContext(ctx, (0, utils_1.toAddress)(vaultAddress)).then((vaultCtx) => {
129
142
  return vaultCtx.exr;
130
143
  });
131
144
  }
@@ -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;