@stake-dao/reader 0.4.28 → 0.4.30

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 (56) hide show
  1. package/dist/esm/bytecodes/votemarket/batchCampaigns.js +6 -13
  2. package/dist/esm/bytecodes/votemarket/batchCampaigns.js.map +1 -1
  3. package/dist/esm/bytecodes/votemarket/curve/batchCurveGaugesMetadata.js +4 -3
  4. package/dist/esm/bytecodes/votemarket/curve/batchCurveGaugesMetadata.js.map +1 -1
  5. package/dist/esm/bytecodes/votemarket/curve/batchCurveOldLps.js +3 -2
  6. package/dist/esm/bytecodes/votemarket/curve/batchCurveOldLps.js.map +1 -1
  7. package/dist/esm/endpoints.js +0 -1
  8. package/dist/esm/endpoints.js.map +1 -1
  9. package/dist/esm/lockers/fetch/index.js +10 -0
  10. package/dist/esm/lockers/fetch/index.js.map +1 -1
  11. package/dist/esm/lockers/utils/getHttpCalls.js +8 -0
  12. package/dist/esm/lockers/utils/getHttpCalls.js.map +1 -1
  13. package/dist/esm/sdt/fetch.js +20 -26
  14. package/dist/esm/sdt/fetch.js.map +1 -1
  15. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  16. package/dist/esm/utils.js +0 -18
  17. package/dist/esm/utils.js.map +1 -1
  18. package/dist/esm/votemarket/curve/config.js +3 -0
  19. package/dist/esm/votemarket/curve/config.js.map +1 -1
  20. package/dist/esm/votemarket/curve/fetchCurveGauges.js +4 -1
  21. package/dist/esm/votemarket/curve/fetchCurveGauges.js.map +1 -1
  22. package/dist/esm/votemarket/curve/fetchSnapshotUserData.js +14 -9
  23. package/dist/esm/votemarket/curve/fetchSnapshotUserData.js.map +1 -1
  24. package/dist/esm/votemarket/fetchCampaigns.js +40 -24
  25. package/dist/esm/votemarket/fetchCampaigns.js.map +1 -1
  26. package/dist/types/bytecodes/votemarket/batchCampaigns.d.ts.map +1 -1
  27. package/dist/types/bytecodes/votemarket/curve/batchCurveGaugesMetadata.d.ts.map +1 -1
  28. package/dist/types/bytecodes/votemarket/curve/batchCurveOldLps.d.ts.map +1 -1
  29. package/dist/types/endpoints.d.ts +0 -1
  30. package/dist/types/endpoints.d.ts.map +1 -1
  31. package/dist/types/lockers/fetch/index.d.ts.map +1 -1
  32. package/dist/types/lockers/utils/getHttpCalls.d.ts +3 -0
  33. package/dist/types/lockers/utils/getHttpCalls.d.ts.map +1 -1
  34. package/dist/types/sdt/fetch.d.ts +2 -2
  35. package/dist/types/sdt/fetch.d.ts.map +1 -1
  36. package/dist/types/utils.d.ts +0 -1
  37. package/dist/types/utils.d.ts.map +1 -1
  38. package/dist/types/votemarket/curve/config.d.ts +7 -0
  39. package/dist/types/votemarket/curve/config.d.ts.map +1 -1
  40. package/dist/types/votemarket/curve/fetchCurveGauges.d.ts.map +1 -1
  41. package/dist/types/votemarket/curve/fetchSnapshotUserData.d.ts +1 -0
  42. package/dist/types/votemarket/curve/fetchSnapshotUserData.d.ts.map +1 -1
  43. package/dist/types/votemarket/fetchCampaigns.d.ts.map +1 -1
  44. package/package.json +2 -2
  45. package/src/bytecodes/votemarket/batchCampaigns.ts +6 -13
  46. package/src/bytecodes/votemarket/curve/batchCurveGaugesMetadata.ts +4 -3
  47. package/src/bytecodes/votemarket/curve/batchCurveOldLps.ts +3 -2
  48. package/src/endpoints.ts +0 -1
  49. package/src/lockers/fetch/index.ts +13 -0
  50. package/src/lockers/utils/getHttpCalls.ts +8 -0
  51. package/src/sdt/fetch.ts +29 -27
  52. package/src/utils.ts +0 -18
  53. package/src/votemarket/curve/config.ts +4 -0
  54. package/src/votemarket/curve/fetchCurveGauges.ts +11 -1
  55. package/src/votemarket/curve/fetchSnapshotUserData.ts +15 -9
  56. package/src/votemarket/fetchCampaigns.ts +44 -25
@@ -1,16 +1,16 @@
1
1
  import type { BatchMetaData } from '../../types.js'
2
2
 
3
3
  const commonBytecode =
