@gobob/bob-sdk 4.4.11-rc0 → 4.4.11-rc10

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 (178) hide show
  1. package/README.md +5 -2
  2. package/dist/gateway/abi.d.ts +0 -72
  3. package/dist/gateway/abi.js +1 -94
  4. package/dist/gateway/abi.js.map +1 -1
  5. package/dist/gateway/adapters/okx-wallet.d.ts +3 -3
  6. package/dist/gateway/adapters/okx-wallet.js +1 -1
  7. package/dist/gateway/adapters/okx-wallet.js.map +1 -1
  8. package/dist/gateway/adapters/reown.d.ts +1 -1
  9. package/dist/gateway/adapters/reown.js +3 -3
  10. package/dist/gateway/adapters/reown.js.map +1 -1
  11. package/dist/gateway/client.d.ts +11 -21
  12. package/dist/gateway/client.js +61 -92
  13. package/dist/gateway/client.js.map +1 -1
  14. package/dist/gateway/generated-client/apis/V1Api.d.ts +42 -0
  15. package/dist/gateway/generated-client/apis/{DefaultApi.js → V1Api.js} +45 -82
  16. package/dist/gateway/generated-client/apis/V1Api.js.map +1 -0
  17. package/dist/gateway/generated-client/apis/index.d.ts +1 -1
  18. package/dist/gateway/generated-client/apis/index.js +1 -1
  19. package/dist/gateway/generated-client/apis/index.js.map +1 -1
  20. package/dist/gateway/generated-client/models/ChainTxInfo.d.ts +10 -0
  21. package/dist/gateway/generated-client/models/ChainTxInfo.js +41 -0
  22. package/dist/gateway/generated-client/models/ChainTxInfo.js.map +1 -0
  23. package/dist/gateway/generated-client/models/GatewayCreateOrder.d.ts +8 -0
  24. package/dist/gateway/generated-client/models/GatewayCreateOrder.js +52 -0
  25. package/dist/gateway/generated-client/models/GatewayCreateOrder.js.map +1 -0
  26. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf.d.ts +9 -0
  27. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf.js +36 -0
  28. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf.js.map +1 -0
  29. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf1.d.ts +9 -0
  30. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf1.js +36 -0
  31. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf1.js.map +1 -0
  32. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf1Offramp.d.ts +10 -0
  33. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf1Offramp.js +40 -0
  34. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf1Offramp.js.map +1 -0
  35. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf2.d.ts +9 -0
  36. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf2.js +36 -0
  37. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOf2.js.map +1 -0
  38. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOfOnramp.d.ts +11 -0
  39. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOfOnramp.js +45 -0
  40. package/dist/gateway/generated-client/models/GatewayCreateOrderOneOfOnramp.js.map +1 -0
  41. package/dist/gateway/generated-client/models/GatewayLayerZeroQuote.d.ts +4 -3
  42. package/dist/gateway/generated-client/models/GatewayLayerZeroQuote.js +7 -6
  43. package/dist/gateway/generated-client/models/GatewayLayerZeroQuote.js.map +1 -1
  44. package/dist/gateway/generated-client/models/GatewayOfframpFeeBreakdown.d.ts +5 -4
  45. package/dist/gateway/generated-client/models/GatewayOfframpFeeBreakdown.js +9 -8
  46. package/dist/gateway/generated-client/models/GatewayOfframpFeeBreakdown.js.map +1 -1
  47. package/dist/gateway/generated-client/models/GatewayOfframpQuote.d.ts +5 -3
  48. package/dist/gateway/generated-client/models/GatewayOfframpQuote.js +11 -6
  49. package/dist/gateway/generated-client/models/GatewayOfframpQuote.js.map +1 -1
  50. package/dist/gateway/generated-client/models/GatewayOnrampFeeBreakdown.d.ts +6 -5
  51. package/dist/gateway/generated-client/models/GatewayOnrampFeeBreakdown.js +11 -10
  52. package/dist/gateway/generated-client/models/GatewayOnrampFeeBreakdown.js.map +1 -1
  53. package/dist/gateway/generated-client/models/GatewayOnrampQuote.d.ts +7 -4
  54. package/dist/gateway/generated-client/models/GatewayOnrampQuote.js +17 -8
  55. package/dist/gateway/generated-client/models/GatewayOnrampQuote.js.map +1 -1
  56. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOf1Offramp.d.ts +8 -8
  57. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOf1Offramp.js +18 -19
  58. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOf1Offramp.js.map +1 -1
  59. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOf2LayerZero.d.ts +6 -5
  60. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOf2LayerZero.js +13 -12
  61. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOf2LayerZero.js.map +1 -1
  62. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOfOnramp.d.ts +6 -7
  63. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOfOnramp.js +13 -18
  64. package/dist/gateway/generated-client/models/GatewayOrderInfoOneOfOnramp.js.map +1 -1
  65. package/dist/gateway/generated-client/models/GatewayTokenAmount.d.ts +10 -0
  66. package/dist/gateway/generated-client/models/GatewayTokenAmount.js +43 -0
  67. package/dist/gateway/generated-client/models/GatewayTokenAmount.js.map +1 -0
  68. package/dist/gateway/generated-client/models/RegisterTx.d.ts +8 -0
  69. package/dist/gateway/generated-client/models/RegisterTx.js +52 -0
  70. package/dist/gateway/generated-client/models/RegisterTx.js.map +1 -0
  71. package/dist/gateway/generated-client/models/RegisterTxOneOf.d.ts +9 -0
  72. package/dist/gateway/generated-client/models/RegisterTxOneOf.js +36 -0
  73. package/dist/gateway/generated-client/models/RegisterTxOneOf.js.map +1 -0
  74. package/dist/gateway/generated-client/models/RegisterTxOneOf1.d.ts +9 -0
  75. package/dist/gateway/generated-client/models/RegisterTxOneOf1.js +36 -0
  76. package/dist/gateway/generated-client/models/RegisterTxOneOf1.js.map +1 -0
  77. package/dist/gateway/generated-client/models/RegisterTxOneOf1Offramp.d.ts +9 -0
  78. package/dist/gateway/generated-client/models/RegisterTxOneOf1Offramp.js +39 -0
  79. package/dist/gateway/generated-client/models/RegisterTxOneOf1Offramp.js.map +1 -0
  80. package/dist/gateway/generated-client/models/RegisterTxOneOf2.d.ts +9 -0
  81. package/dist/gateway/generated-client/models/RegisterTxOneOf2.js +36 -0
  82. package/dist/gateway/generated-client/models/RegisterTxOneOf2.js.map +1 -0
  83. package/dist/gateway/generated-client/models/RegisterTxOneOfOnramp.d.ts +10 -0
  84. package/dist/gateway/generated-client/models/RegisterTxOneOfOnramp.js +39 -0
  85. package/dist/gateway/generated-client/models/RegisterTxOneOfOnramp.js.map +1 -0
  86. package/dist/gateway/generated-client/models/RegisterTxSuccess.d.ts +6 -0
  87. package/dist/gateway/generated-client/models/RegisterTxSuccess.js +44 -0
  88. package/dist/gateway/generated-client/models/RegisterTxSuccess.js.map +1 -0
  89. package/dist/gateway/generated-client/models/RegisterTxSuccessOneOf.d.ts +9 -0
  90. package/dist/gateway/generated-client/models/RegisterTxSuccessOneOf.js +36 -0
  91. package/dist/gateway/generated-client/models/RegisterTxSuccessOneOf.js.map +1 -0
  92. package/dist/gateway/generated-client/models/RegisterTxSuccessOneOfOnramp.d.ts +8 -0
  93. package/dist/gateway/generated-client/models/RegisterTxSuccessOneOfOnramp.js +35 -0
  94. package/dist/gateway/generated-client/models/RegisterTxSuccessOneOfOnramp.js.map +1 -0
  95. package/dist/gateway/generated-client/models/index.d.ts +17 -5
  96. package/dist/gateway/generated-client/models/index.js +17 -5
  97. package/dist/gateway/generated-client/models/index.js.map +1 -1
  98. package/dist/gateway/generated-client/runtime.js +1 -1
  99. package/dist/gateway/generated-client/runtime.js.map +1 -1
  100. package/dist/gateway/index.d.ts +1 -1
  101. package/dist/gateway/index.js +2 -1
  102. package/dist/gateway/index.js.map +1 -1
  103. package/dist/gateway/types/bitcoin.d.ts +3 -3
  104. package/dist/gateway/types/index.d.ts +0 -7
  105. package/dist/gateway/types/index.js +0 -7
  106. package/dist/gateway/types/index.js.map +1 -1
  107. package/dist/gateway/types/quote.d.ts +3 -35
  108. package/dist/gateway/types/strategy.d.ts +0 -4
  109. package/dist/gateway/utils/bitcoin-signer.d.ts +1 -1
  110. package/dist/gateway/utils/bitcoin-signer.js +2 -2
  111. package/dist/gateway/utils/bitcoin-signer.js.map +1 -1
  112. package/dist/gateway/utils/common.d.ts +142 -149
  113. package/dist/gateway/utils/common.js +0 -85
  114. package/dist/gateway/utils/common.js.map +1 -1
  115. package/dist/gateway/utils/index.d.ts +0 -1
  116. package/dist/gateway/utils/index.js +0 -1
  117. package/dist/gateway/utils/index.js.map +1 -1
  118. package/dist/utils.d.ts +0 -1
  119. package/dist/utils.js +0 -7
  120. package/dist/utils.js.map +1 -1
  121. package/package.json +4 -4
  122. package/dist/assets/tokenlist.json +0 -1915
  123. package/dist/gateway/base-client.d.ts +0 -4
  124. package/dist/gateway/base-client.js +0 -29
  125. package/dist/gateway/base-client.js.map +0 -1
  126. package/dist/gateway/generated-client/apis/DefaultApi.d.ts +0 -46
  127. package/dist/gateway/generated-client/apis/DefaultApi.js.map +0 -1
  128. package/dist/gateway/generated-client/models/ChainDetails.d.ts +0 -10
  129. package/dist/gateway/generated-client/models/ChainDetails.js +0 -41
  130. package/dist/gateway/generated-client/models/ChainDetails.js.map +0 -1
  131. package/dist/gateway/generated-client/models/GatewayChain.d.ts +0 -23
  132. package/dist/gateway/generated-client/models/GatewayChain.js +0 -48
  133. package/dist/gateway/generated-client/models/GatewayChain.js.map +0 -1
  134. package/dist/gateway/generated-client/models/GatewayCreateOnramp.d.ts +0 -11
  135. package/dist/gateway/generated-client/models/GatewayCreateOnramp.js +0 -45
  136. package/dist/gateway/generated-client/models/GatewayCreateOnramp.js.map +0 -1
  137. package/dist/gateway/generated-client/models/LayerZeroChainDetailsSchema.d.ts +0 -10
  138. package/dist/gateway/generated-client/models/LayerZeroChainDetailsSchema.js +0 -43
  139. package/dist/gateway/generated-client/models/LayerZeroChainDetailsSchema.js.map +0 -1
  140. package/dist/gateway/generated-client/models/ReferralInfo.d.ts +0 -11
  141. package/dist/gateway/generated-client/models/ReferralInfo.js +0 -47
  142. package/dist/gateway/generated-client/models/ReferralInfo.js.map +0 -1
  143. package/dist/gateway/generated-client/models/RegisterBtcTx.d.ts +0 -9
  144. package/dist/gateway/generated-client/models/RegisterBtcTx.js +0 -39
  145. package/dist/gateway/generated-client/models/RegisterBtcTx.js.map +0 -1
  146. package/dist/gateway/strategy.d.ts +0 -15
  147. package/dist/gateway/strategy.js +0 -390
  148. package/dist/gateway/strategy.js.map +0 -1
  149. package/dist/gateway/tokens.d.ts +0 -19
  150. package/dist/gateway/tokens.js +0 -181
  151. package/dist/gateway/tokens.js.map +0 -1
  152. package/dist/gateway/types/defiLlama.d.ts +0 -11
  153. package/dist/gateway/types/defiLlama.js +0 -3
  154. package/dist/gateway/types/defiLlama.js.map +0 -1
  155. package/dist/gateway/types/layerzero.d.ts +0 -128
  156. package/dist/gateway/types/layerzero.js +0 -3
  157. package/dist/gateway/types/layerzero.js.map +0 -1
  158. package/dist/gateway/types/offramp.d.ts +0 -91
  159. package/dist/gateway/types/offramp.js +0 -3
  160. package/dist/gateway/types/offramp.js.map +0 -1
  161. package/dist/gateway/types/onramp.d.ts +0 -96
  162. package/dist/gateway/types/onramp.js +0 -3
  163. package/dist/gateway/types/onramp.js.map +0 -1
  164. package/dist/gateway/types/order.d.ts +0 -92
  165. package/dist/gateway/types/order.js +0 -15
  166. package/dist/gateway/types/order.js.map +0 -1
  167. package/dist/gateway/types/swaps.d.ts +0 -821
  168. package/dist/gateway/types/swaps.js +0 -24
  169. package/dist/gateway/types/swaps.js.map +0 -1
  170. package/dist/gateway/types/token.d.ts +0 -24
  171. package/dist/gateway/types/token.js +0 -3
  172. package/dist/gateway/types/token.js.map +0 -1
  173. package/dist/gateway/utils/layerzero.d.ts +0 -3
  174. package/dist/gateway/utils/layerzero.js +0 -27
  175. package/dist/gateway/utils/layerzero.js.map +0 -1
  176. package/dist/type-utils.d.ts +0 -7
  177. package/dist/type-utils.js +0 -11
  178. package/dist/type-utils.js.map +0 -1
