@ember-finance/sdk 2.5.0-pre.8 → 2.5.0

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 (92) hide show
  1. package/dist/src/abis/ERC20Token.json +2 -2
  2. package/dist/src/abis/EmberETHVault.json +5 -279
  3. package/dist/src/abis/EmberProtocolConfig.json +2 -170
  4. package/dist/src/abis/EmberVault.json +2 -2
  5. package/dist/src/abis/EmberVaultMintBurnOFTAdapter.json +2 -43
  6. package/dist/src/api/models/poc-report-asset.d.ts +6 -0
  7. package/dist/src/api/models/poc-report-protocol.d.ts +30 -0
  8. package/dist/src/api/models/poc-report-token.d.ts +36 -0
  9. package/dist/src/api/models/poc-report-wallet.d.ts +10 -4
  10. package/dist/src/api/v2/apis/accounts-api.d.ts +0 -5
  11. package/dist/src/api/v2/apis/accounts-api.js +1 -6
  12. package/dist/src/api/v2/apis/vaults-api.d.ts +43 -16
  13. package/dist/src/api/v2/apis/vaults-api.js +84 -21
  14. package/dist/src/api/v2/models/account-transaction-transaction-data.d.ts +1 -5
  15. package/dist/src/api/v2/models/account-transaction.d.ts +0 -5
  16. package/dist/src/api/v2/models/account-transaction.js +1 -6
  17. package/dist/src/api/v2/models/chain-vault-details.d.ts +13 -14
  18. package/dist/src/api/v2/models/chain-vault-details.js +6 -1
  19. package/dist/src/api/v2/models/evm-contracts.d.ts +0 -16
  20. package/dist/src/api/v2/models/index.d.ts +4 -9
  21. package/dist/src/api/v2/models/index.js +4 -9
  22. package/dist/src/api/v2/models/poc-report-asset.d.ts +6 -0
  23. package/dist/src/api/v2/models/poc-report-protocol.d.ts +30 -0
  24. package/dist/src/api/v2/models/poc-report-token.d.ts +36 -0
  25. package/dist/src/api/v2/models/poc-report-wallet.d.ts +10 -4
  26. package/dist/src/api/v2/models/transparency-group.d.ts +55 -0
  27. package/dist/src/api/v2/models/transparency-row.d.ts +138 -0
  28. package/dist/src/api/v2/models/{fee-multiplier-tier.js → transparency-row.js} +10 -1
  29. package/dist/src/api/v2/models/transparency-view.d.ts +22 -0
  30. package/dist/src/api/v2/models/{evm-atomic-vault.js → transparency-view.js} +10 -1
  31. package/dist/src/api/v2/models/vault-detail.d.ts +0 -11
  32. package/dist/src/api/v2/models/vault-detail.js +0 -4
  33. package/dist/src/api/v2/models/vault-transparency-report.d.ts +82 -0
  34. package/dist/src/ember-vaults.d.ts +1 -2
  35. package/dist/src/evm-vaults/interfaces/index.d.ts +8 -0
  36. package/dist/src/evm-vaults/on-chain-calls/index.d.ts +0 -1
  37. package/dist/src/evm-vaults/on-chain-calls/index.js +0 -1
  38. package/dist/src/evm-vaults/on-chain-calls/onchain-calls.js +4 -1
  39. package/dist/src/evm-vaults/on-chain-calls/operator.d.ts +0 -10
  40. package/dist/src/evm-vaults/on-chain-calls/operator.js +0 -28
  41. package/dist/src/evm-vaults/on-chain-calls/tx-builder.d.ts +0 -109
  42. package/dist/src/evm-vaults/on-chain-calls/tx-builder.js +0 -281
  43. package/dist/src/evm-vaults/on-chain-calls/user.d.ts +0 -50
  44. package/dist/src/evm-vaults/on-chain-calls/user.js +0 -75
  45. package/dist/src/evm-vaults/on-chain-calls/vault-admin.d.ts +0 -55
  46. package/dist/src/evm-vaults/on-chain-calls/vault-admin.js +0 -122
  47. package/dist/src/evm-vaults/on-chain-calls/vault-reader.d.ts +0 -6
  48. package/dist/src/evm-vaults/on-chain-calls/vault-reader.js +0 -9
  49. package/dist/src/evm-vaults/utils/deployment-parser.d.ts +0 -8
  50. package/dist/src/evm-vaults/utils/deployment-parser.js +0 -11
  51. package/dist/src/sui-vaults/interfaces/index.d.ts +0 -15
  52. package/dist/src/sui-vaults/on-chain-calls/admin.d.ts +1 -37
  53. package/dist/src/sui-vaults/on-chain-calls/admin.js +0 -56
  54. package/dist/src/sui-vaults/on-chain-calls/index.d.ts +0 -1
  55. package/dist/src/sui-vaults/on-chain-calls/index.js +0 -1
  56. package/dist/src/sui-vaults/on-chain-calls/onchain-calls.d.ts +1 -2
  57. package/dist/src/sui-vaults/on-chain-calls/operator.d.ts +1 -129
  58. package/dist/src/sui-vaults/on-chain-calls/operator.js +0 -210
  59. package/dist/src/sui-vaults/on-chain-calls/tx-builder.d.ts +0 -482
  60. package/dist/src/sui-vaults/on-chain-calls/tx-builder.js +0 -1430
  61. package/dist/src/sui-vaults/on-chain-calls/user.d.ts +1 -107
  62. package/dist/src/sui-vaults/on-chain-calls/user.js +0 -190
  63. package/dist/src/sui-vaults/on-chain-calls/vault-admin.d.ts +1 -229
  64. package/dist/src/sui-vaults/on-chain-calls/vault-admin.js +0 -391
  65. package/dist/src/sui-vaults/on-chain-calls/vault.d.ts +1 -2
  66. package/dist/src/sui-vaults/utils/common.d.ts +1 -2
  67. package/dist/src/sui-vaults/utils/deployment-parser.d.ts +0 -12
  68. package/dist/src/sui-vaults/utils/deployment-parser.js +0 -24
  69. package/package.json +2 -3
  70. package/dist/src/abis/AtomicLiquidity.json +0 -4050
  71. package/dist/src/api/v2/models/escrow-claim-transaction.d.ts +0 -56
  72. package/dist/src/api/v2/models/evm-atomic-liquidity-lib.d.ts +0 -48
  73. package/dist/src/api/v2/models/evm-atomic-vault.d.ts +0 -102
  74. package/dist/src/api/v2/models/fee-multiplier-tier.d.ts +0 -30
  75. package/dist/src/api/v2/models/holdback-release-transaction.d.ts +0 -56
  76. package/dist/src/api/v2/models/holdback-release-transaction.js +0 -14
  77. package/dist/src/api/v2/models/instant-withdraw-config.d.ts +0 -109
  78. package/dist/src/api/v2/models/instant-withdraw-config.js +0 -14
  79. package/dist/src/api/v2/models/instant-withdraw-transaction.d.ts +0 -74
  80. package/dist/src/api/v2/models/instant-withdraw-transaction.js +0 -14
  81. package/dist/src/api/v2/models/instant-withdraw-via-swap-transaction.d.ts +0 -74
  82. package/dist/src/api/v2/models/instant-withdraw-via-swap-transaction.js +0 -14
  83. package/dist/src/api/v2/models/supported-ember-vault.d.ts +0 -42
  84. package/dist/src/api/v2/models/supported-ember-vault.js +0 -14
  85. package/dist/src/atomic/instant-withdraw.d.ts +0 -125
  86. package/dist/src/atomic/instant-withdraw.js +0 -122
  87. package/dist/src/evm-vaults/on-chain-calls/atomic-liquidity.d.ts +0 -98
  88. package/dist/src/evm-vaults/on-chain-calls/atomic-liquidity.js +0 -212
  89. package/dist/src/sui-vaults/on-chain-calls/atomic-liquidity.d.ts +0 -62
  90. package/dist/src/sui-vaults/on-chain-calls/atomic-liquidity.js +0 -174
  91. /package/dist/src/api/v2/models/{escrow-claim-transaction.js → transparency-group.js} +0 -0
  92. /package/dist/src/api/v2/models/{evm-atomic-liquidity-lib.js → vault-transparency-report.js} +0 -0