4
- '0x608060405234801561000f575f80fd5b506040516113fd3803806113fd83398181016040528101906100319190610eb2565b5f815190505f8167ffffffffffffffff81111561005157610050610d1c565b5b60405190808252806020026020018201604052801561008a57816020015b610077610c63565b81526020019060019003908161006f5790505b5090505f5b828110156103d55761009f610c63565b5f8583815181106100b3576100b2610ef9565b5b6020026020010151905080825f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101038161040460201b60201c565b826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa158015610184573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a89190610f26565b90508083604001515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101f48161048360201b60201c565b856040015160200186604001516040018760400151606001838152508390528390525050505f6102298261066860201b60201c565b90505f815190505f8167ffffffffffffffff81111561024b5761024a610d1c565b5b60405190808252806020026020018201604052801561028457816020015b610271610cbb565b8152602001906001900390816102695790505b5090505f5b82811015610399578381815181106102a4576102a3610ef9565b5b60200260200101518282815181106102bf576102be610ef9565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061032584828151811061031257610311610ef9565b5b602002602001015161048360201b60201c565b84848151811061033857610337610ef9565b5b602002602001015160200185858151811061035657610355610ef9565b5b602002602001015160400186868151811061037457610373610ef9565b5b6020026020010151606001838152508390528390525050508080600101915050610289565b50808660600181905250858888815181106103b7576103b6610ef9565b5b6020026020010181905250505050505050808060010191505061008f565b505f816040516020016103e8919061121c565b6040516020818303038152906040529050602081018059038082f35b5f8173ffffffffffffffffffffffffffffffffffffffff1663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561046d57506040513d601f19601f8201168201806040525081019061046a9190610f26565b60015b610479575f905061047e565b809150505b919050565b6060805f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610503575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610661575f8490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa158015610554573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061057c91906112de565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156105c6573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105ee91906112de565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610639573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065d919061134f565b9150505b9193909250565b60605f600467ffffffffffffffff81111561068657610685610d1c565b5b6040519080825280602002602001820160405280156106b45781602001602082028036833780820191505090505b5090505f808473ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fa980497e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161076091906113be565b5f60405180830381855afa9150503d805f8114610798576040519150601f19603f3d011682016040523d82523d5f602084013e61079d565b606091505b50915091508180156107af57505f8151115b15610934578473ffffffffffffffffffffffffffffffffffffffff1663765337b66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108219190610f26565b835f8151811061083457610833610ef9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff16632621db2f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108db9190610f26565b836001815181106108ef576108ee610ef9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050829350505050610bc6565b5f808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f07546172000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516109dd91906113be565b5f60405180830381855afa9150503d805f8114610a15576040519150601f19603f3d011682016040523d82523d5f602084013e610a1a565b606091505b5091509150818015610a2c57505f8151115b15610a4357610a4081610bcb60201b60201c565b96505b610a53875f610bd860201b60201c565b855f81518110610a6657610a65610ef9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610ab1876001610bd860201b60201c565b85600181518110610ac557610ac4610ef9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610b10876002610bd860201b60201c565b85600281518110610b2457610b23610ef9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610b6f876003610bd860201b60201c565b85600381518110610b8357610b82610ef9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505084955050505050505b919050565b5f60208201519050919050565b5f8273ffffffffffffffffffffffffffffffffffffffff1663c6610657836040518263ffffffff1660e01b8152600401610c1291906113e3565b602060405180830381865afa925050508015610c4c57506040513d601f19601f82011682018060405250810190610c499190610f26565b60015b610c58575f9050610c5d565b809150505b92915050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001610cae610cbb565b8152602001606081525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610d5282610d0c565b810181811067ffffffffffffffff82111715610d7157610d70610d1c565b5b80604052505050565b5f610d83610cf7565b9050610d8f8282610d49565b919050565b5f67ffffffffffffffff821115610dae57610dad610d1c565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dec82610dc3565b9050919050565b610dfc81610de2565b8114610e06575f80fd5b50565b5f81519050610e1781610df3565b92915050565b5f610e2f610e2a84610d94565b610d7a565b90508083825260208201905060208402830185811115610e5257610e51610dbf565b5b835b81811015610e7b5780610e678882610e09565b845260208401935050602081019050610e54565b5050509392505050565b5f82601f830112610e9957610e98610d08565b5b8151610ea9848260208601610e1d565b91505092915050565b5f60208284031215610ec757610ec6610d00565b5b5f82015167ffffffffffffffff811115610ee457610ee3610d04565b5b610ef084828501610e85565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610f3b57610f3a610d00565b5b5f610f4884828501610e09565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610f8381610de2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610fbb82610f89565b610fc58185610f93565b9350610fd5818560208601610fa3565b610fde81610d0c565b840191505092915050565b5f819050919050565b610ffb81610fe9565b82525050565b5f608083015f8301516110165f860182610f7a565b506020830151848203602086015261102e8282610fb1565b915050604083015184820360408601526110488282610fb1565b915050606083015161105d6060860182610ff2565b508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61109c8383611001565b905092915050565b5f602082019050919050565b5f6110ba82611068565b6110c48185611072565b9350836020820285016110d685611082565b805f5b8581101561111157848403895281516110f28582611091565b94506110fd836110a4565b925060208a019950506001810190506110d9565b50829750879550505050505092915050565b5f608083015f8301516111385f860182610f7a565b50602083015161114b6020860182610f7a565b50604083015184820360408601526111638282611001565b9150506060830151848203606086015261117d82826110b0565b9150508091505092915050565b5f6111958383611123565b905092915050565b5f602082019050919050565b5f6111b382610f51565b6111bd8185610f5b565b9350836020820285016111cf85610f6b565b805f5b8581101561120a57848403895281516111eb858261118a565b94506111f68361119d565b925060208a019950506001810190506111d2565b50829750879550505050505092915050565b5f6020820190508181035f83015261123481846111a9565b905092915050565b5f80fd5b5f67ffffffffffffffff82111561125a57611259610d1c565b5b61126382610d0c565b9050602081019050919050565b5f61128261127d84611240565b610d7a565b90508281526020810184848401111561129e5761129d61123c565b5b6112a9848285610fa3565b509392505050565b5f82601f8301126112c5576112c4610d08565b5b81516112d5848260208601611270565b91505092915050565b5f602082840312156112f3576112f2610d00565b5b5f82015167ffffffffffffffff8111156113105761130f610d04565b5b61131c848285016112b1565b91505092915050565b61132e81610fe9565b8114611338575f80fd5b50565b5f8151905061134981611325565b92915050565b5f6020828403121561136457611363610d00565b5b5f6113718482850161133b565b91505092915050565b5f81519050919050565b5f81905092915050565b5f6113988261137a565b6113a28185611384565b93506113b2818560208601610fa3565b80840191505092915050565b5f6113c9828461138e565b915081905092915050565b6113dd81610fe9565b82525050565b5f6020820190506113f65f8301846113d4565b9291505056fe'
4
+ '0x608060405234801561000f575f80fd5b5060405161146b38038061146b83398181016040528101906100319190610f0d565b5f815190505f8167ffffffffffffffff81111561005157610050610d77565b5b60405190808252806020026020018201604052801561008a57816020015b610077610ca2565b81526020019060019003908161006f5790505b5090505f5b8281101561040d5761009f610ca2565b5f8583815181106100b3576100b2610f54565b5b6020026020010151905080825f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101038161043c60201b60201c565b826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa158015610184573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a89190610f81565b90508083606001515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101f4816104bb60201b60201c565b85606001516020018660600151604001876060015160600183815250839052839052505050606061022a826106a060201b60201c565b856040018193508273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050505f815190505f8167ffffffffffffffff81111561028357610282610d77565b5b6040519080825280602002602001820160405280156102bc57816020015b6102a9610d16565b8152602001906001900390816102a15790505b5090505f5b828110156103d1578381815181106102dc576102db610f54565b5b60200260200101518282815181106102f7576102f6610f54565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061035d84828151811061034a57610349610f54565b5b60200260200101516104bb60201b60201c565b8484815181106103705761036f610f54565b5b602002602001015160200185858151811061038e5761038d610f54565b5b60200260200101516040018686815181106103ac576103ab610f54565b5b60200260200101516060018381525083905283905250505080806001019150506102c1565b50808660800181905250858888815181106103ef576103ee610f54565b5b6020026020010181905250505050505050808060010191505061008f565b505f81604051602001610420919061128a565b6040516020818303038152906040529050602081018059038082f35b5f8173ffffffffffffffffffffffffffffffffffffffff1663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156104a557506040513d601f19601f820116820180604052508101906104a29190610f81565b60015b6104b1575f90506104b6565b809150505b919050565b6060805f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561053b575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610699575f8490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561058c573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105b4919061134c565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156105fe573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610626919061134c565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069591906113bd565b9150505b9193909250565b5f60605f600467ffffffffffffffff8111156106bf576106be610d77565b5b6040519080825280602002602001820160405280156106ed5781602001602082028036833780820191505090505b5090505f808573ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fa980497e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610799919061142c565b5f60405180830381855afa9150503d805f81146107d1576040519150601f19603f3d011682016040523d82523d5f602084013e6107d6565b606091505b50915091508180156107e857505f8151115b15610970578573ffffffffffffffffffffffffffffffffffffffff1663765337b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610836573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085a9190610f81565b835f8151811061086d5761086c610f54565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff16632621db2f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109149190610f81565b8360018151811061092857610927610f54565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050858394509450505050610c05565b5f808773ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f07546172000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610a19919061142c565b5f60405180830381855afa9150503d805f8114610a51576040519150601f19603f3d011682016040523d82523d5f602084013e610a56565b606091505b5091509150818015610a6857505f8151115b15610a7f57610a7c81610c0a60201b60201c565b97505b610a8f885f610c1760201b60201c565b855f81518110610aa257610aa1610f54565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610aed886001610c1760201b60201c565b85600181518110610b0157610b00610f54565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610b4c886002610c1760201b60201c565b85600281518110610b6057610b5f610f54565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610bab886003610c1760201b60201c565b85600381518110610bbf57610bbe610f54565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087859650965050505050505b915091565b5f60208201519050919050565b5f8273ffffffffffffffffffffffffffffffffffffffff1663c6610657836040518263ffffffff1660e01b8152600401610c519190611451565b602060405180830381865afa925050508015610c8b57506040513d601f19601f82011682018060405250810190610c889190610f81565b60015b610c97575f9050610c9c565b809150505b92915050565b6040518060a001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001610d09610d16565b8152602001606081525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610dad82610d67565b810181811067ffffffffffffffff82111715610dcc57610dcb610d77565b5b80604052505050565b5f610dde610d52565b9050610dea8282610da4565b919050565b5f67ffffffffffffffff821115610e0957610e08610d77565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e4782610e1e565b9050919050565b610e5781610e3d565b8114610e61575f80fd5b50565b5f81519050610e7281610e4e565b92915050565b5f610e8a610e8584610def565b610dd5565b90508083825260208201905060208402830185811115610ead57610eac610e1a565b5b835b81811015610ed65780610ec28882610e64565b845260208401935050602081019050610eaf565b5050509392505050565b5f82601f830112610ef457610ef3610d63565b5b8151610f04848260208601610e78565b91505092915050565b5f60208284031215610f2257610f21610d5b565b5b5f82015167ffffffffffffffff811115610f3f57610f3e610d5f565b5b610f4b84828501610ee0565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610f9657610f95610d5b565b5b5f610fa384828501610e64565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610fde81610e3d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61101682610fe4565b6110208185610fee565b9350611030818560208601610ffe565b61103981610d67565b840191505092915050565b5f819050919050565b61105681611044565b82525050565b5f608083015f8301516110715f860182610fd5565b5060208301518482036020860152611089828261100c565b915050604083015184820360408601526110a3828261100c565b91505060608301516110b8606086018261104d565b508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6110f7838361105c565b905092915050565b5f602082019050919050565b5f611115826110c3565b61111f81856110cd565b935083602082028501611131856110dd565b805f5b8581101561116c578484038952815161114d85826110ec565b9450611158836110ff565b925060208a01995050600181019050611134565b50829750879550505050505092915050565b5f60a083015f8301516111935f860182610fd5565b5060208301516111a66020860182610fd5565b5060408301516111b96040860182610fd5565b50606083015184820360608601526111d1828261105c565b915050608083015184820360808601526111eb828261110b565b9150508091505092915050565b5f611203838361117e565b905092915050565b5f602082019050919050565b5f61122182610fac565b61122b8185610fb6565b93508360208202850161123d85610fc6565b805f5b85811015611278578484038952815161125985826111f8565b94506112648361120b565b925060208a01995050600181019050611240565b50829750879550505050505092915050565b5f6020820190508181035f8301526112a28184611217565b905092915050565b5f80fd5b5f67ffffffffffffffff8211156112c8576112c7610d77565b5b6112d182610d67565b9050602081019050919050565b5f6112f06112eb846112ae565b610dd5565b90508281526020810184848401111561130c5761130b6112aa565b5b611317848285610ffe565b509392505050565b5f82601f83011261133357611332610d63565b5b81516113438482602086016112de565b91505092915050565b5f6020828403121561136157611360610d5b565b5b5f82015167ffffffffffffffff81111561137e5761137d610d5f565b5b61138a8482850161131f565b91505092915050565b61139c81611044565b81146113a6575f80fd5b50565b5f815190506113b781611393565b92915050565b5f602082840312156113d2576113d1610d5b565b5b5f6113df848285016113a9565b91505092915050565b5f81519050919050565b5f81905092915050565b5f611406826113e8565b61141081856113f2565b9350611420818560208601610ffe565b80840191505092915050565b5f61143782846113fc565b915081905092915050565b61144b81611044565b82525050565b5f6020820190506114645f830184611442565b9291505056fe'
5
5
 
