@wandevs/governance-contracts-sdk 1.8.3 → 1.9.0
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/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +41 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`viem`),t=require(`viem/chains`);const n={1:{types:[{type:`uint8`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`]},2:{types:[{type:`uint8`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`]},3:{types:[{type:`uint8`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`,`discord`]}};function r(e){return e===1||e===2||e===3}function i(e){return typeof e==`string`&&e.trim()!==``}function a(...t){let i=t[0];if(!r(i))throw Error(`Unsupported version - only versions 1, 2, 3 are supported`);let a=n[i];if(t.length!==a.types.length)throw Error(`Invalid number of arguments for version ${i} - expected ${a.types.length}, got ${t.length}`);return(0,e.encodeAbiParameters)(a.types,t)}function o(t){let a=s(t);if(!r(a))throw Error(`Unsupported version ${a} - only versions 1, 2, 3 are supported`);let o=n[a],c=(0,e.decodeAbiParameters)(o.types,t);if(c.length!==o.names.length)throw Error(`Corrupted data: decoded values count (${c.length}) does not match schema (${o.names.length})`);let l={};for(let e=0;e<o.names.length;e++){let t=o.names[e],n=c[e];i(t)&&n!==void 0&&(typeof n==`number`||typeof n==`string`)&&(l[t]=n)}return l}function s(e){if(!e||typeof e!=`string`||e.length<66)return 0;let t=e.startsWith(`0x`)?2:0,n=e.substring(t,t+64),i=parseInt(n,16);return r(i)?i:0}let c=function(e){return e[e.NotExists=0]=`NotExists`,e[e.Claimed=1]=`Claimed`,e[e.InProgress=2]=`InProgress`,e[e.ReadyToClaim=3]=`ReadyToClaim`,e}({}),l=function(e){return e[e.Proposer=0]=`Proposer`,e[e.Partner=1]=`Partner`,e[e.Voter=2]=`Voter`,e}({}),u=function(e){return e[e.None=0]=`None`,e[e.Burn=1]=`Burn`,e[e.Lock=2]=`Lock`,e}({}),d=function(e){return e[e.None=0]=`None`,e[e.For=1]=`For`,e[e.Against=2]=`Against`,e}({}),f=function(e){return e[e.None=0]=`None`,e[e.UnderReview=1]=`UnderReview`,e[e.Canceled=2]=`Canceled`,e[e.Fundraising=3]=`Fundraising`,e[e.VotingInProgress=4]=`VotingInProgress`,e[e.Succeeded=5]=`Succeeded`,e[e.Rejected=6]=`Rejected`,e[e.Failed=7]=`Failed`,e}({}),p=function(e){return e[e.Funding=0]=`Funding`,e[e.Technical=1]=`Technical`,e}({});const ee=[{type:`constructor`,inputs:[],stateMutability:`nonpayable`},{type:`receive`,stateMutability:`payable`},{type:`function`,name:`BURN`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`DEFAULT_ADMIN_ROLE`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`DENOMINATOR`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`MAX_REQUEST_WAN_RATIO_BPS_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`WAN_GOVERNOR_OPERATOR_ROLE`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`WAN_TOTAL_SUPPLY`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`cancelProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`claimPartnerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_requestId`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`claimProposerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_requestId`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`claimVoterWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_requestId`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`contributeProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`payable`},{type:`function`,name:`createProposal`,inputs:[{name:`_reqWanAmount`,type:`uint256`,internalType:`uint256`},{name:`_category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_description`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`payable`},{type:`function`,name:`getAllProposalCount`,inputs:[],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getFoundations`,inputs:[],outputs:[{name:``,type:`address[]`,internalType:`address[]`}],stateMutability:`view`},{type:`function`,name:`getProposalCountByRole`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalCountByState`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalId`,inputs:[{name:`_reqWanAmount`,type:`uint256`,internalType:`uint256`},{name:`_proposer`,type:`address`,internalType:`address`},{name:`_category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_description`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getProposalIdByRoleAt`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getProposalIdByStateAt`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getProposalInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`},{type:`function`,name:`getProposalInfoAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`},{type:`function`,name:`getProposalMultiplierCounts`,inputs:[],outputs:[{name:`proposalWanMultiplierCount`,type:`uint256`,internalType:`uint256`},{name:`votingWanMultiplierCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalPartnerAndVoterCounts`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`partnerCount`,type:`uint256`,internalType:`uint256`},{name:`voterCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalPartnerAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`getProposalPartnerInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_partner`,type:`address`,internalType:`address`}],outputs:[{name:`partnerInfo`,type:`tuple`,internalType:`struct IWanGovernor.PartnerInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]}]}],stateMutability:`view`},{type:`function`,name:`getProposalState`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],stateMutability:`view`},{type:`function`,name:`getProposalVoterAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`getProposalVoterInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_voter`,type:`address`,internalType:`address`}],outputs:[{name:`voterInfo`,type:`tuple`,internalType:`struct IWanGovernor.VoterInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`}]}],stateMutability:`view`},{type:`function`,name:`getProposalWanMultiplier`,inputs:[{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_lockDuration`,type:`uint128`,internalType:`uint128`}],outputs:[{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getRoleAdmin`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getUint`,inputs:[{name:`key`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getVotingWanMultiplier`,inputs:[{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_lockDuration`,type:`uint128`,internalType:`uint128`}],outputs:[{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getVotingWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getWanPower`,inputs:[{name:`multiplier`,type:`uint256`,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`wanPower`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`grantRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`hasProposalExists`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`state`,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`hasRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`initialize`,inputs:[{name:`_admin`,type:`address`,internalType:`address`},{name:`_operator`,type:`address`,internalType:`address`},{name:`_ultimateUniversalStore`,type:`address`,internalType:`contract IUltimateUniversalStore`},{name:`_proposalGlobalConfig`,type:`tuple`,internalType:`struct IWanGovernor.ProposalGlobalConfig`,components:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}]}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`isFoundation`,inputs:[{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:`isFoundationMember`,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`multicall`,inputs:[{name:`data`,type:`bytes[]`,internalType:`bytes[]`}],outputs:[{name:`results`,type:`bytes[]`,internalType:`bytes[]`}],stateMutability:`nonpayable`},{type:`function`,name:`proposalCategoryCount`,inputs:[{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`proposalGlobalConfig`,inputs:[],outputs:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`renounceRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`callerConfirmation`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`requestPartnerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`partnerRequestId`,type:`uint256`,internalType:`uint256`}],stateMutability:`nonpayable`},{type:`function`,name:`requestProposerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`proposerRequestId`,type:`uint256`,internalType:`uint256`}],stateMutability:`nonpayable`},{type:`function`,name:`requestVoterWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`voterRequestId`,type:`uint256`,internalType:`uint256`}],stateMutability:`nonpayable`},{type:`function`,name:`reviewProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`isApproved`,type:`bool`,internalType:`bool`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`revokeRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setFoundations`,inputs:[{name:`params`,type:`tuple[]`,internalType:`struct IWanGovernor.SetFoundationParam[]`,components:[{name:`account`,type:`address`,internalType:`address`},{name:`isFoundationMember`,type:`bool`,internalType:`bool`}]}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setProposalWanMultiplier`,inputs:[{name:`params`,type:`tuple[]`,internalType:`struct IWanGovernor.SetWanMultiplier[]`,components:[{name:`multiplier`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{name:`ifClean`,type:`bool`,internalType:`bool`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setUint`,inputs:[{name:`key`,type:`bytes32`,internalType:`bytes32`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setVotingWanMultiplier`,inputs:[{name:`params`,type:`tuple[]`,internalType:`struct IWanGovernor.SetWanMultiplier[]`,components:[{name:`multiplier`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{name:`ifClean`,type:`bool`,internalType:`bool`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`supportsInterface`,inputs:[{name:`interfaceId`,type:`bytes4`,internalType:`bytes4`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`tallyProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`totalProposalAmountInfo`,inputs:[],outputs:[{name:`allProposalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalBurnedWanAmount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`updateProposalGlobalConfig`,inputs:[{name:`_proposalGlobalConfig`,type:`tuple`,internalType:`struct IWanGovernor.ProposalGlobalConfig`,components:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}]}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`voteProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_lockDuration`,type:`uint128`,internalType:`uint128`},{name:`votePledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`payable`},{type:`event`,name:`CancelProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`proposer`,type:`address`,indexed:!0,internalType:`address`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`event`,name:`ClaimWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`proposalRole`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalRole`},{name:`wanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ClaimPartnerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ClaimProposerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ClaimVoterWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ContributeProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`partner`,type:`address`,indexed:!0,internalType:`address`},{name:`state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`event`,name:`CreateProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`proposer`,type:`address`,indexed:!0,internalType:`address`},{name:`state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`event`,name:`Initialized`,inputs:[{name:`version`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`RequestWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`proposalRole`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalRole`},{name:`wanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`RequestPartnerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`RequestProposerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`RequestVoterWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ReviewProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`isApproved`,type:`bool`,indexed:!0,internalType:`bool`},{name:`state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`reason`,type:`bytes`,indexed:!1,internalType:`bytes`}],anonymous:!1},{type:`event`,name:`RoleAdminChanged`,inputs:[{name:`role`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`previousAdminRole`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`newAdminRole`,type:`bytes32`,indexed:!0,internalType:`bytes32`}],anonymous:!1},{type:`event`,name:`RoleGranted`,inputs:[{name:`role`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`sender`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`RoleRevoked`,inputs:[{name:`role`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`sender`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`SetFoundation`,inputs:[{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`isFoundationMember`,type:`bool`,indexed:!0,internalType:`bool`}],anonymous:!1},{type:`event`,name:`SetProposalFailed`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`reason`,type:`bytes`,indexed:!1,internalType:`bytes`}],anonymous:!1},{type:`event`,name:`SetProposalStage`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`_state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`_category`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalCategory`},{name:`ifSet`,type:`bool`,indexed:!1,internalType:`bool`}],anonymous:!1},{type:`event`,name:`SetProposalStage`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`ifSet`,type:`bool`,indexed:!0,internalType:`bool`}],anonymous:!1},{type:`event`,name:`SetProposalWanMultiplier`,inputs:[{name:`multiplier`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`pledgeType`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`SetVotingWanMultiplier`,inputs:[{name:`multiplier`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`pledgeType`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`TallyProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateProposalGlobalConfig`,inputs:[{name:`proposalGlobalConfig`,type:`tuple`,indexed:!1,internalType:`struct IWanGovernor.ProposalGlobalConfig`,components:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}]}],anonymous:!1},{type:`event`,name:`VoteProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`voter`,type:`address`,indexed:!0,internalType:`address`},{name:`voteType`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.VoteType`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`error`,name:`AccessControlBadConfirmation`,inputs:[]},{type:`error`,name:`AccessControlUnauthorizedAccount`,inputs:[{name:`account`,type:`address`,internalType:`address`},{name:`neededRole`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`AddressEmptyCode`,inputs:[{name:`target`,type:`address`,internalType:`address`}]},{type:`error`,name:`AlreadyContributeProposal`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`partner`,type:`address`,internalType:`address`}]},{type:`error`,name:`AmountBelowMinimum`,inputs:[{name:`provided`,type:`uint256`,internalType:`uint256`},{name:`required`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`ApplicationExceedsLimit`,inputs:[{name:`requested`,type:`uint256`,internalType:`uint256`},{name:`limit`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`EthTransferFailed`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`},{name:`gasLimit`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`FailedCall`,inputs:[]},{type:`error`,name:`InvalidInitialization`,inputs:[]},{type:`error`,name:`InvalidInitialization`,inputs:[]},{type:`error`,name:`InvalidPledgeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{type:`error`,name:`InvalidVotePlegeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{type:`error`,name:`InvalidVoteType`,inputs:[{name:`voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`}]},{type:`error`,name:`LockPeriodNotReached`,inputs:[{name:`unlockTime`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`NotAdmin`,inputs:[{name:`account`,type:`address`,internalType:`address`}]},{type:`error`,name:`NotExistsRequestId`,inputs:[{name:`requestId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`NotInitializing`,inputs:[]},{type:`error`,name:`NotMatchArrayLength`,inputs:[]},{type:`error`,name:`NotRequestProposal`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`requestId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`NotSupportedPledgeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`}]},{type:`error`,name:`NotSupportedVotePledgeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`}]},{type:`error`,name:`ProposalAlreadyVoted`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`voter`,type:`address`,internalType:`address`}]},{type:`error`,name:`ProposalAlreadyExists`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotApproved`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotFundraising`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotReachedTallyStage`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotUnderReview`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotVotingInProgress`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalVotingEnded`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalVotingTallied`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProspectiveProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ReentrancyGuardReentrantCall`,inputs:[]},{type:`error`,name:`ReviewPendingProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`SafeCastOverflowedUintDowncast`,inputs:[{name:`bits`,type:`uint8`,internalType:`uint8`},{name:`value`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`SafeERC20FailedOperation`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`Unauthorized`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`},{name:`proposer`,type:`address`,internalType:`address`}]},{type:`error`,name:`UnauthorizedEtherTransfer`,inputs:[{name:`from`,type:`address`,internalType:`address`}]},{type:`error`,name:`VotingProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`VotingProposalRejected`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`WithdrawalNotRequested`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ZeroAddress`,inputs:[]}],m=[{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`aggregate`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{internalType:`bytes[]`,name:`returnData`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bool`,name:`allowFailure`,type:`bool`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call3[]`,name:`calls`,type:`tuple[]`}],name:`aggregate3`,outputs:[{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bool`,name:`allowFailure`,type:`bool`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call3Value[]`,name:`calls`,type:`tuple[]`}],name:`aggregate3Value`,outputs:[{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`blockAndAggregate`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{internalType:`bytes32`,name:`blockHash`,type:`bytes32`},{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[],name:`getBasefee`,outputs:[{internalType:`uint256`,name:`basefee`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`}],name:`getBlockHash`,outputs:[{internalType:`bytes32`,name:`blockHash`,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getBlockNumber`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getChainId`,outputs:[{internalType:`uint256`,name:`chainid`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockCoinbase`,outputs:[{internalType:`address`,name:`coinbase`,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockDifficulty`,outputs:[{internalType:`uint256`,name:`difficulty`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockGasLimit`,outputs:[{internalType:`uint256`,name:`gaslimit`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockTimestamp`,outputs:[{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`addr`,type:`address`}],name:`getEthBalance`,outputs:[{internalType:`uint256`,name:`balance`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getLastBlockHash`,outputs:[{internalType:`bytes32`,name:`blockHash`,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bool`,name:`requireSuccess`,type:`bool`},{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`tryAggregate`,outputs:[{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bool`,name:`requireSuccess`,type:`bool`},{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`tryBlockAndAggregate`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{internalType:`bytes32`,name:`blockHash`,type:`bytes32`},{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`}],h=[{type:`function`,name:`getEthBalance`,inputs:[{name:`addr`,type:`address`,internalType:`address`}],outputs:[{name:`balance`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function g(e,t){return{address:e,abi:h,functionName:`getEthBalance`,args:[t]}}const _=[{name:`balanceOf`,type:`function`,inputs:[{name:`owner`,type:`address`}],outputs:[{name:`balance`,type:`uint256`}],stateMutability:`view`}];function v(e,t){return{address:e,abi:_,functionName:`balanceOf`,args:[t]}}const y=[{type:`function`,name:`BURN`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`}];function b(e){return{address:e,abi:y,functionName:`BURN`}}const x=[{type:`function`,name:`isFoundation`,inputs:[{name:`caller`,type:`address`,internalType:`address`}],outputs:[{name:`isFoundationMember`,type:`bool`,internalType:`bool`}],stateMutability:`view`}];function S(e,t){return{address:e,abi:x,functionName:`isFoundation`,args:[t]}}const te=[{type:`function`,name:`getFoundations`,inputs:[],outputs:[{name:``,type:`address[]`,internalType:`address[]`}],stateMutability:`view`}];function ne(e){return{address:e,abi:te,functionName:`getFoundations`}}const re=[{type:`function`,name:`hasRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`}];function C(e,t,n){return{address:e,abi:re,functionName:`hasRole`,args:[n,t]}}const w=[{type:`function`,name:`proposalCategoryCount`,inputs:[{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function T(e,t,n){return{address:e,abi:w,functionName:`proposalCategoryCount`,args:[t,n]}}const E=[{type:`function`,name:`getProposalId`,inputs:[{name:`_reqWanAmount`,type:`uint256`,internalType:`uint256`},{name:`_proposer`,type:`address`,internalType:`address`},{name:`_category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_description`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function D(e,t,n,r,i,a){return{address:e,abi:E,functionName:`getProposalId`,args:[t,n,r,i,a]}}const O=[{type:`function`,name:`getProposalInfoAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`}];function k(e,t){return{address:e,abi:O,functionName:`getProposalInfoAt`,args:[t]}}const A=[{type:`function`,name:`getProposalInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`}];function j(e,t){return{address:e,abi:A,functionName:`getProposalInfo`,args:[t]}}const M=[{type:`function`,name:`getProposalIdByStateAt`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function N(e,t,n){return{address:e,abi:M,functionName:`getProposalIdByStateAt`,args:[t,n]}}const P=[{type:`function`,name:`getProposalCountByState`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function F(e,t){return{address:e,abi:P,functionName:`getProposalCountByState`,args:[t]}}const I=[{type:`function`,name:`getProposalCountByRole`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function L(e,t,n){return{address:e,abi:I,functionName:`getProposalCountByRole`,args:[t,n]}}const R=[{type:`function`,name:`getProposalPartnerAndVoterCounts`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`partnerCount`,type:`uint256`,internalType:`uint256`},{name:`voterCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function z(e,t){return{address:e,abi:R,functionName:`getProposalPartnerAndVoterCounts`,args:[t]}}const B=[{type:`function`,name:`getProposalPartnerInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_partner`,type:`address`,internalType:`address`}],outputs:[{name:`partnerInfo`,type:`tuple`,internalType:`struct IWanGovernor.PartnerInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]}]}],stateMutability:`view`}];function V(e,t,n){return{address:e,abi:B,functionName:`getProposalPartnerInfo`,args:[t,n]}}const H=[{type:`function`,name:`getProposalIdByRoleAt`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function U(e,t,n,r){return{address:e,abi:H,functionName:`getProposalIdByRoleAt`,args:[t,n,r]}}const W=[{type:`function`,name:`getAllProposalCount`,inputs:[],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function G(e){return{address:e,abi:W,functionName:`getAllProposalCount`,args:[]}}const K=[{type:`function`,name:`totalProposalAmountInfo`,inputs:[],outputs:[{name:`allProposalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalBurnedWanAmount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function q(e){return{address:e,abi:K,functionName:`totalProposalAmountInfo`}}const J=[{type:`function`,name:`proposalGlobalConfig`,inputs:[],outputs:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}],stateMutability:`view`}];function Y(e){return{address:e,abi:J,functionName:`proposalGlobalConfig`}}const X=[{type:`function`,name:`getProposalVoterInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_voter`,type:`address`,internalType:`address`}],outputs:[{name:`voterInfo`,type:`tuple`,internalType:`struct IWanGovernor.VoterInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`}]}],stateMutability:`view`}];function Z(e,t,n){return{address:e,abi:X,functionName:`getProposalVoterInfo`,args:[t,n]}}const ie=[{type:`function`,name:`getProposalMultiplierCounts`,inputs:[],outputs:[{name:`proposalWanMultiplierCount`,type:`uint256`,internalType:`uint256`},{name:`votingWanMultiplierCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function ae(e){return{address:e,abi:ie,functionName:`getProposalMultiplierCounts`,args:[]}}const oe=[{type:`function`,name:`getProposalWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function se(e,t){return{address:e,abi:oe,functionName:`getProposalWanMultiplierAt`,args:[t]}}const ce=[{type:`function`,name:`getVotingWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function le(e,t){return{address:e,abi:ce,functionName:`getVotingWanMultiplierAt`,args:[t]}}const ue=[{type:`function`,name:`DENOMINATOR`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function de(e){return{address:e,abi:ue,functionName:`DENOMINATOR`,args:[]}}const fe=[{type:`function`,name:`MAX_REQUEST_WAN_RATIO_BPS_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function pe(e){return{address:e,abi:fe,functionName:`MAX_REQUEST_WAN_RATIO_BPS_KEY`,args:[]}}const me=[{type:`function`,name:`WAN_TOTAL_SUPPLY`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function he(e){return{address:e,abi:me,functionName:`WAN_TOTAL_SUPPLY`,args:[]}}const ge=[{type:`function`,name:`PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function _e(e){return{address:e,abi:ge,functionName:`PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY`,args:[]}}const ve=[{type:`function`,name:`getUint`,inputs:[{name:`key`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function ye(e,t){return{address:e,abi:ve,functionName:`getUint`,args:[t]}}const be=[{type:`function`,name:`stWan`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`}];function xe(e){return{address:e,abi:be,functionName:`stWan`,args:[]}}const Q=[{type:`function`,name:`getCurrentRate`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function Se(e){return{address:e,abi:Q,functionName:`getCurrentRate`,args:[]}}const Ce=[{type:`function`,name:`getUnstakeStatus`,inputs:[{name:`requestId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`unstakeStatus`,type:`uint8`,internalType:`uint8`}],stateMutability:`view`}];function $(e,t){return{address:e,abi:Ce,functionName:`getUnstakeStatus`,args:[t]}}const we=[{type:`function`,name:`stWanPoolManager`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`}];function Te(e){return{address:e,abi:we,functionName:`stWanPoolManager`,args:[]}}const Ee=[{type:`function`,name:`unstakeRequests`,inputs:[{name:`requestId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`user`,type:`address`,internalType:`address`},{name:`amount`,type:`uint256`,internalType:`uint256`},{name:`requestTime`,type:`uint256`,internalType:`uint256`},{name:`claimed`,type:`bool`,internalType:`bool`}],stateMutability:`view`}];function De(e,t){return{address:e,abi:Ee,functionName:`unstakeRequests`,args:[t]}}const Oe=[{type:`function`,name:`minUnstakeDuration`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function ke(e){return{address:e,abi:Oe,functionName:`minUnstakeDuration`,args:[]}}var Ae=class{constructor(n,r=t.wanchain,i){if(this.governanceAbi=ee,this.multicallAbi=m,this.DEFAULT_ADMIN_ROLE=`0x0000000000000000000000000000000000000000000000000000000000000000`,this.WAN_GOVERNOR_OPERATOR_ROLE=`0x9c307f370e24cd9c4086c6c16452697787789246a163292b4e4203788924e58f`,!r?.contracts?.multicall3?.address)throw Error(`not support multicall3`);this.multicallAddr=r.contracts.multicall3.address,this.publicClient=(0,e.createPublicClient)({chain:r,transport:i?(0,e.http)(i):(0,e.http)()}),this.governanceAddr=n}async getBaseParameters(){let e=await this.publicClient.multicall({contracts:[q(this.governanceAddr),Y(this.governanceAddr),b(this.governanceAddr),G(this.governanceAddr),F(this.governanceAddr,f.UnderReview),F(this.governanceAddr,f.Fundraising),F(this.governanceAddr,f.VotingInProgress),F(this.governanceAddr,f.Succeeded),F(this.governanceAddr,f.Rejected),F(this.governanceAddr,f.Failed),F(this.governanceAddr,f.Canceled),ae(this.governanceAddr),de(this.governanceAddr),pe(this.governanceAddr),he(this.governanceAddr),_e(this.governanceAddr)],allowFailure:!1});return{allProposalWanAmount:e[0][0],allProposalLockingWanAmount:e[0][1],allProposalBurnedWanAmount:e[0][2],ethTransferGasLimit:e[1][0],minParticipationAmount:e[1][1],requestWanMultiplier:e[1][2],baseSucceedThreshold:e[1][3],requireXpAmount:e[1][4],pledgeLockDuration:e[1][5],fundraisingDuration:e[1][6],voteDuration:e[1][7],xp:e[1][8],stakingManager:e[1][9],wanTreasury:e[1][10],burnAddr:e[2],proposalCount:e[3],reviewPendingProposalCount:e[4],prospectiveProposalCount:e[5],votingProposalCount:e[6],succeededProposalCount:e[7],rejectedProposalCount:e[8],failedProposalCount:e[9],canceledProposalCount:e[10],proposalWanMultiplierCount:e[11][0],votingWanMultiplierCount:e[11][1],DENOMINATOR:e[12],MAX_REQUEST_WAN_RATIO_BPS_KEY:e[13],WAN_TOTAL_SUPPLY:e[14],PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY:e[15]}}async getUints(e){return await this.publicClient.multicall({contracts:e.map(e=>ye(this.governanceAddr,e)),allowFailure:!1})}async getProposalMultipliers(e){let t=0,n=0;if(e.proposalWanMultiplier){if(e.proposalWanMultiplier.end<e.proposalWanMultiplier.start||e.proposalWanMultiplier.start<0)throw Error(`Invalid proposalWanMultiplier`);t=e.proposalWanMultiplier.end-e.proposalWanMultiplier.start+1}if(e.votingWanMultiplier){if(e.votingWanMultiplier.end<e.votingWanMultiplier.start||e.votingWanMultiplier.start<0)throw Error(`Invalid votingWanMultiplier`);n=e.votingWanMultiplier.end-e.votingWanMultiplier.start+1}let r=t+n,i=t>0,a=n>0,o=Array(r);if(i)for(let e=0;e<t;++e)o[e]=se(this.governanceAddr,e);if(a)for(let e=t;e<r;++e)o[e]=le(this.governanceAddr,e-t);let s=await this.publicClient.multicall({contracts:o,allowFailure:!1}),c=i?Array(t):[],l=a?Array(n):[];for(let e=0;e<s.length;++e)if(e<t){let t=s[e];c[e]={pledgeType:t[0],lockDuration:t[1],multiplier:t[2]}}else{let n=s[e];l[e-t]={pledgeType:n[0],lockDuration:n[1],multiplier:n[2]}}return{proposalWanMultipliers:c,votingWanMultipliers:l}}async getProposalCounts(){let e=await this.publicClient.multicall({contracts:[G(this.governanceAddr),F(this.governanceAddr,f.UnderReview),F(this.governanceAddr,f.Fundraising),F(this.governanceAddr,f.VotingInProgress),F(this.governanceAddr,f.Succeeded),F(this.governanceAddr,f.Rejected),F(this.governanceAddr,f.Failed),F(this.governanceAddr,f.Canceled)],allowFailure:!1});return{allProposalCount:e[0],reviewPendingProposalCount:e[1],prospectiveProposalCount:e[2],votingProposalCount:e[3],succeededProposalCount:e[4],rejectedProposalCount:e[5],failedProposalCount:e[6],canceledProposalCount:e[7]}}async getActiveProposalCategoryCounts(){let e=await this.publicClient.multicall({contracts:[T(this.governanceAddr,f.VotingInProgress,p.Funding),T(this.governanceAddr,f.VotingInProgress,p.Technical)],allowFailure:!1});return{fundingProposalCount:e[0],technicalProposalCount:e[1]}}async getParticipableProposalCategoryCounts(){let e=await this.publicClient.multicall({contracts:[T(this.governanceAddr,f.Fundraising,p.Funding),T(this.governanceAddr,f.Fundraising,p.Technical),T(this.governanceAddr,f.VotingInProgress,p.Funding),T(this.governanceAddr,f.VotingInProgress,p.Technical)],allowFailure:!1});return{fundingProposalCount:e[0]+e[2],technicalProposalCount:e[1]+e[3]}}async getAssetBalances(e,t){let n=await this.publicClient.multicall({contracts:[g(this.multicallAddr,t),v(e,t)],allowFailure:!1});return{ethBalance:n[0],xpBalance:n[1]}}async getAccountProposalCount(e){let t=await this.publicClient.multicall({contracts:[L(this.governanceAddr,l.Proposer,e),L(this.governanceAddr,l.Partner,e),L(this.governanceAddr,l.Voter,e)],allowFailure:!1});return{proposerProposalCount:t[0],partnerProposalCount:t[1],voterProposalCount:t[2]}}async getFoundations(){return await this.publicClient.readContract(ne(this.governanceAddr))}async checkAccountRole(e){let t=await this.publicClient.multicall({contracts:[C(this.governanceAddr,e,this.DEFAULT_ADMIN_ROLE),C(this.governanceAddr,e,this.WAN_GOVERNOR_OPERATOR_ROLE),S(this.governanceAddr,e)],allowFailure:!1});return{isAdmin:t[0],isOperator:t[1],isFouondation:t[2]}}async getAccountProposalId(e,t,n,r,i){return await this.publicClient.readContract(D(this.governanceAddr,t,e,n,r,i))}async getProposalPartnerAndVoterCounts(e){let t=await this.publicClient.readContract(z(this.governanceAddr,e));return{partnerCount:t[0],voterCount:t[1]}}async getProposerProposals(e,t){if(t.end<t.start||t.start<0)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1);for(let r=t.start;r<=t.end;++r)n[r-t.start]=U(this.governanceAddr,l.Proposer,e,r);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});n=Array(r.length);for(let e=0;e<r.length;e++){let t=r[e];n[e]=j(this.governanceAddr,t)}return(await this.publicClient.multicall({contracts:n,allowFailure:!1})).map((e,t)=>({proposalId:r[t],...e}))}async getPartnerProposals(e,t){if(t.end<t.start||t.start<0)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1);for(let r=t.start;r<=t.end;++r)n[r-t.start]=U(this.governanceAddr,l.Partner,e,r);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});n=Array(r.length*2);for(let t=0;t<r.length;++t){let i=t*2,a=r[t];n[i]=j(this.governanceAddr,a),n[i+1]=V(this.governanceAddr,a,e)}let i=await this.publicClient.multicall({contracts:n,allowFailure:!1}),a=Array(r.length);for(let e=0;e<r.length;++e){let t=e*2,n=i[t],o=i[t+1];a[e]={proposalInfo:{proposalId:r[e],...n},partnerInfo:o}}return a}async getVoterProposals(e,t){if(t.end<t.start||t.start<0)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1);for(let r=t.start;r<=t.end;++r)n[r-t.start]=U(this.governanceAddr,l.Voter,e,r);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});n=Array(r.length*2);for(let t=0;t<r.length;++t){let i=t*2,a=r[t];n[i]=j(this.governanceAddr,a),n[i+1]=Z(this.governanceAddr,a,e)}let i=await this.publicClient.multicall({contracts:n,allowFailure:!1}),a=Array(r.length);for(let e=0;e<r.length;++e){let t=e*2,n=i[t],o=i[t+1];a[e]={proposalInfo:{proposalId:r[e],...n},voterInfo:o}}return a}async getPartnerInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r){let i=t[r];n[r]=V(this.governanceAddr,i,e)}return await this.publicClient.multicall({contracts:n,allowFailure:!1})}async getVoterInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r){let i=t[r];n[r]=Z(this.governanceAddr,i,e)}return await this.publicClient.multicall({contracts:n,allowFailure:!1})}async getRecentAllProposals(e){let{start:t,limit:n}=e;if(t<0||n<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let r=[],i=t,a=-1,o=Math.max(n*2,20);for(;r.length<n&&i>=0;){let e=Math.max(i-o+1,0),t=[];for(let n=i;n>=e;n--)t.push(n);let s=t.map(e=>k(this.governanceAddr,e)),c=await this.publicClient.multicall({contracts:s,allowFailure:!1});for(let e=0;e<c.length;++e){let[i,o]=c[e];if(r.push({proposalId:i,...o}),r.length===n){let n=t[e];a=n>0?n-1:-1;break}}if(r.length<n)i=e-1,o=Math.min(o*2,100);else break}return{proposals:r,nextIndex:a}}async getRecentProposalsExcludeCanceled(e){let{start:t,limit:n}=e;if(t<0||n<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let r=[],i=t,a=-1,o=Math.max(n*2,20);for(;r.length<n&&i>=0;){let e=Math.max(i-o+1,0),t=[];for(let n=i;n>=e;n--)t.push(n);let s=t.map(e=>k(this.governanceAddr,e)),c=await this.publicClient.multicall({contracts:s,allowFailure:!1});for(let e=0;e<c.length;++e){let[i,o]=c[e];if(o.state!==f.Canceled&&(r.push({proposalId:i,...o}),r.length===n)){let n=t[e];a=n>0?n-1:-1;break}}if(r.length<n)i=e-1,o=Math.min(o*2,100);else break}return{proposals:r,nextIndex:a}}async getRecentReviewedProposals(e){let{start:t,limit:n}=e;if(t<0||n<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let r=[],i=t,a=-1,o=Math.max(n*2,20);for(;r.length<n&&i>=0;){let e=Math.max(i-o+1,0),t=[];for(let n=i;n>=e;n--)t.push(n);let s=t.map(e=>k(this.governanceAddr,e)),c=await this.publicClient.multicall({contracts:s,allowFailure:!1});for(let e=0;e<c.length;++e){let[i,o]=c[e];if(o.state!==f.UnderReview&&o.state!==f.Canceled&&o.state!==f.Rejected&&(r.push({proposalId:i,...o}),r.length===n)){let n=t[e];a=n>0?n-1:-1;break}}if(r.length<n)i=e-1,o=Math.min(o*2,100);else break}return{proposals:r,nextIndex:a}}async getReviewPendingProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.UnderReview,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentReviewPendingProposals(e){return await this._getRecentProposalsByState(e,f.UnderReview)}async getProspectiveProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Fundraising,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentProspectiveProposals(e){return await this._getRecentProposalsByState(e,f.Fundraising)}async getVotingProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.VotingInProgress,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentVotingProposals(e){return await this._getRecentProposalsByState(e,f.VotingInProgress)}async getSucceedProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Succeeded,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentSucceededProposals(e){return await this._getRecentProposalsByState(e,f.Succeeded)}async getFailedProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Failed,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentRejectedProposals(e){return await this._getRecentProposalsByState(e,f.Rejected)}async getRecentFailedProposals(e){return await this._getRecentProposalsByState(e,f.Failed)}async getCanceledProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Canceled,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentCanceledProposals(e){return await this._getRecentProposalsByState(e,f.Canceled)}async getProposalInfo(e){return{proposalId:e,...await this.publicClient.readContract(j(this.governanceAddr,e))}}canRequestProposalWithdrawal(e,t){if(t.length==0)return[];let n=Array(t.length);for(let r=0;r<t.length;++r){let i=!1,a=!1;t[r].state==f.Succeeded&&t[r].pledgeType==u.Lock&&t[r].lockDuration>BigInt(0)&&t[r].requestId==BigInt(0)&&!t[r].exited&&(i=!0),i&&e>t[r].voteDeadline+t[r].lockDuration&&(a=!0),n[r]={needRequestWithdrawal:i,canRequestWithdrawal:a}}return n}async canClaimProposalWithdrawal(e,t,n){if(n.length==0)return[];let r=0,i={},a=Array(n.length),o=Array(n.length);for(let s=0;s<n.length;++s){if(this._canWithdrawProposalImmediately(t,n[s])){a[s]=!0;continue}if(this._canWithdrawSucceededProposal(t,n[s])){o[r]=$(e,n[s].requestId),i[s]=r,r++;continue}a[s]=!1}o=o.slice(0,r);let s=await this.publicClient.multicall({contracts:o,allowFailure:!1});for(let e=0;e<o.length;e++)a[i[e]]=s[e]==c.ReadyToClaim;return a}_canWithdrawProposalImmediately(e,t){return t.state==f.Failed||t.lockDuration==BigInt(0)&&t.pledgeType==u.Lock&&t.state==f.Succeeded&&e>t.voteDeadline+t.lockDuration}_canWithdrawSucceededProposal(e,t){return t.lockDuration>BigInt(0)&&t.pledgeType==u.Lock&&t.state==f.Succeeded&&t.requestId>BigInt(0)&&!t.exited&&e>t.voteDeadline+t.lockDuration}async getUnstakeStatus(e,t){return await this.publicClient.readContract($(e,t))}async getUnstakeRequest(e,t){let n=await this.publicClient.readContract(Te(e)),r=await this.publicClient.multicall({contracts:[ke(n),De(n,t)],allowFailure:!1});return{minUnstakeDuration:r[0],stWanPoolManagerAddr:n,user:r[1][0],amount:r[1][1],requestTime:r[1][2],claimed:r[1][3]}}async getCurrentRatio(e){let t=await this.publicClient.readContract(xe(e));return await this.publicClient.readContract(Se(t))}async buildTx(t,n,r,i=BigInt(0)){let[a,o]=this.governanceAbi.some(e=>`name`in e&&e.name===n)?[this.governanceAbi,this.governanceAddr]:[this.multicallAbi,this.multicallAddr];return await this.publicClient.simulateContract({address:o,abi:a,functionName:n,args:r,account:t,value:i}),await this.publicClient.prepareTransactionRequest({account:t,to:o,data:(0,e.encodeFunctionData)({abi:a,functionName:n,args:r}),value:i})}async buildCreateProposalTx(e,t,n,r,i,a){let o=[n,r,i,a];return await this.buildTx(e,`createProposal`,o,t)}async buildCancelProposalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`cancelProposal`,r,BigInt(0))}async buildReviewProposalTx(e,t,n,r){let i=[t,n,r];return await this.buildTx(e,`reviewProposal`,i,BigInt(0))}async buildContributeProposalTx(e,t,n,r,i){let a=[t,r,i];return await this.buildTx(e,`contributeProposal`,a,n)}async buildVoteProposalTx(e,t,n,r,i,a,o){let s=[t,r,i,a,o];return await this.buildTx(e,`voteProposal`,s,n)}async buildTallyProposalTx(e,t){let n=[t];return await this.buildTx(e,`tallyProposal`,n,BigInt(0))}async buildRequestProposerWithdrawalTx(e,t){let n=[t];return await this.buildTx(e,`requestProposerWithdrawal`,n,BigInt(0))}async buildClaimProposerWithdrawalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`claimProposerWithdrawal`,r,BigInt(0))}async buildRequestPartnerWithdrawalTx(e,t){let n=[t];return await this.buildTx(e,`requestPartnerWithdrawal`,n,BigInt(0))}async buildClaimPartnerWithdrawalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`claimPartnerWithdrawal`,r,BigInt(0))}async buildRequestVoterWithdrawalTx(e,t){let n=[t];return await this.buildTx(e,`requestVoterWithdrawal`,n,BigInt(0))}async buildClaimVoterWithdrawalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`claimVoterWithdrawal`,r,BigInt(0))}async buildUpdateProposalGlobalConfigTx(e,t,n,r,i,a,o,s,c,l,u,d){let f=[[t,n,r,i,a,o,s,c,l,u,d]];return await this.buildTx(e,`updateProposalGlobalConfig`,f,BigInt(0))}async _getRecentProposalsByState(e,t){let{start:n,limit:r}=e;if(n<0||r<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let i=[],a=n,o=-1,s=Math.max(r*2,20);for(;i.length<r&&a>=0;){let e=Math.max(a-s+1,0),n=[];for(let t=a;t>=e;t--)n.push(t);let c=n.map(e=>N(this.governanceAddr,t,e)),l=await this.publicClient.multicall({contracts:c,allowFailure:!1}),u=l.map(e=>j(this.governanceAddr,e)),d=await this.publicClient.multicall({contracts:u,allowFailure:!1});for(let e=0;e<d.length;++e){let a=d[e];if(a.state===t&&(i.push({proposalId:l[e],...a}),i.length===r)){let t=n[e];o=t>0?t-1:-1;break}}if(i.length<r)a=e-1,s=Math.min(s*2,100);else break}return{proposals:i,nextIndex:o}}async encodeProposalMulticallCall(t,n){return(0,e.encodeFunctionData)({abi:this.governanceAbi,functionName:t,args:n})}async buildProposalMulticallTx(e,t){return await this.buildTx(e,`multicall`,[t],BigInt(0))}async buildPublicMulticallCall(t,n){let r=(0,e.encodeFunctionData)({abi:this.governanceAbi,functionName:t,args:n});return{target:this.multicallAddr,allowFailure:!1,callData:r}}async buildPublicMulticallTx(e,t){return await this.buildTx(e,`aggregate3`,[t],BigInt(0))}};exports.Governance=Ae,exports.PledgeType=u,exports.ProposalCategory=p,exports.ProposalRole=l,exports.ProposalState=f,exports.UnstakeStatus=c,exports.VoteType=d,exports.decodeProposalDescriptionData=o,exports.encodeProposalDescriptionData=a,exports.getVersionFromData=s,exports.supportedProposalDescriptionDataTypeSchema=n;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`viem`),t=require(`viem/chains`);const n={1:{types:[{type:`uint8`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`]},2:{types:[{type:`uint8`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`]},3:{types:[{type:`uint8`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`,`discord`]}};function r(e){return e===1||e===2||e===3}function i(e){return typeof e==`string`&&e.trim()!==``}function a(...t){let i=t[0];if(!r(i))throw Error(`Unsupported version - only versions 1, 2, 3 are supported`);let a=n[i];if(t.length!==a.types.length)throw Error(`Invalid number of arguments for version ${i} - expected ${a.types.length}, got ${t.length}`);return(0,e.encodeAbiParameters)(a.types,t)}function o(t){let a=s(t);if(!r(a))throw Error(`Unsupported version ${a} - only versions 1, 2, 3 are supported`);let o=n[a],c=(0,e.decodeAbiParameters)(o.types,t);if(c.length!==o.names.length)throw Error(`Corrupted data: decoded values count (${c.length}) does not match schema (${o.names.length})`);let l={};for(let e=0;e<o.names.length;e++){let t=o.names[e],n=c[e];i(t)&&n!==void 0&&(typeof n==`number`||typeof n==`string`)&&(l[t]=n)}return l}function s(e){if(!e||typeof e!=`string`||e.length<66)return 0;let t=e.startsWith(`0x`)?2:0,n=e.substring(t,t+64),i=parseInt(n,16);return r(i)?i:0}let c=function(e){return e[e.NotExists=0]=`NotExists`,e[e.Claimed=1]=`Claimed`,e[e.InProgress=2]=`InProgress`,e[e.ReadyToClaim=3]=`ReadyToClaim`,e}({}),l=function(e){return e[e.Proposer=0]=`Proposer`,e[e.Partner=1]=`Partner`,e[e.Voter=2]=`Voter`,e}({}),u=function(e){return e[e.None=0]=`None`,e[e.Burn=1]=`Burn`,e[e.Lock=2]=`Lock`,e}({}),d=function(e){return e[e.None=0]=`None`,e[e.For=1]=`For`,e[e.Against=2]=`Against`,e}({}),f=function(e){return e[e.None=0]=`None`,e[e.UnderReview=1]=`UnderReview`,e[e.Canceled=2]=`Canceled`,e[e.Fundraising=3]=`Fundraising`,e[e.VotingInProgress=4]=`VotingInProgress`,e[e.Succeeded=5]=`Succeeded`,e[e.Rejected=6]=`Rejected`,e[e.Failed=7]=`Failed`,e}({}),p=function(e){return e[e.Funding=0]=`Funding`,e[e.Technical=1]=`Technical`,e}({});const ee=[{type:`constructor`,inputs:[],stateMutability:`nonpayable`},{type:`receive`,stateMutability:`payable`},{type:`function`,name:`BURN`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`DEFAULT_ADMIN_ROLE`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`DENOMINATOR`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`MAX_REQUEST_WAN_RATIO_BPS_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`WAN_GOVERNOR_OPERATOR_ROLE`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`WAN_TOTAL_SUPPLY`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`cancelProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`claimPartnerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_requestId`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`claimProposerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_requestId`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`claimVoterWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_requestId`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`contributeProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`payable`},{type:`function`,name:`createProposal`,inputs:[{name:`_reqWanAmount`,type:`uint256`,internalType:`uint256`},{name:`_category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_description`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`payable`},{type:`function`,name:`getAllProposalCount`,inputs:[],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getFoundations`,inputs:[],outputs:[{name:``,type:`address[]`,internalType:`address[]`}],stateMutability:`view`},{type:`function`,name:`getProposalCountByRole`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalCountByState`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalId`,inputs:[{name:`_reqWanAmount`,type:`uint256`,internalType:`uint256`},{name:`_proposer`,type:`address`,internalType:`address`},{name:`_category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_description`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getProposalIdByRoleAt`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getProposalIdByStateAt`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getProposalInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`},{type:`function`,name:`getProposalInfoAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`},{type:`function`,name:`getProposalMultiplierCounts`,inputs:[],outputs:[{name:`proposalWanMultiplierCount`,type:`uint256`,internalType:`uint256`},{name:`votingWanMultiplierCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalPartnerAndVoterCounts`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`partnerCount`,type:`uint256`,internalType:`uint256`},{name:`voterCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalPartnerAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`getProposalPartnerInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_partner`,type:`address`,internalType:`address`}],outputs:[{name:`partnerInfo`,type:`tuple`,internalType:`struct IWanGovernor.PartnerInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]}]}],stateMutability:`view`},{type:`function`,name:`getProposalState`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],stateMutability:`view`},{type:`function`,name:`getProposalVoterAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`getProposalVoterInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_voter`,type:`address`,internalType:`address`}],outputs:[{name:`voterInfo`,type:`tuple`,internalType:`struct IWanGovernor.VoterInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`}]}],stateMutability:`view`},{type:`function`,name:`getProposalWanMultiplier`,inputs:[{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_lockDuration`,type:`uint128`,internalType:`uint128`}],outputs:[{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getProposalWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getRoleAdmin`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`getUint`,inputs:[{name:`key`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getVotingWanMultiplier`,inputs:[{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_lockDuration`,type:`uint128`,internalType:`uint128`}],outputs:[{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getVotingWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`getWanPower`,inputs:[{name:`multiplier`,type:`uint256`,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`wanPower`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`grantRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`hasProposalExists`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`state`,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`hasRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`initialize`,inputs:[{name:`_admin`,type:`address`,internalType:`address`},{name:`_operator`,type:`address`,internalType:`address`},{name:`_ultimateUniversalStore`,type:`address`,internalType:`contract IUltimateUniversalStore`},{name:`_proposalGlobalConfig`,type:`tuple`,internalType:`struct IWanGovernor.ProposalGlobalConfig`,components:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}]}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`isFoundation`,inputs:[{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:`isFoundationMember`,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`multicall`,inputs:[{name:`data`,type:`bytes[]`,internalType:`bytes[]`}],outputs:[{name:`results`,type:`bytes[]`,internalType:`bytes[]`}],stateMutability:`nonpayable`},{type:`function`,name:`proposalCategoryCount`,inputs:[{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`proposalGlobalConfig`,inputs:[],outputs:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`renounceRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`callerConfirmation`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`requestPartnerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`partnerRequestId`,type:`uint256`,internalType:`uint256`}],stateMutability:`nonpayable`},{type:`function`,name:`requestProposerWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`proposerRequestId`,type:`uint256`,internalType:`uint256`}],stateMutability:`nonpayable`},{type:`function`,name:`requestVoterWithdrawal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`voterRequestId`,type:`uint256`,internalType:`uint256`}],stateMutability:`nonpayable`},{type:`function`,name:`reviewProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`isApproved`,type:`bool`,internalType:`bool`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`revokeRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setFoundations`,inputs:[{name:`params`,type:`tuple[]`,internalType:`struct IWanGovernor.SetFoundationParam[]`,components:[{name:`account`,type:`address`,internalType:`address`},{name:`isFoundationMember`,type:`bool`,internalType:`bool`}]}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setProposalWanMultiplier`,inputs:[{name:`params`,type:`tuple[]`,internalType:`struct IWanGovernor.SetWanMultiplier[]`,components:[{name:`multiplier`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{name:`ifClean`,type:`bool`,internalType:`bool`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setUint`,inputs:[{name:`key`,type:`bytes32`,internalType:`bytes32`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setVotingWanMultiplier`,inputs:[{name:`params`,type:`tuple[]`,internalType:`struct IWanGovernor.SetWanMultiplier[]`,components:[{name:`multiplier`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{name:`ifClean`,type:`bool`,internalType:`bool`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`supportsInterface`,inputs:[{name:`interfaceId`,type:`bytes4`,internalType:`bytes4`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`tallyProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`totalProposalAmountInfo`,inputs:[],outputs:[{name:`allProposalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalBurnedWanAmount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`updateProposalGlobalConfig`,inputs:[{name:`_proposalGlobalConfig`,type:`tuple`,internalType:`struct IWanGovernor.ProposalGlobalConfig`,components:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}]}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`voteProposal`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_lockDuration`,type:`uint128`,internalType:`uint128`},{name:`votePledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`},{name:`_reason`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`payable`},{type:`event`,name:`CancelProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`proposer`,type:`address`,indexed:!0,internalType:`address`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`event`,name:`ClaimWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`proposalRole`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalRole`},{name:`wanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ClaimPartnerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ClaimProposerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ClaimVoterWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ContributeProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`partner`,type:`address`,indexed:!0,internalType:`address`},{name:`state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`event`,name:`CreateProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`proposer`,type:`address`,indexed:!0,internalType:`address`},{name:`state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`event`,name:`Initialized`,inputs:[{name:`version`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`RequestWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`proposalRole`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalRole`},{name:`wanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`RequestPartnerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`RequestProposerWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`RequestVoterWithdrawal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`requestId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ReviewProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`isApproved`,type:`bool`,indexed:!0,internalType:`bool`},{name:`state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`reason`,type:`bytes`,indexed:!1,internalType:`bytes`}],anonymous:!1},{type:`event`,name:`RoleAdminChanged`,inputs:[{name:`role`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`previousAdminRole`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`newAdminRole`,type:`bytes32`,indexed:!0,internalType:`bytes32`}],anonymous:!1},{type:`event`,name:`RoleGranted`,inputs:[{name:`role`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`sender`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`RoleRevoked`,inputs:[{name:`role`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`sender`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`SetFoundation`,inputs:[{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`isFoundationMember`,type:`bool`,indexed:!0,internalType:`bool`}],anonymous:!1},{type:`event`,name:`SetProposalFailed`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`reason`,type:`bytes`,indexed:!1,internalType:`bytes`}],anonymous:!1},{type:`event`,name:`SetProposalStage`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`_state`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalState`},{name:`_category`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.ProposalCategory`},{name:`ifSet`,type:`bool`,indexed:!1,internalType:`bool`}],anonymous:!1},{type:`event`,name:`SetProposalStage`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`ifSet`,type:`bool`,indexed:!0,internalType:`bool`}],anonymous:!1},{type:`event`,name:`SetProposalWanMultiplier`,inputs:[{name:`multiplier`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`pledgeType`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`SetVotingWanMultiplier`,inputs:[{name:`multiplier`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`pledgeType`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`TallyProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`wanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`stWanAmount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateProposalGlobalConfig`,inputs:[{name:`proposalGlobalConfig`,type:`tuple`,indexed:!1,internalType:`struct IWanGovernor.ProposalGlobalConfig`,components:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}]}],anonymous:!1},{type:`event`,name:`VoteProposal`,inputs:[{name:`proposalId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`voter`,type:`address`,indexed:!0,internalType:`address`},{name:`voteType`,type:`uint8`,indexed:!0,internalType:`enum IWanGovernor.VoteType`},{name:`keys`,type:`string[]`,indexed:!1,internalType:`string[]`},{name:`values`,type:`bytes[]`,indexed:!1,internalType:`bytes[]`}],anonymous:!1},{type:`error`,name:`AccessControlBadConfirmation`,inputs:[]},{type:`error`,name:`AccessControlUnauthorizedAccount`,inputs:[{name:`account`,type:`address`,internalType:`address`},{name:`neededRole`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`AddressEmptyCode`,inputs:[{name:`target`,type:`address`,internalType:`address`}]},{type:`error`,name:`AlreadyContributeProposal`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`partner`,type:`address`,internalType:`address`}]},{type:`error`,name:`AmountBelowMinimum`,inputs:[{name:`provided`,type:`uint256`,internalType:`uint256`},{name:`required`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`ApplicationExceedsLimit`,inputs:[{name:`requested`,type:`uint256`,internalType:`uint256`},{name:`limit`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`EthTransferFailed`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`},{name:`gasLimit`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`FailedCall`,inputs:[]},{type:`error`,name:`InvalidInitialization`,inputs:[]},{type:`error`,name:`InvalidInitialization`,inputs:[]},{type:`error`,name:`InvalidPledgeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{type:`error`,name:`InvalidVotePlegeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`}]},{type:`error`,name:`InvalidVoteType`,inputs:[{name:`voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`}]},{type:`error`,name:`LockPeriodNotReached`,inputs:[{name:`unlockTime`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`NotAdmin`,inputs:[{name:`account`,type:`address`,internalType:`address`}]},{type:`error`,name:`NotExistsRequestId`,inputs:[{name:`requestId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`NotInitializing`,inputs:[]},{type:`error`,name:`NotMatchArrayLength`,inputs:[]},{type:`error`,name:`NotRequestProposal`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`requestId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`NotSupportedPledgeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`}]},{type:`error`,name:`NotSupportedVotePledgeType`,inputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`}]},{type:`error`,name:`ProposalAlreadyVoted`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`voter`,type:`address`,internalType:`address`}]},{type:`error`,name:`ProposalAlreadyExists`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotApproved`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotFundraising`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotReachedTallyStage`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotUnderReview`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalNotVotingInProgress`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalVotingEnded`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProposalVotingTallied`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ProspectiveProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ReentrancyGuardReentrantCall`,inputs:[]},{type:`error`,name:`ReviewPendingProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`SafeCastOverflowedUintDowncast`,inputs:[{name:`bits`,type:`uint8`,internalType:`uint8`},{name:`value`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`SafeERC20FailedOperation`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`Unauthorized`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`},{name:`proposer`,type:`address`,internalType:`address`}]},{type:`error`,name:`UnauthorizedEtherTransfer`,inputs:[{name:`from`,type:`address`,internalType:`address`}]},{type:`error`,name:`VotingProposalNotExist`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`VotingProposalRejected`,inputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`WithdrawalNotRequested`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ZeroAddress`,inputs:[]}],m=[{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`aggregate`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{internalType:`bytes[]`,name:`returnData`,type:`bytes[]`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bool`,name:`allowFailure`,type:`bool`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call3[]`,name:`calls`,type:`tuple[]`}],name:`aggregate3`,outputs:[{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bool`,name:`allowFailure`,type:`bool`},{internalType:`uint256`,name:`value`,type:`uint256`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call3Value[]`,name:`calls`,type:`tuple[]`}],name:`aggregate3Value`,outputs:[{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`blockAndAggregate`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{internalType:`bytes32`,name:`blockHash`,type:`bytes32`},{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[],name:`getBasefee`,outputs:[{internalType:`uint256`,name:`basefee`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`}],name:`getBlockHash`,outputs:[{internalType:`bytes32`,name:`blockHash`,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getBlockNumber`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getChainId`,outputs:[{internalType:`uint256`,name:`chainid`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockCoinbase`,outputs:[{internalType:`address`,name:`coinbase`,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockDifficulty`,outputs:[{internalType:`uint256`,name:`difficulty`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockGasLimit`,outputs:[{internalType:`uint256`,name:`gaslimit`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getCurrentBlockTimestamp`,outputs:[{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`addr`,type:`address`}],name:`getEthBalance`,outputs:[{internalType:`uint256`,name:`balance`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getLastBlockHash`,outputs:[{internalType:`bytes32`,name:`blockHash`,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bool`,name:`requireSuccess`,type:`bool`},{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`tryAggregate`,outputs:[{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`bool`,name:`requireSuccess`,type:`bool`},{components:[{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`}],internalType:`struct Multicall3.Call[]`,name:`calls`,type:`tuple[]`}],name:`tryBlockAndAggregate`,outputs:[{internalType:`uint256`,name:`blockNumber`,type:`uint256`},{internalType:`bytes32`,name:`blockHash`,type:`bytes32`},{components:[{internalType:`bool`,name:`success`,type:`bool`},{internalType:`bytes`,name:`returnData`,type:`bytes`}],internalType:`struct Multicall3.Result[]`,name:`returnData`,type:`tuple[]`}],stateMutability:`payable`,type:`function`}],h=[{type:`function`,name:`getEthBalance`,inputs:[{name:`addr`,type:`address`,internalType:`address`}],outputs:[{name:`balance`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function g(e,t){return{address:e,abi:h,functionName:`getEthBalance`,args:[t]}}const _=[{name:`balanceOf`,type:`function`,inputs:[{name:`owner`,type:`address`}],outputs:[{name:`balance`,type:`uint256`}],stateMutability:`view`}];function v(e,t){return{address:e,abi:_,functionName:`balanceOf`,args:[t]}}const y=[{type:`function`,name:`BURN`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`}];function b(e){return{address:e,abi:y,functionName:`BURN`}}const x=[{type:`function`,name:`isFoundation`,inputs:[{name:`caller`,type:`address`,internalType:`address`}],outputs:[{name:`isFoundationMember`,type:`bool`,internalType:`bool`}],stateMutability:`view`}];function S(e,t){return{address:e,abi:x,functionName:`isFoundation`,args:[t]}}const te=[{type:`function`,name:`getFoundations`,inputs:[],outputs:[{name:``,type:`address[]`,internalType:`address[]`}],stateMutability:`view`}];function ne(e){return{address:e,abi:te,functionName:`getFoundations`}}const re=[{type:`function`,name:`hasRole`,inputs:[{name:`role`,type:`bytes32`,internalType:`bytes32`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`}];function C(e,t,n){return{address:e,abi:re,functionName:`hasRole`,args:[n,t]}}const w=[{type:`function`,name:`proposalCategoryCount`,inputs:[{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function T(e,t,n){return{address:e,abi:w,functionName:`proposalCategoryCount`,args:[t,n]}}const E=[{type:`function`,name:`getProposalId`,inputs:[{name:`_reqWanAmount`,type:`uint256`,internalType:`uint256`},{name:`_proposer`,type:`address`,internalType:`address`},{name:`_category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`_pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`_description`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function D(e,t,n,r,i,a){return{address:e,abi:E,functionName:`getProposalId`,args:[t,n,r,i,a]}}const O=[{type:`function`,name:`getProposalInfoAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`}];function k(e,t){return{address:e,abi:O,functionName:`getProposalInfoAt`,args:[t]}}const A=[{type:`function`,name:`getProposalInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`info`,type:`tuple`,internalType:`struct IWanGovernor.ProposalInfo`,components:[{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanAmount`,type:`uint256`,internalType:`uint256`},{name:`requestMinVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalPledgingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingLockWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalVotingBurnWanPower`,type:`uint256`,internalType:`uint256`},{name:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`submitTimestamp`,type:`uint256`,internalType:`uint256`},{name:`fundraisingDeadline`,type:`uint256`,internalType:`uint256`},{name:`voteDeadline`,type:`uint256`,internalType:`uint256`},{name:`tally`,type:`tuple`,internalType:`struct IWanGovernor.Tally`,components:[{name:`yes`,type:`uint256`,internalType:`uint256`},{name:`no`,type:`uint256`,internalType:`uint256`}]},{name:`proposerFundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`category`,type:`uint8`,internalType:`enum IWanGovernor.ProposalCategory`},{name:`state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`proposer`,type:`address`,internalType:`address`},{name:`description`,type:`bytes`,internalType:`bytes`},{name:`reason`,type:`bytes`,internalType:`bytes`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`technicalSucceedThreshold`,type:`uint256`,internalType:`uint256`}]}],stateMutability:`view`}];function j(e,t){return{address:e,abi:A,functionName:`getProposalInfo`,args:[t]}}const M=[{type:`function`,name:`getProposalIdByStateAt`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function N(e,t,n){return{address:e,abi:M,functionName:`getProposalIdByStateAt`,args:[t,n]}}const P=[{type:`function`,name:`getProposalCountByState`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function F(e,t){return{address:e,abi:P,functionName:`getProposalCountByState`,args:[t]}}const I=[{type:`function`,name:`getProposalCountByRole`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function L(e,t,n){return{address:e,abi:I,functionName:`getProposalCountByRole`,args:[t,n]}}const R=[{type:`function`,name:`getProposalPartnerAndVoterCounts`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`partnerCount`,type:`uint256`,internalType:`uint256`},{name:`voterCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function z(e,t){return{address:e,abi:R,functionName:`getProposalPartnerAndVoterCounts`,args:[t]}}const B=[{type:`function`,name:`getProposalPartnerInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_partner`,type:`address`,internalType:`address`}],outputs:[{name:`partnerInfo`,type:`tuple`,internalType:`struct IWanGovernor.PartnerInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]}]}],stateMutability:`view`}];function V(e,t,n){return{address:e,abi:B,functionName:`getProposalPartnerInfo`,args:[t,n]}}const H=[{type:`function`,name:`getProposalIdByRoleAt`,inputs:[{name:`_role`,type:`uint8`,internalType:`enum IWanGovernor.ProposalRole`},{name:`_account`,type:`address`,internalType:`address`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`proposalId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function U(e,t,n,r){return{address:e,abi:H,functionName:`getProposalIdByRoleAt`,args:[t,n,r]}}const W=[{type:`function`,name:`getAllProposalCount`,inputs:[],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function G(e){return{address:e,abi:W,functionName:`getAllProposalCount`,args:[]}}const K=[{type:`function`,name:`totalProposalAmountInfo`,inputs:[],outputs:[{name:`allProposalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`allProposalBurnedWanAmount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function q(e){return{address:e,abi:K,functionName:`totalProposalAmountInfo`}}const J=[{type:`function`,name:`proposalGlobalConfig`,inputs:[],outputs:[{name:`ethTransferGasLimit`,type:`uint256`,internalType:`uint256`},{name:`minParticipationAmount`,type:`uint256`,internalType:`uint256`},{name:`requestWanMultiplier`,type:`uint256`,internalType:`uint256`},{name:`baseSucceedThreshold`,type:`uint256`,internalType:`uint256`},{name:`requireXpAmount`,type:`uint256`,internalType:`uint256`},{name:`pledgeLockDuration`,type:`uint128`,internalType:`uint128`},{name:`fundraisingDuration`,type:`uint128`,internalType:`uint128`},{name:`voteDuration`,type:`uint128`,internalType:`uint128`},{name:`xp`,type:`address`,internalType:`address`},{name:`stakingManager`,type:`address`,internalType:`address`},{name:`wanTreasury`,type:`address`,internalType:`address`}],stateMutability:`view`}];function Y(e){return{address:e,abi:J,functionName:`proposalGlobalConfig`}}const X=[{type:`function`,name:`getProposalVoterAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`}];function ie(e,t,n){return{address:e,abi:X,functionName:`getProposalVoterAt`,args:[t,n]}}const ae=[{type:`function`,name:`getProposalVoterInfo`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_voter`,type:`address`,internalType:`address`}],outputs:[{name:`voterInfo`,type:`tuple`,internalType:`struct IWanGovernor.VoterInfo`,components:[{name:`fundInfo`,type:`tuple`,internalType:`struct IWanGovernor.FundInfo`,components:[{name:`wanAmount`,type:`uint256`,internalType:`uint256`},{name:`wanPower`,type:`uint256`,internalType:`uint256`},{name:`requestId`,type:`uint256`,internalType:`uint256`},{name:`claimStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`claimWanAmount`,type:`uint256`,internalType:`uint256`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`exited`,type:`bool`,internalType:`bool`},{name:`reason`,type:`bytes`,internalType:`bytes`}]},{name:`voteType`,type:`uint8`,internalType:`enum IWanGovernor.VoteType`}]}],stateMutability:`view`}];function Z(e,t,n){return{address:e,abi:ae,functionName:`getProposalVoterInfo`,args:[t,n]}}const oe=[{type:`function`,name:`getProposalMultiplierCounts`,inputs:[],outputs:[{name:`proposalWanMultiplierCount`,type:`uint256`,internalType:`uint256`},{name:`votingWanMultiplierCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function se(e){return{address:e,abi:oe,functionName:`getProposalMultiplierCounts`,args:[]}}const ce=[{type:`function`,name:`getProposalWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function le(e,t){return{address:e,abi:ce,functionName:`getProposalWanMultiplierAt`,args:[t]}}const ue=[{type:`function`,name:`getVotingWanMultiplierAt`,inputs:[{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`pledgeType`,type:`uint8`,internalType:`enum IWanGovernor.PledgeType`},{name:`lockDuration`,type:`uint128`,internalType:`uint128`},{name:`multiplier`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function de(e,t){return{address:e,abi:ue,functionName:`getVotingWanMultiplierAt`,args:[t]}}const fe=[{type:`function`,name:`DENOMINATOR`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function pe(e){return{address:e,abi:fe,functionName:`DENOMINATOR`,args:[]}}const me=[{type:`function`,name:`MAX_REQUEST_WAN_RATIO_BPS_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function he(e){return{address:e,abi:me,functionName:`MAX_REQUEST_WAN_RATIO_BPS_KEY`,args:[]}}const ge=[{type:`function`,name:`WAN_TOTAL_SUPPLY`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function _e(e){return{address:e,abi:ge,functionName:`WAN_TOTAL_SUPPLY`,args:[]}}const ve=[{type:`function`,name:`PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`}];function ye(e){return{address:e,abi:ve,functionName:`PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY`,args:[]}}const be=[{type:`function`,name:`getUint`,inputs:[{name:`key`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function xe(e,t){return{address:e,abi:be,functionName:`getUint`,args:[t]}}const Q=[{type:`function`,name:`stWan`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`}];function Se(e){return{address:e,abi:Q,functionName:`stWan`,args:[]}}const Ce=[{type:`function`,name:`getCurrentRate`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function we(e){return{address:e,abi:Ce,functionName:`getCurrentRate`,args:[]}}const Te=[{type:`function`,name:`getUnstakeStatus`,inputs:[{name:`requestId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`unstakeStatus`,type:`uint8`,internalType:`uint8`}],stateMutability:`view`}];function $(e,t){return{address:e,abi:Te,functionName:`getUnstakeStatus`,args:[t]}}const Ee=[{type:`function`,name:`stWanPoolManager`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`}];function De(e){return{address:e,abi:Ee,functionName:`stWanPoolManager`,args:[]}}const Oe=[{type:`function`,name:`unstakeRequests`,inputs:[{name:`requestId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`user`,type:`address`,internalType:`address`},{name:`amount`,type:`uint256`,internalType:`uint256`},{name:`requestTime`,type:`uint256`,internalType:`uint256`},{name:`claimed`,type:`bool`,internalType:`bool`}],stateMutability:`view`}];function ke(e,t){return{address:e,abi:Oe,functionName:`unstakeRequests`,args:[t]}}const Ae=[{type:`function`,name:`minUnstakeDuration`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function je(e){return{address:e,abi:Ae,functionName:`minUnstakeDuration`,args:[]}}var Me=class{constructor(n,r=t.wanchain,i){if(this.governanceAbi=ee,this.multicallAbi=m,this.DEFAULT_ADMIN_ROLE=`0x0000000000000000000000000000000000000000000000000000000000000000`,this.WAN_GOVERNOR_OPERATOR_ROLE=`0x9c307f370e24cd9c4086c6c16452697787789246a163292b4e4203788924e58f`,!r?.contracts?.multicall3?.address)throw Error(`not support multicall3`);this.multicallAddr=r.contracts.multicall3.address,this.publicClient=(0,e.createPublicClient)({chain:r,transport:i?(0,e.http)(i):(0,e.http)()}),this.governanceAddr=n}async getBaseParameters(){let e=await this.publicClient.multicall({contracts:[q(this.governanceAddr),Y(this.governanceAddr),b(this.governanceAddr),G(this.governanceAddr),F(this.governanceAddr,f.UnderReview),F(this.governanceAddr,f.Fundraising),F(this.governanceAddr,f.VotingInProgress),F(this.governanceAddr,f.Succeeded),F(this.governanceAddr,f.Rejected),F(this.governanceAddr,f.Failed),F(this.governanceAddr,f.Canceled),se(this.governanceAddr),pe(this.governanceAddr),he(this.governanceAddr),_e(this.governanceAddr),ye(this.governanceAddr)],allowFailure:!1});return{allProposalWanAmount:e[0][0],allProposalLockingWanAmount:e[0][1],allProposalBurnedWanAmount:e[0][2],ethTransferGasLimit:e[1][0],minParticipationAmount:e[1][1],requestWanMultiplier:e[1][2],baseSucceedThreshold:e[1][3],requireXpAmount:e[1][4],pledgeLockDuration:e[1][5],fundraisingDuration:e[1][6],voteDuration:e[1][7],xp:e[1][8],stakingManager:e[1][9],wanTreasury:e[1][10],burnAddr:e[2],proposalCount:e[3],reviewPendingProposalCount:e[4],prospectiveProposalCount:e[5],votingProposalCount:e[6],succeededProposalCount:e[7],rejectedProposalCount:e[8],failedProposalCount:e[9],canceledProposalCount:e[10],proposalWanMultiplierCount:e[11][0],votingWanMultiplierCount:e[11][1],DENOMINATOR:e[12],MAX_REQUEST_WAN_RATIO_BPS_KEY:e[13],WAN_TOTAL_SUPPLY:e[14],PROPOSAL_CATEGORY_TECHNICAL_SUCCEED_THRESHOLD_KEY:e[15]}}async getUints(e){return await this.publicClient.multicall({contracts:e.map(e=>xe(this.governanceAddr,e)),allowFailure:!1})}async getProposalMultipliers(e){let t=0,n=0;if(e.proposalWanMultiplier){if(e.proposalWanMultiplier.end<e.proposalWanMultiplier.start||e.proposalWanMultiplier.start<0)throw Error(`Invalid proposalWanMultiplier`);t=e.proposalWanMultiplier.end-e.proposalWanMultiplier.start+1}if(e.votingWanMultiplier){if(e.votingWanMultiplier.end<e.votingWanMultiplier.start||e.votingWanMultiplier.start<0)throw Error(`Invalid votingWanMultiplier`);n=e.votingWanMultiplier.end-e.votingWanMultiplier.start+1}let r=t+n,i=t>0,a=n>0,o=Array(r);if(i)for(let e=0;e<t;++e)o[e]=le(this.governanceAddr,e);if(a)for(let e=t;e<r;++e)o[e]=de(this.governanceAddr,e-t);let s=await this.publicClient.multicall({contracts:o,allowFailure:!1}),c=i?Array(t):[],l=a?Array(n):[];for(let e=0;e<s.length;++e)if(e<t){let t=s[e];c[e]={pledgeType:t[0],lockDuration:t[1],multiplier:t[2]}}else{let n=s[e];l[e-t]={pledgeType:n[0],lockDuration:n[1],multiplier:n[2]}}return{proposalWanMultipliers:c,votingWanMultipliers:l}}async getProposalCounts(){let e=await this.publicClient.multicall({contracts:[G(this.governanceAddr),F(this.governanceAddr,f.UnderReview),F(this.governanceAddr,f.Fundraising),F(this.governanceAddr,f.VotingInProgress),F(this.governanceAddr,f.Succeeded),F(this.governanceAddr,f.Rejected),F(this.governanceAddr,f.Failed),F(this.governanceAddr,f.Canceled)],allowFailure:!1});return{allProposalCount:e[0],reviewPendingProposalCount:e[1],prospectiveProposalCount:e[2],votingProposalCount:e[3],succeededProposalCount:e[4],rejectedProposalCount:e[5],failedProposalCount:e[6],canceledProposalCount:e[7]}}async getActiveProposalCategoryCounts(){let e=await this.publicClient.multicall({contracts:[T(this.governanceAddr,f.VotingInProgress,p.Funding),T(this.governanceAddr,f.VotingInProgress,p.Technical)],allowFailure:!1});return{fundingProposalCount:e[0],technicalProposalCount:e[1]}}async getParticipableProposalCategoryCounts(){let e=await this.publicClient.multicall({contracts:[T(this.governanceAddr,f.Fundraising,p.Funding),T(this.governanceAddr,f.Fundraising,p.Technical),T(this.governanceAddr,f.VotingInProgress,p.Funding),T(this.governanceAddr,f.VotingInProgress,p.Technical)],allowFailure:!1});return{fundingProposalCount:e[0]+e[2],technicalProposalCount:e[1]+e[3]}}async getAssetBalances(e,t){let n=await this.publicClient.multicall({contracts:[g(this.multicallAddr,t),v(e,t)],allowFailure:!1});return{ethBalance:n[0],xpBalance:n[1]}}async getAccountProposalCount(e){let t=await this.publicClient.multicall({contracts:[L(this.governanceAddr,l.Proposer,e),L(this.governanceAddr,l.Partner,e),L(this.governanceAddr,l.Voter,e)],allowFailure:!1});return{proposerProposalCount:t[0],partnerProposalCount:t[1],voterProposalCount:t[2]}}async getFoundations(){return await this.publicClient.readContract(ne(this.governanceAddr))}async checkAccountRole(e){let t=await this.publicClient.multicall({contracts:[C(this.governanceAddr,e,this.DEFAULT_ADMIN_ROLE),C(this.governanceAddr,e,this.WAN_GOVERNOR_OPERATOR_ROLE),S(this.governanceAddr,e)],allowFailure:!1});return{isAdmin:t[0],isOperator:t[1],isFouondation:t[2]}}async getAccountProposalId(e,t,n,r,i){return await this.publicClient.readContract(D(this.governanceAddr,t,e,n,r,i))}async getProposalPartnerAndVoterCounts(e){let t=await this.publicClient.readContract(z(this.governanceAddr,e));return{partnerCount:t[0],voterCount:t[1]}}async getProposalAllVotes(e){let{voterCount:t}=await this.getProposalPartnerAndVoterCounts(e),n=Number(t),r=Array(n);for(let t=0;t<n;++t)r[t]=ie(this.governanceAddr,e,BigInt(t));return await this.publicClient.multicall({contracts:r,allowFailure:!1})}async getProposalAllVoteInfo(e){let t=await this.getProposalAllVotes(e),n=Array(t.length);for(let r=0;r<t.length;++r)n[r]=Z(this.governanceAddr,e,t[r]);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});return t.map((e,t)=>({voterInfo:r[t],voter:e,index:t}))}async getProposerProposals(e,t){if(t.end<t.start||t.start<0)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1);for(let r=t.start;r<=t.end;++r)n[r-t.start]=U(this.governanceAddr,l.Proposer,e,r);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});n=Array(r.length);for(let e=0;e<r.length;e++){let t=r[e];n[e]=j(this.governanceAddr,t)}return(await this.publicClient.multicall({contracts:n,allowFailure:!1})).map((e,t)=>({proposalId:r[t],...e}))}async getPartnerProposals(e,t){if(t.end<t.start||t.start<0)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1);for(let r=t.start;r<=t.end;++r)n[r-t.start]=U(this.governanceAddr,l.Partner,e,r);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});n=Array(r.length*2);for(let t=0;t<r.length;++t){let i=t*2,a=r[t];n[i]=j(this.governanceAddr,a),n[i+1]=V(this.governanceAddr,a,e)}let i=await this.publicClient.multicall({contracts:n,allowFailure:!1}),a=Array(r.length);for(let e=0;e<r.length;++e){let t=e*2,n=i[t],o=i[t+1];a[e]={proposalInfo:{proposalId:r[e],...n},partnerInfo:o}}return a}async getVoterProposals(e,t){if(t.end<t.start||t.start<0)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1);for(let r=t.start;r<=t.end;++r)n[r-t.start]=U(this.governanceAddr,l.Voter,e,r);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});n=Array(r.length*2);for(let t=0;t<r.length;++t){let i=t*2,a=r[t];n[i]=j(this.governanceAddr,a),n[i+1]=Z(this.governanceAddr,a,e)}let i=await this.publicClient.multicall({contracts:n,allowFailure:!1}),a=Array(r.length);for(let e=0;e<r.length;++e){let t=e*2,n=i[t],o=i[t+1];a[e]={proposalInfo:{proposalId:r[e],...n},voterInfo:o}}return a}async getPartnerInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r){let i=t[r];n[r]=V(this.governanceAddr,i,e)}return await this.publicClient.multicall({contracts:n,allowFailure:!1})}async getVoterInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r){let i=t[r];n[r]=Z(this.governanceAddr,i,e)}return await this.publicClient.multicall({contracts:n,allowFailure:!1})}async getRecentAllProposals(e){let{start:t,limit:n}=e;if(t<0||n<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let r=[],i=t,a=-1,o=Math.max(n*2,20);for(;r.length<n&&i>=0;){let e=Math.max(i-o+1,0),t=[];for(let n=i;n>=e;n--)t.push(n);let s=t.map(e=>k(this.governanceAddr,e)),c=await this.publicClient.multicall({contracts:s,allowFailure:!1});for(let e=0;e<c.length;++e){let[i,o]=c[e];if(r.push({proposalId:i,...o}),r.length===n){let n=t[e];a=n>0?n-1:-1;break}}if(r.length<n)i=e-1,o=Math.min(o*2,100);else break}return{proposals:r,nextIndex:a}}async getRecentProposalsExcludeCanceled(e){let{start:t,limit:n}=e;if(t<0||n<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let r=[],i=t,a=-1,o=Math.max(n*2,20);for(;r.length<n&&i>=0;){let e=Math.max(i-o+1,0),t=[];for(let n=i;n>=e;n--)t.push(n);let s=t.map(e=>k(this.governanceAddr,e)),c=await this.publicClient.multicall({contracts:s,allowFailure:!1});for(let e=0;e<c.length;++e){let[i,o]=c[e];if(o.state!==f.Canceled&&(r.push({proposalId:i,...o}),r.length===n)){let n=t[e];a=n>0?n-1:-1;break}}if(r.length<n)i=e-1,o=Math.min(o*2,100);else break}return{proposals:r,nextIndex:a}}async getRecentReviewedProposals(e){let{start:t,limit:n}=e;if(t<0||n<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let r=[],i=t,a=-1,o=Math.max(n*2,20);for(;r.length<n&&i>=0;){let e=Math.max(i-o+1,0),t=[];for(let n=i;n>=e;n--)t.push(n);let s=t.map(e=>k(this.governanceAddr,e)),c=await this.publicClient.multicall({contracts:s,allowFailure:!1});for(let e=0;e<c.length;++e){let[i,o]=c[e];if(o.state!==f.UnderReview&&o.state!==f.Canceled&&o.state!==f.Rejected&&(r.push({proposalId:i,...o}),r.length===n)){let n=t[e];a=n>0?n-1:-1;break}}if(r.length<n)i=e-1,o=Math.min(o*2,100);else break}return{proposals:r,nextIndex:a}}async getReviewPendingProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.UnderReview,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentReviewPendingProposals(e){return await this._getRecentProposalsByState(e,f.UnderReview)}async getProspectiveProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Fundraising,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentProspectiveProposals(e){return await this._getRecentProposalsByState(e,f.Fundraising)}async getVotingProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.VotingInProgress,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentVotingProposals(e){return await this._getRecentProposalsByState(e,f.VotingInProgress)}async getSucceedProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Succeeded,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentSucceededProposals(e){return await this._getRecentProposalsByState(e,f.Succeeded)}async getFailedProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Failed,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentRejectedProposals(e){return await this._getRecentProposalsByState(e,f.Rejected)}async getRecentFailedProposals(e){return await this._getRecentProposalsByState(e,f.Failed)}async getCanceledProposals(e){if(e.end<e.start||e.start<0)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1);for(let n=e.start;n<=e.end;++n)t[n-e.start]=N(this.governanceAddr,f.Canceled,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e){let r=n[e];t[e]=j(this.governanceAddr,r)}return(await this.publicClient.multicall({contracts:t,allowFailure:!1})).map((e,t)=>({proposalId:n[t],...e}))}async getRecentCanceledProposals(e){return await this._getRecentProposalsByState(e,f.Canceled)}async getProposalInfo(e){return{proposalId:e,...await this.publicClient.readContract(j(this.governanceAddr,e))}}canRequestProposalWithdrawal(e,t){if(t.length==0)return[];let n=Array(t.length);for(let r=0;r<t.length;++r){let i=!1,a=!1;t[r].state==f.Succeeded&&t[r].pledgeType==u.Lock&&t[r].lockDuration>BigInt(0)&&t[r].requestId==BigInt(0)&&!t[r].exited&&(i=!0),i&&e>t[r].voteDeadline+t[r].lockDuration&&(a=!0),n[r]={needRequestWithdrawal:i,canRequestWithdrawal:a}}return n}async canClaimProposalWithdrawal(e,t,n){if(n.length==0)return[];let r=0,i={},a=Array(n.length),o=Array(n.length);for(let s=0;s<n.length;++s){if(this._canWithdrawProposalImmediately(t,n[s])){a[s]=!0;continue}if(this._canWithdrawSucceededProposal(t,n[s])){o[r]=$(e,n[s].requestId),i[s]=r,r++;continue}a[s]=!1}o=o.slice(0,r);let s=await this.publicClient.multicall({contracts:o,allowFailure:!1});for(let e=0;e<o.length;e++)a[i[e]]=s[e]==c.ReadyToClaim;return a}_canWithdrawProposalImmediately(e,t){return t.state==f.Failed||t.lockDuration==BigInt(0)&&t.pledgeType==u.Lock&&t.state==f.Succeeded&&e>t.voteDeadline+t.lockDuration}_canWithdrawSucceededProposal(e,t){return t.lockDuration>BigInt(0)&&t.pledgeType==u.Lock&&t.state==f.Succeeded&&t.requestId>BigInt(0)&&!t.exited&&e>t.voteDeadline+t.lockDuration}async getUnstakeStatus(e,t){return await this.publicClient.readContract($(e,t))}async getUnstakeRequest(e,t){let n=await this.publicClient.readContract(De(e)),r=await this.publicClient.multicall({contracts:[je(n),ke(n,t)],allowFailure:!1});return{minUnstakeDuration:r[0],stWanPoolManagerAddr:n,user:r[1][0],amount:r[1][1],requestTime:r[1][2],claimed:r[1][3]}}async getCurrentRatio(e){let t=await this.publicClient.readContract(Se(e));return await this.publicClient.readContract(we(t))}async buildTx(t,n,r,i=BigInt(0)){let[a,o]=this.governanceAbi.some(e=>`name`in e&&e.name===n)?[this.governanceAbi,this.governanceAddr]:[this.multicallAbi,this.multicallAddr];return await this.publicClient.simulateContract({address:o,abi:a,functionName:n,args:r,account:t,value:i}),await this.publicClient.prepareTransactionRequest({account:t,to:o,data:(0,e.encodeFunctionData)({abi:a,functionName:n,args:r}),value:i})}async buildCreateProposalTx(e,t,n,r,i,a){let o=[n,r,i,a];return await this.buildTx(e,`createProposal`,o,t)}async buildCancelProposalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`cancelProposal`,r,BigInt(0))}async buildReviewProposalTx(e,t,n,r){let i=[t,n,r];return await this.buildTx(e,`reviewProposal`,i,BigInt(0))}async buildContributeProposalTx(e,t,n,r,i){let a=[t,r,i];return await this.buildTx(e,`contributeProposal`,a,n)}async buildVoteProposalTx(e,t,n,r,i,a,o){let s=[t,r,i,a,o];return await this.buildTx(e,`voteProposal`,s,n)}async buildTallyProposalTx(e,t){let n=[t];return await this.buildTx(e,`tallyProposal`,n,BigInt(0))}async buildRequestProposerWithdrawalTx(e,t){let n=[t];return await this.buildTx(e,`requestProposerWithdrawal`,n,BigInt(0))}async buildClaimProposerWithdrawalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`claimProposerWithdrawal`,r,BigInt(0))}async buildRequestPartnerWithdrawalTx(e,t){let n=[t];return await this.buildTx(e,`requestPartnerWithdrawal`,n,BigInt(0))}async buildClaimPartnerWithdrawalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`claimPartnerWithdrawal`,r,BigInt(0))}async buildRequestVoterWithdrawalTx(e,t){let n=[t];return await this.buildTx(e,`requestVoterWithdrawal`,n,BigInt(0))}async buildClaimVoterWithdrawalTx(e,t,n){let r=[t,n];return await this.buildTx(e,`claimVoterWithdrawal`,r,BigInt(0))}async buildUpdateProposalGlobalConfigTx(e,t,n,r,i,a,o,s,c,l,u,d){let f=[[t,n,r,i,a,o,s,c,l,u,d]];return await this.buildTx(e,`updateProposalGlobalConfig`,f,BigInt(0))}async _getRecentProposalsByState(e,t){let{start:n,limit:r}=e;if(n<0||r<1)throw Error(`Invalid param: start must be >= 0, limit must be > 0`);let i=[],a=n,o=-1,s=Math.max(r*2,20);for(;i.length<r&&a>=0;){let e=Math.max(a-s+1,0),n=[];for(let t=a;t>=e;t--)n.push(t);let c=n.map(e=>N(this.governanceAddr,t,e)),l=await this.publicClient.multicall({contracts:c,allowFailure:!1}),u=l.map(e=>j(this.governanceAddr,e)),d=await this.publicClient.multicall({contracts:u,allowFailure:!1});for(let e=0;e<d.length;++e){let a=d[e];if(a.state===t&&(i.push({proposalId:l[e],...a}),i.length===r)){let t=n[e];o=t>0?t-1:-1;break}}if(i.length<r)a=e-1,s=Math.min(s*2,100);else break}return{proposals:i,nextIndex:o}}async encodeProposalMulticallCall(t,n){return(0,e.encodeFunctionData)({abi:this.governanceAbi,functionName:t,args:n})}async buildProposalMulticallTx(e,t){return await this.buildTx(e,`multicall`,[t],BigInt(0))}async buildPublicMulticallCall(t,n){let r=(0,e.encodeFunctionData)({abi:this.governanceAbi,functionName:t,args:n});return{target:this.multicallAddr,allowFailure:!1,callData:r}}async buildPublicMulticallTx(e,t){return await this.buildTx(e,`aggregate3`,[t],BigInt(0))}};exports.Governance=Me,exports.PledgeType=u,exports.ProposalCategory=p,exports.ProposalRole=l,exports.ProposalState=f,exports.UnstakeStatus=c,exports.VoteType=d,exports.decodeProposalDescriptionData=o,exports.encodeProposalDescriptionData=a,exports.getVersionFromData=s,exports.supportedProposalDescriptionDataTypeSchema=n;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|