@stake-dao/reader 0.5.31 → 0.5.33

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.
@@ -1,9 +1,9 @@
1
1
  const batchDirectIncentives = {
2
2
  bytecode: {
3
- 1: '0x608060405234801561000f575f80fd5b50604051610c1a380380610c1a83398181016040528101906100319190610596565b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff16637ef9faaa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a391906105d4565b90505f83826100b2919061062c565b67ffffffffffffffff8111156100cb576100ca61065f565b5b60405190808252806020026020018201604052801561010457816020015b6100f1610430565b8152602001906001900390816100e95790505b5090505f8490505b82811015610401575f8473ffffffffffffffffffffffffffffffffffffffff1663e121c102836040518263ffffffff1660e01b815260040161014e919061069b565b61012060405180830381865afa15801561016a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018e91906107f0565b90505f6040518060800160405280836020015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061021091906108d0565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610261573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061028991906108d0565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031f919061094d565b60ff168152509050604051806101200160405280835f015173ffffffffffffffffffffffffffffffffffffffff1681526020018281526020018360400151815260200183606001518152602001836080015181526020018360a0015181526020018360c0015173ffffffffffffffffffffffffffffffffffffffff1681526020018360e00151815260200183610100015173ffffffffffffffffffffffffffffffffffffffff168152508488856103d6919061062c565b815181106103e7576103e6610978565b5b60200260200101819052505050808060010191505061010c565b505f816040516020016104149190610bf9565b6040516020818303038152906040529050602081018059038082f35b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016104606104bc565b81526020015f81526020015f81526020015f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b604051806080016040528060608152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053282610509565b9050919050565b61054281610528565b811461054c575f80fd5b50565b5f8151905061055d81610539565b92915050565b5f819050919050565b61057581610563565b811461057f575f80fd5b50565b5f815190506105908161056c565b92915050565b5f80604083850312156105ac576105ab610501565b5b5f6105b98582860161054f565b92505060206105ca85828601610582565b9150509250929050565b5f602082840312156105e9576105e8610501565b5b5f6105f684828501610582565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61063682610563565b915061064183610563565b9250828203905081811115610659576106586105ff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61069581610563565b82525050565b5f6020820190506106ae5f83018461068c565b92915050565b5f80fd5b5f601f19601f8301169050919050565b6106d1826106b8565b810181811067ffffffffffffffff821117156106f0576106ef61065f565b5b80604052505050565b5f6107026104f8565b905061070e82826106c8565b919050565b5f6101208284031215610729576107286106b4565b5b6107346101206106f9565b90505f6107438482850161054f565b5f8301525060206107568482850161054f565b602083015250604061076a84828501610582565b604083015250606061077e84828501610582565b606083015250608061079284828501610582565b60808301525060a06107a684828501610582565b60a08301525060c06107ba8482850161054f565b60c08301525060e06107ce84828501610582565b60e0830152506101006107e38482850161054f565b6101008301525092915050565b5f610120828403121561080657610805610501565b5b5f61081384828501610713565b91505092915050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561083e5761083d61065f565b5b610847826106b8565b9050602081019050919050565b8281835e5f83830152505050565b5f61087461086f84610824565b6106f9565b9050828152602081018484840111156108905761088f610820565b5b61089b848285610854565b509392505050565b5f82601f8301126108b7576108b661081c565b5b81516108c7848260208601610862565b91505092915050565b5f602082840312156108e5576108e4610501565b5b5f82015167ffffffffffffffff81111561090257610901610505565b5b61090e848285016108a3565b91505092915050565b5f60ff82169050919050565b61092c81610917565b8114610936575f80fd5b50565b5f8151905061094781610923565b92915050565b5f6020828403121561096257610961610501565b5b5f61096f84828501610939565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6109d781610528565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610a01826109dd565b610a0b81856109e7565b9350610a1b818560208601610854565b610a24816106b8565b840191505092915050565b610a3881610563565b82525050565b5f608083015f8301518482035f860152610a5882826109f7565b91505060208301518482036020860152610a7282826109f7565b9150506040830151610a8760408601826109ce565b506060830151610a9a6060860182610a2f565b508091505092915050565b5f61012083015f830151610abb5f8601826109ce565b5060208301518482036020860152610ad38282610a3e565b9150506040830151610ae86040860182610a2f565b506060830151610afb6060860182610a2f565b506080830151610b0e6080860182610a2f565b5060a0830151610b2160a0860182610a2f565b5060c0830151610b3460c08601826109ce565b5060e0830151610b4760e0860182610a2f565b50610100830151610b5c6101008601826109ce565b508091505092915050565b5f610b728383610aa5565b905092915050565b5f602082019050919050565b5f610b90826109a5565b610b9a81856109af565b935083602082028501610bac856109bf565b805f5b85811015610be75784840389528151610bc88582610b67565b9450610bd383610b7a565b925060208a01995050600181019050610baf565b50829750879550505050505092915050565b5f6020820190508181035f830152610c118184610b86565b90509291505056fe',
3
+ 1: '0x608060405234801561000f575f80fd5b50604051610c42380380610c42833981810160405281019061003191906105ac565b5f8390505f8173ffffffffffffffffffffffffffffffffffffffff16637ef9faaa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a391906105fc565b90505f8314806100b257508083115b156100bb578092505b5f84846100c89190610654565b67ffffffffffffffff8111156100e1576100e0610687565b5b60405190808252806020026020018201604052801561011a57816020015b610107610446565b8152602001906001900390816100ff5790505b5090505f8590505b84811015610417575f8473ffffffffffffffffffffffffffffffffffffffff1663e121c102836040518263ffffffff1660e01b815260040161016491906106c3565b61012060405180830381865afa158015610180573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a49190610818565b90505f6040518060800160405280836020015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101fe573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061022691906108f8565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610277573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061029f91906108f8565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610311573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103359190610975565b60ff168152509050604051806101200160405280835f015173ffffffffffffffffffffffffffffffffffffffff1681526020018281526020018360400151815260200183606001518152602001836080015181526020018360a0015181526020018360c0015173ffffffffffffffffffffffffffffffffffffffff1681526020018360e00151815260200183610100015173ffffffffffffffffffffffffffffffffffffffff168152508489856103ec9190610654565b815181106103fd576103fc6109a0565b5b602002602001018190525050508080600101915050610122565b505f8160405160200161042a9190610c21565b6040516020818303038152906040529050602081018059038082f35b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016104766104d2565b81526020015f81526020015f81526020015f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b604051806080016040528060608152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105488261051f565b9050919050565b6105588161053e565b8114610562575f80fd5b50565b5f815190506105738161054f565b92915050565b5f819050919050565b61058b81610579565b8114610595575f80fd5b50565b5f815190506105a681610582565b92915050565b5f805f606084860312156105c3576105c2610517565b5b5f6105d086828701610565565b93505060206105e186828701610598565b92505060406105f286828701610598565b9150509250925092565b5f6020828403121561061157610610610517565b5b5f61061e84828501610598565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61065e82610579565b915061066983610579565b925082820390508181111561068157610680610627565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106bd81610579565b82525050565b5f6020820190506106d65f8301846106b4565b92915050565b5f80fd5b5f601f19601f8301169050919050565b6106f9826106e0565b810181811067ffffffffffffffff8211171561071857610717610687565b5b80604052505050565b5f61072a61050e565b905061073682826106f0565b919050565b5f6101208284031215610751576107506106dc565b5b61075c610120610721565b90505f61076b84828501610565565b5f83015250602061077e84828501610565565b602083015250604061079284828501610598565b60408301525060606107a684828501610598565b60608301525060806107ba84828501610598565b60808301525060a06107ce84828501610598565b60a08301525060c06107e284828501610565565b60c08301525060e06107f684828501610598565b60e08301525061010061080b84828501610565565b6101008301525092915050565b5f610120828403121561082e5761082d610517565b5b5f61083b8482850161073b565b91505092915050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561086657610865610687565b5b61086f826106e0565b9050602081019050919050565b8281835e5f83830152505050565b5f61089c6108978461084c565b610721565b9050828152602081018484840111156108b8576108b7610848565b5b6108c384828561087c565b509392505050565b5f82601f8301126108df576108de610844565b5b81516108ef84826020860161088a565b91505092915050565b5f6020828403121561090d5761090c610517565b5b5f82015167ffffffffffffffff81111561092a5761092961051b565b5b610936848285016108cb565b91505092915050565b5f60ff82169050919050565b6109548161093f565b811461095e575f80fd5b50565b5f8151905061096f8161094b565b92915050565b5f6020828403121561098a57610989610517565b5b5f61099784828501610961565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6109ff8161053e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610a2982610a05565b610a338185610a0f565b9350610a4381856020860161087c565b610a4c816106e0565b840191505092915050565b610a6081610579565b82525050565b5f608083015f8301518482035f860152610a808282610a1f565b91505060208301518482036020860152610a9a8282610a1f565b9150506040830151610aaf60408601826109f6565b506060830151610ac26060860182610a57565b508091505092915050565b5f61012083015f830151610ae35f8601826109f6565b5060208301518482036020860152610afb8282610a66565b9150506040830151610b106040860182610a57565b506060830151610b236060860182610a57565b506080830151610b366080860182610a57565b5060a0830151610b4960a0860182610a57565b5060c0830151610b5c60c08601826109f6565b5060e0830151610b6f60e0860182610a57565b50610100830151610b846101008601826109f6565b508091505092915050565b5f610b9a8383610acd565b905092915050565b5f602082019050919050565b5f610bb8826109cd565b610bc281856109d7565b935083602082028501610bd4856109e7565b805f5b85811015610c0f5784840389528151610bf08582610b8f565b9450610bfb83610ba2565b925060208a01995050600181019050610bd7565b50829750879550505050505092915050565b5f6020820190508181035f830152610c398184610bae565b90509291505056fe',
4
4
  },
5
5
  inputType: {
6
- 1: ['address _campaignRewardDistributor', 'uint256 _start'],
6
+ 1: ['address _campaignRewardDistributor, uint256 _start, uint256 _end'],
7
7
  },
8
8
  outputTypeHr: {
9
9
  1: [
@@ -1 +1 @@
1
- {"version":3,"file":"batchDirectIncentives.js","sourceRoot":"","sources":["../../../../src/bytecodes/votemarket/batchDirectIncentives.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAkB;IAC3C,QAAQ,EAAE;QACR,CAAC,EAAE,wjMAAwjM;KAC5jM;IAED,SAAS,EAAE;QACT,CAAC,EAAE,CAAC,oCAAoC,EAAE,gBAAgB,CAAC;KAC5D;IAED,YAAY,EAAE;QACZ,CAAC,EAAE;YACD,8BAA8B;YAC9B,6KAA6K;YAC7K,kFAAkF;SACnF;KACF;CACF,CAAA;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"batchDirectIncentives.js","sourceRoot":"","sources":["../../../../src/bytecodes/votemarket/batchDirectIncentives.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAkB;IAC3C,QAAQ,EAAE;QACR,CAAC,EAAE,woMAAwoM;KAC5oM;IAED,SAAS,EAAE;QACT,CAAC,EAAE,CAAC,kEAAkE,CAAC;KACxE;IAED,YAAY,EAAE;QACZ,CAAC,EAAE;YACD,8BAA8B;YAC9B,6KAA6K;YAC7K,kFAAkF;SACnF;KACF;CACF,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -19,6 +19,7 @@ export const parseV2Strats = (global, rawStrats, extra) => {
19
19
  const lpPriceInUsd = Number(s.gauge.totalSupply) > 0
20
20
  ? Number(s.gauge.totalSupplyUSD) / Number(formatUnits(BigInt(s.gauge.totalSupply || '0'), 18))
21
21
  : 0;
22
+ const tvl = Number(s.totalSupplyUSD) > 10000000000 ? 0 : Number(s.totalSupplyUSD);
22
23
  const compoundedYieldKey = isLending ? 'LENDING_INTEREST' : 'TRADING_FEES';
23
24
  const tradingApy = (s.gauge.aprDetails.find((el) => el.yieldType === compoundedYieldKey)?.aprUSD || 0) * 100;
24
25
  const otherRewards = s.gauge.aprDetails.filter((el) => el.yieldType !== compoundedYieldKey && el.asset);
@@ -34,10 +35,11 @@ export const parseV2Strats = (global, rawStrats, extra) => {
34
35
  }));
35
36
  // Compute rewards from the hook incentive (Votemarket)
36
37
  const hookIncentivesPrices = extra?.baseRewardsPrices || [];
37
- const gaugeUsd = Number(s.gauge.totalSupplyUSD);
38
38
  const incentivesByToken = (extra?.hookIncentives || [])
39
39
  .filter((r) => equalTlc(r.vault, s.address))
40
40
  .reduce((acc, r) => {
41
+ if (!acc[r.source])
42
+ acc[r.source] = {};
41
43
  const rewardAddress = r.reward;
42
44
  const price = hookIncentivesPrices.find((p) => equalTlc(rewardAddress, p.address))?.usdPrice || 0;
43
45
  const amountToken = Number.parseFloat(formatUnits(r.amount, r.rewardDecimals));
@@ -47,25 +49,31 @@ export const parseV2Strats = (global, rawStrats, extra) => {
47
49
  const tokensPerSecond = amountToken / duration;
48
50
  const yearlyTokens = tokensPerSecond * ONE_YEAR;
49
51
  const yearlyRewardsUsd = yearlyTokens * price;
50
- if (!acc[rewardAddress]) {
51
- acc[rewardAddress] = {
52
+ if (!acc[r.source][rewardAddress]) {
53
+ acc[r.source][rewardAddress] = {
52
54
  meta: r,
53
55
  price: price,
54
56
  totalYearlyUsd: 0,
55
57
  maxPeriodFinish: Number.parseInt(r.end),
58
+ source: r.source,
56
59
  };
57
60
  }
58
- acc[rewardAddress].totalYearlyUsd += yearlyRewardsUsd;
59
- acc[rewardAddress].maxPeriodFinish = Math.max(acc[rewardAddress].maxPeriodFinish, Number.parseInt(r.end));
61
+ acc[r.source][rewardAddress].totalYearlyUsd += yearlyRewardsUsd;
62
+ acc[r.source][rewardAddress].maxPeriodFinish = Math.max(acc[r.source][rewardAddress].maxPeriodFinish, Number.parseInt(r.end));
60
63
  return acc;
61
64
  }, {});
62
- const hookIncentives = Object.values(incentivesByToken).map((group) => {
63
- const { meta, price, totalYearlyUsd, maxPeriodFinish } = group;
64
- let _gaugeUsd = gaugeUsd;
65
- if (_gaugeUsd === 0) {
66
- _gaugeUsd = 10_000;
67
- }
68
- const apr = _gaugeUsd > 0 ? (totalYearlyUsd / _gaugeUsd) * 100 : 0;
65
+ const hookIncentives = [
66
+ ...Object.values(incentivesByToken.vm || {}),
67
+ ...Object.values(incentivesByToken.direct || {}),
68
+ ...Object.values(incentivesByToken.gauge || {}),
69
+ ].map((group) => {
70
+ const { meta, price, totalYearlyUsd, maxPeriodFinish, source } = group;
71
+ const apr = (totalYearlyUsd / (tvl > 0 ? tvl : 10_000)) * 100;
72
+ let yieldType = 'STAKING_REWARDS';
73
+ if (source === 'vm')
74
+ yieldType = 'VOTEMARKET';
75
+ if (source === 'direct')
76
+ yieldType = 'ONLYBOOST';
69
77
  return {
70
78
  token: parseAsset({
71
79
  id: meta.id.toString(),
@@ -78,10 +86,12 @@ export const parseV2Strats = (global, rawStrats, extra) => {
78
86
  apr,
79
87
  streaming: true,
80
88
  periodFinish: maxPeriodFinish,
81
- yieldType: 'VOTEMARKET',
89
+ yieldType,
82
90
  };
83
91
  });
84
92
  const rewards = otherRewards
93
+ .filter((r) => !((r.yieldType === 'STAKING_REWARDS' || r.yieldType === 'LIQUIDITY_INCENTIVES') &&
94
+ incentivesByToken.gauge?.[r.asset.address]))
85
95
  .map((r) => ({
86
96
  token: parseAsset(r.asset),
87
97
  aprInToken: r.apr,
@@ -153,9 +163,13 @@ export const parseV2Strats = (global, rawStrats, extra) => {
153
163
  baseRewardAdded = true;
154
164
  }
155
165
  else {
156
- const label = r.yieldType === 'VOTEMARKET'
157
- ? `${r.token.symbol} APR (Extra Rewards from Votemarket)`
158
- : `${r.token.symbol} APR`;
166
+ let label = `${r.token.symbol} APR`;
167
+ if (r.yieldType === 'STAKING_REWARDS' || r.yieldType === 'LIQUIDITY_INCENTIVES')
168
+ label = `${label} - ${protocol.charAt(0).toUpperCase() + protocol.slice(1)} gauge`;
169
+ if (r.yieldType === 'ONLYBOOST')
170
+ label = `${label} - Onlyboost Extra Rewards`;
171
+ if (r.yieldType === 'VOTEMARKET')
172
+ label = `${label} - Votemarket Liquidity Mining`;
159
173
  aprDetails.push({ label, value: [r.apr || 0] });
160
174
  }
161
175
  }
@@ -188,7 +202,7 @@ export const parseV2Strats = (global, rawStrats, extra) => {
188
202
  underlyingCoins: [],
189
203
  lpPriceInUsd,
190
204
  streaming: true,
191
- tvl: Number(s.totalSupplyUSD) > 10000000000 ? 0 : Number(s.totalSupplyUSD),
205
+ tvl,
192
206
  apr: {
193
207
  boost,
194
208
  current: { total: aprTotal, details: aprDetails },
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../src/strategies/v2/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../src/strategies/v2/parse.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,45 @@ import { mainnet } from 'viem/chains';
3
3
  import batchDirectIncentives from '../bytecodes/votemarket/batchDirectIncentives.js';
4
4
  import { concatBytecode } from '../index.js';
5
5
  import { batchJsonRpc } from '../utils.js';
6
+ const BATCH_SIZE = 20;
7
+ // selector of nbIncentives()
8
+ const NB_INCENTIVES_SELECTOR = '0x7ef9faaa';
9
+ const getNbIncentives = async (rpc, campaignRewardDistributor) => {
10
+ const res = await fetch(rpc, {
11
+ method: 'POST',
12
+ headers: { 'Content-Type': 'application/json' },
13
+ body: JSON.stringify({
14
+ id: 0,
15
+ jsonrpc: '2.0',
16
+ method: 'eth_call',
17
+ params: [{ to: campaignRewardDistributor, data: NB_INCENTIVES_SELECTOR }, 'latest'],
18
+ }),
19
+ }).then((r) => r.json());
20
+ if (res.error)
21
+ throw new Error(`nbIncentives() failed: ${res.error.message}`);
22
+ return Number.parseInt(res.result, 16);
23
+ };
6
24
  export const fetchDirectIncentives = async (rpc, campaignRewardDistributor, start) => {
7
- const inputData = encodeAbiParameters(parseAbiParameters(batchDirectIncentives.inputType[mainnet.id]), [
8
- campaignRewardDistributor,
9
- start,
10
- ]);
11
- const call = concatBytecode(batchDirectIncentives.bytecode[mainnet.id], inputData);
12
- const directIncentives = await batchJsonRpc({
25
+ const total = await getNbIncentives(rpc, campaignRewardDistributor);
26
+ if (start >= total)
27
+ return [];
28
+ const buildCall = (batchStart, batchEnd) => {
29
+ const inputData = encodeAbiParameters(parseAbiParameters(batchDirectIncentives.inputType[mainnet.id]), [
30
+ campaignRewardDistributor,
31
+ batchStart,
32
+ batchEnd,
33
+ ]);
34
+ return concatBytecode(batchDirectIncentives.bytecode[mainnet.id], inputData);
35
+ };
36
+ const calls = [];
37
+ for (let i = start; i < total; i += BATCH_SIZE) {
38
+ calls.push(buildCall(i, Math.min(i + BATCH_SIZE, total)));
39
+ }
40
+ return batchJsonRpc({
13
41
  rpc,
14
- calls: [call],
42
+ calls,
15
43
  outputTypeAbi: batchDirectIncentives.outputTypeHr[mainnet.id],
16
44
  callsKey: `fetch direct incentives - rpc ${rpc}`,
17
45
  });
18
- return directIncentives;
19
46
  };
20
47
  //# sourceMappingURL=fetchDirectIncentives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchDirectIncentives.js","sourceRoot":"","sources":["../../../src/votemarket/fetchDirectIncentives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,qBAAqB,MAAM,kDAAkD,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAW,EAAE,yBAAiC,EAAE,KAAa,EAAE,EAAE;IAC3G,MAAM,SAAS,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAE,CAAQ,EAAE;QAC7G,yBAAyB;QACzB,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,cAAc,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAE,EAAE,SAAS,CAAC,CAAA;IAEnF,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC;QAC1C,GAAG;QACH,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,aAAa,EAAE,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,QAAQ,EAAE,iCAAiC,GAAG,EAAE;KACjD,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA"}
1
+ {"version":3,"file":"fetchDirectIncentives.js","sourceRoot":"","sources":["../../../src/votemarket/fetchDirectIncentives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,qBAAqB,MAAM,kDAAkD,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,UAAU,GAAG,EAAE,CAAA;AACrB,6BAA6B;AAC7B,MAAM,sBAAsB,GAAG,YAAY,CAAA;AAE3C,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAE,yBAAiC,EAAmB,EAAE;IAChG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,EAAE,EAAE,CAAC;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,QAAQ,CAAC;SACpF,CAAC;KACH,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAExB,IAAI,GAAG,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7E,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAW,EAAE,yBAAiC,EAAE,KAAa,EAAE,EAAE;IAC3G,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAA;IAEnE,IAAI,KAAK,IAAI,KAAK;QAAE,OAAO,EAAE,CAAA;IAE7B,MAAM,SAAS,GAAG,CAAC,UAAkB,EAAE,QAAgB,EAAE,EAAE;QACzD,MAAM,SAAS,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAE,CAAQ,EAAE;YAC7G,yBAAyB;YACzB,UAAU;YACV,QAAQ;SACT,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAE,EAAE,SAAS,CAAC,CAAA;IAC/E,CAAC,CAAA;IAED,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,YAAY,CAAC;QAClB,GAAG;QACH,KAAK;QACL,aAAa,EAAE,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,QAAQ,EAAE,iCAAiC,GAAG,EAAE;KACjD,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/strategies/v2/parse.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,WAAY,GAAG,aAAa,GAAG,EAAE,SAAS,GAAG,UAwOtE,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/strategies/v2/parse.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,WAAY,GAAG,aAAa,GAAG,EAAE,SAAS,GAAG,UA4PtE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchDirectIncentives.d.ts","sourceRoot":"","sources":["../../../src/votemarket/fetchDirectIncentives.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB,QAAe,MAAM,6BAA6B,MAAM,SAAS,MAAM,iBAgBxG,CAAA"}
1
+ {"version":3,"file":"fetchDirectIncentives.d.ts","sourceRoot":"","sources":["../../../src/votemarket/fetchDirectIncentives.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,qBAAqB,QAAe,MAAM,6BAA6B,MAAM,SAAS,MAAM,iBAyBxG,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stake-dao/reader",
3
3
  "description": "",
4
- "version": "0.5.31",
4
+ "version": "0.5.33",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
@@ -35,7 +35,7 @@
35
35
  "graphql-request": "^6.0.0",
36
36
  "lodash-es": "^4.17.21",
37
37
  "viem": "2.35.0",
38
- "@stake-dao/constants": "0.5.10"
38
+ "@stake-dao/constants": "0.5.13"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/lodash-es": "^4.17.12",
@@ -2,11 +2,11 @@ import type { BatchMetaData } from '../types.js'
2
2
 
3
3
  const batchDirectIncentives: BatchMetaData = {
4
4
  bytecode: {
5
- 1: '0x608060405234801561000f575f80fd5b50604051610c1a380380610c1a83398181016040528101906100319190610596565b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff16637ef9faaa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a391906105d4565b90505f83826100b2919061062c565b67ffffffffffffffff8111156100cb576100ca61065f565b5b60405190808252806020026020018201604052801561010457816020015b6100f1610430565b8152602001906001900390816100e95790505b5090505f8490505b82811015610401575f8473ffffffffffffffffffffffffffffffffffffffff1663e121c102836040518263ffffffff1660e01b815260040161014e919061069b565b61012060405180830381865afa15801561016a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018e91906107f0565b90505f6040518060800160405280836020015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101e8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061021091906108d0565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610261573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061028991906108d0565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031f919061094d565b60ff168152509050604051806101200160405280835f015173ffffffffffffffffffffffffffffffffffffffff1681526020018281526020018360400151815260200183606001518152602001836080015181526020018360a0015181526020018360c0015173ffffffffffffffffffffffffffffffffffffffff1681526020018360e00151815260200183610100015173ffffffffffffffffffffffffffffffffffffffff168152508488856103d6919061062c565b815181106103e7576103e6610978565b5b60200260200101819052505050808060010191505061010c565b505f816040516020016104149190610bf9565b6040516020818303038152906040529050602081018059038082f35b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016104606104bc565b81526020015f81526020015f81526020015f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b604051806080016040528060608152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053282610509565b9050919050565b61054281610528565b811461054c575f80fd5b50565b5f8151905061055d81610539565b92915050565b5f819050919050565b61057581610563565b811461057f575f80fd5b50565b5f815190506105908161056c565b92915050565b5f80604083850312156105ac576105ab610501565b5b5f6105b98582860161054f565b92505060206105ca85828601610582565b9150509250929050565b5f602082840312156105e9576105e8610501565b5b5f6105f684828501610582565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61063682610563565b915061064183610563565b9250828203905081811115610659576106586105ff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61069581610563565b82525050565b5f6020820190506106ae5f83018461068c565b92915050565b5f80fd5b5f601f19601f8301169050919050565b6106d1826106b8565b810181811067ffffffffffffffff821117156106f0576106ef61065f565b5b80604052505050565b5f6107026104f8565b905061070e82826106c8565b919050565b5f6101208284031215610729576107286106b4565b5b6107346101206106f9565b90505f6107438482850161054f565b5f8301525060206107568482850161054f565b602083015250604061076a84828501610582565b604083015250606061077e84828501610582565b606083015250608061079284828501610582565b60808301525060a06107a684828501610582565b60a08301525060c06107ba8482850161054f565b60c08301525060e06107ce84828501610582565b60e0830152506101006107e38482850161054f565b6101008301525092915050565b5f610120828403121561080657610805610501565b5b5f61081384828501610713565b91505092915050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561083e5761083d61065f565b5b610847826106b8565b9050602081019050919050565b8281835e5f83830152505050565b5f61087461086f84610824565b6106f9565b9050828152602081018484840111156108905761088f610820565b5b61089b848285610854565b509392505050565b5f82601f8301126108b7576108b661081c565b5b81516108c7848260208601610862565b91505092915050565b5f602082840312156108e5576108e4610501565b5b5f82015167ffffffffffffffff81111561090257610901610505565b5b61090e848285016108a3565b91505092915050565b5f60ff82169050919050565b61092c81610917565b8114610936575f80fd5b50565b5f8151905061094781610923565b92915050565b5f6020828403121561096257610961610501565b5b5f61096f84828501610939565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6109d781610528565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610a01826109dd565b610a0b81856109e7565b9350610a1b818560208601610854565b610a24816106b8565b840191505092915050565b610a3881610563565b82525050565b5f608083015f8301518482035f860152610a5882826109f7565b91505060208301518482036020860152610a7282826109f7565b9150506040830151610a8760408601826109ce565b506060830151610a9a6060860182610a2f565b508091505092915050565b5f61012083015f830151610abb5f8601826109ce565b5060208301518482036020860152610ad38282610a3e565b9150506040830151610ae86040860182610a2f565b506060830151610afb6060860182610a2f565b506080830151610b0e6080860182610a2f565b5060a0830151610b2160a0860182610a2f565b5060c0830151610b3460c08601826109ce565b5060e0830151610b4760e0860182610a2f565b50610100830151610b5c6101008601826109ce565b508091505092915050565b5f610b728383610aa5565b905092915050565b5f602082019050919050565b5f610b90826109a5565b610b9a81856109af565b935083602082028501610bac856109bf565b805f5b85811015610be75784840389528151610bc88582610b67565b9450610bd383610b7a565b925060208a01995050600181019050610baf565b50829750879550505050505092915050565b5f6020820190508181035f830152610c118184610b86565b90509291505056fe',
5
+ 1: '0x608060405234801561000f575f80fd5b50604051610c42380380610c42833981810160405281019061003191906105ac565b5f8390505f8173ffffffffffffffffffffffffffffffffffffffff16637ef9faaa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a391906105fc565b90505f8314806100b257508083115b156100bb578092505b5f84846100c89190610654565b67ffffffffffffffff8111156100e1576100e0610687565b5b60405190808252806020026020018201604052801561011a57816020015b610107610446565b8152602001906001900390816100ff5790505b5090505f8590505b84811015610417575f8473ffffffffffffffffffffffffffffffffffffffff1663e121c102836040518263ffffffff1660e01b815260040161016491906106c3565b61012060405180830381865afa158015610180573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a49190610818565b90505f6040518060800160405280836020015173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156101fe573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061022691906108f8565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610277573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061029f91906108f8565b8152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610311573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103359190610975565b60ff168152509050604051806101200160405280835f015173ffffffffffffffffffffffffffffffffffffffff1681526020018281526020018360400151815260200183606001518152602001836080015181526020018360a0015181526020018360c0015173ffffffffffffffffffffffffffffffffffffffff1681526020018360e00151815260200183610100015173ffffffffffffffffffffffffffffffffffffffff168152508489856103ec9190610654565b815181106103fd576103fc6109a0565b5b602002602001018190525050508080600101915050610122565b505f8160405160200161042a9190610c21565b6040516020818303038152906040529050602081018059038082f35b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016104766104d2565b81526020015f81526020015f81526020015f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b604051806080016040528060608152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105488261051f565b9050919050565b6105588161053e565b8114610562575f80fd5b50565b5f815190506105738161054f565b92915050565b5f819050919050565b61058b81610579565b8114610595575f80fd5b50565b5f815190506105a681610582565b92915050565b5f805f606084860312156105c3576105c2610517565b5b5f6105d086828701610565565b93505060206105e186828701610598565b92505060406105f286828701610598565b9150509250925092565b5f6020828403121561061157610610610517565b5b5f61061e84828501610598565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61065e82610579565b915061066983610579565b925082820390508181111561068157610680610627565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106bd81610579565b82525050565b5f6020820190506106d65f8301846106b4565b92915050565b5f80fd5b5f601f19601f8301169050919050565b6106f9826106e0565b810181811067ffffffffffffffff8211171561071857610717610687565b5b80604052505050565b5f61072a61050e565b905061073682826106f0565b919050565b5f6101208284031215610751576107506106dc565b5b61075c610120610721565b90505f61076b84828501610565565b5f83015250602061077e84828501610565565b602083015250604061079284828501610598565b60408301525060606107a684828501610598565b60608301525060806107ba84828501610598565b60808301525060a06107ce84828501610598565b60a08301525060c06107e284828501610565565b60c08301525060e06107f684828501610598565b60e08301525061010061080b84828501610565565b6101008301525092915050565b5f610120828403121561082e5761082d610517565b5b5f61083b8482850161073b565b91505092915050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561086657610865610687565b5b61086f826106e0565b9050602081019050919050565b8281835e5f83830152505050565b5f61089c6108978461084c565b610721565b9050828152602081018484840111156108b8576108b7610848565b5b6108c384828561087c565b509392505050565b5f82601f8301126108df576108de610844565b5b81516108ef84826020860161088a565b91505092915050565b5f6020828403121561090d5761090c610517565b5b5f82015167ffffffffffffffff81111561092a5761092961051b565b5b610936848285016108cb565b91505092915050565b5f60ff82169050919050565b6109548161093f565b811461095e575f80fd5b50565b5f8151905061096f8161094b565b92915050565b5f6020828403121561098a57610989610517565b5b5f61099784828501610961565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6109ff8161053e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610a2982610a05565b610a338185610a0f565b9350610a4381856020860161087c565b610a4c816106e0565b840191505092915050565b610a6081610579565b82525050565b5f608083015f8301518482035f860152610a808282610a1f565b91505060208301518482036020860152610a9a8282610a1f565b9150506040830151610aaf60408601826109f6565b506060830151610ac26060860182610a57565b508091505092915050565b5f61012083015f830151610ae35f8601826109f6565b5060208301518482036020860152610afb8282610a66565b9150506040830151610b106040860182610a57565b506060830151610b236060860182610a57565b506080830151610b366080860182610a57565b5060a0830151610b4960a0860182610a57565b5060c0830151610b5c60c08601826109f6565b5060e0830151610b6f60e0860182610a57565b50610100830151610b846101008601826109f6565b508091505092915050565b5f610b9a8383610acd565b905092915050565b5f602082019050919050565b5f610bb8826109cd565b610bc281856109d7565b935083602082028501610bd4856109e7565b805f5b85811015610c0f5784840389528151610bf08582610b8f565b9450610bfb83610ba2565b925060208a01995050600181019050610bd7565b50829750879550505050505092915050565b5f6020820190508181035f830152610c398184610bae565b90509291505056fe',
6
6
  },
7
7
 
8
8
  inputType: {
9
- 1: ['address _campaignRewardDistributor', 'uint256 _start'],
9
+ 1: ['address _campaignRewardDistributor, uint256 _start, uint256 _end'],
10
10
  },
11
11
 
12
12
  outputTypeHr: {
@@ -24,6 +24,7 @@ export const parseV2Strats = (global: any, rawStrats: any[], extra: any) => {
24
24
  Number(s.gauge.totalSupply) > 0
25
25
  ? Number(s.gauge.totalSupplyUSD) / Number(formatUnits(BigInt(s.gauge.totalSupply || '0'), 18))
26
26
  : 0
27
+ const tvl = Number(s.totalSupplyUSD) > 10000000000 ? 0 : Number(s.totalSupplyUSD)
27
28
 
28
29
  const compoundedYieldKey = isLending ? 'LENDING_INTEREST' : 'TRADING_FEES'
29
30
  const tradingApy = (s.gauge.aprDetails.find((el) => el.yieldType === compoundedYieldKey)?.aprUSD || 0) * 100
@@ -41,11 +42,12 @@ export const parseV2Strats = (global: any, rawStrats: any[], extra: any) => {
41
42
 
42
43
  // Compute rewards from the hook incentive (Votemarket)
43
44
  const hookIncentivesPrices = extra?.baseRewardsPrices || []
44
- const gaugeUsd = Number(s.gauge.totalSupplyUSD)
45
45
 
46
46
  const incentivesByToken = (extra?.hookIncentives || [])
47
47
  .filter((r) => equalTlc(r.vault, s.address))
48
48
  .reduce((acc, r) => {
49
+ if (!acc[r.source]) acc[r.source] = {}
50
+
49
51
  const rewardAddress = r.reward
50
52
  const price = hookIncentivesPrices.find((p) => equalTlc(rewardAddress, p.address))?.usdPrice || 0
51
53
 
@@ -58,29 +60,37 @@ export const parseV2Strats = (global: any, rawStrats: any[], extra: any) => {
58
60
  const yearlyTokens = tokensPerSecond * ONE_YEAR
59
61
  const yearlyRewardsUsd = yearlyTokens * price
60
62
 
61
- if (!acc[rewardAddress]) {
62
- acc[rewardAddress] = {
63
+ if (!acc[r.source][rewardAddress]) {
64
+ acc[r.source][rewardAddress] = {
63
65
  meta: r,
64
66
  price: price,
65
67
  totalYearlyUsd: 0,
66
68
  maxPeriodFinish: Number.parseInt(r.end),
69
+ source: r.source,
67
70
  }
68
71
  }
69
72
 
70
- acc[rewardAddress].totalYearlyUsd += yearlyRewardsUsd
71
- acc[rewardAddress].maxPeriodFinish = Math.max(acc[rewardAddress].maxPeriodFinish, Number.parseInt(r.end))
73
+ acc[r.source][rewardAddress].totalYearlyUsd += yearlyRewardsUsd
74
+ acc[r.source][rewardAddress].maxPeriodFinish = Math.max(
75
+ acc[r.source][rewardAddress].maxPeriodFinish,
76
+ Number.parseInt(r.end),
77
+ )
72
78
 
73
79
  return acc
74
80
  }, {})
75
81
 
76
- const hookIncentives = Object.values(incentivesByToken).map((group: any) => {
77
- const { meta, price, totalYearlyUsd, maxPeriodFinish } = group
82
+ const hookIncentives = [
83
+ ...Object.values(incentivesByToken.vm || {}),
84
+ ...Object.values(incentivesByToken.direct || {}),
85
+ ...Object.values(incentivesByToken.gauge || {}),
86
+ ].map((group: any) => {
87
+ const { meta, price, totalYearlyUsd, maxPeriodFinish, source } = group
78
88
 
79
- let _gaugeUsd = gaugeUsd
80
- if (_gaugeUsd === 0) {
81
- _gaugeUsd = 10_000
82
- }
83
- const apr = _gaugeUsd > 0 ? (totalYearlyUsd / _gaugeUsd) * 100 : 0
89
+ const apr = (totalYearlyUsd / (tvl > 0 ? tvl : 10_000)) * 100
90
+
91
+ let yieldType = 'STAKING_REWARDS'
92
+ if (source === 'vm') yieldType = 'VOTEMARKET'
93
+ if (source === 'direct') yieldType = 'ONLYBOOST'
84
94
 
85
95
  return {
86
96
  token: parseAsset({
@@ -94,11 +104,18 @@ export const parseV2Strats = (global: any, rawStrats: any[], extra: any) => {
94
104
  apr,
95
105
  streaming: true,
96
106
  periodFinish: maxPeriodFinish,
97
- yieldType: 'VOTEMARKET',
107
+ yieldType,
98
108
  }
99
109
  })
100
110
 
101
111
  const rewards = otherRewards
112
+ .filter(
113
+ (r) =>
114
+ !(
115
+ (r.yieldType === 'STAKING_REWARDS' || r.yieldType === 'LIQUIDITY_INCENTIVES') &&
116
+ incentivesByToken.gauge?.[r.asset.address]
117
+ ),
118
+ )
102
119
  .map((r) => ({
103
120
  token: parseAsset(r.asset),
104
121
  aprInToken: r.apr,
@@ -182,10 +199,13 @@ export const parseV2Strats = (global: any, rawStrats: any[], extra: any) => {
182
199
 
183
200
  baseRewardAdded = true
184
201
  } else {
185
- const label =
186
- r.yieldType === 'VOTEMARKET'
187
- ? `${r.token.symbol} APR (Extra Rewards from Votemarket)`
188
- : `${r.token.symbol} APR`
202
+ let label = `${r.token.symbol} APR`
203
+
204
+ if (r.yieldType === 'STAKING_REWARDS' || r.yieldType === 'LIQUIDITY_INCENTIVES')
205
+ label = `${label} - ${protocol.charAt(0).toUpperCase() + protocol.slice(1)} gauge`
206
+ if (r.yieldType === 'ONLYBOOST') label = `${label} - Onlyboost Extra Rewards`
207
+ if (r.yieldType === 'VOTEMARKET') label = `${label} - Votemarket Liquidity Mining`
208
+
189
209
  aprDetails.push({ label, value: [r.apr || 0] })
190
210
  }
191
211
  }
@@ -218,7 +238,7 @@ export const parseV2Strats = (global: any, rawStrats: any[], extra: any) => {
218
238
  underlyingCoins: [],
219
239
  lpPriceInUsd,
220
240
  streaming: true,
221
- tvl: Number(s.totalSupplyUSD) > 10000000000 ? 0 : Number(s.totalSupplyUSD),
241
+ tvl,
222
242
  apr: {
223
243
  boost,
224
244
  current: { total: aprTotal, details: aprDetails },
@@ -4,20 +4,49 @@ import batchDirectIncentives from '../bytecodes/votemarket/batchDirectIncentives
4
4
  import { concatBytecode } from '../index.js'
5
5
  import { batchJsonRpc } from '../utils.js'
6
6
 
7
+ const BATCH_SIZE = 20
8
+ // selector of nbIncentives()
9
+ const NB_INCENTIVES_SELECTOR = '0x7ef9faaa'
10
+
11
+ const getNbIncentives = async (rpc: string, campaignRewardDistributor: string): Promise<number> => {
12
+ const res = await fetch(rpc, {
13
+ method: 'POST',
14
+ headers: { 'Content-Type': 'application/json' },
15
+ body: JSON.stringify({
16
+ id: 0,
17
+ jsonrpc: '2.0',
18
+ method: 'eth_call',
19
+ params: [{ to: campaignRewardDistributor, data: NB_INCENTIVES_SELECTOR }, 'latest'],
20
+ }),
21
+ }).then((r) => r.json())
22
+
23
+ if (res.error) throw new Error(`nbIncentives() failed: ${res.error.message}`)
24
+ return Number.parseInt(res.result, 16)
25
+ }
26
+
7
27
  export const fetchDirectIncentives = async (rpc: string, campaignRewardDistributor: string, start: number) => {
8
- const inputData = encodeAbiParameters(parseAbiParameters(batchDirectIncentives.inputType[mainnet.id]!) as any, [
9
- campaignRewardDistributor,
10
- start,
11
- ])
28
+ const total = await getNbIncentives(rpc, campaignRewardDistributor)
12
29
 
13
- const call = concatBytecode(batchDirectIncentives.bytecode[mainnet.id]!, inputData)
30
+ if (start >= total) return []
14
31
 
15
- const directIncentives = await batchJsonRpc({
32
+ const buildCall = (batchStart: number, batchEnd: number) => {
33
+ const inputData = encodeAbiParameters(parseAbiParameters(batchDirectIncentives.inputType[mainnet.id]!) as any, [
34
+ campaignRewardDistributor,
35
+ batchStart,
36
+ batchEnd,
37
+ ])
38
+ return concatBytecode(batchDirectIncentives.bytecode[mainnet.id]!, inputData)
39
+ }
40
+
41
+ const calls: string[] = []
42
+ for (let i = start; i < total; i += BATCH_SIZE) {
43
+ calls.push(buildCall(i, Math.min(i + BATCH_SIZE, total)))
44
+ }
45
+
46
+ return batchJsonRpc({
16
47
  rpc,
17
- calls: [call],
48
+ calls,
18
49
  outputTypeAbi: batchDirectIncentives.outputTypeHr[mainnet.id],
19
50
  callsKey: `fetch direct incentives - rpc ${rpc}`,
20
51
  })
21
-
22
- return directIncentives
23
52
  }