6
6
  const oldSolcBytecode =
7
- '0x608060405234801561001057600080fd5b5060405161151338038061151383398181016040528101906100329190610f05565b60008151905060008167ffffffffffffffff81111561005457610053610d64565b5b60405190808252806020026020018201604052801561008d57816020015b61007a610ca2565b8152602001906001900390816100725790505b50905060005b828110156103f0576100a3610ca2565b60008583815181106100b8576100b7610f4e565b5b6020026020010151905080826000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101098161042060201b60201c565b826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b19190610f7d565b90508083604001516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101fe816104a160201b60201c565b8560400151602001866040015160400187604001516060018381525083905283905250505060006102348261069260201b60201c565b905060008151905060008167ffffffffffffffff81111561025857610257610d64565b5b60405190808252806020026020018201604052801561029157816020015b61027e610cfc565b8152602001906001900390816102765790505b50905060005b828110156103ae578381815181106102b2576102b1610f4e565b5b60200260200101518282815181106102cd576102cc610f4e565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061033484828151811061032157610320610f4e565b5b60200260200101516104a160201b60201c565b84848151811061034757610346610f4e565b5b602002602001015160200185858151811061036557610364610f4e565b5b602002602001015160400186868151811061038357610382610f4e565b5b60200260200101516060018381525083905283905250505080806103a690610fe3565b915050610297565b50808660600181905250858888815181106103cc576103cb610f4e565b5b602002602001018190525050505050505080806103e890610fe3565b915050610093565b506000816040516020016104049190611320565b6040516020818303038152906040529050602081018059038082f35b60008173ffffffffffffffffffffffffffffffffffffffff1663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561048a57506040513d601f19601f820116820180604052508101906104879190610f7d565b60015b610497576000905061049c565b809150505b919050565b60608060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610522575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561068b5760008490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906105a091906113e8565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156105ed573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061061691906113e8565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610687919061145d565b9150505b9193909250565b60606000600467ffffffffffffffff8111156106b1576106b0610d64565b5b6040519080825280602002602001820160405280156106df5781602001602082028036833780820191505090505b5090506000808473ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fa980497e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161078c91906114d1565b600060405180830381855afa9150503d80600081146107c7576040519150601f19603f3d011682016040523d82523d6000602084013e6107cc565b606091505b50915091508180156107df575060008151115b15610969578473ffffffffffffffffffffffffffffffffffffffff1663765337b66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108539190610f7d565b8360008151811061086757610866610f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff16632621db2f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109109190610f7d565b8360018151811061092457610923610f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050829350505050610c02565b6000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f07546172000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610a1391906114d1565b600060405180830381855afa9150503d8060008114610a4e576040519150601f19603f3d011682016040523d82523d6000602084013e610a53565b606091505b5091509150818015610a66575060008151115b15610a7d57610a7a81610c0760201b60201c565b96505b610a8e876000610c1560201b60201c565b85600081518110610aa257610aa1610f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610aed876001610c1560201b60201c565b85600181518110610b0157610b00610f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610b4c876002610c1560201b60201c565b85600281518110610b6057610b5f610f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610bab876003610c1560201b60201c565b85600381518110610bbf57610bbe610f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505084955050505050505b919050565b600060208201519050919050565b60008273ffffffffffffffffffffffffffffffffffffffff1663c6610657836040518263ffffffff1660e01b8152600401610c5091906114f7565b602060405180830381865afa925050508015610c8a57506040513d601f19601f82011682018060405250810190610c879190610f7d565b60015b610c975760009050610c9c565b809150505b92915050565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001610cef610cfc565b8152602001606081525090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d9c82610d53565b810181811067ffffffffffffffff82111715610dbb57610dba610d64565b5b80604052505050565b6000610dce610d3a565b9050610dda8282610d93565b919050565b600067ffffffffffffffff821115610dfa57610df9610d64565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3b82610e10565b9050919050565b610e4b81610e30565b8114610e5657600080fd5b50565b600081519050610e6881610e42565b92915050565b6000610e81610e7c84610ddf565b610dc4565b90508083825260208201905060208402830185811115610ea457610ea3610e0b565b5b835b81811015610ecd5780610eb98882610e59565b845260208401935050602081019050610ea6565b5050509392505050565b600082601f830112610eec57610eeb610d4e565b5b8151610efc848260208601610e6e565b91505092915050565b600060208284031215610f1b57610f1a610d44565b5b600082015167ffffffffffffffff811115610f3957610f38610d49565b5b610f4584828501610ed7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610f9357610f92610d44565b5b6000610fa184828501610e59565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610fee82610fd9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036110205761101f610faa565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61106081610e30565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156110a0578082015181840152602081019050611085565b60008484015250505050565b60006110b782611066565b6110c18185611071565b93506110d1818560208601611082565b6110da81610d53565b840191505092915050565b6110ee81610fd9565b82525050565b600060808301600083015161110c6000860182611057565b506020830151848203602086015261112482826110ac565b9150506040830151848203604086015261113e82826110ac565b915050606083015161115360608601826110e5565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061119683836110f4565b905092915050565b6000602082019050919050565b60006111b68261115e565b6111c08185611169565b9350836020820285016111d28561117a565b8060005b8581101561120e57848403895281516111ef858261118a565b94506111fa8361119e565b925060208a019950506001810190506111d6565b50829750879550505050505092915050565b60006080830160008301516112386000860182611057565b50602083015161124b6020860182611057565b506040830151848203604086015261126382826110f4565b9150506060830151848203606086015261127d82826111ab565b9150508091505092915050565b60006112968383611220565b905092915050565b6000602082019050919050565b60006112b68261102b565b6112c08185611036565b9350836020820285016112d285611047565b8060005b8581101561130e57848403895281516112ef858261128a565b94506112fa8361129e565b925060208a019950506001810190506112d6565b50829750879550505050505092915050565b6000602082019050818103600083015261133a81846112ab565b905092915050565b600080fd5b600067ffffffffffffffff82111561136257611361610d64565b5b61136b82610d53565b9050602081019050919050565b600061138b61138684611347565b610dc4565b9050828152602081018484840111156113a7576113a6611342565b5b6113b2848285611082565b509392505050565b600082601f8301126113cf576113ce610d4e565b5b81516113df848260208601611378565b91505092915050565b6000602082840312156113fe576113fd610d44565b5b600082015167ffffffffffffffff81111561141c5761141b610d49565b5b611428848285016113ba565b91505092915050565b61143a81610fd9565b811461144557600080fd5b50565b60008151905061145781611431565b92915050565b60006020828403121561147357611472610d44565b5b600061148184828501611448565b91505092915050565b600081519050919050565b600081905092915050565b60006114ab8261148a565b6114b58185611495565b93506114c5818560208601611082565b80840191505092915050565b60006114dd82846114a0565b915081905092915050565b6114f181610fd9565b82525050565b600060208201905061150c60008301846114e8565b9291505056fe'
7
+ '0x608060405234801561001057600080fd5b5060405161158238038061158283398181016040528101906100329190610f61565b60008151905060008167ffffffffffffffff81111561005457610053610dc0565b5b60405190808252806020026020018201604052801561008d57816020015b61007a610ce1565b8152602001906001900390816100725790505b50905060005b82811015610427576100a3610ce1565b60008583815181106100b8576100b7610faa565b5b6020026020010151905080826000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101098161045760201b60201c565b826020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008173ffffffffffffffffffffffffffffffffffffffff166382c630666040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b19190610fd9565b90508083606001516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101fe816104d860201b60201c565b856060015160200186606001516040018760600151606001838152508390528390525050506060610234826106c960201b60201c565b856040018193508273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250505060008151905060008167ffffffffffffffff81111561028f5761028e610dc0565b5b6040519080825280602002602001820160405280156102c857816020015b6102b5610d58565b8152602001906001900390816102ad5790505b50905060005b828110156103e5578381815181106102e9576102e8610faa565b5b602002602001015182828151811061030457610303610faa565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061036b84828151811061035857610357610faa565b5b60200260200101516104d860201b60201c565b84848151811061037e5761037d610faa565b5b602002602001015160200185858151811061039c5761039b610faa565b5b60200260200101516040018686815181106103ba576103b9610faa565b5b60200260200101516060018381525083905283905250505080806103dd9061103f565b9150506102ce565b508086608001819052508588888151811061040357610402610faa565b5b6020026020010181905250505050505050808061041f9061103f565b915050610093565b5060008160405160200161043b919061138f565b6040516020818303038152906040529050602081018059038082f35b60008173ffffffffffffffffffffffffffffffffffffffff1663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156104c157506040513d601f19601f820116820180604052508101906104be9190610fd9565b60015b6104ce57600090506104d3565b809150505b919050565b60608060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610559575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156106c25760008490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156105ae573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906105d79190611457565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610624573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061064d9190611457565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be91906114cc565b9150505b9193909250565b600060606000600467ffffffffffffffff8111156106ea576106e9610dc0565b5b6040519080825280602002602001820160405280156107185781602001602082028036833780820191505090505b5090506000808573ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fa980497e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516107c59190611540565b600060405180830381855afa9150503d8060008114610800576040519150601f19603f3d011682016040523d82523d6000602084013e610805565b606091505b5091509150818015610818575060008151115b156109a5578573ffffffffffffffffffffffffffffffffffffffff1663765337b66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c9190610fd9565b836000815181106108a05761089f610faa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff16632621db2f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109499190610fd9565b8360018151811061095d5761095c610faa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050858394509450505050610c41565b6000808773ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f07546172000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610a4f9190611540565b600060405180830381855afa9150503d8060008114610a8a576040519150601f19603f3d011682016040523d82523d6000602084013e610a8f565b606091505b5091509150818015610aa2575060008151115b15610ab957610ab681610c4660201b60201c565b97505b610aca886000610c5460201b60201c565b85600081518110610ade57610add610faa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610b29886001610c5460201b60201c565b85600181518110610b3d57610b3c610faa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610b88886002610c5460201b60201c565b85600281518110610b9c57610b9b610faa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610be7886003610c5460201b60201c565b85600381518110610bfb57610bfa610faa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087859650965050505050505b915091565b600060208201519050919050565b60008273ffffffffffffffffffffffffffffffffffffffff1663c6610657836040518263ffffffff1660e01b8152600401610c8f9190611566565b602060405180830381865afa925050508015610cc957506040513d601f19601f82011682018060405250810190610cc69190610fd9565b60015b610cd65760009050610cdb565b809150505b92915050565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001610d4b610d58565b8152602001606081525090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610df882610daf565b810181811067ffffffffffffffff82111715610e1757610e16610dc0565b5b80604052505050565b6000610e2a610d96565b9050610e368282610def565b919050565b600067ffffffffffffffff821115610e5657610e55610dc0565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e9782610e6c565b9050919050565b610ea781610e8c565b8114610eb257600080fd5b50565b600081519050610ec481610e9e565b92915050565b6000610edd610ed884610e3b565b610e20565b90508083825260208201905060208402830185811115610f0057610eff610e67565b5b835b81811015610f295780610f158882610eb5565b845260208401935050602081019050610f02565b5050509392505050565b600082601f830112610f4857610f47610daa565b5b8151610f58848260208601610eca565b91505092915050565b600060208284031215610f7757610f76610da0565b5b600082015167ffffffffffffffff811115610f9557610f94610da5565b5b610fa184828501610f33565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610fef57610fee610da0565b5b6000610ffd84828501610eb5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061104a82611035565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361107c5761107b611006565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6110bc81610e8c565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156110fc5780820151818401526020810190506110e1565b60008484015250505050565b6000611113826110c2565b61111d81856110cd565b935061112d8185602086016110de565b61113681610daf565b840191505092915050565b61114a81611035565b82525050565b600060808301600083015161116860008601826110b3565b50602083015184820360208601526111808282611108565b9150506040830151848203604086015261119a8282611108565b91505060608301516111af6060860182611141565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006111f28383611150565b905092915050565b6000602082019050919050565b6000611212826111ba565b61121c81856111c5565b93508360208202850161122e856111d6565b8060005b8581101561126a578484038952815161124b85826111e6565b9450611256836111fa565b925060208a01995050600181019050611232565b50829750879550505050505092915050565b600060a08301600083015161129460008601826110b3565b5060208301516112a760208601826110b3565b5060408301516112ba60408601826110b3565b50606083015184820360608601526112d28282611150565b915050608083015184820360808601526112ec8282611207565b9150508091505092915050565b6000611305838361127c565b905092915050565b6000602082019050919050565b600061132582611087565b61132f8185611092565b935083602082028501611341856110a3565b8060005b8581101561137d578484038952815161135e85826112f9565b94506113698361130d565b925060208a01995050600181019050611345565b50829750879550505050505092915050565b600060208201905081810360008301526113a9818461131a565b905092915050565b600080fd5b600067ffffffffffffffff8211156113d1576113d0610dc0565b5b6113da82610daf565b9050602081019050919050565b60006113fa6113f5846113b6565b610e20565b905082815260208101848484011115611416576114156113b1565b5b6114218482856110de565b509392505050565b600082601f83011261143e5761143d610daa565b5b815161144e8482602086016113e7565b91505092915050565b60006020828403121561146d5761146c610da0565b5b600082015167ffffffffffffffff81111561148b5761148a610da5565b5b61149784828501611429565b91505092915050565b6114a981611035565b81146114b457600080fd5b50565b6000815190506114c6816114a0565b92915050565b6000602082840312156114e2576114e1610da0565b5b60006114f0848285016114b7565b91505092915050565b600081519050919050565b600081905092915050565b600061151a826114f9565b6115248185611504565b93506115348185602086016110de565b80840191505092915050565b600061154c828461150f565b915081905092915050565b61156081611035565b82525050565b600060208201905061157b6000830184611557565b9291505056fe'
8
8
 
