@stake-dao/reader 0.5.36 → 0.5.37

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 (57) hide show
  1. package/dist/esm/bytecodes/index.js +0 -1
  2. package/dist/esm/bytecodes/index.js.map +1 -1
  3. package/dist/esm/index.js +0 -3
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/lockers/fetch/index.js +0 -2
  6. package/dist/esm/lockers/fetch/index.js.map +1 -1
  7. package/dist/esm/lockers/fetch/static.js +0 -2
  8. package/dist/esm/lockers/fetch/static.js.map +1 -1
  9. package/dist/esm/strategies/utils/boost.js +0 -4
  10. package/dist/esm/strategies/utils/boost.js.map +1 -1
  11. package/dist/esm/utils.js +0 -1
  12. package/dist/esm/utils.js.map +1 -1
  13. package/dist/esm/votemarket/curve/fetchUserVlCvxClaimable.js +58 -6
  14. package/dist/esm/votemarket/curve/fetchUserVlCvxClaimable.js.map +1 -1
  15. package/dist/types/bytecodes/index.d.ts +0 -1
  16. package/dist/types/bytecodes/index.d.ts.map +1 -1
  17. package/dist/types/index.d.ts +0 -2
  18. package/dist/types/index.d.ts.map +1 -1
  19. package/dist/types/lockers/fetch/index.d.ts +1 -1
  20. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  21. package/dist/types/lockers/fetch/static.d.ts.map +1 -1
  22. package/dist/types/strategies/utils/boost.d.ts.map +1 -1
  23. package/dist/types/utils.d.ts.map +1 -1
  24. package/dist/types/votemarket/curve/fetchUserVlCvxClaimable.d.ts.map +1 -1
  25. package/package.json +2 -2
  26. package/src/bytecodes/index.ts +0 -1
  27. package/src/index.ts +0 -4
  28. package/src/lockers/fetch/index.ts +0 -2
  29. package/src/lockers/fetch/static.ts +0 -2
  30. package/src/strategies/utils/boost.ts +0 -6
  31. package/src/utils.ts +0 -1
  32. package/src/votemarket/curve/fetchUserVlCvxClaimable.ts +67 -6
  33. package/dist/esm/abis/angleVaultsMulticall.js +0 -85
  34. package/dist/esm/abis/angleVaultsMulticall.js.map +0 -1
  35. package/dist/esm/bytecodes/strategies/batches/batchAngleStrats.js +0 -24
  36. package/dist/esm/bytecodes/strategies/batches/batchAngleStrats.js.map +0 -1
  37. package/dist/esm/lockers/fetch/protocols/angle.js +0 -136
  38. package/dist/esm/lockers/fetch/protocols/angle.js.map +0 -1
  39. package/dist/esm/strategies/angle/endpoints.js +0 -3
  40. package/dist/esm/strategies/angle/endpoints.js.map +0 -1
  41. package/dist/esm/strategies/angle/fetch.js +0 -213
  42. package/dist/esm/strategies/angle/fetch.js.map +0 -1
  43. package/dist/types/abis/angleVaultsMulticall.d.ts +0 -42
  44. package/dist/types/abis/angleVaultsMulticall.d.ts.map +0 -1
  45. package/dist/types/bytecodes/strategies/batches/batchAngleStrats.d.ts +0 -4
  46. package/dist/types/bytecodes/strategies/batches/batchAngleStrats.d.ts.map +0 -1
  47. package/dist/types/lockers/fetch/protocols/angle.d.ts +0 -9
  48. package/dist/types/lockers/fetch/protocols/angle.d.ts.map +0 -1
  49. package/dist/types/strategies/angle/endpoints.d.ts +0 -3
  50. package/dist/types/strategies/angle/endpoints.d.ts.map +0 -1
  51. package/dist/types/strategies/angle/fetch.d.ts +0 -22
  52. package/dist/types/strategies/angle/fetch.d.ts.map +0 -1
  53. package/src/abis/angleVaultsMulticall.ts +0 -85
  54. package/src/bytecodes/strategies/batches/batchAngleStrats.ts +0 -26
  55. package/src/lockers/fetch/protocols/angle.ts +0 -157
  56. package/src/strategies/angle/endpoints.ts +0 -2
  57. package/src/strategies/angle/fetch.ts +0 -253
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../src/strategies/angle/fetch.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- declare const angleVaultsMulticall: ({
2
- inputs: never[];
3
- name: string;
4
- outputs: {
5
- internalType: string;
6
- name: string;
7
- type: string;
8
- }[];
9
- payable: boolean;
10
- stateMutability: string;
11
- type: string;
12
- } | {
13
- inputs: {
14
- name: string;
15
- type: string;
16
- }[];
17
- name: string;
18
- outputs: {
19
- name: string;
20
- type: string;
21
- }[];
22
- stateMutability: string;
23
- type: string;
24
- payable?: undefined;
25
- } | {
26
- inputs: {
27
- internalType: string;
28
- name: string;
29
- type: string;
30
- }[];
31
- name: string;
32
- outputs: {
33
- internalType: string;
34
- name: string;
35
- type: string;
36
- }[];
37
- stateMutability: string;
38
- type: string;
39
- payable?: undefined;
40
- })[];
41
- export default angleVaultsMulticall;
42
- //# sourceMappingURL=angleVaultsMulticall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angleVaultsMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/angleVaultsMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkFzB,CAAA;AAED,eAAe,oBAAoB,CAAA"}
@@ -1,4 +0,0 @@
1
- import type { BatchMetaData } from '../../types.js';
2
- declare const batchAngleStrats: BatchMetaData;
3
- export default batchAngleStrats;
4
- //# sourceMappingURL=batchAngleStrats.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchAngleStrats.d.ts","sourceRoot":"","sources":["../../../../../src/bytecodes/strategies/batches/batchAngleStrats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,QAAA,MAAM,gBAAgB,EAAE,aAqBvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,9 +0,0 @@
1
- import type { Locker } from '../types.js';
2
- export declare const locker: Locker;
3
- declare const angleLocker: ({ provider, common, prices }: {
4
- provider: any;
5
- common: any;
6
- prices: any;
7
- }) => Promise<any>;
8
- export default angleLocker;
9
- //# sourceMappingURL=angle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angle.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/angle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,MAAM,EAAE,MA0DpB,CAAA;AAED,QAAA,MAAM,WAAW,iCAAwC;IAAE,QAAQ,MAAC;IAAC,MAAM,MAAC;IAAC,MAAM,MAAA;CAAE,iBAuFpF,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -1,3 +0,0 @@
1
- export declare const ANGLE_APR_URL = "https://api.angle.money/v1/apr";
2
- export declare const ANGLE_PRICE_URL = "https://api.angle.money/v1/prices";
3
- //# sourceMappingURL=endpoints.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../../src/strategies/angle/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,mCAAmC,CAAA;AAC7D,eAAO,MAAM,eAAe,sCAAsC,CAAA"}
@@ -1,22 +0,0 @@
1
- import { type Price } from '../../prices.js';
2
- interface TFetchAngle {
3
- prices: Price[];
4
- provider: any;
5
- rpc: string;
6
- chainId: number;
7
- }
8
- export declare const fetchAngle: ({ prices, provider, rpc, chainId }: TFetchAngle) => Promise<{
9
- global: {
10
- fees: {
11
- veSdt: number;
12
- perf: number;
13
- accumulator: number;
14
- claimer: number;
15
- };
16
- };
17
- deployed: any;
18
- notDeployed: never[];
19
- fetched: boolean;
20
- }>;
21
- export {};
22
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/strategies/angle/fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,iBAAiB,CAAA;AAOhE,UAAU,WAAW;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,UAAU,uCAA8C,WAAW;;;;;;;;;;;;EAwO/E,CAAA"}
@@ -1,85 +0,0 @@
1
- const angleVaultsMulticall = [
2
- {
3
- inputs: [],
4
- name: 'totalSupply',
5
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
6
- payable: false,
7
- stateMutability: 'view',
8
- type: 'function',
9
- },
10
- {
11
- inputs: [],
12
- name: 'working_supply',
13
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
14
- payable: false,
15
- stateMutability: 'view',
16
- type: 'function',
17
- },
18
- {
19
- inputs: [],
20
- name: 'getUnderlyingBalances',
21
- outputs: [
22
- { internalType: 'uint256', name: '', type: 'uint256' },
23
- { internalType: 'uint256', name: '', type: 'uint256' },
24
- ],
25
- payable: false,
26
- stateMutability: 'view',
27
- type: 'function',
28
- },
29
- {
30
- inputs: [],
31
- name: 'getTotalAmounts',
32
- outputs: [
33
- { internalType: 'uint256', name: '', type: 'uint256' },
34
- { internalType: 'uint256', name: '', type: 'uint256' },
35
- ],
36
- payable: false,
37
- stateMutability: 'view',
38
- type: 'function',
39
- },
40
- {
41
- inputs: [],
42
- name: 'getTotalAmounts',
43
- outputs: [
44
- { internalType: 'uint256', name: '', type: 'uint256' },
45
- { internalType: 'uint256', name: '', type: 'uint256' },
46
- ],
47
- payable: false,
48
- stateMutability: 'view',
49
- type: 'function',
50
- },
51
- {
52
- inputs: [{ name: 'arg0', type: 'address' }],
53
- name: 'reward_data',
54
- outputs: [
55
- { name: 'token', type: 'address' },
56
- { name: 'distributor', type: 'address' },
57
- { name: 'period_finish', type: 'uint256' },
58
- { name: 'rate', type: 'uint256' },
59
- { name: 'last_update', type: 'uint256' },
60
- { name: 'integral', type: 'uint256' },
61
- ],
62
- stateMutability: 'view',
63
- type: 'function',
64
- },
65
- {
66
- inputs: [{ internalType: 'address', name: '', type: 'address' }],
67
- name: 'rewardData',
68
- outputs: [
69
- { internalType: 'address', name: 'rewardsDistributor', type: 'address' },
70
- { internalType: 'uint256', name: 'rewardsDuration', type: 'uint256' },
71
- { internalType: 'uint256', name: 'periodFinish', type: 'uint256' },
72
- { internalType: 'uint256', name: 'rewardRate', type: 'uint256' },
73
- { internalType: 'uint256', name: 'lastUpdateTime', type: 'uint256' },
74
- {
75
- internalType: 'uint256',
76
- name: 'rewardPerTokenStored',
77
- type: 'uint256',
78
- },
79
- ],
80
- stateMutability: 'view',
81
- type: 'function',
82
- },
83
- ]
84
-
85
- export default angleVaultsMulticall
@@ -1,26 +0,0 @@
1
- import type { BatchMetaData } from '../../types.js'
2
-
3
- const batchAngleStrats: BatchMetaData = {
4
- bytecode: {
5
- 1: '0x608060405234801561001057600080fd5b506040516112ad3803806112ad83398181016040528101906100329190610c31565b60008151905060008167ffffffffffffffff81111561005457610053610a85565b5b60405190808252806020026020018201604052801561008d57816020015b61007a6108f7565b8152602001906001900390816100725790505b509050600084905060005b838110156108c75760008582815181106100b5576100b4610c8d565b5b60200260200101519050600081600001519050600082604001519050826020015173ffffffffffffffffffffffffffffffffffffffff166370a0823184600001516040518263ffffffff1660e01b81526004016101129190610ccb565b602060405180830381865afa15801561012f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101539190610d1c565b86858151811061016657610165610c8d565b5b602002602001015160000181815250508173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e59190610d1c565b8685815181106101f8576101f7610c8d565b5b602002602001015160200181815250508173ffffffffffffffffffffffffffffffffffffffff1663f8ce31646040518163ffffffff1660e01b8152600401602060405180830381865afa158015610253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102779190610d1c565b86858151811061028a57610289610c8d565b5b602002602001015160400181815250508173ffffffffffffffffffffffffffffffffffffffff1663422ede426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103099190610d1c565b86858151811061031c5761031b610c8d565b5b602002602001015160600181815250508473ffffffffffffffffffffffffffffffffffffffff16636207d86684604001516040518263ffffffff1660e01b81526004016103699190610ccb565b602060405180830381865afa158015610386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103aa9190610d1c565b8685815181106103bd576103bc610c8d565b5b60200260200101516101600181815250508473ffffffffffffffffffffffffffffffffffffffff16634e791a3a84604001516040518263ffffffff1660e01b815260040161040b9190610ccb565b602060405180830381865afa158015610428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044c9190610d1c565b86858151811061045f5761045e610c8d565b5b60200260200101516101800181815250508473ffffffffffffffffffffffffffffffffffffffff16636977ff926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190610d1c565b8685815181106104f2576104f1610c8d565b5b60200260200101516101a00181815250508073ffffffffffffffffffffffffffffffffffffffff166317e280896040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105729190610d1c565b86858151811061058557610584610c8d565b5b60200260200101516101c00181815250508073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190610d1c565b86858151811061061857610617610c8d565b5b60200260200101516101e001818152505060008173ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a9190610d1c565b90508067ffffffffffffffff8111156106b6576106b5610a85565b5b6040519080825280602002602001820160405280156106ef57816020015b6106dc61097b565b8152602001906001900390816106d45790505b5087868151811061070357610702610c8d565b5b6020026020010151610200018190525060005b818110156108af5760008373ffffffffffffffffffffffffffffffffffffffff166354c49fe9836040518263ffffffff1660e01b81526004016107599190610d58565b602060405180830381865afa158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190610d73565b90508373ffffffffffffffffffffffffffffffffffffffff166348e9c65e826040518263ffffffff1660e01b81526004016107d59190610ccb565b60c060405180830381865afa1580156107f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108169190610e40565b89888151811061082957610828610c8d565b5b60200260200101516102000151838151811061084857610847610c8d565b5b602002602001015160000181905250600089888151811061086c5761086b610c8d565b5b60200260200101516102000151838151811061088b5761088a610c8d565b5b602002602001015160200181815250505080806108a790610e9c565b915050610716565b505050505080806108bf90610e9c565b915050610098565b506000826040516020016108db919061128a565b6040516020818303038152906040529050602081018059038082f35b60405180610220016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b604051806040016040528061098e61099b565b8152602001600081525090565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a3c82610a11565b9050919050565b610a4c81610a31565b8114610a5757600080fd5b50565b600081519050610a6981610a43565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610abd82610a74565b810181811067ffffffffffffffff82111715610adc57610adb610a85565b5b80604052505050565b6000610aef6109fd565b9050610afb8282610ab4565b919050565b600067ffffffffffffffff821115610b1b57610b1a610a85565b5b602082029050602081019050919050565b600080fd5b600080fd5b600060608284031215610b4c57610b4b610b31565b5b610b566060610ae5565b90506000610b6684828501610a5a565b6000830152506020610b7a84828501610a5a565b6020830152506040610b8e84828501610a5a565b60408301525092915050565b6000610bad610ba884610b00565b610ae5565b90508083825260208201905060608402830185811115610bd057610bcf610b2c565b5b835b81811015610bf95780610be58882610b36565b845260208401935050606081019050610bd2565b5050509392505050565b600082601f830112610c1857610c17610a6f565b5b8151610c28848260208601610b9a565b91505092915050565b60008060408385031215610c4857610c47610a07565b5b6000610c5685828601610a5a565b925050602083015167ffffffffffffffff811115610c7757610c76610a0c565b5b610c8385828601610c03565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b610cc581610a31565b82525050565b6000602082019050610ce06000830184610cbc565b92915050565b6000819050919050565b610cf981610ce6565b8114610d0457600080fd5b50565b600081519050610d1681610cf0565b92915050565b600060208284031215610d3257610d31610a07565b5b6000610d4084828501610d07565b91505092915050565b610d5281610ce6565b82525050565b6000602082019050610d6d6000830184610d49565b92915050565b600060208284031215610d8957610d88610a07565b5b6000610d9784828501610a5a565b91505092915050565b600060c08284031215610db657610db5610b31565b5b610dc060c0610ae5565b90506000610dd084828501610a5a565b6000830152506020610de484828501610a5a565b6020830152506040610df884828501610d07565b6040830152506060610e0c84828501610d07565b6060830152506080610e2084828501610d07565b60808301525060a0610e3484828501610d07565b60a08301525092915050565b600060c08284031215610e5657610e55610a07565b5b6000610e6484828501610da0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ea782610ce6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ed957610ed8610e6d565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610f1981610ce6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610f5481610a31565b82525050565b60c082016000820151610f706000850182610f4b565b506020820151610f836020850182610f4b565b506040820151610f966040850182610f10565b506060820151610fa96060850182610f10565b506080820151610fbc6080850182610f10565b5060a0820151610fcf60a0850182610f10565b50505050565b60e082016000820151610feb6000850182610f5a565b506020820151610ffe60c0850182610f10565b50505050565b60006110108383610fd5565b60e08301905092915050565b6000602082019050919050565b600061103482610f1f565b61103e8185610f2a565b935061104983610f3b565b8060005b8381101561107a5781516110618882611004565b975061106c8361101c565b92505060018101905061104d565b5085935050505092915050565b6000610220830160008301516110a06000860182610f10565b5060208301516110b36020860182610f10565b5060408301516110c66040860182610f10565b5060608301516110d96060860182610f10565b5060808301516110ec6080860182610f10565b5060a08301516110ff60a0860182610f10565b5060c083015161111260c0860182610f10565b5060e083015161112560e0860182610f10565b5061010083015161113a610100860182610f10565b5061012083015161114f610120860182610f10565b50610140830151611164610140860182610f10565b50610160830151611179610160860182610f10565b5061018083015161118e610180860182610f10565b506101a08301516111a36101a0860182610f10565b506101c08301516111b86101c0860182610f10565b506101e08301516111cd6101e0860182610f10565b506102008301518482036102008601526111e78282611029565b9150508091505092915050565b60006112008383611087565b905092915050565b6000602082019050919050565b600061122082610ee4565b61122a8185610eef565b93508360208202850161123c85610f00565b8060005b85811015611278578484038952815161125985826111f4565b945061126483611208565b925060208a01995050600181019050611240565b50829750879550505050505092915050565b600060208201905081810360008301526112a48184611215565b90509291505056fe',
6
- },
7
- inputType: {
8
- 1: [
9
- 'address gaugeController, AngleStategyInfo[] inputs',
10
- 'struct AngleStategyInfo { address vault; address token; address sdtLiquidityGauge; }',
11
- ],
12
- },
13
- outputTypeHr: {
14
- 1: [
15
- 'AngleStratsData[] stratsData',
16
- 'struct AngleStratsData { uint256 vaultHoldings; uint256 totalSupply; uint256 accumulatedFees; uint256 keeperFee; uint256 veSDTFee; uint256 perfFee; uint256 accumulatorFee; uint256 claimerFee; uint256 strategyHoldings; uint256 workingBalance; uint256 workingSupplyStaked; uint256 gaugeRelativeWeight; uint256 gaugeWeight; uint256 totalGaugeWeights; uint256 sdWorkingSupply; uint256 sdGaugeTotalSupply; RewardsWithClaimable[] rewardsData; }',
17
- 'struct RewardsWithClaimable { RewardData rewardData; uint256 claimablePendingRewards; }',
18
- 'struct RewardData { address token; address distributor; uint256 period_finish; uint256 rate; uint256 last_update; uint256 integral; }',
19
- ],
20
- },
21
- outputType: {
22
- 1: [],
23
- },
24
- }
25
-
26
- export default batchAngleStrats
@@ -1,157 +0,0 @@
1
- import { One, STAKE_DAO_ASSETS_BASE_URL, Zero, tokenWithId } from '@stake-dao/constants'
2
- import { formatUnits, parseUnits } from 'viem'
3
- import lockersMulticallAbi from '../../../abis/lockersMulticall.js'
4
- import { type Call, getRes, multicall } from '../../../utils.js'
5
- import { parse, parsePeg } from '../parse.js'
6
- import type { Locker } from '../types.js'
7
-
8
- export const locker: Locker = {
9
- id: 'angle',
10
- symbol: 'ANGLE',
11
- protocol: 'Angle',
12
- protocolDescription:
13
- 'Angle is a decentralized, capital efficient and over-collateralized stablecoin protocol composed of smart contracts running on open blockchains.',
14
- website: 'https://angle.money/',
15
- logoUrl: `${STAKE_DAO_ASSETS_BASE_URL}/assets/archive/angle.svg`,
16
- chainId: 1,
17
- rgb: '249, 145, 144',
18
- token: tokenWithId('angle')!,
19
- sdToken: tokenWithId('sdangle')!,
20
- rewards: [
21
- { ...tokenWithId('sdt')!, distribution: 'streamed', origin: 'sdtEmission' },
22
- { ...tokenWithId('angle')!, distribution: 'streamed', origin: 'stratPerf' },
23
- { ...tokenWithId('eura')!, distribution: 'streamed', origin: 'native.common' },
24
- { ...tokenWithId('sdangle')!, distribution: 'distributed', origin: 'bounties' },
25
- ],
26
- delegation: ['sdangle.eth'],
27
- modules: {
28
- depositor: '0x0000000000000000000000000000000000000000',
29
- locker: '0xD13F8C25CceD32cdfA79EB5eD654Ce3e484dCAF5',
30
- veToken: '0x0C462Dbb9EC8cD1630f1728B2CFD2769d09f0dd5',
31
- gauge: '0xE55843a90672f7d8218285e51EE8fF8E233F35d5',
32
- accumulator: '0x8cc02F4f383A11b989708437DbA6BB0628d7eE78',
33
- redeem: '0x1D8A9c30E4e25033498347c1A054717bd0c4D356',
34
- },
35
- secondaryMarket: {
36
- label: 'Curve',
37
- poolKey: 'factory-v2-101',
38
- vaultKey: '',
39
- pool: '0x48fF31bBbD8Ab553Ebe7cBD84e1eA3dBa8f54957',
40
- pools: ['0x48fF31bBbD8Ab553Ebe7cBD84e1eA3dBa8f54957'],
41
- pegBase: 300000,
42
- },
43
- fees: [
44
- {
45
- label: { key: 'liquidity', variable: 'sdANGLE/ANGLE' },
46
- value: 10,
47
- key: 'liquidityFee',
48
- static: true,
49
- },
50
- {
51
- label: { key: 'treasury' },
52
- value: 5,
53
- key: 'daoFee',
54
- static: true,
55
- },
56
- {
57
- label: { key: 'harvester' },
58
- value: 0.1,
59
- key: 'claimerFee',
60
- static: true,
61
- },
62
- ],
63
- extensions: {
64
- coingeckoBaseSlug: 'angle',
65
- },
66
- }
67
-
68
- const angleLocker = async ({ provider, common, prices }: { provider; common; prices }) => {
69
- const token = locker.token.address
70
- const sdToken = locker.sdToken.address
71
-
72
- const gauge = locker.modules.gauge
73
- const depositor = locker.modules.depositor
74
- const votingEscrow = locker.modules.veToken
75
- const lockerAddress = locker.modules.locker
76
-
77
- const secondaryMarket = locker.secondaryMarket!
78
- const rewards = locker.rewards
79
-
80
- const pegBase = parseUnits(secondaryMarket?.pegBase?.toString() || '1', 18)
81
-
82
- const format = (value: bigint) => formatUnits(value, locker.token.decimals)
83
- const formatRes = (value: any) => format(getRes(value))
84
-
85
- const calls: Call[] = [
86
- /*********************************************************************************
87
- *** Voting Escrow
88
- *********************************************************************************/
89
-
90
- // Token locked by the Locker
91
- { address: votingEscrow, name: 'locked', params: [lockerAddress] },
92
- // veToken Balance of the Locker
93
- { address: votingEscrow, name: 'balanceOf', params: [lockerAddress] },
94
- // Total token locked
95
- { address: votingEscrow, name: 'supply' },
96
- // Total veToken supply
97
- { address: votingEscrow, name: 'totalSupply' },
98
-
99
- /*********************************************************************************
100
- *** Gauge
101
- *********************************************************************************/
102
-
103
- // Total sdToken staked
104
- { address: gauge, name: 'totalSupply' },
105
- // Gauge working supply
106
- { address: gauge, name: 'working_supply' },
107
-
108
- /*********************************************************************************
109
- *** Token & sdToken
110
- *********************************************************************************/
111
-
112
- // Token balance not locked
113
- { address: token, name: 'balanceOf', params: [depositor] },
114
- // sdToken in secondary market pool
115
- { address: sdToken, name: 'balanceOf', params: [secondaryMarket.pool] },
116
-
117
- /*********************************************************************************
118
- *** Peg
119
- *********************************************************************************/
120
-
121
- // Return amount when swapping {pegBase} sdToken to token -> get_dy(int128,int128,uint256)
122
- { address: secondaryMarket.pool, name: '0x5e0d443f', params: [One, Zero, pegBase] },
123
-
124
- /*********************************************************************************
125
- *** Rewards
126
- *********************************************************************************/
127
-
128
- // Streaming status for each reward token
129
- ...rewards.map((r) => ({ address: gauge, name: 'reward_data', params: [r.address] })),
130
- ]
131
-
132
- const res = await multicall(provider, calls, lockersMulticallAbi(locker.id, locker.chainId))
133
- const raw = {
134
- tokenLocked: getRes(res.shift()),
135
- veBalanceOfLocker: formatRes(res.shift()),
136
- totalTokenLocked: formatRes(res.shift()),
137
- veTotalSupply: formatRes(res.shift()),
138
- totalSupplyStaked: formatRes(res.shift()),
139
- gaugeWorkingSupply: formatRes(res.shift()),
140
- amountTokenNotLock: formatRes(res.shift()),
141
- sdTokenInPool: formatRes(res.shift()),
142
- peg: getRes(res.shift()),
143
- rewards: rewards.map(() => getRes(res.shift())),
144
- veTokenRate: '4',
145
- _workingSupply: '0',
146
- _veBalanceOfLocker: '0',
147
- }
148
-
149
- raw.tokenLocked = format(raw.tokenLocked[0])
150
- raw.peg = parsePeg(locker, raw.peg)
151
- raw._workingSupply = raw.gaugeWorkingSupply
152
- raw._veBalanceOfLocker = raw.veBalanceOfLocker
153
-
154
- return parse({ locker, common, prices, raw })
155
- }
156
-
157
- export default angleLocker
@@ -1,2 +0,0 @@
1
- export const ANGLE_APR_URL = 'https://api.angle.money/v1/apr'
2
- export const ANGLE_PRICE_URL = 'https://api.angle.money/v1/prices'
@@ -1,253 +0,0 @@
1
- import { STRAT_FEES, Zero, angleStrats, contracts } from '@stake-dao/constants'
2
- import { chunk, uniq } from 'lodash-es'
3
- import { encodeAbiParameters, formatUnits, parseAbiParameters } from 'viem'
4
- import { mainnet } from 'viem/chains'
5
- import multicallAngleVaultsAbi from '../../abis/angleVaultsMulticall.js'
6
- import { batchAngleStrats } from '../../bytecodes/index.js'
7
- import { type Price, getPricesFromLlama } from '../../prices.js'
8
- import { batchJsonRpc, equalTlc, multicall } from '../../utils.js'
9
- import type { RewardsData, SdtApr } from '../types.js'
10
- import { getAprBreakdown } from '../utils/getAprBreakdown.js'
11
- import getTokenTypes from '../utils/getTokenTypes.js'
12
- import { ANGLE_APR_URL, ANGLE_PRICE_URL } from './endpoints.js'
13
-
14
- interface TFetchAngle {
15
- prices: Price[]
16
- provider: any
17
- rpc: string
18
- chainId: number
19
- }
20
-
21
- export const fetchAngle = async ({ prices, provider, rpc, chainId }: TFetchAngle) => {
22
- const stratsDataCalls: { vault: string; token: string; sdtLiquidityGauge: string }[] = []
23
- const balancesCalls: { address: string; name: string }[] = []
24
- const dataCalls: { address: string; name: string }[] = []
25
-
26
- const strats = angleStrats.strats[chainId].filter((s) => s.chainId === chainId)
27
-
28
- const tokensToFetch: any = []
29
-
30
- for (const s of strats) {
31
- tokensToFetch.push(...s.underlyingCoins)
32
- if (s.lpToken.symbol !== 'SLP') {
33
- balancesCalls.push(
34
- ...[
35
- {
36
- address: s.lpToken.address,
37
- name: s.key.includes('gamma') ? 'getTotalAmounts' : 'getUnderlyingBalances',
38
- },
39
- {
40
- address: s.lpToken.address,
41
- name: 'totalSupply',
42
- },
43
- ],
44
- )
45
- }
46
- dataCalls.push(
47
- ...[
48
- { address: s.vault, name: 'totalSupply' },
49
- { address: s.rewards[0].gauge, name: 'totalSupply' },
50
- { address: s.rewards[0].gauge, name: 'working_supply' },
51
- ],
52
- )
53
- }
54
-
55
- const httpCalls = [
56
- // Angle APR
57
- (await fetch(ANGLE_APR_URL)).json(),
58
- // Angle Prices
59
- (await fetch(ANGLE_PRICE_URL)).json(),
60
- // Defillama prices
61
- await getPricesFromLlama(uniq(tokensToFetch), chainId),
62
- ]
63
-
64
- const httpResponses = await Promise.all(httpCalls)
65
-
66
- const rawBalances: any = await multicall(provider, balancesCalls, multicallAngleVaultsAbi)
67
- const rawData: any = await multicall(provider, dataCalls, multicallAngleVaultsAbi)
68
-
69
- const angleAprData = httpResponses[0]
70
- const anglePriceData = httpResponses[1]
71
- const defillamaPrices = httpResponses[2]
72
-
73
- let rawPriceIndex = 0
74
- const stratsWithApy = strats.map((s) => {
75
- const aprData = angleAprData[s.aprApiKey]
76
- let priceData = anglePriceData.find((d) => d.token === s.aprApiKey)
77
-
78
- if (!priceData) {
79
- const token0 = s.underlyingCoins[0]
80
- const token1 = s.underlyingCoins[1]
81
- const token0Price = defillamaPrices.find((p) => p.symbol === token0.symbol)
82
- const token1Price = defillamaPrices.find((p) => p.symbol === token1.symbol)
83
- const token0AmountUsd =
84
- Number(formatUnits(rawBalances[rawPriceIndex].result[0], token0.decimals)) * token0Price.usdPrice
85
- const token1AmountUsd =
86
- Number(formatUnits(rawBalances[rawPriceIndex].result[1], token1.decimals)) * token1Price.usdPrice
87
- const totalLp = Number(formatUnits(rawBalances[rawPriceIndex + 1].result, 18))
88
- const lpPriceInUsd = (token0AmountUsd + token1AmountUsd) / totalLp
89
-
90
- priceData = { rate: lpPriceInUsd }
91
-
92
- rawPriceIndex += 2
93
- }
94
-
95
- let maxApr = 0
96
- let tradingApy = 0
97
-
98
- if (aprData?.details && aprData.value && aprData.address) {
99
- tradingApy = aprData.details.fees ? aprData.details.fees : 0
100
- const aprDetailsKeys = Object.keys(aprData.details)
101
- const indexOfApy = aprDetailsKeys.map((k) => k.includes(s.lpToken.address.toLowerCase())).indexOf(true)
102
- maxApr =
103
- indexOfApy > 0
104
- ? aprData.details[aprDetailsKeys[indexOfApy]!]
105
- : aprData.details.max
106
- ? aprData.details.max
107
- : aprData.value - tradingApy
108
- }
109
-
110
- if (s.key === 'angle-sushi-eura-angle') {
111
- stratsDataCalls.push({
112
- vault: s.vault,
113
- token: s.lpToken.address,
114
- sdtLiquidityGauge: s.gaugeAddress,
115
- })
116
- }
117
-
118
- return {
119
- ...s,
120
- tradingApy,
121
- minApr: (maxApr * ((100 - STRAT_FEES) / 100)) / 2.5,
122
- maxApr: maxApr * ((100 - STRAT_FEES) / 100),
123
- lpPriceInUsd: priceData ? priceData.rate : 1,
124
- }
125
- })
126
-
127
- const inputArgsChunks = chunk(stratsDataCalls, 20)
128
- const angleCalls = inputArgsChunks.map((inputArgs) => {
129
- const inputData = encodeAbiParameters(parseAbiParameters(batchAngleStrats.inputType[chainId]!) as any, [
130
- contracts.sdGaugeController![chainId],
131
- inputArgs,
132
- ])
133
- return batchAngleStrats.bytecode[chainId]!.concat(inputData.slice(2))
134
- })
135
-
136
- const rawAngleData = await batchJsonRpc({
137
- rpc,
138
- calls: angleCalls,
139
- outputTypeAbi: batchAngleStrats.outputTypeHr[chainId],
140
- callsKey: `strategies/angle/fetch.ts: rawAngleData - chainId ${chainId} - rpc ${rpc}`,
141
- })
142
-
143
- let offchainDataIndex = 0
144
- const parsedStrats = stratsWithApy.map((s) => {
145
- let fetchedData: any
146
-
147
- if (s.offchain) {
148
- fetchedData = {
149
- totalSupply: rawData[offchainDataIndex].result,
150
- sdGaugeTotalSupply: rawData[offchainDataIndex + 1].result,
151
- sdWorkingSupply: chainId === mainnet.id ? rawData[offchainDataIndex + 2].result : Zero,
152
- accumulatedFees: Zero,
153
- keeperFee: Zero,
154
- }
155
- } else {
156
- fetchedData = rawAngleData.shift()
157
- }
158
-
159
- offchainDataIndex += 3
160
-
161
- const rewardsData: RewardsData[] = s.rewards.map((r: any) => {
162
- const rewardToken = {
163
- symbol: r.symbol,
164
- name: r.name,
165
- decimals: r.decimals,
166
- address: r.address,
167
- }
168
- const rewardPrice = prices.find((p: any) => equalTlc(p.address, rewardToken.address))
169
-
170
- return {
171
- token: rewardToken,
172
- price: rewardPrice ? rewardPrice.usdPrice : 0,
173
- apr: 0,
174
- streaming: false,
175
- periodFinish: 0,
176
- rate: '0',
177
- lastUpdate: '0',
178
- claimablePendingRewards: '0',
179
- }
180
- })
181
-
182
- const boost = 2.5
183
- const sdtApr: SdtApr = {
184
- sdtUserApr: 0,
185
- sdtFuturUserApr: 0,
186
- sdtMinApr: 0,
187
- sdtFuturMinApr: 0,
188
- sdtMaxApr: 0,
189
- sdtFuturMaxApr: 0,
190
- sdtBoost: 1,
191
- }
192
- const apr = getAprBreakdown(s, rewardsData, boost, sdtApr)
193
-
194
- const totalSupply = formatUnits(fetchedData.totalSupply, 0)
195
- const lpPriceInUsd = s.lpPriceInUsd
196
- const tvl = lpPriceInUsd * Number(formatUnits(BigInt(fetchedData.totalSupply), 18))
197
-
198
- const sdGauge = {
199
- address: s.gaugeAddress,
200
- totalSupply: formatUnits(fetchedData.sdGaugeTotalSupply, 0),
201
- relativeWeight: '0',
202
- weight: '0',
203
- futureWeight: '0',
204
- workingSupply: '0',
205
- }
206
-
207
- return {
208
- key: s.key,
209
- name: s.name,
210
- tokensFilter: getTokenTypes(s),
211
- protocol: s.protocol,
212
- chainId: s.chainId,
213
- vault: s.vault,
214
- lpToken: s.lpToken,
215
- gaugeAddress: s.gaugeAddress,
216
- coins: s.coins,
217
- sdGauge,
218
- lpPriceInUsd,
219
- streaming: rewardsData.some((r) => Number(r.periodFinish) > Math.floor(Date.now() / 1000)),
220
- tvl,
221
- apr: {
222
- boost,
223
- ...apr,
224
- },
225
- rewards: rewardsData,
226
- // Base APR data
227
- tradingApy: s.tradingApy,
228
- minApr: s.minApr,
229
- maxApr: s.maxApr,
230
- // Raw data
231
- totalSupply,
232
- // Gas optimised
233
- vaultFees: {
234
- keeper: Number(fetchedData.keeperFee) / 100,
235
- accumulated: formatUnits(fetchedData.accumulatedFees, 0),
236
- },
237
- }
238
- })
239
-
240
- return {
241
- global: {
242
- fees: {
243
- veSdt: 5,
244
- perf: 2,
245
- accumulator: 8,
246
- claimer: 0.5,
247
- },
248
- },
249
- deployed: parsedStrats,
250
- notDeployed: [],
251
- fetched: true,
252
- }
253
- }