@@ -1,390 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const viem_1 = require("viem");
4
- const tokens_1 = require("./tokens");
5
- const abi_1 = require("./abi");
6
- const chains_1 = require("viem/chains");
7
- const projectPointsIncentives = new Map([
8
- [
9
- 'veda',
10
- [
11
- {
12
- id: 'veda',
13
- name: 'Veda Points',
14
- },
15
- ],
16
- ],
17
- [
18
- 'bob',
19
- [
20
- {
21
- id: 'bob',
22
- name: 'Bob Spice',
23
- },
24
- ],
25
- ],
26
- [
27
- 'segment',
28
- [
29
- {
30
- id: 'bob',
31
- name: 'Bob Spice',
32
- },
33
- {
34
- id: 'segment',
35
- name: 'Segment Finance Points',
36
- },
37
- ],
38
- ],
39
- [
40
- 'ionic',
41
- [
42
- {
43
- id: 'bob',
44
- name: 'Bob Spice',
45
- },
46
- ],
47
- ],
48
- [
49
- 'avalon',
50
- [
51
- {
52
- id: 'bob',
53
- name: 'Bob Spice',
54
- },
55
- {
56
- id: 'avalon',
57
- name: 'Avalon Points',
58
- },
59
- ],
60
- ],
61
- ]);
62
- const berockPoints = {
63
- id: 'bedrock',
64
- name: 'Bedrock Diamonds',
65
- };
66
- const babylonPoints = {
67
- id: 'babylon',
68
- name: 'Babylon Points',
69
- };
70
- const solvPoints = {
71
- id: 'solv',
72
- name: 'Solv XP',
73
- };
74
- const opRewards = {
75
- id: 'op',
76
- name: 'OP',
77
- };
78
- const tokensPointsIncentives = new Map([
79
- [
80
- '0x236f8c0a61da474db21b693fb2ea7aab0c803894',
81
- [berockPoints, babylonPoints],
82
- ],
83
- [
84
- '0xCC0966D8418d412c599A6421b760a847eB169A8c',
85
- [solvPoints, babylonPoints],
86
- ],
87
- [
88
- '0x5ef2b8fbcc8aea2a9dbe2729f0acf33e073fa43e',
89
- [solvPoints, babylonPoints],
90
- ],
91
- [
92
- '0x7848f0775eebabbf55cb74490ce6d3673e68773a',
93
- [berockPoints, babylonPoints],
94
- ],
95
- [
96
- '0x2e6500a7add9a788753a897e4e3477f651c612eb',
97
- [solvPoints, babylonPoints],
98
- ],
99
- [
100
- '0x9998e05030aee3af9ad3df35a34f5c51e1628779',
101
- [opRewards],
102
- ],
103
- ]);
104
- const tokenToDefiLlamaPoolIdMap = new Map([
105
- [
106
- '0x9998e05030aee3af9ad3df35a34f5c51e1628779',
107
- 'e8bfea35-ff6d-48db-aa08-51599b363219',
108
- ],
109
- [
110
- '0x5ef2b8fbcc8aea2a9dbe2729f0acf33e073fa43e',
111
- 'a430e355-9a6d-4435-90e5-7e74c10f523c',
112
- ],
113
- [
114
- '0x6265c05158f672016b771d6fb7422823ed2cbcdd',
115
- '56eed6bb-80ac-42e3-a7fb-f93c0438c72b',
116
- ],
117
- [
118
- '0x7848f0775eebabbf55cb74490ce6d3673e68773a',
119
- 'a944439e-73ca-4de7-a48d-fe1e75e0b1f2',
120
- ],
121
- [
122
- '0xd30288ea9873f376016a0250433b7ea375676077',
123
- 'ecf4821d-b550-4d5f-b92f-b12d9c279271',
124
- ],
125
- [
126
- '0x2e6500a7add9a788753a897e4e3477f651c612eb',
127
- '19c9b477-6ce9-4e59-897e-1b3ef76afa3a',
128
- ],
129
- [
130
- '0xd6890176e8d912142ac489e8b5d8d93f8de74d60',
131
- '8eb8b8bc-718c-41cf-9cd5-1a1c3c6045c1',
132
- ],
133
- ]);
134
- const tokenToSolvStrategyMap = new Map([
135
- [
136
- '0x4ca70811e831db42072cba1f0d03496ef126faad',
137
- 'BTC+',
138
- ],
139
- [
140
- '0x6b062aa7f5fc52b530cb13967ae2e6bc0d8dd3e4',
141
- 'Jupiter',
142
- ],
143
- ]);
144
- class StrategyClient {
145
- viemClient;
146
- constructor(chain, rpcUrl) {
147
- this.viemClient = (0, viem_1.createPublicClient)({
148
- transport: (0, viem_1.http)(),
149
- chain: {
150
- ...chain,
151
- rpcUrls: {
152
- default: {
153
- http: [rpcUrl || chain.rpcUrls.default.http[0]],
154
- },
155
- },
156
- },
157
- });
158
- }
159
- async getTokensIncentives(tokens) {
160
- const [defillamaPoolMap, solvAPYs] = await Promise.all([this.getDefillamaPools(), this.getSolvAPYs()]);
161
- return tokens.map((token) => {
162
- const tokenAddress = token.toLowerCase();
163
- const strategyType = tokens_1.tokenToStrategyTypeMap.get(tokenAddress) ?? 'bob';
164
- const points = [
165
- ...(projectPointsIncentives.get(strategyType) ?? []),
166
- ...(tokensPointsIncentives.get(tokenAddress) ?? []),
167
- ];
168
- const defillamaPoolId = tokenToDefiLlamaPoolIdMap.get(tokenAddress) || '';
169
- const defillamaPool = defillamaPoolMap.get(defillamaPoolId);
170
- if (defillamaPool) {
171
- return {
172
- apyBase: defillamaPool?.apyBase ?? 0,
173
- apyReward: defillamaPool?.apyReward ?? 0,
174
- rewardTokens: this.resolveTokens(defillamaPool?.rewardTokens),
175
- points,
176
- };
177
- }
178
- const solvStrategy = tokenToSolvStrategyMap.get(tokenAddress);
179
- if (solvStrategy && solvAPYs[solvStrategy]) {
180
- return {
181
- apyBase: solvAPYs[solvStrategy].apyBase,
182
- apyReward: solvAPYs[solvStrategy].apyReward,
183
- rewardTokens: this.resolveTokens(solvAPYs[solvStrategy].rewardTokens),
184
- points,
185
- };
186
- }
187
- return {
188
- apyBase: 0,
189
- apyReward: 0,
190
- rewardTokens: [],
191
- points,
192
- };
193
- });
194
- }
195
- async getDefillamaPools() {
196
- try {
197
- const res = await fetch('https://yields.llama.fi/pools');
198
- const defillamaPools = res.ok ? (await res.json()).data : [];
199
- const defillamaPoolMap = new Map(defillamaPools.filter((pool) => pool.chain === 'Bob').map((pool) => [pool.pool, pool]));
200
- return defillamaPoolMap;
201
- }
202
- catch (err) {
203
- console.error('Failed to fetch DefiLlama pools', err);
204
- return new Map();
205
- }
206
- }
207
- resolveTokens(tokens) {
208
- if (!tokens)
209
- return [];
210
- return tokens
211
- .map((t) => (0, tokens_1.getTokenDetails)(chains_1.bob.id, t) || (0, tokens_1.getTokenDetails)(chains_1.optimism.id, t) || (0, tokens_1.getTokenDetails)(chains_1.mainnet.id, t))
212
- .filter((tok) => Boolean(tok));
213
- }
214
- async getStrategyAssetState(token) {
215
- const strategyType = tokens_1.tokenToStrategyTypeMap.get(token.address.toLowerCase()) ?? 'bob';
216
- switch (strategyType) {
217
- case 'bob': {
218
- return this.getTokenAssetState(token);
219
- }
220
- case 'segment': {
221
- return this.getCompoundV2StrategyAssetState(token);
222
- }
223
- case 'ionic': {
224
- return this.getCompoundV2StrategyAssetState(token);
225
- }
226
- case 'veda': {
227
- return this.getVedaStrategyAssetState(token);
228
- }
229
- case 'avalon': {
230
- return this.getAAVEV2StrategyAssetState(token);
231
- }
232
- default: {
233
- return {
234
- address: 'usd',
235
- totalUnderlying: 0n,
236
- };
237
- }
238
- }
239
- }
240
- async getTokenAssetState(token) {
241
- const outputTokenAddress = token.address;
242
- const [totalSupply] = await this.viemClient.multicall({
243
- allowFailure: false,
244
- contracts: [
245
- {
246
- address: outputTokenAddress,
247
- abi: viem_1.erc20Abi,
248
- functionName: 'totalSupply',
249
- args: [],
250
- },
251
- ],
252
- });
253
- return {
254
- address: outputTokenAddress,
255
- totalUnderlying: totalSupply,
256
- };
257
- }
258
- async getCompoundV2StrategyAssetState(token) {
259
- const outputTokenAddress = token.address;
260
- const [totalSupply, exchangeRate, underlyingAddress] = await this.viemClient.multicall({
261
- allowFailure: false,
262
- contracts: [
263
- {
264
- address: outputTokenAddress,
265
- abi: viem_1.erc20Abi,
266
- functionName: 'totalSupply',
267
- args: [],
268
- },
269
- {
270
- address: outputTokenAddress,
271
- abi: abi_1.compoundV2CTokenAbi,
272
- functionName: 'exchangeRateCurrent',
273
- args: [],
274
- },
275
- {
276
- address: outputTokenAddress,
277
- abi: abi_1.compoundV2CTokenAbi,
278
- functionName: 'underlying',
279
- args: [],
280
- },
281
- ],
282
- });
283
- return {
284
- address: underlyingAddress ?? viem_1.zeroAddress,
285
- totalUnderlying: exchangeRate && totalSupply ? (exchangeRate * totalSupply) / 10n ** 18n : 0n,
286
- };
287
- }
288
- async getAAVEV2StrategyAssetState(token) {
289
- const outputTokenAddress = token.address;
290
- const [totalSupply, underlyingAddress] = await this.viemClient.multicall({
291
- allowFailure: false,
292
- contracts: [
293
- {
294
- address: outputTokenAddress,
295
- abi: viem_1.erc20Abi,
296
- functionName: 'totalSupply',
297
- args: [],
298
- },
299
- {
300
- address: outputTokenAddress,
301
- abi: abi_1.aaveV2AtokenAbi,
302
- functionName: 'UNDERLYING_ASSET_ADDRESS',
303
- args: [],
304
- },
305
- ],
306
- });
307
- return {
308
- address: underlyingAddress,
309
- totalUnderlying: totalSupply,
310
- };
311
- }
312
- async getVedaStrategyAssetState(token) {
313
- const timestamp = Math.floor(Date.now() / 1000) - 7 * 24 * 3600;
314
- const res = await fetch(`https://api.sevenseas.capital/hourlyData/bob/${token.address}/${timestamp}/latest`);
315
- if (!res.ok) {
316
- return {
317
- address: 'usd',
318
- totalUnderlying: 0n,
319
- };
320
- }
321
- const body = await res.json();
322
- if (!body.Response?.[0]) {
323
- return {
324
- address: 'usd',
325
- totalUnderlying: 0n,
326
- };
327
- }
328
- const { tvl } = body.Response[0];
329
- return {
330
- address: 'usd',
331
- totalUnderlying: BigInt(Math.floor(tvl)),
332
- };
333
- }
334
- async getSolvAPYs() {
335
- try {
336
- const query = `
337
- query SolvAPYs {
338
- btcPlusStats(stageNo: 1) {
339
- baseApy
340
- rewardApy
341
- tvl
342
- }
343
- lsts {
344
- details {
345
- protocol
346
- apy
347
- estApy
348
- tvlUsd
349
- }
350
- }
351
- }
352
- `
353
- .split('\n')
354
- .join(' ');
355
- const res = await fetch('https://sft-api.com/graphql', {
356
- headers: {
357
- 'content-type': 'application/json',
358
- Authorization: 'solv',
359
- },
360
- body: `{
361
- "operationName": "SolvAPYs",
362
- "variables": {},
363
- "query": "${query}"
364
- }`,
365
- method: 'POST',
366
- });
367
- const data = await res.json();
368
- const apys = {
369
- 'BTC+': {
370
- apyBase: Math.max(Number(data.data.btcPlusStats?.baseApy || 0), 0),
371
- apyReward: Math.max(Number(data.data.btcPlusStats?.rewardApy || 0), 0),
372
- rewardTokens: ['0x04830a96a23ea718faa695a5aae74695aae3a23f'],
373
- },
374
- };
375
- data.data.lsts.details.forEach((pool) => {
376
- apys[pool.protocol] = {
377
- apyBase: Math.max(Number(pool.apy), 0),
378
- apyReward: 0,
379
- };
380
- });
381
- return apys;
382
- }
383
- catch (err) {
384
- console.error('Failed to fetch APY data from Solv', err);
385
- return {};
386
- }
387
- }
388
- }
389
- exports.default = StrategyClient;
390
- //# sourceMappingURL=strategy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/gateway/strategy.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { Token } from './types';
2
- import { Address } from 'viem';
3
- export declare const SYMBOL_LOOKUP: {
4
- [key in number]: {
5
- [key in string]: Token;
6
- };
7
- };
8
- export declare const ADDRESS_LOOKUP: {
9
- [key in number]: {
10
- [key in string]: Token;
11
- };
12
- };
13
- export declare const tokenToStrategyTypeMap: Map<string, "bob" | "segment" | "ionic" | "veda" | "avalon">;
14
- export declare function getTokenAddress(chainId: number, token: string): Address;
15
- export declare function getTokenSlots(tokenAddress: Address): {
16
- allowanceSlot: bigint;
17
- balanceSlot: bigint;
18
- };
19
- export declare function getTokenDetails(chainId: number, token: string): Token | undefined;
@@ -1,181 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.tokenToStrategyTypeMap = exports.ADDRESS_LOOKUP = exports.SYMBOL_LOOKUP = void 0;
7
- exports.getTokenAddress = getTokenAddress;
8
- exports.getTokenSlots = getTokenSlots;
9
- exports.getTokenDetails = getTokenDetails;
10
- const viem_1 = require("viem");
11
- const chains_1 = require("viem/chains");
12
- const tokenlist_json_1 = __importDefault(require("../assets/tokenlist.json"));
13
- const ethereumTokenByIdMapping = tokenlist_json_1.default.tokens.reduce((acc, token) => {
14
- acc[token.extensions.tokenId] = token;
15
- return acc;
16
- }, {});
17
- const STORAGE_SLOTS_MAP = {
18
- [(0, viem_1.getAddress)('0x0555E30da8f98308EdB960aa94C0Db47230d2B9c')]: {
19
- allowanceSlot: 6n,
20
- balanceSlot: 5n,
21
- },
22
- [(0, viem_1.getAddress)('0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599')]: {
23
- allowanceSlot: 2n,
24
- balanceSlot: 0n,
25
- },
26
- [(0, viem_1.getAddress)('0xAdCE1AB74C8e64c155953A8BdE37cBB06Cf7086D')]: {
27
- allowanceSlot: 1n,
28
- balanceSlot: 0n,
29
- },
30
- };
31
- const OLD_WBTC = '0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3';
32
- const bobTokens = tokenlist_json_1.default.tokens
33
- .filter((token) => token.chainId === 60808)
34
- .filter((token) => !(0, viem_1.isAddressEqual)((0, viem_1.getAddress)(token.address), (0, viem_1.getAddress)(OLD_WBTC)))
35
- .map((token) => {
36
- const slots = STORAGE_SLOTS_MAP[token.address];
37
- return {
38
- name: token.name,
39
- address: token.address,
40
- symbol: token.symbol,
41
- decimals: token.decimals,
42
- chainId: token.chainId,
43
- logoURI: token.logoURI,
44
- ...(slots
45
- ? {
46
- allowanceSlot: slots.allowanceSlot,
47
- balanceSlot: slots.balanceSlot,
48
- }
49
- : {}),
50
- };
51
- });
52
- const bobSepoliaTokens = [
53
- {
54
- name: 'BTC',
55
- address: '0xAdCE1AB74C8e64c155953A8BdE37cBB06Cf7086D',
56
- symbol: 'BTC',
57
- decimals: 18,
58
- chainId: 808813,
59
- logoURI: 'https://raw.githubusercontent.com/bob-collective/bob/master/assets/btc.svg',
60
- allowanceSlot: 1n,
61
- balanceSlot: 0n,
62
- },
63
- {
64
- name: 'Staked mtBTC',
65
- address: '0xc4229678b65e2D9384FDf96F2E5D512d6eeC0C77',
66
- symbol: 'stmtBTC',
67
- decimals: 18,
68
- chainId: 808813,
69
- logoURI: 'https://raw.githubusercontent.com/bob-collective/bob/master/assets/tbtc.svg',
70
- },
71
- {
72
- name: 'tBTC v2',
73
- address: '0x6744bAbDf02DCF578EA173A9F0637771A9e1c4d0',
74
- symbol: 'tBTC',
75
- decimals: 18,
76
- chainId: 808813,
77
- logoURI: 'https://raw.githubusercontent.com/bob-collective/bob/master/assets/tbtc.svg',
78
- },
79
- {
80
- name: 'Wrapped BTC',
81
- address: '0xe51e40e15e6e1496a0981f90Ca1D632545bdB519',
82
- symbol: 'WBTC',
83
- decimals: 8,
84
- chainId: 808813,
85
- logoURI: 'https://raw.githubusercontent.com/bob-collective/bob/master/assets/wbtc.svg',
86
- },
87
- {
88
- name: 'Bob BTC',
89
- address: '0x4496ebE7C8666a8103713EE6e0c08cA0cD25b888',
90
- symbol: 'bobBTC',
91
- decimals: 8,
92
- chainId: 808813,
93
- logoURI: 'https://raw.githubusercontent.com/bob-collective/bob/master/assets/bobBTC.svg',
94
- },
95
- ];
96
- const optimismTokens = [
97
- {
98
- name: 'Optimism',
99
- address: '0x4200000000000000000000000000000000000042',
100
- symbol: 'OP',
101
- decimals: 18,
102
- chainId: 10,
103
- logoURI: 'https://optimistic.etherscan.io/token/images/optimism_32.png',
104
- },
105
- ];
106
- const ethereumTokens = [ethereumTokenByIdMapping['Solv']];
107
- const TOKENS = [...bobTokens, ...bobSepoliaTokens, ...optimismTokens, ...ethereumTokens];
108
- exports.SYMBOL_LOOKUP = {};
109
- exports.ADDRESS_LOOKUP = {};
110
- exports.SYMBOL_LOOKUP[chains_1.bob.id] = {};
111
- exports.SYMBOL_LOOKUP[chains_1.bobSepolia.id] = {};
112
- exports.SYMBOL_LOOKUP[chains_1.optimism.id] = {};
113
- exports.SYMBOL_LOOKUP[chains_1.mainnet.id] = {};
114
- exports.ADDRESS_LOOKUP[chains_1.bob.id] = {};
115
- exports.ADDRESS_LOOKUP[chains_1.bobSepolia.id] = {};
116
- exports.ADDRESS_LOOKUP[chains_1.optimism.id] = {};
117
- exports.ADDRESS_LOOKUP[chains_1.mainnet.id] = {};
118
- function addToken(address, token) {
119
- const lowerAddress = address.toLowerCase();
120
- const lowerToken = {
121
- chainId: token.chainId,
122
- address: (0, viem_1.getAddress)(lowerAddress),
123
- name: token.name,
124
- symbol: token.symbol,
125
- decimals: token.decimals,
126
- logoURI: token.logoURI,
127
- };
128
- exports.SYMBOL_LOOKUP[token.chainId][lowerToken.symbol.toLowerCase()] = lowerToken;
129
- exports.ADDRESS_LOOKUP[token.chainId][(0, viem_1.getAddress)(lowerAddress)] = lowerToken;
130
- }
131
- for (const token of TOKENS) {
132
- addToken(token.address, token);
133
- }
134
- exports.tokenToStrategyTypeMap = new Map([
135
- ...bobTokens.map((token) => [token.address.toLowerCase(), 'bob']),
136
- ...bobSepoliaTokens.map((token) => [token.address.toLowerCase(), 'bob']),
137
- ...[
138
- '0xD30288EA9873f376016A0250433b7eA375676077',
139
- '0x6265C05158f672016B771D6Fb7422823ed2CbcDd',
140
- '0x5EF2B8fbCc8aea2A9Dbe2729F0acf33E073Fa43e',
141
- '0x7848F0775EebaBbF55cB74490ce6D3673E68773A',
142
- ].map((address) => [address.toLowerCase(), 'segment']),
143
- ...['0x68e0e4d875FDe34fc4698f40ccca0Db5b67e3693', '0xEBc8a7EE7f1D6534eBF45Bd5311203BF0A17493c'].map((address) => [address.toLowerCase(), 'ionic']),
144
- ...['0x9998e05030Aee3Af9AD3df35A34F5C51e1628779'].map((address) => [address.toLowerCase(), 'veda']),
145
- ...[
146
- '0x5E007Ed35c7d89f5889eb6FD0cdCAa38059560ef',
147
- '0xd6890176e8d912142AC489e8B5D8D93F8dE74D60',
148
- '0x2E6500A7Add9a788753a897e4e3477f651c612eb',
149
- ].map((address) => [address.toLowerCase(), 'avalon']),
150
- ]);
151
- function getTokenAddress(chainId, token) {
152
- if ((0, viem_1.isAddress)(token)) {
153
- return (0, viem_1.getAddress)(token);
154
- }
155
- else if (exports.SYMBOL_LOOKUP[chainId][token.toLowerCase()]) {
156
- return (0, viem_1.getAddress)(exports.SYMBOL_LOOKUP[chainId][token.toLowerCase()].address);
157
- }
158
- else {
159
- throw new Error('Unknown output token');
160
- }
161
- }
162
- function getTokenSlots(tokenAddress) {
163
- const slots = STORAGE_SLOTS_MAP[tokenAddress];
164
- if (!slots) {
165
- throw new Error(`Slots not found for address ${tokenAddress}`);
166
- }
167
- if (slots.allowanceSlot === undefined || slots.balanceSlot === undefined) {
168
- throw new Error(`Slots not defined at address ${tokenAddress}`);
169
- }
170
- return slots;
171
- }
172
- function getTokenDetails(chainId, token) {
173
- try {
174
- const checksum = (0, viem_1.getAddress)(token);
175
- return exports.ADDRESS_LOOKUP[chainId]?.[checksum];
176
- }
177
- catch {
178
- return undefined;
179
- }
180
- }
181
- //# sourceMappingURL=tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/gateway/tokens.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export interface DefiLlamaPool {
2
- pool: string;
3
- chain: string;
4
- project: string;
5
- tvlUsd: number;
6
- apy: number | null;
7
- apyBase: number | null;
8
- apyReward: number | null;
9
- underlyingTokens: null | string[];
10
- rewardTokens: null | string[];
11
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=defiLlama.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defiLlama.js","sourceRoot":"","sources":["../../../src/gateway/types/defiLlama.ts"],"names":[],"mappings":""}