@augustdigital/sdk 4.0.9-alpha → 4.0.9-beta

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 (259) hide show
  1. package/README.md +169 -11
  2. package/lib/abis/AddressResolver.d.ts +28 -0
  3. package/lib/abis/AddressResolver.js +23 -0
  4. package/lib/abis/AddressResolver.js.map +1 -0
  5. package/lib/abis/ChainlinkV3.d.ts +87 -0
  6. package/lib/abis/ChainlinkV3.js +117 -0
  7. package/lib/abis/ChainlinkV3.js.map +1 -0
  8. package/lib/abis/ERC20.d.ts +168 -0
  9. package/lib/abis/ERC20.js +226 -0
  10. package/lib/abis/ERC20.js.map +1 -0
  11. package/lib/abis/ERC20_Bytes32.d.ts +135 -0
  12. package/lib/abis/ERC20_Bytes32.js +192 -0
  13. package/lib/abis/ERC20_Bytes32.js.map +1 -0
  14. package/lib/abis/ERC4626.d.ts +363 -0
  15. package/lib/abis/ERC4626.js +506 -0
  16. package/lib/abis/ERC4626.js.map +1 -0
  17. package/lib/abis/ERC721.d.ts +230 -0
  18. package/lib/abis/ERC721.js +320 -0
  19. package/lib/abis/ERC721.js.map +1 -0
  20. package/lib/abis/FeeOracle.d.ts +120 -0
  21. package/lib/abis/FeeOracle.js +161 -0
  22. package/lib/abis/FeeOracle.js.map +1 -0
  23. package/lib/abis/LendingPool.d.ts +1393 -0
  24. package/lib/abis/LendingPool.js +1806 -0
  25. package/lib/abis/LendingPool.js.map +1 -0
  26. package/lib/abis/LendingPoolV2.d.ts +55 -0
  27. package/lib/abis/LendingPoolV2.js +1832 -0
  28. package/lib/abis/LendingPoolV2.js.map +1 -0
  29. package/lib/abis/LendingPoolV3.d.ts +35 -0
  30. package/lib/abis/LendingPoolV3.js +1160 -0
  31. package/lib/abis/LendingPoolV3.js.map +1 -0
  32. package/lib/abis/Loan.d.ts +837 -0
  33. package/lib/abis/Loan.js +1080 -0
  34. package/lib/abis/Loan.js.map +1 -0
  35. package/lib/abis/Multicall3.d.ts +30 -0
  36. package/lib/abis/Multicall3.js +94 -0
  37. package/lib/abis/Multicall3.js.map +1 -0
  38. package/lib/abis/PoolAdapter.d.ts +76 -0
  39. package/lib/abis/PoolAdapter.js +412 -0
  40. package/lib/abis/PoolAdapter.js.map +1 -0
  41. package/lib/abis/RewardDistributor.d.ts +46 -0
  42. package/lib/abis/RewardDistributor.js +352 -0
  43. package/lib/abis/RewardDistributor.js.map +1 -0
  44. package/lib/abis/SmartAccount.d.ts +16 -0
  45. package/lib/abis/SmartAccount.js +16 -0
  46. package/lib/abis/SmartAccount.js.map +1 -0
  47. package/lib/abis/TextResolver.d.ts +16 -0
  48. package/lib/abis/TextResolver.js +16 -0
  49. package/lib/abis/TextResolver.js.map +1 -0
  50. package/lib/abis/TokenizedVaultV2.d.ts +1354 -0
  51. package/lib/abis/TokenizedVaultV2.js +1028 -0
  52. package/lib/abis/TokenizedVaultV2.js.map +1 -0
  53. package/lib/abis/TokenizedVaultV2Receipt.d.ts +1568 -0
  54. package/lib/abis/TokenizedVaultV2Receipt.js +1061 -0
  55. package/lib/abis/TokenizedVaultV2Receipt.js.map +1 -0
  56. package/lib/abis/TokenizedVaultV2WhitelistedAssets.d.ts +274 -0
  57. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js +167 -0
  58. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js.map +1 -0
  59. package/lib/abis/UniversalResolverResolve.d.ts +69 -0
  60. package/lib/abis/UniversalResolverResolve.js +35 -0
  61. package/lib/abis/UniversalResolverResolve.js.map +1 -0
  62. package/lib/abis/UniversalSignatureValidator.d.ts +17 -0
  63. package/lib/abis/UniversalSignatureValidator.js +27 -0
  64. package/lib/abis/UniversalSignatureValidator.js.map +1 -0
  65. package/lib/abis/WrapperAdapter.d.ts +60 -0
  66. package/lib/abis/WrapperAdapter.js +150 -0
  67. package/lib/abis/WrapperAdapter.js.map +1 -0
  68. package/lib/abis/index.d.ts +22 -0
  69. package/lib/abis/index.js +39 -0
  70. package/lib/abis/index.js.map +1 -0
  71. package/lib/adapters/evm/getters.d.ts +4 -0
  72. package/lib/adapters/evm/getters.js +152 -0
  73. package/lib/adapters/evm/getters.js.map +1 -0
  74. package/lib/adapters/evm/index.d.ts +19 -0
  75. package/lib/adapters/evm/index.js +54 -0
  76. package/lib/adapters/evm/index.js.map +1 -0
  77. package/lib/adapters/evm/utils.d.ts +2 -0
  78. package/lib/adapters/evm/utils.js +43 -0
  79. package/lib/adapters/evm/utils.js.map +1 -0
  80. package/lib/adapters/solana/constants.d.ts +25 -0
  81. package/lib/adapters/solana/constants.js +32 -0
  82. package/lib/adapters/solana/constants.js.map +1 -0
  83. package/lib/adapters/solana/getters.d.ts +3 -0
  84. package/lib/adapters/solana/getters.js +133 -0
  85. package/lib/adapters/solana/getters.js.map +1 -0
  86. package/lib/adapters/solana/idl/vault-idl.d.ts +338 -0
  87. package/lib/adapters/solana/idl/vault-idl.js +1075 -0
  88. package/lib/adapters/solana/idl/vault-idl.js.map +1 -0
  89. package/lib/adapters/solana/index.d.ts +160 -0
  90. package/lib/adapters/solana/index.js +174 -0
  91. package/lib/adapters/solana/index.js.map +1 -0
  92. package/lib/adapters/solana/types.d.ts +58 -0
  93. package/lib/adapters/solana/types.js +3 -0
  94. package/lib/adapters/solana/types.js.map +1 -0
  95. package/lib/adapters/solana/utils.d.ts +116 -0
  96. package/lib/adapters/solana/utils.js +435 -0
  97. package/lib/adapters/solana/utils.js.map +1 -0
  98. package/lib/adapters/solana/vault.actions.d.ts +18 -0
  99. package/lib/adapters/solana/vault.actions.js +235 -0
  100. package/lib/adapters/solana/vault.actions.js.map +1 -0
  101. package/lib/adapters/sui/constants.d.ts +20 -0
  102. package/lib/adapters/sui/constants.js +24 -0
  103. package/lib/adapters/sui/constants.js.map +1 -0
  104. package/lib/adapters/sui/getters.d.ts +3 -0
  105. package/lib/adapters/sui/getters.js +52 -0
  106. package/lib/adapters/sui/getters.js.map +1 -0
  107. package/lib/adapters/sui/index.d.ts +31 -0
  108. package/lib/adapters/sui/index.js +87 -0
  109. package/lib/adapters/sui/index.js.map +1 -0
  110. package/lib/adapters/sui/transformer.d.ts +4 -0
  111. package/lib/adapters/sui/transformer.js +92 -0
  112. package/lib/adapters/sui/transformer.js.map +1 -0
  113. package/lib/adapters/sui/types.d.ts +62 -0
  114. package/lib/adapters/sui/types.js +3 -0
  115. package/lib/adapters/sui/types.js.map +1 -0
  116. package/lib/adapters/sui/utils.d.ts +6 -0
  117. package/lib/adapters/sui/utils.js +35 -0
  118. package/lib/adapters/sui/utils.js.map +1 -0
  119. package/lib/core/auth/index.d.ts +1 -0
  120. package/lib/core/auth/index.js +18 -0
  121. package/lib/core/auth/index.js.map +1 -0
  122. package/lib/core/auth/verify.d.ts +2 -0
  123. package/lib/core/auth/verify.js +21 -0
  124. package/lib/core/auth/verify.js.map +1 -0
  125. package/lib/core/base.class.d.ts +33 -0
  126. package/lib/core/base.class.js +66 -0
  127. package/lib/core/base.class.js.map +1 -0
  128. package/lib/core/constants.core.d.ts +59 -0
  129. package/lib/core/constants.core.js +63 -0
  130. package/lib/core/constants.core.js.map +1 -0
  131. package/lib/core/constants.d.ts +88 -0
  132. package/lib/core/constants.js +148 -0
  133. package/lib/core/constants.js.map +1 -0
  134. package/lib/core/constants.vaults.d.ts +19 -0
  135. package/lib/core/constants.vaults.js +130 -0
  136. package/lib/core/constants.vaults.js.map +1 -0
  137. package/lib/core/constants.web3.d.ts +30 -0
  138. package/lib/core/constants.web3.js +89 -0
  139. package/lib/core/constants.web3.js.map +1 -0
  140. package/lib/core/core.helpers.d.ts +23 -0
  141. package/lib/core/core.helpers.js +210 -0
  142. package/lib/core/core.helpers.js.map +1 -0
  143. package/lib/core/fetcher.d.ts +22 -0
  144. package/lib/core/fetcher.js +372 -0
  145. package/lib/core/fetcher.js.map +1 -0
  146. package/lib/core/helpers.core.d.ts +23 -0
  147. package/lib/core/helpers.core.js +210 -0
  148. package/lib/core/helpers.core.js.map +1 -0
  149. package/lib/core/helpers.vaults.d.ts +15 -0
  150. package/lib/core/helpers.vaults.js +123 -0
  151. package/lib/core/helpers.vaults.js.map +1 -0
  152. package/lib/core/helpers.web3.d.ts +29 -0
  153. package/lib/core/helpers.web3.js +365 -0
  154. package/lib/core/helpers.web3.js.map +1 -0
  155. package/lib/core/index.d.ts +10 -0
  156. package/lib/core/index.js +27 -0
  157. package/lib/core/index.js.map +1 -0
  158. package/lib/core/logger/index.d.ts +21 -0
  159. package/lib/core/logger/index.js +80 -0
  160. package/lib/core/logger/index.js.map +1 -0
  161. package/lib/core/logger/slack.d.ts +12 -0
  162. package/lib/core/logger/slack.js +49 -0
  163. package/lib/core/logger/slack.js.map +1 -0
  164. package/lib/core/read.actions.d.ts +3 -0
  165. package/lib/core/read.actions.js +39 -0
  166. package/lib/core/read.actions.js.map +1 -0
  167. package/lib/core/web3.helpers.d.ts +29 -0
  168. package/lib/core/web3.helpers.js +356 -0
  169. package/lib/core/web3.helpers.js.map +1 -0
  170. package/lib/core/write.actions.d.ts +9 -0
  171. package/lib/core/write.actions.js +51 -0
  172. package/lib/core/write.actions.js.map +1 -0
  173. package/lib/index.d.ts +6 -6
  174. package/lib/index.js +14 -7
  175. package/lib/index.js.map +1 -1
  176. package/lib/main.d.ts +88 -14
  177. package/lib/main.js +54 -17
  178. package/lib/main.js.map +1 -1
  179. package/lib/modules/vaults/constants.d.ts +65 -0
  180. package/lib/modules/vaults/constants.js +194 -0
  181. package/lib/modules/vaults/constants.js.map +1 -0
  182. package/lib/modules/vaults/fetcher.d.ts +101 -0
  183. package/lib/modules/vaults/fetcher.js +257 -0
  184. package/lib/modules/vaults/fetcher.js.map +1 -0
  185. package/lib/modules/vaults/getters.d.ts +67 -0
  186. package/lib/modules/vaults/getters.js +932 -0
  187. package/lib/modules/vaults/getters.js.map +1 -0
  188. package/lib/modules/vaults/index.d.ts +3 -0
  189. package/lib/modules/vaults/index.js +20 -0
  190. package/lib/modules/vaults/index.js.map +1 -0
  191. package/lib/modules/vaults/main.d.ts +100 -0
  192. package/lib/modules/vaults/main.js +532 -0
  193. package/lib/modules/vaults/main.js.map +1 -0
  194. package/lib/modules/vaults/read.actions.d.ts +3 -0
  195. package/lib/modules/vaults/read.actions.js +39 -0
  196. package/lib/modules/vaults/read.actions.js.map +1 -0
  197. package/lib/modules/vaults/utils.d.ts +12 -0
  198. package/lib/modules/vaults/utils.js +170 -0
  199. package/lib/modules/vaults/utils.js.map +1 -0
  200. package/lib/modules/vaults/vault.actions.d.ts +10 -0
  201. package/lib/modules/vaults/vault.actions.js +95 -0
  202. package/lib/modules/vaults/vault.actions.js.map +1 -0
  203. package/lib/modules/vaults/write.actions.d.ts +17 -0
  204. package/lib/modules/vaults/write.actions.js +143 -0
  205. package/lib/modules/vaults/write.actions.js.map +1 -0
  206. package/lib/services/coingecko/fetcher.d.ts +1 -0
  207. package/lib/services/coingecko/fetcher.js +36 -0
  208. package/lib/services/coingecko/fetcher.js.map +1 -0
  209. package/lib/services/coingecko/index.d.ts +2 -0
  210. package/lib/services/coingecko/index.js +19 -0
  211. package/lib/services/coingecko/index.js.map +1 -0
  212. package/lib/services/coingecko/utils.d.ts +1 -0
  213. package/lib/services/coingecko/utils.js +24 -0
  214. package/lib/services/coingecko/utils.js.map +1 -0
  215. package/lib/services/debank/fetcher.d.ts +2 -0
  216. package/lib/services/debank/fetcher.js +16 -0
  217. package/lib/services/debank/fetcher.js.map +1 -0
  218. package/lib/services/debank/index.d.ts +2 -0
  219. package/lib/services/debank/index.js +19 -0
  220. package/lib/services/debank/index.js.map +1 -0
  221. package/lib/services/debank/utils.d.ts +32 -0
  222. package/lib/services/debank/utils.js +229 -0
  223. package/lib/services/debank/utils.js.map +1 -0
  224. package/lib/services/subgraph/fetcher.d.ts +2 -0
  225. package/lib/services/subgraph/fetcher.js +59 -0
  226. package/lib/services/subgraph/fetcher.js.map +1 -0
  227. package/lib/services/subgraph/index.d.ts +2 -0
  228. package/lib/services/subgraph/index.js +19 -0
  229. package/lib/services/subgraph/index.js.map +1 -0
  230. package/lib/services/subgraph/vaults.d.ts +10 -0
  231. package/lib/services/subgraph/vaults.js +471 -0
  232. package/lib/services/subgraph/vaults.js.map +1 -0
  233. package/lib/types/index.d.ts +8 -0
  234. package/lib/types/index.js +24 -0
  235. package/lib/types/index.js.map +1 -0
  236. package/lib/types/pools.d.ts +141 -0
  237. package/lib/types/pools.js +3 -0
  238. package/lib/types/pools.js.map +1 -0
  239. package/lib/types/staking.d.ts +28 -0
  240. package/lib/types/staking.js +3 -0
  241. package/lib/types/staking.js.map +1 -0
  242. package/lib/types/subgraph.d.ts +45 -0
  243. package/lib/types/subgraph.js +3 -0
  244. package/lib/types/subgraph.js.map +1 -0
  245. package/lib/types/user.d.ts +1 -0
  246. package/lib/types/user.js +3 -0
  247. package/lib/types/user.js.map +1 -0
  248. package/lib/types/vaults.d.ts +171 -0
  249. package/lib/types/vaults.js +3 -0
  250. package/lib/types/vaults.js.map +1 -0
  251. package/lib/types/web3.d.ts +24 -0
  252. package/lib/types/web3.js +3 -0
  253. package/lib/types/web3.js.map +1 -0
  254. package/lib/types/webserver.d.ts +489 -0
  255. package/lib/types/webserver.js +3 -0
  256. package/lib/types/webserver.js.map +1 -0
  257. package/lib/verify.js +25 -12
  258. package/lib/verify.js.map +1 -1
  259. package/package.json +16 -10
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleSolanaDeposit = handleSolanaDeposit;
4
+ exports.handleSolanaRedeem = handleSolanaRedeem;
5
+ const anchor_1 = require("@coral-xyz/anchor");
6
+ const web3_js_1 = require("@solana/web3.js");
7
+ const spl_token_1 = require("@solana/spl-token");
8
+ const constants_1 = require("./constants");
9
+ const utils_1 = require("./utils");
10
+ async function handleSolanaDeposit({ provider, connection, network = constants_1.fallbackNetwork, vaultProgramId, depositAmount, publicKey, sendTransaction, idl, }) {
11
+ try {
12
+ if (!publicKey)
13
+ throw new Error('Wallet not connected');
14
+ if (!depositAmount)
15
+ throw new Error('Please enter an amount to deposit');
16
+ if (!vaultProgramId)
17
+ throw new Error('Please enter a vault program ID');
18
+ const { depositMint } = await utils_1.SolanaUtils.getVaultMints({
19
+ network,
20
+ connection,
21
+ vaultProgramId,
22
+ idl,
23
+ });
24
+ const _vaultProgramId = new web3_js_1.PublicKey(vaultProgramId);
25
+ const _publicKey = new web3_js_1.PublicKey(publicKey);
26
+ const _depositMint = new web3_js_1.PublicKey(depositMint);
27
+ const program = utils_1.SolanaUtils.getProgram({ provider, idl });
28
+ console.log('Program', program);
29
+ const vaultStatePda = utils_1.SolanaUtils.deriveVaultStatePda(_vaultProgramId);
30
+ console.log('Vault state PDA', vaultStatePda.toBase58());
31
+ const vaultTokenAtaPda = utils_1.SolanaUtils.deriveVaultTokenAtaPda(_vaultProgramId, _depositMint);
32
+ console.log('Vault token ATA PDA', vaultTokenAtaPda.toBase58());
33
+ const shareMintPda = utils_1.SolanaUtils.deriveShareMintPda(_vaultProgramId);
34
+ console.log('Share mint PDA', shareMintPda.toBase58());
35
+ const mintInfo = await connection.getParsedAccountInfo(_depositMint);
36
+ if (!mintInfo.value) {
37
+ throw new Error('Could not fetch mint info');
38
+ }
39
+ const { decimals } = mintInfo.value.data.parsed.info;
40
+ 0;
41
+ const depositAmountStr = depositAmount.toString();
42
+ const [whole, fraction = ''] = depositAmountStr.split('.');
43
+ const paddedFraction = fraction.padEnd(decimals, '0').slice(0, decimals);
44
+ const rawAmountStr = whole + paddedFraction;
45
+ const depositAmountRaw = new anchor_1.BN(rawAmountStr.replace(/^0+/, '') || '0');
46
+ if (isNaN(depositAmount)) {
47
+ throw new Error('Please enter a valid number for the deposit amount');
48
+ }
49
+ if (depositAmount <= 0) {
50
+ throw new Error('Deposit amount must be greater than 0');
51
+ }
52
+ const userTokenAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
53
+ mint: _depositMint,
54
+ });
55
+ console.log('User token accounts', userTokenAccounts);
56
+ const userShareAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
57
+ mint: shareMintPda,
58
+ });
59
+ console.log('User share accounts', userShareAccounts);
60
+ if (userTokenAccounts.value.length === 0) {
61
+ throw new Error('No token account found for deposit mint. Please create a token account first.');
62
+ }
63
+ let senderShareAccount;
64
+ if (userShareAccounts.value.length === 0) {
65
+ console.log('Creating share account');
66
+ senderShareAccount = await (0, spl_token_1.getAssociatedTokenAddress)(shareMintPda, _publicKey);
67
+ console.log('Sender share account', senderShareAccount.toBase58());
68
+ const createAtaIx = (0, spl_token_1.createAssociatedTokenAccountInstruction)(_publicKey, senderShareAccount, _publicKey, shareMintPda);
69
+ console.log('Create ATA Ix', createAtaIx.programId.toBase58());
70
+ const transaction = new web3_js_1.Transaction().add(createAtaIx);
71
+ const signature = await sendTransaction(transaction, connection);
72
+ console.log('Created share account:', signature.toString());
73
+ }
74
+ else {
75
+ senderShareAccount = userShareAccounts.value[0]?.pubkey;
76
+ }
77
+ const senderTokenAccount = userTokenAccounts.value[0]?.pubkey;
78
+ console.log('Sender token account', senderTokenAccount);
79
+ console.log('\n\nDeposit TX Params:\n');
80
+ console.log('Program', depositAmountRaw);
81
+ console.log('Vault state PDA', vaultStatePda.toBase58());
82
+ console.log('Vault token ATA PDA', vaultTokenAtaPda.toBase58());
83
+ console.log('Sender token account', senderTokenAccount?.toBase58());
84
+ console.log('Sender share account', senderShareAccount?.toBase58());
85
+ console.log('Share mint PDA', shareMintPda.toBase58());
86
+ console.log('Deposit mint', _depositMint?.toBase58());
87
+ console.log('Signer', _publicKey.toBase58());
88
+ const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
89
+ const tx = await program.methods
90
+ .deposit(new anchor_1.BN(depositAmountRaw))
91
+ .accounts({
92
+ vaultState: vaultStatePda,
93
+ vaultTokenAta: vaultTokenAtaPda,
94
+ senderTokenAccount,
95
+ senderShareAccount,
96
+ shareMint: shareMintPda,
97
+ depositMint: depositMint,
98
+ signer: publicKey,
99
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
100
+ })
101
+ .rpc({
102
+ skipPreflight: false,
103
+ preflightCommitment: 'confirmed',
104
+ });
105
+ console.log('Deposit successful:', tx);
106
+ await connection.confirmTransaction({
107
+ signature: tx,
108
+ blockhash,
109
+ lastValidBlockHeight,
110
+ }, 'confirmed');
111
+ return tx;
112
+ }
113
+ catch (e) {
114
+ console.error('Deposit failed:', e);
115
+ return null;
116
+ }
117
+ }
118
+ async function handleSolanaRedeem({ provider, connection, vaultProgramId, publicKey, redeemShares, sendTransaction, idl, }) {
119
+ try {
120
+ if (!publicKey)
121
+ throw new Error('Wallet not connected');
122
+ if (!redeemShares)
123
+ throw new Error('Please enter shares to redeem');
124
+ if (!vaultProgramId)
125
+ throw new Error('Please enter a vault program ID');
126
+ const { depositMint } = await utils_1.SolanaUtils.getVaultMints({
127
+ network: provider.connection.rpcEndpoint.includes('devnet')
128
+ ? 'devnet'
129
+ : 'mainnet-beta',
130
+ connection,
131
+ vaultProgramId,
132
+ idl,
133
+ });
134
+ const _vaultProgramId = new web3_js_1.PublicKey(vaultProgramId);
135
+ const _depositMint = new web3_js_1.PublicKey(depositMint);
136
+ const _publicKey = new web3_js_1.PublicKey(publicKey);
137
+ const program = utils_1.SolanaUtils.getProgram({ provider, idl });
138
+ const vaultStatePda = utils_1.SolanaUtils.deriveVaultStatePda(_vaultProgramId);
139
+ const vaultTokenAtaPda = utils_1.SolanaUtils.deriveVaultTokenAtaPda(_vaultProgramId, _depositMint);
140
+ const shareMintPda = utils_1.SolanaUtils.deriveShareMintPda(_vaultProgramId);
141
+ const shareMintInfo = await connection.getParsedAccountInfo(shareMintPda);
142
+ if (!shareMintInfo.value) {
143
+ throw new Error('Could not fetch share mint info');
144
+ }
145
+ const shareDecimals = shareMintInfo.value.data.parsed.info
146
+ .decimals;
147
+ const redeemSharesStr = redeemShares.toString();
148
+ const [whole, fraction = ''] = redeemSharesStr.split('.');
149
+ const paddedFraction = fraction
150
+ .padEnd(shareDecimals, '0')
151
+ .slice(0, shareDecimals);
152
+ const rawAmountStr = whole + paddedFraction;
153
+ const redeemSharesRaw = parseInt(rawAmountStr.replace(/^0+/, '') || '0', 10);
154
+ if (isNaN(redeemShares)) {
155
+ throw new Error('Please enter a valid number for the shares to redeem');
156
+ }
157
+ if (redeemShares <= 0) {
158
+ throw new Error('Shares to redeem must be greater than 0');
159
+ }
160
+ const userTokenAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
161
+ mint: _depositMint,
162
+ });
163
+ const userShareAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
164
+ mint: shareMintPda,
165
+ });
166
+ if (userTokenAccounts.value.length === 0) {
167
+ throw new Error('No token account found for deposit mint. Please create a token account first.');
168
+ }
169
+ if (userShareAccounts.value.length === 0) {
170
+ throw new Error('No share account found. You need to deposit first to get shares before you can redeem.');
171
+ }
172
+ const senderTokenAccount = userTokenAccounts?.value[0]?.pubkey;
173
+ const senderShareAccount = userShareAccounts?.value[0]?.pubkey;
174
+ const readOnlyProvider = utils_1.SolanaUtils.getReadOnlyProvider({ connection });
175
+ const readOnlyProgram = utils_1.SolanaUtils.getProgram({
176
+ provider: readOnlyProvider,
177
+ idl,
178
+ });
179
+ const vaultStateData = await readOnlyProgram.account.vaultState.fetch(vaultStatePda);
180
+ const feeRecipientTokenAccount = await (0, spl_token_1.getAssociatedTokenAddress)(_depositMint, vaultStateData.feeRecipient);
181
+ const feeRecipientAccountInfo = await connection.getAccountInfo(feeRecipientTokenAccount);
182
+ if (!feeRecipientAccountInfo) {
183
+ const createFeeRecipientAtaIx = (0, spl_token_1.createAssociatedTokenAccountInstruction)(_publicKey, feeRecipientTokenAccount, vaultStateData.feeRecipient, _depositMint);
184
+ const createAccountTx = new web3_js_1.Transaction().add(createFeeRecipientAtaIx);
185
+ const createAccountSignature = await sendTransaction(createAccountTx, connection);
186
+ console.log('Fee recipient token account created:', createAccountSignature);
187
+ await new Promise((resolve) => setTimeout(resolve, 1000));
188
+ }
189
+ else {
190
+ console.log('Fee recipient token account already exists');
191
+ }
192
+ console.log('\n\nRedeem TX Params:\n');
193
+ console.log('Redeem shares (UI):', redeemShares);
194
+ console.log('Redeem shares (raw):', redeemSharesRaw);
195
+ console.log('Share decimals:', shareDecimals);
196
+ console.log('Vault state PDA:', vaultStatePda.toBase58());
197
+ console.log('Vault token ATA PDA:', vaultTokenAtaPda.toBase58());
198
+ console.log('Sender token account:', senderTokenAccount?.toBase58());
199
+ console.log('Sender share account:', senderShareAccount?.toBase58());
200
+ console.log('Fee recipient account:', feeRecipientTokenAccount.toBase58());
201
+ console.log('Share mint PDA:', shareMintPda.toBase58());
202
+ console.log('Deposit mint:', _depositMint?.toBase58());
203
+ console.log('Signer:', _publicKey.toBase58());
204
+ const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
205
+ const tx = await program.methods
206
+ .redeem(new anchor_1.BN(redeemSharesRaw))
207
+ .accounts({
208
+ vaultState: vaultStatePda,
209
+ vaultDepositAta: vaultTokenAtaPda,
210
+ senderTokenAccount,
211
+ senderShareAccount,
212
+ feeRecipientAccount: feeRecipientTokenAccount,
213
+ shareMint: shareMintPda,
214
+ depositMint: _depositMint,
215
+ signer: _publicKey,
216
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
217
+ })
218
+ .rpc({
219
+ skipPreflight: false,
220
+ preflightCommitment: 'confirmed',
221
+ });
222
+ console.log('Redeem successful:', tx);
223
+ await connection.confirmTransaction({
224
+ signature: tx,
225
+ blockhash,
226
+ lastValidBlockHeight,
227
+ }, 'confirmed');
228
+ return tx;
229
+ }
230
+ catch (e) {
231
+ console.error('Redeem failed:', e);
232
+ return null;
233
+ }
234
+ }
235
+ //# sourceMappingURL=vault.actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.actions.js","sourceRoot":"","sources":["../../../src.ts/adapters/solana/vault.actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare const SUI_CHAIN_ID = 101;
2
+ export declare const EMBER_API_BASE_URL = "https://vaults.api.sui-prod.bluefin.io/api/v1/vaults";
3
+ export declare const EMBER_ENDPOINTS: {
4
+ readonly VAULTS: "/";
5
+ readonly TVL: "/tvl-history";
6
+ };
7
+ export declare const DEFAULT_FETCH_OPTIONS: {
8
+ readonly method: "GET";
9
+ readonly headers: {
10
+ readonly Accept: "application/json";
11
+ readonly 'Content-Type': "application/json";
12
+ };
13
+ };
14
+ export declare const EMBER_DEFAULTS: {
15
+ readonly DECIMALS: 18;
16
+ readonly USD_DECIMALS: 6;
17
+ readonly VERSION: "sui-0";
18
+ readonly E9_DIVISOR: 1000000000;
19
+ readonly BPS_TO_PERCENT: 100;
20
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EMBER_DEFAULTS = exports.DEFAULT_FETCH_OPTIONS = exports.EMBER_ENDPOINTS = exports.EMBER_API_BASE_URL = exports.SUI_CHAIN_ID = void 0;
4
+ exports.SUI_CHAIN_ID = 101;
5
+ exports.EMBER_API_BASE_URL = 'https://vaults.api.sui-prod.bluefin.io/api/v1/vaults';
6
+ exports.EMBER_ENDPOINTS = {
7
+ VAULTS: '/',
8
+ TVL: '/tvl-history',
9
+ };
10
+ exports.DEFAULT_FETCH_OPTIONS = {
11
+ method: 'GET',
12
+ headers: {
13
+ Accept: 'application/json',
14
+ 'Content-Type': 'application/json',
15
+ },
16
+ };
17
+ exports.EMBER_DEFAULTS = {
18
+ DECIMALS: 18,
19
+ USD_DECIMALS: 6,
20
+ VERSION: 'sui-0',
21
+ E9_DIVISOR: 1e9,
22
+ BPS_TO_PERCENT: 100,
23
+ };
24
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src.ts/adapters/sui/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,GAAG,CAAC;AAEnB,QAAA,kBAAkB,GAC7B,sDAAsD,CAAC;AAE5C,QAAA,eAAe,GAAG;IAC7B,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,cAAc;CACX,CAAC;AAEE,QAAA,qBAAqB,GAAG;IACnC,MAAM,EAAE,KAAK;IACb,OAAO,EAAE;QACP,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE,kBAAkB;KACnC;CACO,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,OAAgB;IACzB,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,GAAG;CACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IEmberVault, IFetchEmberVaultsOptions } from './types';
2
+ export declare function getEmberVaults(options?: IFetchEmberVaultsOptions): Promise<IEmberVault[]>;
3
+ export declare function getEmberTVL(limit?: number): Promise<number>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEmberVaults = getEmberVaults;
4
+ exports.getEmberTVL = getEmberTVL;
5
+ const constants_1 = require("./constants");
6
+ async function getEmberVaults(options) {
7
+ try {
8
+ const params = new URLSearchParams();
9
+ if (options?.limit)
10
+ params.append('limit', options.limit.toString());
11
+ if (options?.offset)
12
+ params.append('offset', options.offset.toString());
13
+ if (options?.status)
14
+ params.append('status', options.status);
15
+ const queryString = params.toString();
16
+ const url = `${constants_1.EMBER_API_BASE_URL}${queryString ? `?${queryString}` : ''}`;
17
+ const response = await fetch(url, constants_1.DEFAULT_FETCH_OPTIONS);
18
+ if (!response.ok) {
19
+ throw new Error(`HTTP error! status: ${response.status}`);
20
+ }
21
+ const data = await response.json();
22
+ return Array.isArray(data) ? data : [];
23
+ }
24
+ catch (error) {
25
+ console.error('Error fetching Ember vaults:', error);
26
+ return [];
27
+ }
28
+ }
29
+ async function getEmberTVL(limit = 1) {
30
+ try {
31
+ const params = new URLSearchParams();
32
+ if (limit)
33
+ params.append('limit', limit.toString());
34
+ const queryString = params.toString();
35
+ const url = `${constants_1.EMBER_API_BASE_URL}${constants_1.EMBER_ENDPOINTS.TVL}${queryString ? `?${queryString}` : ''}`;
36
+ const response = await fetch(url, constants_1.DEFAULT_FETCH_OPTIONS);
37
+ if (!response.ok) {
38
+ throw new Error(`HTTP error! status: ${response.status}`);
39
+ }
40
+ const result = await response.json();
41
+ if (Array.isArray(result) && result.length > 0) {
42
+ const latestEntry = result[0];
43
+ return Number(latestEntry.tvlE9) / constants_1.EMBER_DEFAULTS.E9_DIVISOR;
44
+ }
45
+ return 0;
46
+ }
47
+ catch (error) {
48
+ console.error('Error fetching Ember TVL:', error);
49
+ return 0;
50
+ }
51
+ }
52
+ //# sourceMappingURL=getters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getters.js","sourceRoot":"","sources":["../../../src.ts/adapters/sui/getters.ts"],"names":[],"mappings":";;AAWA,wCAyBC;AAKD,kCA0BC;AAlED,2CAKqB;AAKd,KAAK,UAAU,cAAc,CAClC,OAAkC;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAErC,IAAI,OAAO,EAAE,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,8BAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE3E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,iCAAqB,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAkB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAKM,KAAK,UAAU,WAAW,CAAC,QAAgB,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,8BAAkB,GAAG,2BAAe,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEjG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,iCAAqB,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAErC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,0BAAc,CAAC,UAAU,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,31 @@
1
+ import * as SuiConstants from './constants';
2
+ import * as SuiGetters from './getters';
3
+ import * as SuiUtils from './utils';
4
+ import { transformEmberVaultToIVault, transformEmberVaultsToIVaults } from './transformer';
5
+ import { IEmberVault, IFetchEmberVaultsOptions } from './types';
6
+ export declare const Sui: {
7
+ utils: typeof SuiUtils;
8
+ constants: typeof SuiConstants;
9
+ getters: typeof SuiGetters;
10
+ transformer: {
11
+ transformEmberVaultToIVault: typeof transformEmberVaultToIVault;
12
+ transformEmberVaultsToIVaults: typeof transformEmberVaultsToIVaults;
13
+ };
14
+ };
15
+ declare class SuiAdapter {
16
+ private _apiBaseUrl;
17
+ private _chainId;
18
+ constructor(apiBaseUrl?: string, chainId?: number);
19
+ get apiBaseUrl(): string;
20
+ get chainId(): number;
21
+ getEmberVaults(options?: IFetchEmberVaultsOptions): Promise<IEmberVault[]>;
22
+ getEmberTVL(limit?: number): Promise<number>;
23
+ convertFromE9(value: string | number): number;
24
+ isEmberVault(vault: any): boolean;
25
+ calculateUtilization(current: string | number, maximum: string | number): number;
26
+ isSuiAddress(address: string): boolean;
27
+ isSuiVault(chainId: number): boolean;
28
+ transformEmberVaultToIVault(emberVault: IEmberVault): import("../..").IVault;
29
+ transformEmberVaultsToIVaults(emberVaults: IEmberVault[]): import("../..").IVault[];
30
+ }
31
+ export default SuiAdapter;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Sui = void 0;
37
+ const SuiConstants = __importStar(require("./constants"));
38
+ const SuiGetters = __importStar(require("./getters"));
39
+ const SuiUtils = __importStar(require("./utils"));
40
+ const transformer_1 = require("./transformer");
41
+ exports.Sui = {
42
+ utils: SuiUtils,
43
+ constants: SuiConstants,
44
+ getters: SuiGetters,
45
+ transformer: { transformEmberVaultToIVault: transformer_1.transformEmberVaultToIVault, transformEmberVaultsToIVaults: transformer_1.transformEmberVaultsToIVaults },
46
+ };
47
+ class SuiAdapter {
48
+ constructor(apiBaseUrl = SuiConstants.EMBER_API_BASE_URL, chainId = SuiConstants.SUI_CHAIN_ID) {
49
+ this._apiBaseUrl = apiBaseUrl;
50
+ this._chainId = chainId;
51
+ }
52
+ get apiBaseUrl() {
53
+ return this._apiBaseUrl;
54
+ }
55
+ get chainId() {
56
+ return this._chainId;
57
+ }
58
+ async getEmberVaults(options) {
59
+ return await SuiGetters.getEmberVaults(options);
60
+ }
61
+ async getEmberTVL(limit = 1) {
62
+ return await SuiGetters.getEmberTVL(limit);
63
+ }
64
+ convertFromE9(value) {
65
+ return SuiUtils.convertFromE9(value);
66
+ }
67
+ isEmberVault(vault) {
68
+ return SuiUtils.isEmberVault(vault);
69
+ }
70
+ calculateUtilization(current, maximum) {
71
+ return SuiUtils.calculateUtilization(current, maximum);
72
+ }
73
+ isSuiAddress(address) {
74
+ return SuiUtils.isSuiAddress(address);
75
+ }
76
+ isSuiVault(chainId) {
77
+ return SuiUtils.isSuiVault(chainId);
78
+ }
79
+ transformEmberVaultToIVault(emberVault) {
80
+ return (0, transformer_1.transformEmberVaultToIVault)(emberVault);
81
+ }
82
+ transformEmberVaultsToIVaults(emberVaults) {
83
+ return (0, transformer_1.transformEmberVaultsToIVaults)(emberVaults);
84
+ }
85
+ }
86
+ exports.default = SuiAdapter;
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src.ts/adapters/sui/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4C;AAC5C,sDAAwC;AACxC,kDAAoC;AACpC,+CAGuB;AAGV,QAAA,GAAG,GAAG;IACjB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,EAAE,2BAA2B,EAA3B,yCAA2B,EAAE,6BAA6B,EAA7B,2CAA6B,EAAE;CAC5E,CAAC;AAEF,MAAM,UAAU;IAId,YACE,aAAqB,YAAY,CAAC,kBAAkB,EACpD,UAAkB,YAAY,CAAC,YAAY;QAE3C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAkC;QAElC,OAAO,MAAM,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,CAAC;QACjC,OAAO,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,KAAsB;QAClC,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,CAAC,KAAU;QACrB,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,oBAAoB,CAClB,OAAwB,EACxB,OAAwB;QAExB,OAAO,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,OAAO,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,2BAA2B,CAAC,UAAuB;QACjD,OAAO,IAAA,yCAA2B,EAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,6BAA6B,CAAC,WAA0B;QACtD,OAAO,IAAA,2CAA6B,EAAC,WAAW,CAAC,CAAC;IACpD,CAAC;CACF;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IVault } from '../../types';
2
+ import { IEmberVault } from './types';
3
+ export declare function transformEmberVaultToIVault(emberVault: IEmberVault): IVault;
4
+ export declare function transformEmberVaultsToIVaults(emberVaults: IEmberVault[]): IVault[];
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformEmberVaultToIVault = transformEmberVaultToIVault;
4
+ exports.transformEmberVaultsToIVaults = transformEmberVaultsToIVaults;
5
+ const core_1 = require("../../core");
6
+ const constants_1 = require("./constants");
7
+ const utils_1 = require("./utils");
8
+ const ethers_1 = require("ethers");
9
+ function transformEmberVaultToIVault(emberVault) {
10
+ const depositTokenDecimals = emberVault.depositCoin?.decimals || constants_1.EMBER_DEFAULTS.DECIMALS;
11
+ const receiptTokenDecimals = emberVault.receiptCoin?.decimals || constants_1.EMBER_DEFAULTS.DECIMALS;
12
+ return {
13
+ address: emberVault.address,
14
+ name: emberVault.name,
15
+ chainId: constants_1.SUI_CHAIN_ID,
16
+ logoUrl: emberVault.logoUrl || '',
17
+ receipt: {
18
+ address: emberVault.receiptCoin?.address,
19
+ symbol: emberVault.receiptCoin?.symbol || '',
20
+ decimals: receiptTokenDecimals,
21
+ },
22
+ description: emberVault.description || '',
23
+ startDatetime: new Date(emberVault.createdAt || Date.now()).toISOString(),
24
+ status: emberVault.status === 'deprecated' ? 'closed' : 'active',
25
+ version: constants_1.EMBER_DEFAULTS.VERSION,
26
+ tags: ['Sui DeFi', emberVault.publicType].filter(Boolean),
27
+ isFeatured: false,
28
+ isVisible: emberVault.status === 'active' || emberVault.status === 'beta',
29
+ reserveTarget: 0,
30
+ reserveTolerance: 0,
31
+ decimals: receiptTokenDecimals,
32
+ totalAssets: {
33
+ normalized: (0, ethers_1.formatUnits)(BigInt(emberVault.totalDeposits || 0), depositTokenDecimals),
34
+ raw: (emberVault.totalDeposits || '0').toString(),
35
+ },
36
+ totalSupply: {
37
+ normalized: (0, ethers_1.formatUnits)(BigInt(emberVault.totalDeposits || 0), receiptTokenDecimals),
38
+ raw: (emberVault.totalDeposits || '0').toString(),
39
+ },
40
+ maxSupply: {
41
+ normalized: (0, ethers_1.formatUnits)(BigInt(emberVault.maxDepositsAllowed || 0), depositTokenDecimals),
42
+ raw: (emberVault.maxDepositsAllowed || '0').toString(),
43
+ },
44
+ depositAssets: [
45
+ {
46
+ address: emberVault.depositCoin?.address,
47
+ symbol: emberVault.depositCoin?.symbol || '',
48
+ decimals: depositTokenDecimals,
49
+ },
50
+ ],
51
+ apy: {
52
+ apy: (0, utils_1.convertFromE9)(emberVault.reportedApy?.apyE9 || 0) * 100,
53
+ explainer: '',
54
+ liquidApy: 0,
55
+ rewardsClaimable: 0,
56
+ rewardsCompounded: 0,
57
+ underlyingApy: (0, utils_1.convertFromE9)(emberVault.reportedApy?.apyE9 || 0) * 100,
58
+ },
59
+ operator: '',
60
+ rewards: {
61
+ points: '0',
62
+ multiplier: 0,
63
+ multipliers: [],
64
+ additionalPoints: [],
65
+ },
66
+ strategists: (emberVault.managers ||
67
+ emberVault.subAccounts?.map((s) => s.manager) ||
68
+ []).map((manager) => ({
69
+ address: manager?.id || '',
70
+ logo: manager?.logoUrl || '',
71
+ name: manager?.name || 'Unknown',
72
+ })),
73
+ fees: {
74
+ management: (0, utils_1.convertFromE9)(emberVault.managementFeePercentE9 || 0) * 100,
75
+ isManagementWaived: false,
76
+ performance: (0, utils_1.convertFromE9)(emberVault.weeklyPerformanceFeeBpsE9 || 0) /
77
+ constants_1.EMBER_DEFAULTS.BPS_TO_PERCENT,
78
+ isPerformanceWaived: false,
79
+ },
80
+ lagDuration: 0,
81
+ maxDailyDrawdown: 0,
82
+ risk: 'medium',
83
+ isWithdrawalPaused: emberVault.status === 'deprecated',
84
+ isDepositPaused: emberVault.status === 'deprecated',
85
+ idleAssets: (0, core_1.toNormalizedBn)('0', receiptTokenDecimals),
86
+ linkOnly: true,
87
+ };
88
+ }
89
+ function transformEmberVaultsToIVaults(emberVaults) {
90
+ return emberVaults.map(transformEmberVaultToIVault);
91
+ }
92
+ //# sourceMappingURL=transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../src.ts/adapters/sui/transformer.ts"],"names":[],"mappings":"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"}