@@ -1,174 +0,0 @@
1
- import { bcs } from "@mysten/sui/bcs";
2
- import { computeSwapQuote, computePlainInstantQuote } from "../../atomic/instant-withdraw.js";
3
- /** Sui fixed-point scale (1e9) used by the Atomic Liquidity Vault Move math. */
4
- const SUI_SCALE = 1000000000n;
5
- const unwrapMoveFields = (value) => value?.fields ?? value;
6
- const toBig = (v) => v === undefined || v === null ? 0n : BigInt(v);
7
- /** `math::div(a, b)` = floor(a * scale / b). */
8
- const divFloor = (a, b) => (b === 0n ? 0n : (a * SUI_SCALE) / b);
9
- /** `math::div_ceil(a, b)` = ceil(a * scale / b) — used by `calculate_amount_from_shares`. */
10
- const divCeil = (a, b) => b === 0n ? 0n : (a * SUI_SCALE + (b - 1n)) / b;
11
- /**
12
- * Read-only views + instant-withdraw quotes for the Sui Atomic Liquidity Vault (BET-4111).
13
- *
14
- * There is no on-chain preview function and no off-chain view calls on Sui, so this reads
15
- * the ALV (and source vault) object fields directly and replicates the Move math
16
- * (`calculate_amount_from_shares`, `get_vault_tvl`, `swap_ember_shares`,
17
- * `do_instant_withdraw_core`) via the shared chain-agnostic quote core at scale 1e9.
18
- *
19
- * @example
20
- * ```ts
21
- * const reader = new SuiAtomicLiquidityReader(suiClient);
22
- * const q = await reader.previewSwapInstantWithdraw(vaultId, sourceVaultId, 100_000000n, owner);
23
- * ```
24
- */
25
- export class SuiAtomicLiquidityReader {
26
- constructor(suiClient) {
27
- this.suiClient = suiClient;
28
- }
29
- /** Raw Move fields of the AtomicLiquidityVault object. */
30
- async vaultFields(vaultId) {
31
- const res = await this.suiClient.core.getObject({
32
- objectId: vaultId,
33
- include: { json: true }
34
- });
35
- const fields = unwrapMoveFields(res.object?.json);
36
- if (!fields)
37
- throw new Error(`Atomic vault ${vaultId} not found`);
38
- return fields;
39
- }
40
- /**
41
- * Read a `Table<K, V>` entry value. Table entries are plain dynamic fields, so we
42
- * resolve the `Field<K,V>` object id via `getDynamicField`, then fetch its json
43
- * (`{ name, value }`). Returns the unwrapped `value`, or null if absent.
44
- */
45
- async readTableValue(parentId, nameType, keyAddress) {
46
- try {
47
- const df = await this.suiClient.core.getDynamicField({
48
- parentId,
49
- name: { type: nameType, bcs: bcs.Address.serialize(keyAddress).toBytes() }
50
- });
51
- const fieldId = df?.dynamicField?.fieldId;
52
- if (!fieldId)
53
- return null;
54
- const obj = await this.suiClient.core.getObject({
55
- objectId: fieldId,
56
- include: { json: true }
57
- });
58
- return unwrapMoveFields(obj.object?.json)?.value;
59
- }
60
- catch {
61
- return null;
62
- }
63
- }
64
- /** Rate value (1e9) of any vault object (ALV or source EmberVault). */
65
- async rateValue(vaultId) {
66
- const res = await this.suiClient.core.getObject({
67
- objectId: vaultId,
68
- include: { json: true }
69
- });
70
- const fields = unwrapMoveFields(res.object?.json);
71
- return toBig(unwrapMoveFields(fields?.rate)?.value);
72
- }
73
- /** Per-source-share EmberShare config from the `ember_share_configs` table. */
74
- async getEmberShareConfig(vaultId, sourceVaultId) {
75
- const fields = await this.vaultFields(vaultId);
76
- const tableId = unwrapMoveFields(fields.ember_share_configs)?.id?.id;
77
- if (!tableId)
78
- return null;
79
- {
80
- const cfg = unwrapMoveFields(await this.readTableValue(tableId, "0x2::object::ID", sourceVaultId));
81
- if (!cfg)
82
- return null;
83
- const curve = (cfg.fee_multiplier_curve || []).map((t) => {
84
- const tf = unwrapMoveFields(t);
85
- return {
86
- threshold: toBig(tf.threshold),
87
- multiplier: toBig(tf.multiplier)
88
- };
89
- });
90
- return {
91
- whitelisted: !!cfg.whitelisted,
92
- feePercentage: toBig(cfg.fee_percentage),
93
- holdbackPercentage: toBig(cfg.holdback_percentage),
94
- maxCapacityPercentage: toBig(cfg.max_capacity_percentage),
95
- maxUtilizationPercentage: toBig(cfg.max_utilization_percentage),
96
- epochStartedAt: toBig(cfg.epoch_started_at),
97
- epochUsedAmount: toBig(cfg.epoch_used_amount),
98
- feeMultiplierCurve: curve
99
- };
100
- }
101
- }
102
- /** Caller's ALV (non-transferable) share balance from the `shares` table. */
103
- async shareOf(vaultId, account) {
104
- const fields = await this.vaultFields(vaultId);
105
- const tableId = unwrapMoveFields(fields.shares)?.id?.id;
106
- if (!tableId)
107
- return 0n;
108
- return toBig(await this.readTableValue(tableId, "address", account));
109
- }
110
- /**
111
- * Live quote for the EmberShare swap-with-holdback "instant withdraw" on Sui.
112
- * Reads ALV + source vault fields and replicates `swap_ember_shares` math.
113
- *
114
- * `currentHeldValue` defaults to 0 (the common case before any swap); pass it when the
115
- * ALV already custodies source shares. `availableCapacity` (remaining 24h epoch capacity,
116
- * collateral units) is bfvs-sourced when precise epoch accounting is required — when
117
- * omitted, only the utilization cap gates `withinCapacity`.
118
- */
119
- async previewSwapInstantWithdraw(vaultId, sourceVaultId, shareAmount, owner, opts = {}) {
120
- const fields = await this.vaultFields(vaultId);
121
- const atomicRate = toBig(unwrapMoveFields(fields.rate)?.value);
122
- const totalShares = toBig(fields.total_shares);
123
- const feeWaived = fields.fee_waived_addresses || [];
124
- const holdbackWaived = fields.holdback_waived_addresses || [];
125
- const [config, sourceRate] = await Promise.all([
126
- this.getEmberShareConfig(vaultId, sourceVaultId),
127
- this.rateValue(sourceVaultId)
128
- ]);
129
- if (!config)
130
- throw new Error(`source vault ${sourceVaultId} not whitelisted`);
131
- // gross = calculate_amount_from_shares(source, shareAmount) = div_ceil(shares, sourceRate)
132
- const grossAmount = divCeil(shareAmount, sourceRate);
133
- // tvl = get_vault_tvl(atomic) = div(total_shares, atomicRate)
134
- const vaultTotalAssets = divFloor(totalShares, atomicRate);
135
- return computeSwapQuote({
136
- scale: SUI_SCALE,
137
- grossAmount,
138
- shareAmount,
139
- userShareBalance: opts.userShareBalance ?? 0n,
140
- currentHeldValue: opts.currentHeldValue ?? 0n,
141
- vaultTotalAssets,
142
- // Default to "epoch capacity not binding" when not supplied; the on-chain
143
- // swap still enforces it. Pass from bfvs for an exact pre-check.
144
- availableCapacity: opts.availableCapacity ?? grossAmount,
145
- config: {
146
- feePercentage: config.feePercentage,
147
- holdbackPercentage: config.holdbackPercentage,
148
- maxUtilizationPercentage: config.maxUtilizationPercentage,
149
- feeMultiplierCurve: config.feeMultiplierCurve
150
- },
151
- feeWaived: feeWaived.includes(owner),
152
- holdbackWaived: holdbackWaived.includes(owner)
153
- });
154
- }
155
- /**
156
- * Live quote for the ALV's own plain `instant_withdraw` on Sui (atomic-share holders).
157
- * `net = gross - fee`, no holdback, capped by `max_instant_withdraw_shares`.
158
- */
159
- async previewPlainInstantWithdraw(vaultId, shareAmount, owner) {
160
- const fields = await this.vaultFields(vaultId);
161
- const atomicRate = toBig(unwrapMoveFields(fields.rate)?.value);
162
- const grossAmount = divCeil(shareAmount, atomicRate);
163
- const userShareBalance = await this.shareOf(vaultId, owner);
164
- return computePlainInstantQuote({
165
- scale: SUI_SCALE,
166
- grossAmount,
167
- shareAmount,
168
- userShareBalance,
169
- instantWithdrawFeePercentage: toBig(fields.instant_withdraw_fee_percentage),
170
- cumulativeInstantWithdrawShares: toBig(fields.cumulative_instant_withdraw_shares),
171
- maxInstantWithdrawShares: toBig(fields.max_instant_withdraw_shares)
172
- });
173
- }
174
- }