9
9
  const commonInputType = ['address[] gauges']
10
10
 
11
11
  const commonOutputTypeHr = [
12
12
  'ReturnData[] returnData',
13
- 'struct ReturnData { address gauge; address manager; Token lp; Token[] coins }',
13
+ 'struct ReturnData { address gauge; address manager; address pool; Token lp; Token[] coins }',
14
14
  'struct Token { address _address; string name; string symbol; uint256 decimals; }',
15
15
  ]
16
16
 
@@ -21,6 +21,7 @@ const commonOutputType = [
21
21
  components: [
22
22
  { type: 'address', name: 'gauge' },
23
23
  { type: 'address', name: 'manager' },
24
+ { type: 'address', name: 'pool' },
24
25
  {
25
26
  type: 'tuple',
26
27
  name: 'lp',
@@ -1,13 +1,13 @@
1
1
  import type { BatchMetaData } from '../../types.js'
2
2
 
3
3
  const commonBytecode =
4
- '0x608060405234801561000f575f80fd5b50604051610f87380380610f87833981810160405281019061003191906108e3565b5f8290505f825190505f8167ffffffffffffffff811115610055576100546107a7565b5b60405190808252806020026020018201604052801561008e57816020015b61007b6106b6565b8152602001906001900390816100735790505b5090505f5b828110156104a2576100a36106b6565b5f8683815181106100b7576100b661093d565b5b6020026020010151905080825f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8673ffffffffffffffffffffffffffffffffffffffff1663bdf475c3836040518263ffffffff1660e01b81526004016101329190610979565b602060405180830381865afa15801561014d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101719190610992565b90508673ffffffffffffffffffffffffffffffffffffffff16635c911741826040518263ffffffff1660e01b81526004016101ac9190610979565b5f60405180830381865afa1580156101c6573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906101ee9190610a6d565b83602001819052505f8773ffffffffffffffffffffffffffffffffffffffff16639ac90d3d836040518263ffffffff1660e01b81526004016102309190610979565b61010060405180830381865afa15801561024c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102709190610b62565b90505f8873ffffffffffffffffffffffffffffffffffffffff1663940494f1846040518263ffffffff1660e01b81526004016102ac9190610979565b6040805180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea9190610c6f565b5f600281106102fc576102fb61093d565b5b602002015190505f8167ffffffffffffffff81111561031e5761031d6107a7565b5b60405190808252806020026020018201604052801561035757816020015b6103446106ec565b81526020019060019003908161033c5790505b5090505f5b82811015610466578381600881106103775761037661093d565b5b602002015182828151811061038f5761038e61093d565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506103f28482600881106103e2576103e161093d565b5b60200201516104d160201b60201c565b8484815181106104055761040461093d565b5b60200260200101516020018585815181106104235761042261093d565b5b60200260200101516040018686815181106104415761044061093d565b5b602002602001015160600183815250839052839052505050808060010191505061035c565b50808660400181905250858888815181106104845761048361093d565b5b60200260200101819052505050505050508080600101915050610093565b505f816040516020016104b59190610f3b565b6040516020818303038152906040529050602081018059038082f35b6060805f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610551575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156106af575f8490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156105a2573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105ca9190610a6d565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610614573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061063c9190610a6d565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ab9190610f5b565b9150505b9193909250565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61076282610739565b9050919050565b61077281610758565b811461077c575f80fd5b50565b5f8151905061078d81610769565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107dd82610797565b810181811067ffffffffffffffff821117156107fc576107fb6107a7565b5b80604052505050565b5f61080e610728565b905061081a82826107d4565b919050565b5f67ffffffffffffffff821115610839576108386107a7565b5b602082029050602081019050919050565b5f80fd5b5f61086061085b8461081f565b610805565b905080838252602082019050602084028301858111156108835761088261084a565b5b835b818110156108ac5780610898888261077f565b845260208401935050602081019050610885565b5050509392505050565b5f82601f8301126108ca576108c9610793565b5b81516108da84826020860161084e565b91505092915050565b5f80604083850312156108f9576108f8610731565b5b5f6109068582860161077f565b925050602083015167ffffffffffffffff81111561092757610926610735565b5b610933858286016108b6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61097381610758565b82525050565b5f60208201905061098c5f83018461096a565b92915050565b5f602082840312156109a7576109a6610731565b5b5f6109b48482850161077f565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156109db576109da6107a7565b5b6109e482610797565b9050602081019050919050565b8281835e5f83830152505050565b5f610a11610a0c846109c1565b610805565b905082815260208101848484011115610a2d57610a2c6109bd565b5b610a388482856109f1565b509392505050565b5f82601f830112610a5457610a53610793565b5b8151610a648482602086016109ff565b91505092915050565b5f60208284031215610a8257610a81610731565b5b5f82015167ffffffffffffffff811115610a9f57610a9e610735565b5b610aab84828501610a40565b91505092915050565b5f67ffffffffffffffff821115610ace57610acd6107a7565b5b602082029050919050565b5f610aeb610ae684610ab4565b610805565b90508060208402830185811115610b0557610b0461084a565b5b835b81811015610b2e5780610b1a888261077f565b845260208401935050602081019050610b07565b5050509392505050565b5f82601f830112610b4c57610b4b610793565b5b6008610b59848285610ad9565b91505092915050565b5f6101008284031215610b7857610b77610731565b5b5f610b8584828501610b38565b91505092915050565b5f67ffffffffffffffff821115610ba857610ba76107a7565b5b602082029050919050565b5f819050919050565b610bc581610bb3565b8114610bcf575f80fd5b50565b5f81519050610be081610bbc565b92915050565b5f610bf8610bf384610b8e565b610805565b90508060208402830185811115610c1257610c1161084a565b5b835b81811015610c3b5780610c278882610bd2565b845260208401935050602081019050610c14565b5050509392505050565b5f82601f830112610c5957610c58610793565b5b6002610c66848285610be6565b91505092915050565b5f60408284031215610c8457610c83610731565b5b5f610c9184828501610c45565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610ccc81610758565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610cf682610cd2565b610d008185610cdc565b9350610d108185602086016109f1565b610d1981610797565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610d5681610bb3565b82525050565b5f608083015f830151610d715f860182610cc3565b5060208301518482036020860152610d898282610cec565b91505060408301518482036040860152610da38282610cec565b9150506060830151610db86060860182610d4d565b508091505092915050565b5f610dce8383610d5c565b905092915050565b5f602082019050919050565b5f610dec82610d24565b610df68185610d2e565b935083602082028501610e0885610d3e565b805f5b85811015610e435784840389528151610e248582610dc3565b9450610e2f83610dd6565b925060208a01995050600181019050610e0b565b50829750879550505050505092915050565b5f606083015f830151610e6a5f860182610cc3565b5060208301518482036020860152610e828282610cec565b91505060408301518482036040860152610e9c8282610de2565b9150508091505092915050565b5f610eb48383610e55565b905092915050565b5f602082019050919050565b5f610ed282610c9a565b610edc8185610ca4565b935083602082028501610eee85610cb4565b805f5b85811015610f295784840389528151610f0a8582610ea9565b9450610f1583610ebc565b925060208a01995050600181019050610ef1565b50829750879550505050505092915050565b5f6020820190508181035f830152610f538184610ec8565b905092915050565b5f60208284031215610f7057610f6f610731565b5b5f610f7d84828501610bd2565b9150509291505056fe'
4
+ '0x608060405234801561000f575f80fd5b50604051610fee380380610fee83398181016040528101906100319190610937565b5f8290505f825190505f8167ffffffffffffffff811115610055576100546107fb565b5b60405190808252806020026020018201604052801561008e57816020015b61007b6106ee565b8152602001906001900390816100735790505b5090505f5b828110156104da576100a36106ee565b5f8683815181106100b7576100b6610991565b5b6020026020010151905080825f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8673ffffffffffffffffffffffffffffffffffffffff1663bdf475c3836040518263ffffffff1660e01b815260040161013291906109cd565b602060405180830381865afa15801561014d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017191906109e6565b905080836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508673ffffffffffffffffffffffffffffffffffffffff16635c911741826040518263ffffffff1660e01b81526004016101e491906109cd565b5f60405180830381865afa1580156101fe573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102269190610ac1565b83604001819052505f8773ffffffffffffffffffffffffffffffffffffffff16639ac90d3d836040518263ffffffff1660e01b815260040161026891906109cd565b61010060405180830381865afa158015610284573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a89190610bb6565b90505f8873ffffffffffffffffffffffffffffffffffffffff1663940494f1846040518263ffffffff1660e01b81526004016102e491906109cd565b6040805180830381865afa1580156102fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103229190610cc3565b5f6002811061033457610333610991565b5b602002015190505f8167ffffffffffffffff811115610356576103556107fb565b5b60405190808252806020026020018201604052801561038f57816020015b61037c610740565b8152602001906001900390816103745790505b5090505f5b8281101561049e578381600881106103af576103ae610991565b5b60200201518282815181106103c7576103c6610991565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061042a84826008811061041a57610419610991565b5b602002015161050960201b60201c565b84848151811061043d5761043c610991565b5b602002602001015160200185858151811061045b5761045a610991565b5b602002602001015160400186868151811061047957610478610991565b5b6020026020010151606001838152508390528390525050508080600101915050610394565b50808660600181905250858888815181106104bc576104bb610991565b5b60200260200101819052505050505050508080600101915050610093565b505f816040516020016104ed9190610fa2565b6040516020818303038152906040529050602081018059038082f35b6060805f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610589575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156106e7575f8490508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156105da573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906106029190610ac1565b93508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561064c573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906106749190610ac1565b92508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e39190610fc2565b9150505b9193909250565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107b68261078d565b9050919050565b6107c6816107ac565b81146107d0575f80fd5b50565b5f815190506107e1816107bd565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610831826107eb565b810181811067ffffffffffffffff821117156108505761084f6107fb565b5b80604052505050565b5f61086261077c565b905061086e8282610828565b919050565b5f67ffffffffffffffff82111561088d5761088c6107fb565b5b602082029050602081019050919050565b5f80fd5b5f6108b46108af84610873565b610859565b905080838252602082019050602084028301858111156108d7576108d661089e565b5b835b8181101561090057806108ec88826107d3565b8452602084019350506020810190506108d9565b5050509392505050565b5f82601f83011261091e5761091d6107e7565b5b815161092e8482602086016108a2565b91505092915050565b5f806040838503121561094d5761094c610785565b5b5f61095a858286016107d3565b925050602083015167ffffffffffffffff81111561097b5761097a610789565b5b6109878582860161090a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6109c7816107ac565b82525050565b5f6020820190506109e05f8301846109be565b92915050565b5f602082840312156109fb576109fa610785565b5b5f610a08848285016107d3565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115610a2f57610a2e6107fb565b5b610a38826107eb565b9050602081019050919050565b8281835e5f83830152505050565b5f610a65610a6084610a15565b610859565b905082815260208101848484011115610a8157610a80610a11565b5b610a8c848285610a45565b509392505050565b5f82601f830112610aa857610aa76107e7565b5b8151610ab8848260208601610a53565b91505092915050565b5f60208284031215610ad657610ad5610785565b5b5f82015167ffffffffffffffff811115610af357610af2610789565b5b610aff84828501610a94565b91505092915050565b5f67ffffffffffffffff821115610b2257610b216107fb565b5b602082029050919050565b5f610b3f610b3a84610b08565b610859565b90508060208402830185811115610b5957610b5861089e565b5b835b81811015610b825780610b6e88826107d3565b845260208401935050602081019050610b5b565b5050509392505050565b5f82601f830112610ba057610b9f6107e7565b5b6008610bad848285610b2d565b91505092915050565b5f6101008284031215610bcc57610bcb610785565b5b5f610bd984828501610b8c565b91505092915050565b5f67ffffffffffffffff821115610bfc57610bfb6107fb565b5b602082029050919050565b5f819050919050565b610c1981610c07565b8114610c23575f80fd5b50565b5f81519050610c3481610c10565b92915050565b5f610c4c610c4784610be2565b610859565b90508060208402830185811115610c6657610c6561089e565b5b835b81811015610c8f5780610c7b8882610c26565b845260208401935050602081019050610c68565b5050509392505050565b5f82601f830112610cad57610cac6107e7565b5b6002610cba848285610c3a565b91505092915050565b5f60408284031215610cd857610cd7610785565b5b5f610ce584828501610c99565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610d20816107ac565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610d4a82610d26565b610d548185610d30565b9350610d64818560208601610a45565b610d6d816107eb565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610daa81610c07565b82525050565b5f608083015f830151610dc55f860182610d17565b5060208301518482036020860152610ddd8282610d40565b91505060408301518482036040860152610df78282610d40565b9150506060830151610e0c6060860182610da1565b508091505092915050565b5f610e228383610db0565b905092915050565b5f602082019050919050565b5f610e4082610d78565b610e4a8185610d82565b935083602082028501610e5c85610d92565b805f5b85811015610e975784840389528151610e788582610e17565b9450610e8383610e2a565b925060208a01995050600181019050610e5f565b50829750879550505050505092915050565b5f608083015f830151610ebe5f860182610d17565b506020830151610ed16020860182610d17565b5060408301518482036040860152610ee98282610d40565b91505060608301518482036060860152610f038282610e36565b9150508091505092915050565b5f610f1b8383610ea9565b905092915050565b5f602082019050919050565b5f610f3982610cee565b610f438185610cf8565b935083602082028501610f5585610d08565b805f5b85811015610f905784840389528151610f718582610f10565b9450610f7c83610f23565b925060208a01995050600181019050610f58565b50829750879550505050505092915050565b5f6020820190508181035f830152610fba8184610f2f565b905092915050565b5f60208284031215610fd757610fd6610785565b5b5f610fe484828501610c26565b9150509291505056fe'
5
5
 
6
6
  const commonInputType = ['address _registry, address[] memory lpAddresses']
7
7
 
8
8
  const commonOutputTypeHr = [
9
9
  'ReturnData[] returnData',
10
- 'struct ReturnData { address lpAddress; string name; Token[] coins; }',
10
+ 'struct ReturnData { address lpAddress; address pool; string name; Token[] coins; }',
11
11
  'struct Token { address _address; string name; string symbol; uint256 decimals; }',
12
12
  ]
13
13
 
@@ -17,6 +17,7 @@ const commonOutputType = [
17
17
  name: 'returnData',
18
18
  components: [
19
19
  { type: 'address', name: 'lpAddress' },
20
+ { type: 'address', name: 'pool' },
20
21
  { type: 'string', name: 'name' },
21
22
  {
22
23
  type: 'tuple[]',
package/src/endpoints.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export const LLAMA_API_URL = 'https://coins.llama.fi'
2
- export const AGNOSTIC_QUERY_URL = 'https://proxy.eu-02.agnostic.engineering/query'
3
2
  export const THE_GRAPH_BASE_URL =
4
3
  'https://gateway-arbitrum.network.thegraph.com/api/e3c2ef8231c88703a5b450c188ce2db6/subgraphs/id'
@@ -272,6 +272,19 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
272
272
  }
273
273
  }
274
274
 
275
+ if (locker.id === 'crv') {
276
+ alternativeYields.aSdCrvSpectra = {
277
+ label: 'asdCRV',
278
+ platform: 'Spectra',
279
+ href: 'https://app.spectra.finance/pools#mainnet/0xc63dff67fe1b63004ab6c773022ba06847c11335',
280
+ apr: Math.max(
281
+ ...(httpCalls.spectraAprs
282
+ ?.find((r) => r.underlying.address.toLowerCase() === locker.sdToken.address.toLowerCase())
283
+ ?.pools.map((p) => p.lpApy?.boostedTotal || 0) || [0]),
284
+ ),
285
+ }
286
+ }
287
+
275
288
  if (locker.extensions.strategyGauge && httpCalls.cvgAprs?.[locker.extensions.strategyGauge]) {
276
289
  alternativeYields[`convergence${locker.sdToken.symbol}Pool`] = {
277
290
  label: `${locker.sdToken.symbol}/${locker.token.symbol}`,
@@ -17,6 +17,12 @@ const getHttpCalls = async (chainId: number) => {
17
17
  console.error(error)
18
18
  return undefined
19
19
  }),
20
+ fetch('https://app.spectra.finance/api/v1/mainnet/pools')
21
+ .then((result) => result.json())
22
+ .catch((error) => {
23
+ console.error(error)
24
+ return undefined
25
+ }),
20
26
  ]
21
27
 
22
28
  const httpResponses = (await Promise.allSettled(httpCalls)).map((result) =>
@@ -26,11 +32,13 @@ const getHttpCalls = async (chainId: number) => {
26
32
  const bribesData = httpResponses[0]
27
33
  const fpisBribesData = httpResponses[1]
28
34
  const cvgAprs = httpResponses[2]?.projectedApr
35
+ const spectraAprs = httpResponses[3]
29
36
 
30
37
  return {
31
38
  bribesData,
32
39
  fpisBribesData,
33
40
  cvgAprs,
41
+ spectraAprs,
34
42
  }
35
43
  }
36
44
  case fraxtal.id:
package/src/sdt/fetch.ts CHANGED
@@ -1,42 +1,32 @@
1
- import { formatUnits, parseAbi, parseUnits } from 'viem'
1
+ import { decodeAbiParameters, formatUnits, parseAbi, parseUnits } from 'viem'
2
2
 
3
- import { ONE_DAY, type Token, contracts, tokenWithId } from '@stake-dao/constants'
3
+ import { ONE_DAY, type Token, contracts, explorers, tokenWithId } from '@stake-dao/constants'
4
4
  import { Zero } from '../index.js'
5
5
  import { type Price } from '../prices.js'
6
- import { agnostic, multicall } from '../utils.js'
6
+ import { multicall } from '../utils.js'
7
7
  import veSdtAlternativeYields from './veSdtAlternativeYields.js'
8
8
 
9
- const AGNOSTIC_QUERY = (timeLimit: number) => `
10
- select
11
- input_0_value_uint256 as time,
12
- input_1_value_uint256 as tokens
13
- from evm_events_ethereum_mainnet
14
- where
15
- address = '${contracts.veSdtFeeDistributor![1]!}' and
16
- input_1_value_uint256 != '0' and
17
- input_0_value_uint256 > '${timeLimit}' and
18
- signature = 'CheckpointToken(uint256,uint256)'
19
- ORDER BY time DESC
20
- `
9
+ const CHECKPOINT_EVENTS_ENDPOINT = (fromBlock: number, apiKey: string) =>
10
+ `https://api.${
11
+ explorers[1].url
12
+ }/api?module=logs&action=getLogs&fromBlock=${fromBlock}&address=${contracts.veSdtFeeDistributor![1]!}&topic0=0xce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d6&apikey=${apiKey}`
21
13
 
22
14
  interface TFetchSdt {
23
15
  provider: any
24
16
  prices: Price[]
25
- agnosticKey?: string
17
+ explorerApiKey: string
26
18
  }
27
19
 
28
20
  // Need SDT and frax3Crv price
29
- export const fetchSdt = async ({ provider, prices, agnosticKey }: TFetchSdt) => {
21
+ export const fetchSdt = async ({ provider, prices, explorerApiKey }: TFetchSdt) => {
30
22
  const sdtToken = tokenWithId('sdt') as Token
31
23
  const frax3CrvToken = tokenWithId('frax3crv') as Token
32
24
 
33
25
  const now = Math.ceil(new Date().getTime() / 1000)
34
26
  const lastCheck = now - ONE_DAY * 28
27
+ const lastCheckBlock = await (await fetch(`https://coins.llama.fi/block/ethereum/${lastCheck}`)).json()
35
28
 
36
- let agnosticData: any[] | null = null
37
- if (agnosticKey) {
38
- agnosticData = await agnostic(AGNOSTIC_QUERY(lastCheck), agnosticKey)
39
- }
29
+ const checkpoints = await (await fetch(CHECKPOINT_EVENTS_ENDPOINT(lastCheckBlock.height, explorerApiKey))).json()
40
30
 
41
31
  const rawSdtData: any = await multicall(
42
32
  provider,
@@ -80,14 +70,26 @@ export const fetchSdt = async ({ provider, prices, agnosticKey }: TFetchSdt) =>
80
70
  const averageLock = (parseUnits(formatUnits(veSdtTotalSupply, 0), sdtToken.decimals) / lockedSdtBalance) * BigInt(4)
81
71
 
82
72
  let rewardsAmount = Zero
83
- let checkedWeek = now - ONE_DAY * 7
73
+ let checkedTimestamp = now - ONE_DAY * 7
84
74
 
85
75
  let apr = 0
86
- if (agnosticData) {
87
- while (lastCheck <= checkedWeek && rewardsAmount === Zero) {
88
- const checkedWeekAgnostic = agnosticData ? agnosticData.filter((d: any) => checkedWeek < Number(d[0])) : null
89
- rewardsAmount = checkedWeekAgnostic ? checkedWeekAgnostic.reduce((total, d) => total + BigInt(d[1]), Zero) : Zero
90
- checkedWeek = checkedWeek - ONE_DAY * 7
76
+ if (checkpoints && checkpoints.message === 'OK') {
77
+ const checkpointsData = checkpoints.result.map((r) => {
78
+ const [eventTimestamp, eventAmount] = decodeAbiParameters(
79
+ [
80
+ { type: 'uint256', name: 'timestamp' },
81
+ { type: 'uint256', name: 'amount' },
82
+ ],
83
+ r.data,
84
+ )
85
+
86
+ return { ts: Number(eventTimestamp), amount: eventAmount }
87
+ })
88
+
89
+ while (lastCheck <= checkedTimestamp && rewardsAmount === Zero) {
90
+ const checkedWeek = checkpointsData ? checkpointsData.filter((d: any) => checkedTimestamp < d.ts) : null
91
+ rewardsAmount = checkedWeek ? checkedWeek.reduce((total, d) => total + d.amount, Zero) : Zero
92
+ checkedTimestamp = checkedTimestamp - ONE_DAY * 7
91
93
  }
92
94
 
93
95
  apr =
package/src/utils.ts CHANGED
@@ -4,7 +4,6 @@ import { request } from 'graphql-request'
4
4
  import { groupBy } from 'lodash-es'
5
5
  import { http, createPublicClient, decodeAbiParameters, extractChain, parseAbiParameters, toHex } from 'viem'
6
6
  import * as viemChains from 'viem/chains'
7
- import { AGNOSTIC_QUERY_URL } from './endpoints.js'
8
7
  import { withTwoDec } from './number.js'
9
8
 
10
9
  export const isProtocolToken = (protocol: string, tokenSymbol: string) =>
@@ -222,23 +221,6 @@ export const multicall = async (provider: any, calls: Call[], abi: readonly any[
222
221
  return results
223
222
  }
224
223
 
225
- export const agnostic = async (query: string, apiKey: string, defaultErrorValue?: any): Promise<any> => {
226
- try {
227
- const response = await fetch(AGNOSTIC_QUERY_URL, {
228
- body: query,
229
- method: 'POST',
230
- headers: {
231
- Authorization: apiKey,
232
- },
233
- })
234
- const data = await response.json()
235
- return data.rows
236
- } catch (e) {
237
- console.error(e)
238
- return defaultErrorValue
239
- }
240
- }
241
-
242
224
  export const graphql = async (url: string, query: string, params?: any, defaultErrorValue?: any): Promise<any> => {
243
225
  try {
244
226
  return await request(url, query, params)
@@ -41,3 +41,7 @@ export const BROKEN_GAUGES = [
41
41
  lc('0x4dC4A289a8E33600D8bD4cf5F6313E43a37adec7'), // chainId 1 - Curve.fi RSV/3Crv not in registry
42
42
  lc('0x82049b520cAc8b05E703bb35d1691B5005A92848'), // chainId 100 - Curve.fi x3CRV RewardGauge Deposit
43
43
  ]
44
+
45
+ export const CHAIN_NATIVE_COIN = {
46
+ 1: { name: 'Ether', symbol: 'ETH', decimals: 18 },
47
+ }
@@ -5,7 +5,13 @@ import { mainnet } from 'viem/chains'
5
5
  import { batchCurveGauges, batchCurveGaugesMetadata, batchCurveOldLps } from '../../bytecodes/index.js'
6
6
  import { concatBytecode } from '../../index.js'
7
7
  import { batchJsonRpc, equalTlc, rpcCall } from '../../utils.js'
8
- import { BROKEN_GAUGES, GAUGES_CHUNK_SIZE, GAUGES_METADATA_CHUNK_SIZE, NOT_LP_GAUGES_INDEX } from './config.js'
8
+ import {
9
+ BROKEN_GAUGES,
10
+ CHAIN_NATIVE_COIN,
11
+ GAUGES_CHUNK_SIZE,
12
+ GAUGES_METADATA_CHUNK_SIZE,
13
+ NOT_LP_GAUGES_INDEX,
14
+ } from './config.js'
9
15
 
10
16
  // TODO
11
17
  export type Gauge = {
@@ -124,6 +130,7 @@ export const fetchCurveGauges = async (rpc: Rpcs): Promise<GaugesData> => {
124
130
  futureRelativeWeight: g.futureRelativeWeight,
125
131
  isKilled: g.isKilled,
126
132
  chainId: g.chainId,
133
+ pool: gaugeMetadata.pool,
127
134
  lp: {
128
135
  name: gaugeMetadata.lp.name,
129
136
  symbol: gaugeMetadata.lp.symbol,
@@ -158,6 +165,8 @@ export const fetchCurveGauges = async (rpc: Rpcs): Promise<GaugesData> => {
158
165
  symbol: c.symbol,
159
166
  address: c._address,
160
167
  decimals: Number(c.decimals),
168
+
169
+ ...(equalTlc(c._address, '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE') ? CHAIN_NATIVE_COIN[g.chainId] : {}),
161
170
  }))
162
171
  .filter((c) => c.address !== zeroAddress)
163
172
 
@@ -165,6 +174,7 @@ export const fetchCurveGauges = async (rpc: Rpcs): Promise<GaugesData> => {
165
174
  ...g,
166
175
  name: missingData ? missingData.name : g.name,
167
176
  coins,
177
+ pool: missingData ? missingData.pool : g.pool,
168
178
  inController: true,
169
179
  }
170
180
  })
@@ -10,6 +10,7 @@ interface SnapshotProposal {
10
10
  end: number
11
11
  state: string
12
12
  choices: string[]
13
+ scores: number[]
13
14
  snapshot: string
14
15
  space: {
15
16
  strategies: SnapshotStrategy[]
@@ -41,20 +42,25 @@ query Proposals {
41
42
  }
42
43
  orderBy: "created"
43
44
  orderDirection: desc
44
- ){
45
- id
45
+ ) {
46
+ id
46
47
  title
48
+ choices
47
49
  start
48
50
  end
49
- state
50
51
  snapshot
51
- choices
52
+ state
53
+ created
54
+ scores
52
55
  space {
53
- strategies {
54
- name
55
- network
56
- params
57
- }
56
+ id
57
+ name
58
+ symbol
59
+ strategies {
60
+ name
61
+ network
62
+ params
63
+ }
58
64
  }
59
65
  }
60
66
  }
@@ -175,25 +175,44 @@ export const fetchCampaigns = async ({ platform, chainId, rpc }: FetchCampaignsP
175
175
 
176
176
  const totalVotes = gaugeWeightData.weight
177
177
 
178
- // Simulate previous period update if not updated
179
- if (rc.previousPeriod && !rc.previousPeriod.updated) {
180
- updateEpoch({
181
- period: rc.previousPeriod,
182
- campaign: rc.campaign,
183
- remainingPeriods: Number(rc.periodLeft) + 1,
184
- totalVotes,
185
- })
186
- }
187
-
188
- // Simulate current period update to simulate reward and apr
189
- updateEpoch({
190
- period: rc.currentPeriod,
191
- previousPeriod: rc.previousPeriod,
192
- campaign: rc.campaign,
193
- remainingPeriods: Number(rc.periodLeft),
194
- totalVotes,
178
+ rc.periods.forEach((_, index) => {
179
+ if (!rc.periods[index].updated) {
180
+ updateEpoch({
181
+ period: rc.periods[index],
182
+ previousPeriod: index > 0 ? rc.periods[index - 1] : undefined,
183
+ campaign: rc.campaign,
184
+ remainingPeriods: Number(rc.campaign.numberOfPeriods) - index,
185
+ totalVotes,
186
+ })
187
+ }
195
188
  })
196
189
 
190
+ const indexOfCurrentPeriod =
191
+ rc.periods.length > numberOfPeriods - Number(rc.periodLeft)
192
+ ? numberOfPeriods - Number(rc.periodLeft)
193
+ : rc.periods.length - 1
194
+ const rawCurrentPeriod = rc.periods[indexOfCurrentPeriod]
195
+ const rawPreviousPeriod = rc.periods[indexOfCurrentPeriod - 1]
196
+
197
+ // // Simulate previous period update if not updated
198
+ // if (rc.previousPeriod && !rc.previousPeriod.updated && Number(numberOfPeriods) > Number(rc.periodLeft)) {
199
+ // updateEpoch({
200
+ // period: rc.previousPeriod,
201
+ // campaign: rc.campaign,
202
+ // remainingPeriods: Number(rc.periodLeft) + 1,
203
+ // totalVotes,
204
+ // })
205
+ // }
206
+
207
+ // // Simulate current period update to simulate reward and apr
208
+ // updateEpoch({
209
+ // period: rc.currentPeriod,
210
+ // previousPeriod: rc.previousPeriod,
211
+ // campaign: rc.campaign,
212
+ // remainingPeriods: Number(rc.periodLeft),
213
+ // totalVotes,
214
+ // })
215
+
197
216
  return {
198
217
  id: Number(rc.id),
199
218
  chainId,
@@ -215,16 +234,16 @@ export const fetchCampaigns = async ({ platform, chainId, rpc }: FetchCampaignsP
215
234
  isWhitelist: rc.isWhitelistOnly,
216
235
  isBlacklist: !rc.isWhitelistOnly && rc.addresses.length > 0,
217
236
  previousPeriod: {
218
- rewardPerPeriod: formatUnits(rc.previousPeriod.rewardPerPeriod, decimals),
219
- rewardPerVote: formatUnits(rc.previousPeriod.rewardPerVote, decimals),
220
- leftover: formatUnits(rc.previousPeriod.leftover, decimals),
221
- updated: rc.previousPeriod.updated,
237
+ rewardPerPeriod: formatUnits(rawPreviousPeriod.rewardPerPeriod, decimals),
238
+ rewardPerVote: formatUnits(rawPreviousPeriod.rewardPerVote, decimals),
239
+ leftover: formatUnits(rawPreviousPeriod.leftover, decimals),
240
+ updated: rawPreviousPeriod.updated,
222
241
  },
223
242
  currentPeriod: {
224
- rewardPerPeriod: formatUnits(rc.currentPeriod.rewardPerPeriod, decimals),
225
- rewardPerVote: formatUnits(rc.currentPeriod.rewardPerVote, decimals),
226
- leftover: formatUnits(rc.currentPeriod.leftover, decimals),
227
- updated: rc.currentPeriod.updated,
243
+ rewardPerPeriod: formatUnits(rawCurrentPeriod.rewardPerPeriod, decimals),
244
+ rewardPerVote: formatUnits(rawCurrentPeriod.rewardPerVote, decimals),
245
+ leftover: formatUnits(rawCurrentPeriod.leftover, decimals),
246
+ updated: rawCurrentPeriod.updated,
228
247
  },
229
248
  status: {
230
249
  voteOpen: endTimestamp - ONE_WEEK > currentTimestamp,