@stake-dao/reader 0.4.33 → 0.4.34
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.
- package/dist/esm/bytecodes/votemarket/batchCampaigns.js +1 -1
- package/dist/esm/bytecodes/votemarket/batchCampaigns.js.map +1 -1
- package/dist/esm/bytecodes/votemarket/batchCampaignsRestrictedVotes.js +33 -0
- package/dist/esm/bytecodes/votemarket/batchCampaignsRestrictedVotes.js.map +1 -0
- package/dist/esm/bytecodes/votemarket/batchClaimableData.js +1 -1
- package/dist/esm/bytecodes/votemarket/batchClaimableData.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesWeights.js +2 -2
- package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesWeights.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/utils.js +13 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/votemarket/fetchCampaigns.js +71 -10
- package/dist/esm/votemarket/fetchCampaigns.js.map +1 -1
- package/dist/esm/votemarket/fetchPendingRemoteCampaigns.js +102 -0
- package/dist/esm/votemarket/fetchPendingRemoteCampaigns.js.map +1 -0
- package/dist/types/bytecodes/votemarket/batchCampaignsRestrictedVotes.d.ts +4 -0
- package/dist/types/bytecodes/votemarket/batchCampaignsRestrictedVotes.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/votemarket/fetchCampaigns.d.ts +6 -1
- package/dist/types/votemarket/fetchCampaigns.d.ts.map +1 -1
- package/dist/types/votemarket/fetchPendingRemoteCampaigns.d.ts +46 -0
- package/dist/types/votemarket/fetchPendingRemoteCampaigns.d.ts.map +1 -0
- package/dist/types/votemarket/types.d.ts +1 -0
- package/dist/types/votemarket/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bytecodes/votemarket/batchCampaigns.ts +1 -1
- package/src/bytecodes/votemarket/batchCampaignsRestrictedVotes.ts +35 -0
- package/src/bytecodes/votemarket/batchClaimableData.ts +1 -1
- package/src/index.ts +2 -1
- package/src/strategies/curve/fetch/curveApiData/getGaugesWeights.ts +2 -2
- package/src/utils.ts +19 -0
- package/src/votemarket/fetchCampaigns.ts +109 -12
- package/src/votemarket/fetchPendingRemoteCampaigns.ts +141 -0
- package/src/votemarket/types.ts +1 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { BatchMetaData } from '../types.js'
|
|
2
|
+
|
|
3
|
+
const batchCampaignsRestrictedVotes: BatchMetaData = {
|
|
4
|
+
bytecode: {
|
|
5
|
+
1: '0x608060405234801561000f575f80fd5b50604051610a7f380380610a7f833981810160405281019061003191906106e4565b5f815167ffffffffffffffff81111561004d5761004c6103fe565b5b60405190808252806020026020018201604052801561008657816020015b610073610345565b81526020019060019003908161006b5790505b5090505f8390505f8590505f5b8451811015610316576100a4610345565b8582815181106100b7576100b6610750565b5b60200260200101515f0151815f0181815250508582815181106100dd576100dc610750565b5b60200260200101516020015181602001818152505085828151811061010557610104610750565b5b602002602001015160400151816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f86838151811061015c5761015b610750565b5b60200260200101516060015190505f5b81518110156102e7575f8573ffffffffffffffffffffffffffffffffffffffff166370a082318484815181106101a5576101a4610750565b5b60200260200101516040518263ffffffff1660e01b81526004016101c9919061078c565b602060405180830381865afa1580156101e4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061020891906107a5565b90505f8773ffffffffffffffffffffffffffffffffffffffff16630f467f9885858151811061023a57610239610750565b5b602002602001015187604001516040518363ffffffff1660e01b81526004016102649291906107d0565b606060405180830381865afa15801561027f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a391906107f7565b5091505061271081836102b69190610874565b6102c091906108e2565b856060018181516102d19190610912565b915081815250505050808060010191505061016c565b50818684815181106102fc576102fb610750565b5b602002602001018190525050508080600101915050610093565b505f836040516020016103299190610a5e565b6040516020818303038152906040529050602081018059038082f35b60405180608001604052805f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103b982610390565b9050919050565b6103c9816103af565b81146103d3575f80fd5b50565b5f815190506103e4816103c0565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610434826103ee565b810181811067ffffffffffffffff82111715610453576104526103fe565b5b80604052505050565b5f61046561037f565b9050610471828261042b565b919050565b5f67ffffffffffffffff8211156104905761048f6103fe565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f80fd5b5f819050919050565b6104bf816104ad565b81146104c9575f80fd5b50565b5f815190506104da816104b6565b92915050565b5f67ffffffffffffffff8211156104fa576104f96103fe565b5b602082029050602081019050919050565b5f61051d610518846104e0565b61045c565b905080838252602082019050602084028301858111156105405761053f6104a1565b5b835b81811015610569578061055588826103d6565b845260208401935050602081019050610542565b5050509392505050565b5f82601f830112610587576105866103ea565b5b815161059784826020860161050b565b91505092915050565b5f608082840312156105b5576105b46104a5565b5b6105bf608061045c565b90505f6105ce848285016104cc565b5f8301525060206105e1848285016104cc565b60208301525060406105f5848285016103d6565b604083015250606082015167ffffffffffffffff811115610619576106186104a9565b5b61062584828501610573565b60608301525092915050565b5f61064361063e84610476565b61045c565b90508083825260208201905060208402830185811115610666576106656104a1565b5b835b818110156106ad57805167ffffffffffffffff81111561068b5761068a6103ea565b5b80860161069889826105a0565b85526020850194505050602081019050610668565b5050509392505050565b5f82601f8301126106cb576106ca6103ea565b5b81516106db848260208601610631565b91505092915050565b5f805f606084860312156106fb576106fa610388565b5b5f610708868287016103d6565b9350506020610719868287016103d6565b925050604084015167ffffffffffffffff81111561073a5761073961038c565b5b610746868287016106b7565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610786816103af565b82525050565b5f60208201905061079f5f83018461077d565b92915050565b5f602082840312156107ba576107b9610388565b5b5f6107c7848285016104cc565b91505092915050565b5f6040820190506107e35f83018561077d565b6107f0602083018461077d565b9392505050565b5f805f6060848603121561080e5761080d610388565b5b5f61081b868287016104cc565b935050602061082c868287016104cc565b925050604061083d868287016104cc565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61087e826104ad565b9150610889836104ad565b9250828202610897816104ad565b915082820484148315176108ae576108ad610847565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6108ec826104ad565b91506108f7836104ad565b925082610907576109066108b5565b5b828204905092915050565b5f61091c826104ad565b9150610927836104ad565b925082820190508082111561093f5761093e610847565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610977816104ad565b82525050565b610986816103af565b82525050565b608082015f8201516109a05f85018261096e565b5060208201516109b3602085018261096e565b5060408201516109c6604085018261097d565b5060608201516109d9606085018261096e565b50505050565b5f6109ea838361098c565b60808301905092915050565b5f602082019050919050565b5f610a0c82610945565b610a16818561094f565b9350610a218361095f565b805f5b83811015610a51578151610a3888826109df565b9750610a43836109f6565b925050600181019050610a24565b5085935050505092915050565b5f6020820190508181035f830152610a768184610a02565b90509291505056fe',
|
|
6
|
+
},
|
|
7
|
+
inputType: {
|
|
8
|
+
1: [
|
|
9
|
+
'address _veToken, address _gaugeController, InputArg[] memory inputArgs',
|
|
10
|
+
'struct InputArg { uint256 chainId; uint256 campaignId; address gauge; address[] addresses; }',
|
|
11
|
+
],
|
|
12
|
+
},
|
|
13
|
+
outputTypeHr: {
|
|
14
|
+
1: [
|
|
15
|
+
'ReturnData[] memory returnData',
|
|
16
|
+
'struct ReturnData { uint256 chainId; uint256 campaignId; address gauge; uint256 restrictedVotes; }',
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
outputType: {
|
|
20
|
+
1: [
|
|
21
|
+
{
|
|
22
|
+
type: 'tuple[]',
|
|
23
|
+
name: 'returnData',
|
|
24
|
+
components: [
|
|
25
|
+
{ type: 'uint256', name: 'chainId' },
|
|
26
|
+
{ type: 'uint256', name: 'campaignId' },
|
|
27
|
+
{ type: 'address', name: 'gauge' },
|
|
28
|
+
{ type: 'uint256', name: 'restrictedVotes' },
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default batchCampaignsRestrictedVotes
|
|
@@ -3,7 +3,7 @@ import type { BatchMetaData } from '../types.js'
|
|
|
3
3
|
const batchClaimableData: BatchMetaData = {
|
|
4
4
|
bytecode: {
|
|
5
5
|
42161:
|
|
6
|
-
'0x608060405234801561000f575f80fd5b50604051611fb2380380611fb28339818101604052810190610031919061139f565b5f825167ffffffffffffffff81111561004d5761004c61102d565b5b60405190808252806020026020018201604052801561008657816020015b610073610f28565b81526020019060019003908161006b5790505b509050845f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f62093a8090505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338013f026040518163ffffffff1660e01b8152600401602060405180830381865afa158015610137573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015b919061143b565b73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c7919061143b565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b8451811015610287575f85828151811061022557610224611466565b5b6020026020010151905061025b878287858151811061024757610246611466565b5b6020026020010151866102b660201b60201c565b84838151811061026e5761026d611466565b5b6020026020010181905250508080600101915050610208565b505f8260405160200161029a91906117e9565b6040516020818303038152906040529050602081018059038082f35b6102be610f28565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635598f8cc866040518263ffffffff1660e01b81526004016103189190611818565b61016060405180830381865afa158015610334573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103589190611970565b90505f81610100015190505f826080015160ff1667ffffffffffffffff8111156103855761038461102d565b5b6040519080825280602002602001820160405280156103be57816020015b6103ab610f41565b8152602001906001900390816103a35790505b5090505f5b815181101561059f575f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317f3a7228a866040518363ffffffff1660e01b815260040161042892919061199c565b608060405180830381865afa158015610443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104679190611a38565b90505f8160200151146104ac5780602001518560c001818152505080604001518560a00181815250508460800151856080019060ff16908160ff16815250505061059f565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636fb08df28b6040518263ffffffff1660e01b81526004016105069190611818565b5f60405180830381865afa158015610520573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105489190611b23565b905061055e868c8b888e866105c260201b60201c565b84848151811061057157610570611466565b5b602002602001018190525087856105889190611b97565b9450828061059590611bca565b93505050506103c3565b604051806040016040528089815260200183815250945050505050949350505050565b6105ca610f41565b5f806105dc87876108a560201b60201c565b915091505f8214806105ed57505f81145b15610687576040518060e001604052808781526020015f81526020015f151581526020015f151581526020015f151581526020015f81526020015f67ffffffffffffffff8111156106415761064061102d565b5b60405190808252806020026020018201604052801561067a57816020015b610667610f7e565b81526020019060019003908161065f5790505b508152509250505061089b565b5f805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303f17e568c604001516040518263ffffffff1660e01b81526004016106e59190611c20565b602060405180830381865afa158015610700573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107249190611c39565b116107ba575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015610791573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b59190611c39565b610856565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303f17e568b604001516040518263ffffffff1660e01b81526004016108169190611c20565b602060405180830381865afa158015610831573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108559190611c39565b5b90505f61086e8b8b86868c8c8861093a60201b60201c565b90505f865111156108935761088a8b878a610c8760201b60201c565b8160c001819052505b809450505050505b9695505050505050565b5f805f5b845181101561092b57838582815181106108c6576108c5611466565b5b60200260200101515f01510361091e578481815181106108e9576108e8611466565b5b60200260200101516020015185828151811061090857610907611466565b5b6020026020010151604001519250925050610933565b80806001019150506108a9565b505f80915091505b9250929050565b610942610f41565b5f80805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166366629f1286888c6040518463ffffffff1660e01b81526004016109a193929190611c64565b602060405180830381865afa1580156109bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e09190611c39565b036109fa576109f789888886610e5a60201b60201c565b90505b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329597009876040518263ffffffff1660e01b8152600401610a559190611818565b608060405180830381865afa158015610a70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a949190611d41565b90506040518060e001604052808781526020018381526020015f801b83602001511415151581526020015f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e31c6a638e602001518b6040518363ffffffff1660e01b8152600401610b1f929190611d6c565b6040805180830381865afa158015610b39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5d9190611de0565b6020015111151581526020015f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bef3ba998d8f602001518c6040518463ffffffff1660e01b8152600401610bcc93929190611e0b565b608060405180830381865afa158015610be7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0b9190611eb5565b606001511115158152602001826040015181526020015f67ffffffffffffffff811115610c3b57610c3a61102d565b5b604051908082528060200260200182016040528015610c7457816020015b610c61610f7e565b815260200190600190039081610c595790505b5081525092505050979650505050505050565b60605f835167ffffffffffffffff811115610ca557610ca461102d565b5b604051908082528060200260200182016040528015610cde57816020015b610ccb610f7e565b815260200190600190039081610cc35790505b5090505f5b8451811015610e4e57848181518110610cff57610cfe611466565b5b6020026020010151828281518110610d1a57610d19611466565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bef3ba99878481518110610da857610da7611466565b5b60200260200101518960200151886040518463ffffffff1660e01b8152600401610dd493929190611e0b565b608060405180830381865afa158015610def573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e139190611eb5565b6060015111828281518110610e2b57610e2a611466565b5b602002602001015160200190151590811515815250508080600101915050610ce3565b50809150509392505050565b5f805f90505f84670de0b6b3a7640000886080015160ff168960c00151610e819190611f0d565b610e8b9190611f3d565b610e959190611f0d565b90508660a00151811115610ecd57670de0b6b3a76400008760a0015187610ebc9190611f3d565b610ec69190611f0d565b9150610eef565b670de0b6b3a76400008187610ee29190611f3d565b610eec9190611f0d565b91505b670de0b6b3a76400008483610f049190611f3d565b610f0e9190611f0d565b82610f199190611f7e565b91508192505050949350505050565b60405180604001604052805f8152602001606081525090565b6040518060e001604052805f81526020015f81526020015f151581526020015f151581526020015f151581526020015f8152602001606081525090565b60405180604001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610fe882610fbf565b9050919050565b610ff881610fde565b8114611002575f80fd5b50565b5f8151905061101381610fef565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6110638261101d565b810181811067ffffffffffffffff821117156110825761108161102d565b5b80604052505050565b5f611094610fae565b90506110a0828261105a565b919050565b5f67ffffffffffffffff8211156110bf576110be61102d565b5b602082029050602081019050919050565b5f80fd5b5f819050919050565b6110e6816110d4565b81146110f0575f80fd5b50565b5f81519050611101816110dd565b92915050565b5f611119611114846110a5565b61108b565b9050808382526020820190506020840283018581111561113c5761113b6110d0565b5b835b81811015611165578061115188826110f3565b84526020840193505060208101905061113e565b5050509392505050565b5f82601f83011261118357611182611019565b5b8151611193848260208601611107565b91505092915050565b5f67ffffffffffffffff8211156111b6576111b561102d565b5b602082029050602081019050919050565b5f67ffffffffffffffff8211156111e1576111e061102d565b5b602082029050602081019050919050565b5f80fd5b5f6060828403121561120b5761120a6111f2565b5b611215606061108b565b90505f611224848285016110f3565b5f830152506020611237848285016110f3565b602083015250604061124b848285016110f3565b60408301525092915050565b5f611269611264846111c7565b61108b565b9050808382526020820190506060840283018581111561128c5761128b6110d0565b5b835b818110156112b557806112a188826111f6565b84526020840193505060608101905061128e565b5050509392505050565b5f82601f8301126112d3576112d2611019565b5b81516112e3848260208601611257565b91505092915050565b5f6112fe6112f98461119c565b61108b565b90508083825260208201905060208402830185811115611321576113206110d0565b5b835b8181101561136857805167ffffffffffffffff81111561134657611345611019565b5b80860161135389826112bf565b85526020850194505050602081019050611323565b5050509392505050565b5f82601f83011261138657611385611019565b5b81516113968482602086016112ec565b91505092915050565b5f805f80608085870312156113b7576113b6610fb7565b5b5f6113c487828801611005565b94505060206113d587828801611005565b935050604085015167ffffffffffffffff8111156113f6576113f5610fbb565b5b6114028782880161116f565b925050606085015167ffffffffffffffff81111561142357611422610fbb565b5b61142f87828801611372565b91505092959194509250565b5f602082840312156114505761144f610fb7565b5b5f61145d84828501611005565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114c5816110d4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f8115159050919050565b611508816114f4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61154081610fde565b82525050565b604082015f82015161155a5f850182611537565b50602082015161156d60208501826114ff565b50505050565b5f61157e8383611546565b60408301905092915050565b5f602082019050919050565b5f6115a08261150e565b6115aa8185611518565b93506115b583611528565b805f5b838110156115e55781516115cc8882611573565b97506115d78361158a565b9250506001810190506115b8565b5085935050505092915050565b5f60e083015f8301516116075f8601826114bc565b50602083015161161a60208601826114bc565b50604083015161162d60408601826114ff565b50606083015161164060608601826114ff565b50608083015161165360808601826114ff565b5060a083015161166660a08601826114bc565b5060c083015184820360c086015261167e8282611596565b9150508091505092915050565b5f61169683836115f2565b905092915050565b5f602082019050919050565b5f6116b4826114cb565b6116be81856114d5565b9350836020820285016116d0856114e5565b805f5b8581101561170b57848403895281516116ec858261168b565b94506116f78361169e565b925060208a019950506001810190506116d3565b50829750879550505050505092915050565b5f604083015f8301516117325f8601826114bc565b506020830151848203602086015261174a82826116aa565b9150508091505092915050565b5f611762838361171d565b905092915050565b5f602082019050919050565b5f61178082611493565b61178a818561149d565b93508360208202850161179c856114ad565b805f5b858110156117d757848403895281516117b88582611757565b94506117c38361176a565b925060208a0199505060018101905061179f565b50829750879550505050505092915050565b5f6020820190508181035f8301526118018184611776565b905092915050565b611812816110d4565b82525050565b5f60208201905061182b5f830184611809565b92915050565b5f60ff82169050919050565b61184681611831565b8114611850575f80fd5b50565b5f815190506118618161183d565b92915050565b5f610160828403121561187d5761187c6111f2565b5b61188861016061108b565b90505f611897848285016110f3565b5f8301525060206118aa84828501611005565b60208301525060406118be84828501611005565b60408301525060606118d284828501611005565b60608301525060806118e684828501611853565b60808301525060a06118fa848285016110f3565b60a08301525060c061190e848285016110f3565b60c08301525060e0611922848285016110f3565b60e083015250610100611937848285016110f3565b6101008301525061012061194d848285016110f3565b6101208301525061014061196384828501611005565b6101408301525092915050565b5f610160828403121561198657611985610fb7565b5b5f61199384828501611867565b91505092915050565b5f6040820190506119af5f830185611809565b6119bc6020830184611809565b9392505050565b5f608082840312156119d8576119d76111f2565b5b6119e2608061108b565b90505f6119f184828501611853565b5f830152506020611a04848285016110f3565b6020830152506040611a18848285016110f3565b6040830152506060611a2c848285016110f3565b60608301525092915050565b5f60808284031215611a4d57611a4c610fb7565b5b5f611a5a848285016119c3565b91505092915050565b5f67ffffffffffffffff821115611a7d57611a7c61102d565b5b602082029050602081019050919050565b5f611aa0611a9b84611a63565b61108b565b90508083825260208201905060208402830185811115611ac357611ac26110d0565b5b835b81811015611aec5780611ad88882611005565b845260208401935050602081019050611ac5565b5050509392505050565b5f82601f830112611b0a57611b09611019565b5b8151611b1a848260208601611a8e565b91505092915050565b5f60208284031215611b3857611b37610fb7565b5b5f82015167ffffffffffffffff811115611b5557611b54610fbb565b5b611b6184828501611af6565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ba1826110d4565b9150611bac836110d4565b9250828201905080821115611bc457611bc3611b6a565b5b92915050565b5f611bd4826110d4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c0657611c05611b6a565b5b600182019050919050565b611c1a81610fde565b82525050565b5f602082019050611c335f830184611c11565b92915050565b5f60208284031215611c4e57611c4d610fb7565b5b5f611c5b848285016110f3565b91505092915050565b5f606082019050611c775f830186611809565b611c846020830185611809565b611c916040830184611c11565b949350505050565b5f819050919050565b611cab81611c99565b8114611cb5575f80fd5b50565b5f81519050611cc681611ca2565b92915050565b5f60808284031215611ce157611ce06111f2565b5b611ceb608061108b565b90505f611cfa84828501611cb8565b5f830152506020611d0d84828501611cb8565b6020830152506040611d21848285016110f3565b6040830152506060611d35848285016110f3565b60608301525092915050565b5f60808284031215611d5657611d55610fb7565b5b5f611d6384828501611ccc565b91505092915050565b5f604082019050611d7f5f830185611c11565b611d8c6020830184611809565b9392505050565b5f60408284031215611da857611da76111f2565b5b611db2604061108b565b90505f611dc1848285016110f3565b5f830152506020611dd4848285016110f3565b60208301525092915050565b5f60408284031215611df557611df4610fb7565b5b5f611e0284828501611d93565b91505092915050565b5f606082019050611e1e5f830186611c11565b611e2b6020830185611c11565b611e386040830184611809565b949350505050565b5f60808284031215611e5557611e546111f2565b5b611e5f608061108b565b90505f611e6e848285016110f3565b5f830152506020611e81848285016110f3565b6020830152506040611e95848285016110f3565b6040830152506060611ea9848285016110f3565b60608301525092915050565b5f60808284031215611eca57611ec9610fb7565b5b5f611ed784828501611e40565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f17826110d4565b9150611f22836110d4565b925082611f3257611f31611ee0565b5b828204905092915050565b5f611f47826110d4565b9150611f52836110d4565b9250828202611f60816110d4565b91508282048414831517611f7757611f76611b6a565b5b5092915050565b5f611f88826110d4565b9150611f93836110d4565b9250828203905081811115611fab57611faa611b6a565b5b9291505056fe',
|
|
6
|
+
'0x608060405234801561000f575f80fd5b50604051611fad380380611fad8339818101604052810190610031919061139a565b5f825167ffffffffffffffff81111561004d5761004c611028565b5b60405190808252806020026020018201604052801561008657816020015b610073610f23565b81526020019060019003908161006b5790505b509050845f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f62093a8090505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338013f026040518163ffffffff1660e01b8152600401602060405180830381865afa158015610137573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015b9190611436565b73ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c79190611436565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b8451811015610287575f85828151811061022557610224611461565b5b6020026020010151905061025b878287858151811061024757610246611461565b5b6020026020010151866102b660201b60201c565b84838151811061026e5761026d611461565b5b6020026020010181905250508080600101915050610208565b505f8260405160200161029a91906117e4565b6040516020818303038152906040529050602081018059038082f35b6102be610f23565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635598f8cc866040518263ffffffff1660e01b81526004016103189190611813565b61016060405180830381865afa158015610334573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610358919061196b565b90505f81610100015190505f826080015160ff1667ffffffffffffffff81111561038557610384611028565b5b6040519080825280602002602001820160405280156103be57816020015b6103ab610f3c565b8152602001906001900390816103a35790505b5090505f5b815181101561059a575f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317f3a7228a866040518363ffffffff1660e01b8152600401610428929190611997565b608060405180830381865afa158015610443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104679190611a33565b90505f8160200151146104a75780602001518560c001818152505080604001518560a00181815250508460800151856080019060ff16908160ff16815250505b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636fb08df28b6040518263ffffffff1660e01b81526004016105019190611813565b5f60405180830381865afa15801561051b573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105439190611b1e565b9050610559868c8b888e866105bd60201b60201c565b84848151811061056c5761056b611461565b5b602002602001018190525087856105839190611b92565b9450828061059090611bc5565b93505050506103c3565b604051806040016040528089815260200183815250945050505050949350505050565b6105c5610f3c565b5f806105d787876108a060201b60201c565b915091505f8214806105e857505f81145b15610682576040518060e001604052808781526020015f81526020015f151581526020015f151581526020015f151581526020015f81526020015f67ffffffffffffffff81111561063c5761063b611028565b5b60405190808252806020026020018201604052801561067557816020015b610662610f79565b81526020019060019003908161065a5790505b5081525092505050610896565b5f805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303f17e568c604001516040518263ffffffff1660e01b81526004016106e09190611c1b565b602060405180830381865afa1580156106fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071f9190611c34565b116107b5575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b09190611c34565b610851565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303f17e568b604001516040518263ffffffff1660e01b81526004016108119190611c1b565b602060405180830381865afa15801561082c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108509190611c34565b5b90505f6108698b8b86868c8c8861093560201b60201c565b90505f8651111561088e576108858b878a610c8260201b60201c565b8160c001819052505b809450505050505b9695505050505050565b5f805f5b845181101561092657838582815181106108c1576108c0611461565b5b60200260200101515f015103610919578481815181106108e4576108e3611461565b5b60200260200101516020015185828151811061090357610902611461565b5b602002602001015160400151925092505061092e565b80806001019150506108a4565b505f80915091505b9250929050565b61093d610f3c565b5f80805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166366629f1286888c6040518463ffffffff1660e01b815260040161099c93929190611c5f565b602060405180830381865afa1580156109b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109db9190611c34565b036109f5576109f289888886610e5560201b60201c565b90505b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329597009876040518263ffffffff1660e01b8152600401610a509190611813565b608060405180830381865afa158015610a6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8f9190611d3c565b90506040518060e001604052808781526020018381526020015f801b83602001511415151581526020015f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e31c6a638e602001518b6040518363ffffffff1660e01b8152600401610b1a929190611d67565b6040805180830381865afa158015610b34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b589190611ddb565b6020015111151581526020015f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bef3ba998d8f602001518c6040518463ffffffff1660e01b8152600401610bc793929190611e06565b608060405180830381865afa158015610be2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c069190611eb0565b606001511115158152602001826040015181526020015f67ffffffffffffffff811115610c3657610c35611028565b5b604051908082528060200260200182016040528015610c6f57816020015b610c5c610f79565b815260200190600190039081610c545790505b5081525092505050979650505050505050565b60605f835167ffffffffffffffff811115610ca057610c9f611028565b5b604051908082528060200260200182016040528015610cd957816020015b610cc6610f79565b815260200190600190039081610cbe5790505b5090505f5b8451811015610e4957848181518110610cfa57610cf9611461565b5b6020026020010151828281518110610d1557610d14611461565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bef3ba99878481518110610da357610da2611461565b5b60200260200101518960200151886040518463ffffffff1660e01b8152600401610dcf93929190611e06565b608060405180830381865afa158015610dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0e9190611eb0565b6060015111828281518110610e2657610e25611461565b5b602002602001015160200190151590811515815250508080600101915050610cde565b50809150509392505050565b5f805f90505f84670de0b6b3a7640000886080015160ff168960c00151610e7c9190611f08565b610e869190611f38565b610e909190611f08565b90508660a00151811115610ec857670de0b6b3a76400008760a0015187610eb79190611f38565b610ec19190611f08565b9150610eea565b670de0b6b3a76400008187610edd9190611f38565b610ee79190611f08565b91505b670de0b6b3a76400008483610eff9190611f38565b610f099190611f08565b82610f149190611f79565b91508192505050949350505050565b60405180604001604052805f8152602001606081525090565b6040518060e001604052805f81526020015f81526020015f151581526020015f151581526020015f151581526020015f8152602001606081525090565b60405180604001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610fe382610fba565b9050919050565b610ff381610fd9565b8114610ffd575f80fd5b50565b5f8151905061100e81610fea565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61105e82611018565b810181811067ffffffffffffffff8211171561107d5761107c611028565b5b80604052505050565b5f61108f610fa9565b905061109b8282611055565b919050565b5f67ffffffffffffffff8211156110ba576110b9611028565b5b602082029050602081019050919050565b5f80fd5b5f819050919050565b6110e1816110cf565b81146110eb575f80fd5b50565b5f815190506110fc816110d8565b92915050565b5f61111461110f846110a0565b611086565b90508083825260208201905060208402830185811115611137576111366110cb565b5b835b81811015611160578061114c88826110ee565b845260208401935050602081019050611139565b5050509392505050565b5f82601f83011261117e5761117d611014565b5b815161118e848260208601611102565b91505092915050565b5f67ffffffffffffffff8211156111b1576111b0611028565b5b602082029050602081019050919050565b5f67ffffffffffffffff8211156111dc576111db611028565b5b602082029050602081019050919050565b5f80fd5b5f60608284031215611206576112056111ed565b5b6112106060611086565b90505f61121f848285016110ee565b5f830152506020611232848285016110ee565b6020830152506040611246848285016110ee565b60408301525092915050565b5f61126461125f846111c2565b611086565b90508083825260208201905060608402830185811115611287576112866110cb565b5b835b818110156112b0578061129c88826111f1565b845260208401935050606081019050611289565b5050509392505050565b5f82601f8301126112ce576112cd611014565b5b81516112de848260208601611252565b91505092915050565b5f6112f96112f484611197565b611086565b9050808382526020820190506020840283018581111561131c5761131b6110cb565b5b835b8181101561136357805167ffffffffffffffff81111561134157611340611014565b5b80860161134e89826112ba565b8552602085019450505060208101905061131e565b5050509392505050565b5f82601f83011261138157611380611014565b5b81516113918482602086016112e7565b91505092915050565b5f805f80608085870312156113b2576113b1610fb2565b5b5f6113bf87828801611000565b94505060206113d087828801611000565b935050604085015167ffffffffffffffff8111156113f1576113f0610fb6565b5b6113fd8782880161116a565b925050606085015167ffffffffffffffff81111561141e5761141d610fb6565b5b61142a8782880161136d565b91505092959194509250565b5f6020828403121561144b5761144a610fb2565b5b5f61145884828501611000565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6114c0816110cf565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f8115159050919050565b611503816114ef565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61153b81610fd9565b82525050565b604082015f8201516115555f850182611532565b50602082015161156860208501826114fa565b50505050565b5f6115798383611541565b60408301905092915050565b5f602082019050919050565b5f61159b82611509565b6115a58185611513565b93506115b083611523565b805f5b838110156115e05781516115c7888261156e565b97506115d283611585565b9250506001810190506115b3565b5085935050505092915050565b5f60e083015f8301516116025f8601826114b7565b50602083015161161560208601826114b7565b50604083015161162860408601826114fa565b50606083015161163b60608601826114fa565b50608083015161164e60808601826114fa565b5060a083015161166160a08601826114b7565b5060c083015184820360c08601526116798282611591565b9150508091505092915050565b5f61169183836115ed565b905092915050565b5f602082019050919050565b5f6116af826114c6565b6116b981856114d0565b9350836020820285016116cb856114e0565b805f5b8581101561170657848403895281516116e78582611686565b94506116f283611699565b925060208a019950506001810190506116ce565b50829750879550505050505092915050565b5f604083015f83015161172d5f8601826114b7565b506020830151848203602086015261174582826116a5565b9150508091505092915050565b5f61175d8383611718565b905092915050565b5f602082019050919050565b5f61177b8261148e565b6117858185611498565b935083602082028501611797856114a8565b805f5b858110156117d257848403895281516117b38582611752565b94506117be83611765565b925060208a0199505060018101905061179a565b50829750879550505050505092915050565b5f6020820190508181035f8301526117fc8184611771565b905092915050565b61180d816110cf565b82525050565b5f6020820190506118265f830184611804565b92915050565b5f60ff82169050919050565b6118418161182c565b811461184b575f80fd5b50565b5f8151905061185c81611838565b92915050565b5f6101608284031215611878576118776111ed565b5b611883610160611086565b90505f611892848285016110ee565b5f8301525060206118a584828501611000565b60208301525060406118b984828501611000565b60408301525060606118cd84828501611000565b60608301525060806118e18482850161184e565b60808301525060a06118f5848285016110ee565b60a08301525060c0611909848285016110ee565b60c08301525060e061191d848285016110ee565b60e083015250610100611932848285016110ee565b61010083015250610120611948848285016110ee565b6101208301525061014061195e84828501611000565b6101408301525092915050565b5f610160828403121561198157611980610fb2565b5b5f61198e84828501611862565b91505092915050565b5f6040820190506119aa5f830185611804565b6119b76020830184611804565b9392505050565b5f608082840312156119d3576119d26111ed565b5b6119dd6080611086565b90505f6119ec8482850161184e565b5f8301525060206119ff848285016110ee565b6020830152506040611a13848285016110ee565b6040830152506060611a27848285016110ee565b60608301525092915050565b5f60808284031215611a4857611a47610fb2565b5b5f611a55848285016119be565b91505092915050565b5f67ffffffffffffffff821115611a7857611a77611028565b5b602082029050602081019050919050565b5f611a9b611a9684611a5e565b611086565b90508083825260208201905060208402830185811115611abe57611abd6110cb565b5b835b81811015611ae75780611ad38882611000565b845260208401935050602081019050611ac0565b5050509392505050565b5f82601f830112611b0557611b04611014565b5b8151611b15848260208601611a89565b91505092915050565b5f60208284031215611b3357611b32610fb2565b5b5f82015167ffffffffffffffff811115611b5057611b4f610fb6565b5b611b5c84828501611af1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b9c826110cf565b9150611ba7836110cf565b9250828201905080821115611bbf57611bbe611b65565b5b92915050565b5f611bcf826110cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c0157611c00611b65565b5b600182019050919050565b611c1581610fd9565b82525050565b5f602082019050611c2e5f830184611c0c565b92915050565b5f60208284031215611c4957611c48610fb2565b5b5f611c56848285016110ee565b91505092915050565b5f606082019050611c725f830186611804565b611c7f6020830185611804565b611c8c6040830184611c0c565b949350505050565b5f819050919050565b611ca681611c94565b8114611cb0575f80fd5b50565b5f81519050611cc181611c9d565b92915050565b5f60808284031215611cdc57611cdb6111ed565b5b611ce66080611086565b90505f611cf584828501611cb3565b5f830152506020611d0884828501611cb3565b6020830152506040611d1c848285016110ee565b6040830152506060611d30848285016110ee565b60608301525092915050565b5f60808284031215611d5157611d50610fb2565b5b5f611d5e84828501611cc7565b91505092915050565b5f604082019050611d7a5f830185611c0c565b611d876020830184611804565b9392505050565b5f60408284031215611da357611da26111ed565b5b611dad6040611086565b90505f611dbc848285016110ee565b5f830152506020611dcf848285016110ee565b60208301525092915050565b5f60408284031215611df057611def610fb2565b5b5f611dfd84828501611d8e565b91505092915050565b5f606082019050611e195f830186611c0c565b611e266020830185611c0c565b611e336040830184611804565b949350505050565b5f60808284031215611e5057611e4f6111ed565b5b611e5a6080611086565b90505f611e69848285016110ee565b5f830152506020611e7c848285016110ee565b6020830152506040611e90848285016110ee565b6040830152506060611ea4848285016110ee565b60608301525092915050565b5f60808284031215611ec557611ec4610fb2565b5b5f611ed284828501611e3b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f12826110cf565b9150611f1d836110cf565b925082611f2d57611f2c611edb565b5b828204905092915050565b5f611f42826110cf565b9150611f4d836110cf565b9250828202611f5b816110cf565b91508282048414831517611f7257611f71611b65565b5b5092915050565b5f611f83826110cf565b9150611f8e836110cf565b9250828203905081811115611fa657611fa5611b65565b5b9291505056fe',
|
|
7
7
|
},
|
|
8
8
|
inputType: {
|
|
9
9
|
42161: [
|
package/src/index.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
///////////////////////////////////////////////////////////////
|
|
4
4
|
export { getPricesFromLlama, getPricesFromGeckoTerminal } from './prices.js'
|
|
5
5
|
export * from './sdt.js'
|
|
6
|
-
export
|
|
6
|
+
export * from './tokens.js'
|
|
7
|
+
export { rpcCall, batchJsonRpc, ethGetTxsReceipts } from './utils.js'
|
|
7
8
|
export type { BatchJsonRpcArgs } from './utils.js'
|
|
8
9
|
|
|
9
10
|
////////////////////////////////////////////////////////////////
|
|
@@ -99,8 +99,8 @@ export const getGaugesWeights = async (provider: any, rpc: string): Promise<Gaug
|
|
|
99
99
|
return {
|
|
100
100
|
gauge,
|
|
101
101
|
inflationRate: formatUnits(inflationRate || 0, 0),
|
|
102
|
-
relativeWeight: formatUnits(gaugeWeight[2]!.result, 0),
|
|
103
|
-
futureRelativeWeight: formatUnits(gaugeWeight[3]!.result, 0),
|
|
102
|
+
relativeWeight: formatUnits(gaugeWeight[2]!.result || 0, 0),
|
|
103
|
+
futureRelativeWeight: formatUnits(gaugeWeight[3]!.result || 0, 0),
|
|
104
104
|
}
|
|
105
105
|
}),
|
|
106
106
|
}
|
package/src/utils.ts
CHANGED
|
@@ -121,6 +121,25 @@ export const rpcCall = async (rpc: string, params: RpcCallArgs[]) => {
|
|
|
121
121
|
return request
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
export const ethGetTxsReceipts = async (rpc: string, txHashes: string[]) => {
|
|
125
|
+
const request = (
|
|
126
|
+
await fetch(rpc, {
|
|
127
|
+
method: 'POST',
|
|
128
|
+
headers: { 'Content-Type': 'application/json' },
|
|
129
|
+
body: JSON.stringify(
|
|
130
|
+
txHashes.map((txHash, index) => ({
|
|
131
|
+
id: index,
|
|
132
|
+
jsonrpc: '2.0',
|
|
133
|
+
method: 'eth_getTransactionReceipt',
|
|
134
|
+
params: [txHash],
|
|
135
|
+
})),
|
|
136
|
+
),
|
|
137
|
+
})
|
|
138
|
+
).json()
|
|
139
|
+
|
|
140
|
+
return request
|
|
141
|
+
}
|
|
142
|
+
|
|
124
143
|
export interface BatchJsonRpcArgs {
|
|
125
144
|
rpc: string
|
|
126
145
|
calls: string[]
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import { ONE_WEEK,
|
|
2
|
-
import { filter, range, remove, uniq } from 'lodash-es'
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { ONE_WEEK, Zero, contract, contracts, tokenWithAddress, tokens } from '@stake-dao/constants'
|
|
2
|
+
import { chunk, filter, range, remove, uniq } from 'lodash-es'
|
|
3
|
+
import {
|
|
4
|
+
decodeAbiParameters,
|
|
5
|
+
encodeAbiParameters,
|
|
6
|
+
formatEther,
|
|
7
|
+
formatUnits,
|
|
8
|
+
parseAbiParameters,
|
|
9
|
+
zeroAddress,
|
|
10
|
+
} from 'viem'
|
|
11
|
+
import { arbitrum, mainnet } from 'viem/chains'
|
|
5
12
|
import batchCampaigns from '../bytecodes/votemarket/batchCampaigns.js'
|
|
13
|
+
import batchCampaignsRestrictedVotes from '../bytecodes/votemarket/batchCampaignsRestrictedVotes.js'
|
|
6
14
|
import batchGaugesWeight from '../bytecodes/votemarket/batchGaugesWeight.js'
|
|
7
15
|
import { getPrices } from '../prices.js'
|
|
8
16
|
import { rpcFetchTokensData } from '../tokens.js'
|
|
9
17
|
import { batchJsonRpc, concatBytecode, equalTlc, rpcCall, rpcGetLastBlockTimetstamp } from '../utils.js'
|
|
18
|
+
import { fetchPendingRemoteCampaigns } from './fetchPendingRemoteCampaigns.js'
|
|
10
19
|
import type { Campaign, RawCampaign, RawPeriod } from './types.js'
|
|
11
20
|
|
|
12
21
|
export const CAMPAIGNS_CHUNK_SIZE = 10
|
|
@@ -15,8 +24,13 @@ export const CLOSE_WINDOW_LENGTH = 4 // weeks
|
|
|
15
24
|
|
|
16
25
|
interface FetchCampaignsProps {
|
|
17
26
|
platform: string
|
|
27
|
+
gaugeController: string
|
|
28
|
+
veToken: string
|
|
18
29
|
chainId: number
|
|
19
30
|
rpcs: { [chainId: number]: string }
|
|
31
|
+
etherscanApiKey?: string
|
|
32
|
+
fromBlock?: number
|
|
33
|
+
mainnetVmRemote?: string
|
|
20
34
|
}
|
|
21
35
|
|
|
22
36
|
const updateEpoch = ({
|
|
@@ -79,7 +93,16 @@ const updateEpoch = ({
|
|
|
79
93
|
return campaign
|
|
80
94
|
}
|
|
81
95
|
|
|
82
|
-
export const fetchCampaigns = async ({
|
|
96
|
+
export const fetchCampaigns = async ({
|
|
97
|
+
platform,
|
|
98
|
+
gaugeController,
|
|
99
|
+
veToken,
|
|
100
|
+
chainId,
|
|
101
|
+
rpcs,
|
|
102
|
+
etherscanApiKey,
|
|
103
|
+
fromBlock,
|
|
104
|
+
mainnetVmRemote,
|
|
105
|
+
}: FetchCampaignsProps): Promise<Campaign[]> => {
|
|
83
106
|
const rpc = rpcs[chainId]!
|
|
84
107
|
|
|
85
108
|
const block = await rpcGetLastBlockTimetstamp(rpc)
|
|
@@ -101,7 +124,7 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
101
124
|
return concatBytecode(batchCampaigns.bytecode[1]!, inputData)
|
|
102
125
|
})
|
|
103
126
|
|
|
104
|
-
|
|
127
|
+
let rawCampaigns = await batchJsonRpc({
|
|
105
128
|
rpc,
|
|
106
129
|
calls,
|
|
107
130
|
outputTypeAbi: batchCampaigns.outputType![1]!,
|
|
@@ -109,9 +132,65 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
109
132
|
callsKey: `votemarket/fetchCampaigns.ts: rawCampaigns - chainId ${chainId} - rpc ${rpc}`,
|
|
110
133
|
})
|
|
111
134
|
|
|
135
|
+
if (chainId === arbitrum.id && etherscanApiKey && fromBlock && mainnetVmRemote) {
|
|
136
|
+
const nextIndex = rawCampaigns.length > 0 ? Math.max(...rawCampaigns.map((rc) => Number(rc.id))) + 1 : 0
|
|
137
|
+
const { remoteCampaigns: pendingRemoteCampaigns } = await fetchPendingRemoteCampaigns({
|
|
138
|
+
mainnetVmRemote,
|
|
139
|
+
chainId,
|
|
140
|
+
fromBlock,
|
|
141
|
+
etherscanApiKey,
|
|
142
|
+
nextIndex,
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
rawCampaigns = [
|
|
146
|
+
...rawCampaigns,
|
|
147
|
+
...pendingRemoteCampaigns.filter((rmtC) => {
|
|
148
|
+
const existingCampaign = rawCampaigns.find(
|
|
149
|
+
(rc) =>
|
|
150
|
+
rc.addresses.length === rmtC.addresses.length &&
|
|
151
|
+
rc.addresses.every((rca, index) => equalTlc(rca, rmtC.addresses[index])) &&
|
|
152
|
+
equalTlc(rc.rewardAddress, rmtC.rewardAddress) &&
|
|
153
|
+
rc.rewardChainId === rmtC.rewardChainId &&
|
|
154
|
+
rc.campaign.startTimestamp === rmtC.campaign.startTimestamp &&
|
|
155
|
+
rc.campaign.endTimestamp === rmtC.campaign.endTimestamp &&
|
|
156
|
+
rc.campaign.numberOfPeriods === rmtC.campaign.numberOfPeriods &&
|
|
157
|
+
rc.campaign.maxRewardPerVote === rmtC.campaign.maxRewardPerVote &&
|
|
158
|
+
rc.campaign.totalRewardAmount === rmtC.campaign.totalRewardAmount &&
|
|
159
|
+
equalTlc(rc.campaign.gauge, rmtC.campaign.gauge) &&
|
|
160
|
+
equalTlc(rc.campaign.hook, rmtC.campaign.hook) &&
|
|
161
|
+
equalTlc(rc.campaign.manager, rmtC.campaign.manager),
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
return typeof existingCampaign === 'undefined'
|
|
165
|
+
}),
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const callsRestrictedVotes = rawCampaigns
|
|
170
|
+
.filter((rc) => rc.addresses.length > 0)
|
|
171
|
+
.map((rc) => [rc.campaign.chainId, rc.id, rc.campaign.gauge, rc.addresses])
|
|
172
|
+
const callsRestrictedVotesChunks = chunk(callsRestrictedVotes, CAMPAIGNS_CHUNK_SIZE).map((restrictedVoteChunk) => {
|
|
173
|
+
const inputData = encodeAbiParameters(parseAbiParameters(batchCampaignsRestrictedVotes.inputType[1]!) as any, [
|
|
174
|
+
veToken,
|
|
175
|
+
gaugeController,
|
|
176
|
+
restrictedVoteChunk,
|
|
177
|
+
])
|
|
178
|
+
return concatBytecode(batchCampaignsRestrictedVotes.bytecode[1]!, inputData)
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
const rawCampaignsRestrictedVotes = await batchJsonRpc({
|
|
182
|
+
rpc: rpcs[mainnet.id]!,
|
|
183
|
+
calls: callsRestrictedVotesChunks,
|
|
184
|
+
outputTypeAbi: batchCampaignsRestrictedVotes.outputType![1]!,
|
|
185
|
+
parse: false,
|
|
186
|
+
callsKey: `votemarket/fetchCampaigns.ts: rawCampaignsRestrictedVotes - chainId ${mainnet.id} - rpc ${rpcs[
|
|
187
|
+
mainnet.id
|
|
188
|
+
]!}`,
|
|
189
|
+
})
|
|
190
|
+
|
|
112
191
|
const campaignsGauges: string[] = uniq(rawCampaigns.map((rc) => rc.campaign.gauge))
|
|
113
192
|
const rawGaugesWeights = await batchJsonRpc({
|
|
114
|
-
rpc:
|
|
193
|
+
rpc: rpcs[mainnet.id]!,
|
|
115
194
|
calls: [
|
|
116
195
|
concatBytecode(
|
|
117
196
|
batchGaugesWeight.bytecode[mainnet.id]!,
|
|
@@ -122,10 +201,12 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
122
201
|
),
|
|
123
202
|
],
|
|
124
203
|
outputTypeAbi: batchGaugesWeight.outputTypeHr[mainnet.id]!,
|
|
125
|
-
callsKey: `votemarket/fetchCampaigns.ts: rawGaugesWeights - chainId ${mainnet.id} - rpc ${
|
|
204
|
+
callsKey: `votemarket/fetchCampaigns.ts: rawGaugesWeights - chainId ${mainnet.id} - rpc ${rpcs[mainnet.id]!}`,
|
|
126
205
|
})
|
|
127
206
|
|
|
128
|
-
const campaignsTokens: string[] = uniq(
|
|
207
|
+
const campaignsTokens: string[] = uniq(
|
|
208
|
+
rawCampaigns.map((rc) => (!rc.isPendingRemote ? rc.campaign.rewardToken : undefined)).filter(Boolean),
|
|
209
|
+
)
|
|
129
210
|
const tokensToFetch: string[] = remove(campaignsTokens, (t) => !tokenWithAddress(t, chainId))
|
|
130
211
|
const rawTokensData: any[] = tokensToFetch.length > 0 ? await rpcFetchTokensData(chainId, rpc, tokensToFetch) : []
|
|
131
212
|
|
|
@@ -165,6 +246,7 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
165
246
|
// { address: '0x0Cc20784f790805537D4eE33B41f1aC4eC55446B', symbol: 'USDC', usdPrice: 1 }, // For test purpose
|
|
166
247
|
// { address: '0x59c9a01163e685719FAbE5De34779F563f49D4a3', symbol: 'CRV', usdPrice: 30 }, // For test purpose
|
|
167
248
|
// { address: '0x3c7b193aa39a85FDE911465d35CE3A74499F0A7B', symbol: 'ARR', usdPrice: 10 }, // For test purpose
|
|
249
|
+
//{ address: '0xd9879d9dbdc5042d8f1c2710be293909b985dc90', symbol: 'rEYWA', usdPrice: 0.14 }, // tmp rEYWA price
|
|
168
250
|
]
|
|
169
251
|
|
|
170
252
|
const allFetchedTokens = [...fetchedTokens, ...nativeFetchedTokens]
|
|
@@ -173,17 +255,26 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
173
255
|
|
|
174
256
|
const campaigns = rawCampaigns.map((rc) => {
|
|
175
257
|
const gaugeWeightData = rawGaugesWeights.find((g) => equalTlc(g.gauge, rc.campaign.gauge))
|
|
176
|
-
|
|
177
|
-
let receiptRewardToken = undefined
|
|
258
|
+
let receiptRewardToken: any = undefined
|
|
178
259
|
let rewardToken = allFetchedTokens.find(
|
|
179
260
|
(t) => equalTlc(t.address, rc.campaign.rewardToken) && t.chainId === chainId,
|
|
180
261
|
)
|
|
181
262
|
|
|
182
|
-
if (!equalTlc(rewardToken.address, rc.rewardAddress)) {
|
|
263
|
+
if (rc.isPendingRemote || !equalTlc(rewardToken.address, rc.rewardAddress)) {
|
|
183
264
|
receiptRewardToken = rewardToken
|
|
184
265
|
rewardToken = allFetchedTokens.find(
|
|
185
266
|
(t) => equalTlc(t.address, rc.rewardAddress) && t.chainId === Number(rc.rewardChainId),
|
|
186
267
|
)
|
|
268
|
+
|
|
269
|
+
if (rc.isPendingRemote) {
|
|
270
|
+
receiptRewardToken = {
|
|
271
|
+
name: `LaPoste ${rewardToken.name}`,
|
|
272
|
+
symbol: `p${rewardToken.symbol}`,
|
|
273
|
+
address: undefined,
|
|
274
|
+
decimals: rewardToken.decimals,
|
|
275
|
+
chainId,
|
|
276
|
+
}
|
|
277
|
+
}
|
|
187
278
|
}
|
|
188
279
|
|
|
189
280
|
const decimals = rewardToken ? rewardToken.decimals : 18
|
|
@@ -215,6 +306,10 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
215
306
|
const rawCurrentPeriod = rc.periods[indexOfCurrentPeriod]
|
|
216
307
|
const rawPreviousPeriod = rc.periods[indexOfCurrentPeriod - 1]
|
|
217
308
|
|
|
309
|
+
const restrictedVotesData = rawCampaignsRestrictedVotes.find(
|
|
310
|
+
(rvc) => rvc.chainId === rc.campaign.chainId && rvc.campaignId === rc.id && rvc.gauge === rc.campaign.gauge,
|
|
311
|
+
)
|
|
312
|
+
|
|
218
313
|
return {
|
|
219
314
|
id: Number(rc.id),
|
|
220
315
|
chainId,
|
|
@@ -234,6 +329,7 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
234
329
|
endTimestamp,
|
|
235
330
|
hook: rc.campaign.hook,
|
|
236
331
|
isClosed: rc.isClosed,
|
|
332
|
+
restrictedVotes: formatEther(restrictedVotesData?.restrictedVotes || Zero),
|
|
237
333
|
addresses: rc.addresses,
|
|
238
334
|
isWhitelist: rc.isWhitelistOnly,
|
|
239
335
|
isBlacklist: !rc.isWhitelistOnly && rc.addresses.length > 0,
|
|
@@ -251,6 +347,7 @@ export const fetchCampaigns = async ({ platform, chainId, rpcs }: FetchCampaigns
|
|
|
251
347
|
leftover: formatUnits(rawCurrentPeriod.leftover, decimals),
|
|
252
348
|
updated: rawCurrentPeriod.updated,
|
|
253
349
|
},
|
|
350
|
+
periods: rc.periods,
|
|
254
351
|
status: {
|
|
255
352
|
voteOpen: endTimestamp - ONE_WEEK > currentTimestamp,
|
|
256
353
|
voteClosed: currentTimestamp > endTimestamp - ONE_WEEK,
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { LA_POSTE_MESSAGE_SENT_EVENT, ONE_WEEK, One, Zero, contract } from '@stake-dao/constants'
|
|
2
|
+
import { range } from 'lodash-es'
|
|
3
|
+
import { decodeAbiParameters, decodeEventLog, parseAbiParameters, zeroAddress } from 'viem'
|
|
4
|
+
import { mainnet } from 'viem/chains'
|
|
5
|
+
|
|
6
|
+
export const CAMPAIGNS_CHUNK_SIZE = 10
|
|
7
|
+
export const CLAIM_WINDOW_LENGTH = 24 // weeks
|
|
8
|
+
export const CLOSE_WINDOW_LENGTH = 4 // weeks
|
|
9
|
+
|
|
10
|
+
interface FetchPendingRemoteCampaignsProps {
|
|
11
|
+
mainnetVmRemote: string
|
|
12
|
+
chainId: number
|
|
13
|
+
fromBlock: number
|
|
14
|
+
etherscanApiKey: string
|
|
15
|
+
nextIndex: number
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const fetchPendingRemoteCampaigns = async ({
|
|
19
|
+
mainnetVmRemote,
|
|
20
|
+
chainId,
|
|
21
|
+
fromBlock,
|
|
22
|
+
etherscanApiKey,
|
|
23
|
+
nextIndex,
|
|
24
|
+
}: FetchPendingRemoteCampaignsProps) => {
|
|
25
|
+
const queryParams = {
|
|
26
|
+
chainid: `${mainnet.id}`,
|
|
27
|
+
module: 'logs',
|
|
28
|
+
action: 'getLogs',
|
|
29
|
+
address: contract('laPoste', chainId),
|
|
30
|
+
topic0: LA_POSTE_MESSAGE_SENT_EVENT.topic,
|
|
31
|
+
topic0_3_opr: 'and',
|
|
32
|
+
topic3: mainnetVmRemote.replace('0x', '0x000000000000000000000000'),
|
|
33
|
+
apikey: etherscanApiKey,
|
|
34
|
+
fromBlock: `${fromBlock}`,
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const rawEvents = await fetch(`https://api.etherscan.io/v2/api?${new URLSearchParams(queryParams)}`).then((res) =>
|
|
38
|
+
res.json(),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
const campaignsParams: any[] = []
|
|
42
|
+
const manageParams: any[] = []
|
|
43
|
+
|
|
44
|
+
if (rawEvents.message === 'OK') {
|
|
45
|
+
for (const e of rawEvents.result) {
|
|
46
|
+
const decodedEvent: any = decodeEventLog({
|
|
47
|
+
abi: LA_POSTE_MESSAGE_SENT_EVENT.abi,
|
|
48
|
+
data: e.data,
|
|
49
|
+
topics: e.topics,
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
if (Number(decodedEvent.args.chainId) === chainId) {
|
|
54
|
+
const payload = decodeAbiParameters(
|
|
55
|
+
parseAbiParameters([
|
|
56
|
+
'Payload payload',
|
|
57
|
+
'struct Payload { uint256 actionType; address sender; bytes parameters }',
|
|
58
|
+
]),
|
|
59
|
+
decodedEvent.args.message.payload,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
// Create Campaign (actionType === 0)
|
|
63
|
+
if (payload[0].actionType === Zero) {
|
|
64
|
+
const decodedParams = decodeAbiParameters(
|
|
65
|
+
parseAbiParameters([
|
|
66
|
+
'CampaignCreationParams params',
|
|
67
|
+
'struct CampaignCreationParams { uint256 chainId; address gauge; address manager; address rewardToken; uint8 numberOfPeriods; uint256 maxRewardPerVote; uint256 totalRewardAmount; address[] addresses; address hook; bool isWhitelist; }',
|
|
68
|
+
]),
|
|
69
|
+
(payload[0] as any).parameters,
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
campaignsParams.push({ decoded: decodedParams[0], eventTimestamp: Number(e.timeStamp) })
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Manage Campaign (actionType === 1)
|
|
76
|
+
if (payload[0].actionType === One) {
|
|
77
|
+
const decodedParams = decodeAbiParameters(
|
|
78
|
+
parseAbiParameters([
|
|
79
|
+
'CampaignManagementParams params',
|
|
80
|
+
'struct CampaignManagementParams { uint256 campaignId; address rewardToken; uint8 numberOfPeriods; uint256 totalRewardAmount; uint256 maxRewardPerVote; }',
|
|
81
|
+
]),
|
|
82
|
+
(payload[0] as any).parameters,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
manageParams.push({ decoded: decodedParams[0], eventTimestamp: Number(e.timeStamp) })
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
} catch (err) {
|
|
89
|
+
console.error(err)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const remoteCampaigns = campaignsParams.map((element) => {
|
|
95
|
+
const campaignParams = element.decoded
|
|
96
|
+
|
|
97
|
+
const totalRewardAmount = campaignParams.totalRewardAmount
|
|
98
|
+
const maxRewardPerVote = campaignParams.maxRewardPerVote
|
|
99
|
+
const numberOfPeriods = BigInt(campaignParams.numberOfPeriods)
|
|
100
|
+
|
|
101
|
+
const startTimestamp = BigInt(Math.floor(element.eventTimestamp / ONE_WEEK) * ONE_WEEK + ONE_WEEK)
|
|
102
|
+
const endTimestamp = startTimestamp + numberOfPeriods * BigInt(ONE_WEEK)
|
|
103
|
+
|
|
104
|
+
const campaign = {
|
|
105
|
+
isPendingRemote: true,
|
|
106
|
+
id: BigInt(nextIndex),
|
|
107
|
+
addresses: campaignParams.addresses,
|
|
108
|
+
campaign: {
|
|
109
|
+
chainId: campaignParams.chainId,
|
|
110
|
+
startTimestamp,
|
|
111
|
+
endTimestamp,
|
|
112
|
+
gauge: campaignParams.gauge,
|
|
113
|
+
hook: campaignParams.hook,
|
|
114
|
+
manager: campaignParams.manager,
|
|
115
|
+
maxRewardPerVote,
|
|
116
|
+
numberOfPeriods: Number(numberOfPeriods),
|
|
117
|
+
rewardToken: zeroAddress, // Unknown
|
|
118
|
+
totalDistributed: Zero,
|
|
119
|
+
totalRewardAmount,
|
|
120
|
+
},
|
|
121
|
+
isKilled: false,
|
|
122
|
+
isWhitelistOnly: campaignParams.isWhitelist,
|
|
123
|
+
periodLeft: campaignParams.numberOfPeriods,
|
|
124
|
+
periods: range(0, Number(numberOfPeriods)).map((index) => ({
|
|
125
|
+
timestampStart: startTimestamp + BigInt(index) * BigInt(ONE_WEEK),
|
|
126
|
+
timestampEnd: startTimestamp + BigInt(ONE_WEEK) + BigInt(index) * BigInt(ONE_WEEK),
|
|
127
|
+
rewardPerPeriod: totalRewardAmount / numberOfPeriods,
|
|
128
|
+
rewardPerVote: maxRewardPerVote,
|
|
129
|
+
leftover: Zero,
|
|
130
|
+
updated: false,
|
|
131
|
+
})),
|
|
132
|
+
rewardAddress: campaignParams.rewardToken,
|
|
133
|
+
rewardChainId: BigInt(mainnet.id),
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
nextIndex++
|
|
137
|
+
return campaign
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
return { remoteCampaigns, remoteCampaignsUpdate: manageParams }
|
|
141
|
+
}
|