@wandevs/governance-contracts-sdk 1.0.0 → 1.0.1
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 +2 -1
- package/dist/index.cjs.map +1 -0
- package/package.json +14 -10
package/dist/index.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`viem`),t=require(`viem/chains`);const{encodeAbiParameters:n,decodeAbiParameters:r}=require(`viem`),i={1:{types:[{type:`uint256`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`]},2:{types:[{type:`uint256`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`]},3:{types:[{type:`uint256`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`,`discord`]}};function a(...e){let t=i[e[0]];if(!t)throw Error(`Unsupported version`);if(e.length!==t.types.length)throw Error(`Invalid number of arguments for the specified version`);return n(t.types,e)}function o(e){let t=i[s(e)];if(!t)throw Error(`Unsupported version`);let n=r(t.types,e);console.log(`decoded:`,n);let a={};for(let e=0;e<t.names.length;e++)a[t.names[e]]=n[e];return a}function s(e){if(!e)return 0;let t=e.startsWith(`0x`)?2:0,n=e.substring(t,t+64);return parseInt(n,16)}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}({}),p=function(e){return e[e.Funding=0]=`Funding`,e[e.Technical=1]=`Technical`,e}({});const m=[{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:`WAN_GOVERNOR_OPERATOR_ROLE`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],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:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimeStWanAmount`,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`}]}],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:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimeStWanAmount`,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`}]}],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:`getProposalPartnerInfoAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`partner`,type:`address`,internalType:`address`},{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:`getProposalVoterInfoAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`voter`,type:`address`,internalType:`address`},{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:`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:`_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:`succeedThreshold`,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:`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:`succeedThreshold`,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:`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:`updateEthTransferGasLimit`,inputs:[{name:`_gasLimit`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateFundraisingDuration`,inputs:[{name:`_duration`,type:`uint128`,internalType:`uint128`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateMinParticipationAmount`,inputs:[{name:`_amount`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updatePledgeLockDuration`,inputs:[{name:`_lockDuration`,type:`uint128`,internalType:`uint128`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateRequestWanMultiplier`,inputs:[{name:`_requestWanMultiplier`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateSucceedThreshold`,inputs:[{name:`_threshold`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateVoteDuration`,inputs:[{name:`_duration`,type:`uint128`,internalType:`uint128`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateXpRequiredAmount`,inputs:[{name:`_amount`,type:`uint256`,internalType:`uint256`}],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:`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:`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:`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:`UpdateEthTransferGasLimit`,inputs:[{name:`gasLimit`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateFundraisingDuration`,inputs:[{name:`duration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`UpdateMinParticipationAmount`,inputs:[{name:`amount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdatePledgeLockDuration`,inputs:[{name:`lockDuration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`UpdateRequestWanMultiplier`,inputs:[{name:`requestWanMultiplier`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateSucceedThreshold`,inputs:[{name:`threshold`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateVoteDuration`,inputs:[{name:`duration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`UpdateXpRequiredAmount`,inputs:[{name:`amount`,type:`uint256`,indexed:!0,internalType:`uint256`}],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:`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:`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:`NotAdminOrOperator`,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:`ProposalAreadyExists`,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:`ZeroAddress`,inputs:[]}],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 ee(e){return{address:e,abi:y,functionName:`BURN`}}const b=[{type:`function`,name:`getFoundations`,inputs:[],outputs:[{name:``,type:`address[]`,internalType:`address[]`}],stateMutability:`view`}];function x(e){return{address:e,abi:b,functionName:`getFoundations`}}const te=[{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 S(e,t,n){return{address:e,abi:te,functionName:`proposalCategoryCount`,args:[t,n]}}const C=[{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 w(e,t,n,r,i,a){return{address:e,abi:C,functionName:`getProposalId`,args:[t,n,r,i,a]}}const T=[{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:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimeStWanAmount`,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`}]}],stateMutability:`view`}];function E(e,t){return{address:e,abi:T,functionName:`getProposalInfo`,args:[t]}}const D=[{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 O(e,t,n){return{address:e,abi:D,functionName:`getProposalIdByStateAt`,args:[t,n]}}const k=[{type:`function`,name:`getProposalCountByState`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function A(e,t){return{address:e,abi:k,functionName:`getProposalCountByState`,args:[t]}}const j=[{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 M(e,t,n){return{address:e,abi:j,functionName:`getProposalCountByRole`,args:[t,n]}}const N=[{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 P(e,t){return{address:e,abi:N,functionName:`getProposalPartnerAndVoterCounts`,args:[t]}}const F=[{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 I(e,t,n){return{address:e,abi:F,functionName:`getProposalPartnerInfo`,args:[t,n]}}const L=[{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 R(e,t,n,r){return{address:e,abi:L,functionName:`getProposalIdByRoleAt`,args:[t,n,r]}}const z=[{type:`function`,name:`getAllProposalCount`,inputs:[],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function B(e){return{address:e,abi:z,functionName:`getAllProposalCount`,args:[]}}const V=[{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 H(e){return{address:e,abi:V,functionName:`totalProposalAmountInfo`}}const U=[{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:`succeedThreshold`,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 W(e){return{address:e,abi:U,functionName:`proposalGlobalConfig`}}const G=[{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 K(e,t,n){return{address:e,abi:G,functionName:`getProposalVoterInfo`,args:[t,n]}}const q=[{type:`function`,name:`getProposalMultiplierCounts`,inputs:[],outputs:[{name:`proposalWanMultiplierCount`,type:`uint256`,internalType:`uint256`},{name:`votingWanMultiplierCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function J(e){return{address:e,abi:q,functionName:`getProposalMultiplierCounts`,args:[]}}const Y=[{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 X(e,t){return{address:e,abi:Y,functionName:`getProposalWanMultiplierAt`,args:[t]}}const Z=[{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 Q(e,t){return{address:e,abi:Z,functionName:`getVotingWanMultiplierAt`,args:[t]}}const ne=[{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:ne,functionName:`getUnstakeStatus`,args:[t]}}var re=class{constructor(n,r=t.wanchain,i){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:[H(this.governanceAddr),W(this.governanceAddr),ee(this.governanceAddr),B(this.governanceAddr),A(this.governanceAddr,f.UnderReview),A(this.governanceAddr,f.Fundraising),A(this.governanceAddr,f.VotingInProgress),A(this.governanceAddr,f.Succeeded),A(this.governanceAddr,f.Rejected),A(this.governanceAddr,f.Canceled),J(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],succeedThreshold: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],failedProposalCount:e[8],canceledProposalCount:e[9],proposalWanMultiplierCount:e[10][0],votingWanMultiplierCount:e[10][1]}}async getProposalMultipliers(e){let t=0n,n=0n;if(e.proposalWanMultiplier){if(e.proposalWanMultiplier.end<e.proposalWanMultiplier.start||e.proposalWanMultiplier.start<0n)throw Error(`Invalid proposalWanMultiplier`);t=e.proposalWanMultiplier.end-e.proposalWanMultiplier.start+1n}if(e.votingWanMultiplier){if(e.votingWanMultiplier.end<e.votingWanMultiplier.start||e.votingWanMultiplier.start<0n)throw Error(`Invalid votingWanMultiplier`);n=e.votingWanMultiplier.end-e.votingWanMultiplier.start+1n}let r=t+n,i=t>0n,a=n>0n,o=Array(r);if(i)for(let e=0;e<t;++e)o[e]=X(this.governanceAddr,e);if(a)for(let e=t;e<r;++e)o[e]=Q(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=0n;e<s.length;++e)e<t?c[e]={pledgeType:s[e][0],lockDuration:s[e][1],multiplier:s[e][2]}:l[e-t]={pledgeType:s[e][0],lockDuration:s[e][1],multiplier:s[e][2]};return{proposalWanMultipliers:c,votingWanMultipliers:l}}async getProposalCounts(){let e=await this.publicClient.multicall({contracts:[B(this.governanceAddr),A(this.governanceAddr,f.UnderReview),A(this.governanceAddr,f.Fundraising),A(this.governanceAddr,f.VotingInProgress),A(this.governanceAddr,f.Succeeded),A(this.governanceAddr,f.Rejected),A(this.governanceAddr,f.Canceled)],allowFailure:!1});return{allProposalCount:e[0],reviewPendingProposalCount:e[1],prospectiveProposalCount:e[2],votingProposalCount:e[3],succeededProposalCount:e[4],failedProposalCount:e[5],canceledProposalCount:e[6]}}async getActiveProposalCategoryCounts(){let e=await this.publicClient.multicall({contracts:[S(this.governanceAddr,f.Fundraising,p.Funding),S(this.governanceAddr,f.Fundraising,p.Technical),S(this.governanceAddr,f.VotingInProgress,p.Funding),S(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.publicClient.chain.contracts.multicall3.address,t),v(e,t)],allowFailure:!1});return{ethBalance:n[0],xpBalance:n[1]}}async getAccountProposalCount(e){let t=await this.publicClient.multicall({contracts:[M(this.governanceAddr,l.Proposer,e),M(this.governanceAddr,l.Partner,e),M(this.governanceAddr,l.Voter,e)],allowFailure:!1});return{proposerProposalCount:t[0],partnerProposalCount:t[1],voterProposalCount:t[2]}}async getFoundations(){return await this.publicClient.readContract(x(`0xaFBF28B258599466fFAC7C207172d84CE12761B8`))}async getAccountProposalId(e,t,n,r,i){return await this.publicClient.readContract(w(this.governanceAddr,t,e,n,r,i))}async getProposalPartnerAndVoterCounts(e){return await this.publicClient.readContract(P(this.governanceAddr,e))}async getProposerProposals(e,t){if(t.end<t.start||t.start<0n)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1n);for(let r=t.start;r<=t.end;++r)n[r-t.start]=R(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++)n[e]=E(this.governanceAddr,r[e]);let i=await this.publicClient.multicall({contracts:n,allowFailure:!1});for(let e=0;e<r.length;)i[e].proposalId=r[e],e+=2;return i}async getPartnerProposals(e,t){if(t.end<t.start||t.start<0n)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1n);for(let r=t.start;r<=t.end;++r)n[r-t.start]=R(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;n[i]=E(this.governanceAddr,r[t]),n[i+1]=I(this.governanceAddr,r[t],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;i[t].proposalId=r[e],a[e]={proposalInfo:i[t],partnerInfo:i[t+1]}}return a}async getVoterProposals(e,t){if(t.end<t.start||t.start<0n)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1n);for(let r=t.start;r<=t.end;++r)n[r-t.start]=R(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;n[i]=E(this.governanceAddr,r[t]),n[i+1]=K(this.governanceAddr,r[t],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;i[t].proposalId=r[e],a[e]={proposalInfo:i[t],voterInfo:i[t+1]}}return a}async getPartnerInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r)n[r]=I(this.governanceAddr,t[r],e);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});for(let e=0;e<t.length;++e)r[e].proposalId=t[e];return r}async getVoterInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r)n[r]=K(this.governanceAddr,t[r],e);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});for(let e=0;e<t.length;++e)r[e].proposalId=t[e];return r}async getReviewPendingProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getProspectiveProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getVotingProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getSucceedProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getFailedProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(this.governanceAddr,f.Rejected,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getProposalInfo(e){let t=await this.publicClient.readContract(E(this.governanceAddr,e));return t.proposalId=e,t}canRequestProposalWithdrawal(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r){let i=!0,a=!1;(t[r].state==f.Rejected||t[r].state==f.Succeeded&&(t[r].lockDuration==0n||t[r].requestId>0n))&&(i=!1),t[r].state==f.Succeeded&&t[r].lockDuration>0n&&e>t[r].voteDeadline+t[r].lockDuration&&t[r].requestId==0n&&!t[r].exited&&(a=!0),n[r]={needRequestWithdrawal:i,canRequestWithdrawal:a}}return n}async canClaimProposalWithdrawal(e,t,n){let r=0,i={},a=Array(n.length),o=Array(n.length);for(let s=0;s<n.length;++s){if(n[s].state==f.Rejected||n[s].state==f.Succeeded&&n[s].lockDuration==0n&&!n[s].exited){a[s]=!0;continue}if(n[s].state==f.Succeeded&&n[s].lockDuration>0n&&t>n[s].voteDeadline+n[s].lockDuration&&n[s].requestId>0n&&!n[s].exited){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}async getUnstakeStatus(e,t){return await this.publicClient.readContract($(e,t))}async buildTx(t,n,r,i=0n){return await this.publicClient.simulateContract({address:this.governanceAddr,abi:m,functionName:n,args:r,account:t,value:i}),await this.publicClient.prepareTransactionRequest({account:t,to:this.governanceAddr,data:(0,e.encodeFunctionData)({abi:m,functionName:n,args:r}),value:i})}async _buildTx(t,n,r=0n){return await this.publicClient.simulateContract({address:this.governanceAddr,abi:n.abi,functionName:n.functionName,args:n.args,account:t}),await this.publicClient.prepareTransactionRequest({account:t,to:this.governanceAddr,data:(0,e.encodeFunctionData)(n),value:r})}async buildCreateProposalTx(e,t,n,r,i,a){return await this.buildTx(e,`createProposal`,[n,r,i,a],t)}async buildCancelProposalTx(e,t,n){return await this.buildTx(e,`cancelProposal`,[t,n])}async buildReviewProposalTx(e,t,n,r){return await this.buildTx(e,`reviewProposal`,[t,n,r])}async buildContributeProposalTx(e,t,n,r,i){return await this.buildTx(e,`contributeProposal`,[t,r,i],n)}async buildVoteProposalTx(e,t,n,r,i,a,o){return await this.buildTx(e,`voteProposal`,[t,r,i,a,o],n)}async buildTallyProposalTx(e,t){return await this.buildTx(e,`tallyProposal`,[t])}async buildRequestProposerWithdrawalTx(e,t){return await this.buildTx(e,`requestProposerWithdrawal`,[t],0n)}async buildClaimProposerWithdrawalTx(e,t,n){return await this.buildTx(e,`claimProposerWithdrawal`,[t,n],0n)}async buildRequestPartnerWithdrawalTx(e,t){return await this.buildTx(e,`requestPartnerWithdrawal`,[t],0n)}async buildClaimPartnerWithdrawalTx(e,t,n){return await this.buildTx(e,`claimPartnerWithdrawal`,[t,n],0n)}async buildRequestVoterWithdrawalTx(e,t){return await this.buildTx(e,`requestVoterWithdrawal`,[t],0n)}async buildClaimVoterWithdrawalTx(e,t,n){return await this.buildTx(e,`claimVoterWithdrawal`,[t,n],0n)}async buildUpdateFundraisingDurationTx(e,t){return await this.buildTx(e,`updateFundraisingDuration`,[t],0n)}async buildUpdateMinParticipationAmountTx(e,t){return await this.buildTx(e,`updateMinParticipationAmount`,[t],0n)}};exports.Governance=re,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=i;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`viem`),t=require(`viem/chains`);const{encodeAbiParameters:n,decodeAbiParameters:r}=require(`viem`),i={1:{types:[{type:`uint256`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`]},2:{types:[{type:`uint256`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`]},3:{types:[{type:`uint256`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`},{type:`string`}],names:[`version`,`title`,`description`,`email`,`telegram`,`twitter`,`discord`]}};function a(...e){let t=i[e[0]];if(!t)throw Error(`Unsupported version`);if(e.length!==t.types.length)throw Error(`Invalid number of arguments for the specified version`);return n(t.types,e)}function o(e){let t=i[s(e)];if(!t)throw Error(`Unsupported version`);let n=r(t.types,e);console.log(`decoded:`,n);let a={};for(let e=0;e<t.names.length;e++)a[t.names[e]]=n[e];return a}function s(e){if(!e)return 0;let t=e.startsWith(`0x`)?2:0,n=e.substring(t,t+64);return parseInt(n,16)}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}({}),p=function(e){return e[e.Funding=0]=`Funding`,e[e.Technical=1]=`Technical`,e}({});const m=[{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:`WAN_GOVERNOR_OPERATOR_ROLE`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],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:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimeStWanAmount`,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`}]}],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:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimeStWanAmount`,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`}]}],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:`getProposalPartnerInfoAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`partner`,type:`address`,internalType:`address`},{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:`getProposalVoterInfoAt`,inputs:[{name:`_proposalId`,type:`bytes32`,internalType:`bytes32`},{name:`_index`,type:`uint256`,internalType:`uint256`}],outputs:[{name:`voter`,type:`address`,internalType:`address`},{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:`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:`_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:`succeedThreshold`,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:`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:`succeedThreshold`,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:`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:`updateEthTransferGasLimit`,inputs:[{name:`_gasLimit`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateFundraisingDuration`,inputs:[{name:`_duration`,type:`uint128`,internalType:`uint128`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateMinParticipationAmount`,inputs:[{name:`_amount`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updatePledgeLockDuration`,inputs:[{name:`_lockDuration`,type:`uint128`,internalType:`uint128`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateRequestWanMultiplier`,inputs:[{name:`_requestWanMultiplier`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateSucceedThreshold`,inputs:[{name:`_threshold`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateVoteDuration`,inputs:[{name:`_duration`,type:`uint128`,internalType:`uint128`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`updateXpRequiredAmount`,inputs:[{name:`_amount`,type:`uint256`,internalType:`uint256`}],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:`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:`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:`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:`UpdateEthTransferGasLimit`,inputs:[{name:`gasLimit`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateFundraisingDuration`,inputs:[{name:`duration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`UpdateMinParticipationAmount`,inputs:[{name:`amount`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdatePledgeLockDuration`,inputs:[{name:`lockDuration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`UpdateRequestWanMultiplier`,inputs:[{name:`requestWanMultiplier`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateSucceedThreshold`,inputs:[{name:`threshold`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`UpdateVoteDuration`,inputs:[{name:`duration`,type:`uint128`,indexed:!0,internalType:`uint128`}],anonymous:!1},{type:`event`,name:`UpdateXpRequiredAmount`,inputs:[{name:`amount`,type:`uint256`,indexed:!0,internalType:`uint256`}],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:`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:`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:`NotAdminOrOperator`,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:`ProposalAreadyExists`,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:`ZeroAddress`,inputs:[]}],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 ee(e){return{address:e,abi:y,functionName:`BURN`}}const b=[{type:`function`,name:`getFoundations`,inputs:[],outputs:[{name:``,type:`address[]`,internalType:`address[]`}],stateMutability:`view`}];function x(e){return{address:e,abi:b,functionName:`getFoundations`}}const te=[{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 S(e,t,n){return{address:e,abi:te,functionName:`proposalCategoryCount`,args:[t,n]}}const C=[{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 w(e,t,n,r,i,a){return{address:e,abi:C,functionName:`getProposalId`,args:[t,n,r,i,a]}}const T=[{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:`totalWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalLockingWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalBurnedWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalStWanAmount`,type:`uint256`,internalType:`uint256`},{name:`totalClaimeStWanAmount`,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`}]}],stateMutability:`view`}];function E(e,t){return{address:e,abi:T,functionName:`getProposalInfo`,args:[t]}}const D=[{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 O(e,t,n){return{address:e,abi:D,functionName:`getProposalIdByStateAt`,args:[t,n]}}const k=[{type:`function`,name:`getProposalCountByState`,inputs:[{name:`_state`,type:`uint8`,internalType:`enum IWanGovernor.ProposalState`}],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function A(e,t){return{address:e,abi:k,functionName:`getProposalCountByState`,args:[t]}}const j=[{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 M(e,t,n){return{address:e,abi:j,functionName:`getProposalCountByRole`,args:[t,n]}}const N=[{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 P(e,t){return{address:e,abi:N,functionName:`getProposalPartnerAndVoterCounts`,args:[t]}}const F=[{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 I(e,t,n){return{address:e,abi:F,functionName:`getProposalPartnerInfo`,args:[t,n]}}const L=[{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 R(e,t,n,r){return{address:e,abi:L,functionName:`getProposalIdByRoleAt`,args:[t,n,r]}}const z=[{type:`function`,name:`getAllProposalCount`,inputs:[],outputs:[{name:`count`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function B(e){return{address:e,abi:z,functionName:`getAllProposalCount`,args:[]}}const V=[{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 H(e){return{address:e,abi:V,functionName:`totalProposalAmountInfo`}}const U=[{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:`succeedThreshold`,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 W(e){return{address:e,abi:U,functionName:`proposalGlobalConfig`}}const G=[{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 K(e,t,n){return{address:e,abi:G,functionName:`getProposalVoterInfo`,args:[t,n]}}const q=[{type:`function`,name:`getProposalMultiplierCounts`,inputs:[],outputs:[{name:`proposalWanMultiplierCount`,type:`uint256`,internalType:`uint256`},{name:`votingWanMultiplierCount`,type:`uint256`,internalType:`uint256`}],stateMutability:`view`}];function J(e){return{address:e,abi:q,functionName:`getProposalMultiplierCounts`,args:[]}}const Y=[{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 X(e,t){return{address:e,abi:Y,functionName:`getProposalWanMultiplierAt`,args:[t]}}const Z=[{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 Q(e,t){return{address:e,abi:Z,functionName:`getVotingWanMultiplierAt`,args:[t]}}const ne=[{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:ne,functionName:`getUnstakeStatus`,args:[t]}}var re=class{constructor(n,r=t.wanchain,i){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:[H(this.governanceAddr),W(this.governanceAddr),ee(this.governanceAddr),B(this.governanceAddr),A(this.governanceAddr,f.UnderReview),A(this.governanceAddr,f.Fundraising),A(this.governanceAddr,f.VotingInProgress),A(this.governanceAddr,f.Succeeded),A(this.governanceAddr,f.Rejected),A(this.governanceAddr,f.Canceled),J(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],succeedThreshold: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],failedProposalCount:e[8],canceledProposalCount:e[9],proposalWanMultiplierCount:e[10][0],votingWanMultiplierCount:e[10][1]}}async getProposalMultipliers(e){let t=0n,n=0n;if(e.proposalWanMultiplier){if(e.proposalWanMultiplier.end<e.proposalWanMultiplier.start||e.proposalWanMultiplier.start<0n)throw Error(`Invalid proposalWanMultiplier`);t=e.proposalWanMultiplier.end-e.proposalWanMultiplier.start+1n}if(e.votingWanMultiplier){if(e.votingWanMultiplier.end<e.votingWanMultiplier.start||e.votingWanMultiplier.start<0n)throw Error(`Invalid votingWanMultiplier`);n=e.votingWanMultiplier.end-e.votingWanMultiplier.start+1n}let r=t+n,i=t>0n,a=n>0n,o=Array(r);if(i)for(let e=0;e<t;++e)o[e]=X(this.governanceAddr,e);if(a)for(let e=t;e<r;++e)o[e]=Q(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=0n;e<s.length;++e)e<t?c[e]={pledgeType:s[e][0],lockDuration:s[e][1],multiplier:s[e][2]}:l[e-t]={pledgeType:s[e][0],lockDuration:s[e][1],multiplier:s[e][2]};return{proposalWanMultipliers:c,votingWanMultipliers:l}}async getProposalCounts(){let e=await this.publicClient.multicall({contracts:[B(this.governanceAddr),A(this.governanceAddr,f.UnderReview),A(this.governanceAddr,f.Fundraising),A(this.governanceAddr,f.VotingInProgress),A(this.governanceAddr,f.Succeeded),A(this.governanceAddr,f.Rejected),A(this.governanceAddr,f.Canceled)],allowFailure:!1});return{allProposalCount:e[0],reviewPendingProposalCount:e[1],prospectiveProposalCount:e[2],votingProposalCount:e[3],succeededProposalCount:e[4],failedProposalCount:e[5],canceledProposalCount:e[6]}}async getActiveProposalCategoryCounts(){let e=await this.publicClient.multicall({contracts:[S(this.governanceAddr,f.Fundraising,p.Funding),S(this.governanceAddr,f.Fundraising,p.Technical),S(this.governanceAddr,f.VotingInProgress,p.Funding),S(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.publicClient.chain.contracts.multicall3.address,t),v(e,t)],allowFailure:!1});return{ethBalance:n[0],xpBalance:n[1]}}async getAccountProposalCount(e){let t=await this.publicClient.multicall({contracts:[M(this.governanceAddr,l.Proposer,e),M(this.governanceAddr,l.Partner,e),M(this.governanceAddr,l.Voter,e)],allowFailure:!1});return{proposerProposalCount:t[0],partnerProposalCount:t[1],voterProposalCount:t[2]}}async getFoundations(){return await this.publicClient.readContract(x(`0xaFBF28B258599466fFAC7C207172d84CE12761B8`))}async getAccountProposalId(e,t,n,r,i){return await this.publicClient.readContract(w(this.governanceAddr,t,e,n,r,i))}async getProposalPartnerAndVoterCounts(e){return await this.publicClient.readContract(P(this.governanceAddr,e))}async getProposerProposals(e,t){if(t.end<t.start||t.start<0n)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1n);for(let r=t.start;r<=t.end;++r)n[r-t.start]=R(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++)n[e]=E(this.governanceAddr,r[e]);let i=await this.publicClient.multicall({contracts:n,allowFailure:!1});for(let e=0;e<r.length;)i[e].proposalId=r[e],e+=2;return i}async getPartnerProposals(e,t){if(t.end<t.start||t.start<0n)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1n);for(let r=t.start;r<=t.end;++r)n[r-t.start]=R(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;n[i]=E(this.governanceAddr,r[t]),n[i+1]=I(this.governanceAddr,r[t],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;i[t].proposalId=r[e],a[e]={proposalInfo:i[t],partnerInfo:i[t+1]}}return a}async getVoterProposals(e,t){if(t.end<t.start||t.start<0n)throw Error(`Invalid indexRange`);let n=Array(t.end-t.start+1n);for(let r=t.start;r<=t.end;++r)n[r-t.start]=R(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;n[i]=E(this.governanceAddr,r[t]),n[i+1]=K(this.governanceAddr,r[t],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;i[t].proposalId=r[e],a[e]={proposalInfo:i[t],voterInfo:i[t+1]}}return a}async getPartnerInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r)n[r]=I(this.governanceAddr,t[r],e);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});for(let e=0;e<t.length;++e)r[e].proposalId=t[e];return r}async getVoterInfo(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r)n[r]=K(this.governanceAddr,t[r],e);let r=await this.publicClient.multicall({contracts:n,allowFailure:!1});for(let e=0;e<t.length;++e)r[e].proposalId=t[e];return r}async getReviewPendingProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getProspectiveProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getVotingProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getSucceedProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(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)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getFailedProposals(e){if(e.end<e.start||e.start<0n)throw Error(`Invalid indexRange`);let t=Array(e.end-e.start+1n);for(let n=e.start;n<=e.end;++n)t[n-e.start]=O(this.governanceAddr,f.Rejected,n);let n=await this.publicClient.multicall({contracts:t,allowFailure:!1});t=Array(n.length);for(let e=0;e<n.length;++e)t[e]=E(this.governanceAddr,n[e]);let r=await this.publicClient.multicall({contracts:t,allowFailure:!1});for(let e=0;e<n.length;++e)r[e].proposalId=n[e];return r}async getProposalInfo(e){let t=await this.publicClient.readContract(E(this.governanceAddr,e));return t.proposalId=e,t}canRequestProposalWithdrawal(e,t){let n=Array(t.length);for(let r=0;r<t.length;++r){let i=!0,a=!1;(t[r].state==f.Rejected||t[r].state==f.Succeeded&&(t[r].lockDuration==0n||t[r].requestId>0n))&&(i=!1),t[r].state==f.Succeeded&&t[r].lockDuration>0n&&e>t[r].voteDeadline+t[r].lockDuration&&t[r].requestId==0n&&!t[r].exited&&(a=!0),n[r]={needRequestWithdrawal:i,canRequestWithdrawal:a}}return n}async canClaimProposalWithdrawal(e,t,n){let r=0,i={},a=Array(n.length),o=Array(n.length);for(let s=0;s<n.length;++s){if(n[s].state==f.Rejected||n[s].state==f.Succeeded&&n[s].lockDuration==0n&&!n[s].exited){a[s]=!0;continue}if(n[s].state==f.Succeeded&&n[s].lockDuration>0n&&t>n[s].voteDeadline+n[s].lockDuration&&n[s].requestId>0n&&!n[s].exited){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}async getUnstakeStatus(e,t){return await this.publicClient.readContract($(e,t))}async buildTx(t,n,r,i=0n){return await this.publicClient.simulateContract({address:this.governanceAddr,abi:m,functionName:n,args:r,account:t,value:i}),await this.publicClient.prepareTransactionRequest({account:t,to:this.governanceAddr,data:(0,e.encodeFunctionData)({abi:m,functionName:n,args:r}),value:i})}async _buildTx(t,n,r=0n){return await this.publicClient.simulateContract({address:this.governanceAddr,abi:n.abi,functionName:n.functionName,args:n.args,account:t}),await this.publicClient.prepareTransactionRequest({account:t,to:this.governanceAddr,data:(0,e.encodeFunctionData)(n),value:r})}async buildCreateProposalTx(e,t,n,r,i,a){return await this.buildTx(e,`createProposal`,[n,r,i,a],t)}async buildCancelProposalTx(e,t,n){return await this.buildTx(e,`cancelProposal`,[t,n])}async buildReviewProposalTx(e,t,n,r){return await this.buildTx(e,`reviewProposal`,[t,n,r])}async buildContributeProposalTx(e,t,n,r,i){return await this.buildTx(e,`contributeProposal`,[t,r,i],n)}async buildVoteProposalTx(e,t,n,r,i,a,o){return await this.buildTx(e,`voteProposal`,[t,r,i,a,o],n)}async buildTallyProposalTx(e,t){return await this.buildTx(e,`tallyProposal`,[t])}async buildRequestProposerWithdrawalTx(e,t){return await this.buildTx(e,`requestProposerWithdrawal`,[t],0n)}async buildClaimProposerWithdrawalTx(e,t,n){return await this.buildTx(e,`claimProposerWithdrawal`,[t,n],0n)}async buildRequestPartnerWithdrawalTx(e,t){return await this.buildTx(e,`requestPartnerWithdrawal`,[t],0n)}async buildClaimPartnerWithdrawalTx(e,t,n){return await this.buildTx(e,`claimPartnerWithdrawal`,[t,n],0n)}async buildRequestVoterWithdrawalTx(e,t){return await this.buildTx(e,`requestVoterWithdrawal`,[t],0n)}async buildClaimVoterWithdrawalTx(e,t,n){return await this.buildTx(e,`claimVoterWithdrawal`,[t,n],0n)}async buildUpdateFundraisingDurationTx(e,t){return await this.buildTx(e,`updateFundraisingDuration`,[t],0n)}async buildUpdateMinParticipationAmountTx(e,t){return await this.buildTx(e,`updateMinParticipationAmount`,[t],0n)}};exports.Governance=re,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=i;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","abi","wanchain","Parameters.totalProposalAmountInfo","Parameters.proposalGlobalConfig","Parameters.BURN","Parameters.getAllProposalCount","Parameters.getProposalCountByState","Parameters.getProposalMultiplierCounts","Parameters.getProposalWanMultiplierAt","Parameters.getVotingWanMultiplierAt","Parameters.proposalCategoryCount","Parameters.getEthBalance","Parameters.getErc20Balance","Parameters.getProposalCountByRole","Parameters.getFoundations","Parameters.getProposalId","Parameters.getProposalPartnerAndVoterCounts","Parameters.getProposalIdByRoleAt","Parameters.getProposalInfo","Parameters.getProposalPartnerInfo","Parameters.getProposalVoterInfo","Parameters.getProposalIdByStateAt","Parameters.getUnstakeStatus","GOVERNANCE_ABI"],"sources":["../src/util.ts","../src/types/index.ts","../src/abis/WanGovernor.ts","../src/parameters/getEthBalance.ts","../src/parameters/getErc20Balance.ts","../src/parameters/BURN.ts","../src/parameters/getFoundations.ts","../src/parameters/proposalCategoryCount.ts","../src/parameters/getProposalId.ts","../src/parameters/getProposalInfo.ts","../src/parameters/getProposalIdByStateAt.ts","../src/parameters/getProposalCountByState.ts","../src/parameters/getProposalCountByRole.ts","../src/parameters/getProposalPartnerAndVoterCounts.ts","../src/parameters/getProposalPartnerInfo.ts","../src/parameters/getProposalIdByRoleAt.ts","../src/parameters/getAllProposalCount.ts","../src/parameters/totalProposalAmountInfo.ts","../src/parameters/proposalGlobalConfig.ts","../src/parameters/getProposalVoterInfo.ts","../src/parameters/getProposalMultiplierCounts.ts","../src/parameters/getProposalWanMultiplierAt.ts","../src/parameters/getVotingWanMultiplierAt.ts","../src/parameters/getUnstakeStatus.ts","../src/governance.ts"],"sourcesContent":["const { encodeAbiParameters, decodeAbiParameters } = require('viem');\n\n\nexport const supportedProposalDescriptionDataTypeSchema = {\n 1: {\n types: [\n { type: 'uint256' }, // version\n { type: 'string' }, // title\n { type: 'string' }, // description\n { type: 'string' }, // email\n { type: 'string' }, // telegram\n ],\n names: ['version', 'title', 'description', 'email', 'telegram'],\n },\n 2: {\n types: [\n { type: 'uint256' }, // version\n { type: 'string' }, // title\n { type: 'string' }, // description\n { type: 'string' }, // email\n { type: 'string' }, // telegram\n { type: 'string' }, // twitter\n ],\n names: ['version', 'title', 'description', 'email', 'telegram', 'twitter'],\n },\n 3: {\n types: [\n { type: 'uint256' }, // version\n { type: 'string' }, // title\n { type: 'string' }, // description\n { type: 'string' }, // email\n { type: 'string' }, // telegram\n { type: 'string' }, // twitter\n { type: 'string' }, // discord\n ],\n names: ['version', 'title', 'description', 'email', 'telegram', 'twitter', 'discord'],\n }\n};\n\n\nexport function encodeProposalDescriptionData(...args) {\n const typeSchema = supportedProposalDescriptionDataTypeSchema[args[0]];\n if (!typeSchema) {\n throw new Error(\"Unsupported version\");\n }\n if (args.length !== typeSchema.types.length) {\n throw new Error(\"Invalid number of arguments for the specified version\");\n }\n const encoded = encodeAbiParameters(typeSchema.types, args);\n return encoded;\n}\n\nexport function decodeProposalDescriptionData(hexData) {\n const version = getVersionFromData(hexData);\n const typeSchema = supportedProposalDescriptionDataTypeSchema[version];\n if (!typeSchema) {\n throw new Error(\"Unsupported version\");\n }\n \n const decoded = decodeAbiParameters(typeSchema.types, hexData);\n console.log(\"decoded:\", decoded)\n\n // 4. Map the decoded array back to an object using the names in schema\n let result = {};\n for (let i = 0; i < typeSchema.names.length; i++) {\n result[typeSchema.names[i]] = decoded[i];\n }\n return result;\n}\n\nexport function getVersionFromData(hexData) {\n if (!hexData) return 0;\n\n // Check for '0x' prefix and calculate the offset for the first 32-byte slot\n const offset = hexData.startsWith('0x') ? 2 : 0;\n const versionPart = hexData.substring(offset, offset + 64);\n // parseInt is faster than BigInt for small, fixed-length hex segments\n return parseInt(versionPart, 16);\n}\n\n// // --- 测试用例 ---\n// var myVersion = 1;\n// var myTitle = \"DApp 开发者资助计划\";\n// var myEmail = \"dev@example.com\";\n// var myTg = \"@wanchain_dev\";\n// var myDesc = \"这是一个关于链下存储优化的详细提案描述。\";\n\n// // 编码过程\n// var hexResult = encodeProposalDescriptionData(myVersion, myTitle, myDesc, myEmail, myTg);\n// console.log(\"编码后的 Bytes (十六进制):\", hexResult);\n\n// // 解码过程\n// var originalObject = decodeProposalDescriptionData(hexResult);\n// console.log(\"解码后的原始数据:\", originalObject);\n\n\n// // --- 测试用例 2 ---\n// var myVersion = 2;\n// var myTitle = \"DApp 开发者资助计划\";\n// var myEmail = \"dev@example.com\";\n// var myTg = \"@wanchain_dev\";\n// var twitter = \"wanchain_dev\";\n// var myDesc = \"这是一个关于链下存储优化的详细提案描述。\";\n\n// // 编码过程\n// var hexResult = encodeProposalDescriptionData(myVersion, myTitle, myDesc, myEmail, myTg, twitter);\n// console.log(\"编码后的 Bytes (十六进制):\", hexResult);\n\n// // 解码过程\n// var originalObject = decodeProposalDescriptionData(hexResult);\n// console.log(\"解码后的原始数据:\", originalObject);","import type { Hex, Address } from 'viem';\n\n\nexport enum UnstakeStatus {\n NotExists = 0, // Request does not exist\n Claimed = 1, // Request has been claimed\n InProgress = 2, // Request is in progress\n ReadyToClaim = 3 // Request is ready to be claimed\n};\n\nexport enum ProposalRole {\n Proposer = 0,\n Partner = 1,\n Voter = 2\n};\n\nexport enum PledgeType {\n None = 0,\n Burn = 1,\n Lock = 2\n};\n\nexport enum VoteType {\n None = 0,\n For = 1,\n Against = 2\n};\nexport enum ProposalState {\n None = 0,\n UnderReview = 1,\n Canceled = 2,\n Fundraising = 3,\n VotingInProgress = 4,\n Succeeded = 5,\n Rejected = 6\n};\nexport enum ProposalCategory {\n Funding = 0,\n Technical = 1\n};\n\nexport interface FundInfo {\n wanAmount: bigint; // uint256\n wanPower: bigint; // uint256\n requestId: bigint; // uint256\n claimStWanAmount: bigint; // uint256\n claimWanAmount: bigint; // uint256\n lockDuration: bigint; // uint128\n pledgeType: PledgeType;\n reason: Hex; // bytes\n exited: boolean;\n};\nexport interface Tally {\n yes: bigint;\n no: bigint;\n};\nexport interface ProposalInfo {\n proposalId: Hex,\n requireXpAmount: bigint; // uint256\n requestWanAmount: bigint; // uint256\n requestMinVotingWanPower: bigint; // uint256\n\n totalPledgingWanAmount: bigint; // uint256\n totalPledgingWanPower: bigint; // uint256\n\n totalVotingWanAmount: bigint; // uint256\n totalVotingWanPower: bigint; // uint256\n\n totalWanAmount: bigint; // uint256\n totalLockingWanAmount: bigint; // uint256\n totalBurnedWanAmount: bigint; // uint256\n totalStWanAmount: bigint; // uint256\n\n totalClaimeStWanAmount: bigint; // uint256\n\n submitTimestamp: bigint; // uint256\n fundraisingDeadline: bigint; // uint256\n voteDeadline: bigint; // uint256\n\n tally: Tally;\n\n proposerFundInfo: FundInfo;\n category: ProposalCategory;\n\n state: ProposalState;\n proposer:Address;\n\n description: Hex; // bytes\n reason: Hex; // bytes\n};\n\nexport interface PartnerInfo {\n fundInfo: FundInfo;\n}\nexport interface VoterInfo {\n fundInfo: FundInfo;\n voteType: VoteType;\n}\n\nexport interface IndexRange {\n start: bigint;\n end: bigint;\n}\n\nexport interface PlegeMultiplierReturn {\n pledgeType: PledgeType;\n lockDuration: bigint;\n multiplier: bigint;\n}\n\nexport interface CanRequestProposalWithdrawalParam {\n state: ProposalState;\n pledgeType: PledgeType.Lock;\n lockDuration: bigint;\n voteDeadline: bigint;\n requestId: bigint;\n exited: boolean;\n}\n\nexport interface CanRequestProposalWithdrawalRetrunItem {\n needRequestWithdrawal:boolean;\n canRequestWithdrawal:boolean;\n}\n\nexport type CanClaimProposalWithdrawalParam = CanRequestProposalWithdrawalParam;\n","export const ABI = [\n {\n \"type\": \"constructor\",\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"receive\",\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"BURN\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"DEFAULT_ADMIN_ROLE\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"DENOMINATOR\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"WAN_GOVERNOR_OPERATOR_ROLE\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"cancelProposal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claimPartnerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claimProposerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"claimVoterWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"contributeProposal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"_reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"createProposal\",\n \"inputs\": [\n {\n \"name\": \"_reqWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"_category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n },\n {\n \"name\": \"_pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"_description\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAllProposalCount\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getFoundations\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalCountByRole\",\n \"inputs\": [\n {\n \"name\": \"_role\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalRole\"\n },\n {\n \"name\": \"_account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalCountByState\",\n \"inputs\": [\n {\n \"name\": \"_state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalId\",\n \"inputs\": [\n {\n \"name\": \"_reqWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"_proposer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n },\n {\n \"name\": \"_pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"_description\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalIdByRoleAt\",\n \"inputs\": [\n {\n \"name\": \"_role\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalRole\"\n },\n {\n \"name\": \"_account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalIdByStateAt\",\n \"inputs\": [\n {\n \"name\": \"_state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalInfo\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"info\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.ProposalInfo\",\n \"components\": [\n {\n \"name\": \"requireXpAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestMinVotingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalPledgingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalPledgingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalVotingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalVotingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalLockingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalBurnedWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalClaimeStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"submitTimestamp\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"fundraisingDeadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"voteDeadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"tally\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.Tally\",\n \"components\": [\n {\n \"name\": \"yes\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"no\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"name\": \"proposerFundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"description\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalInfoAt\",\n \"inputs\": [\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"info\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.ProposalInfo\",\n \"components\": [\n {\n \"name\": \"requireXpAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestMinVotingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalPledgingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalPledgingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalVotingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalVotingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalLockingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalBurnedWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalClaimeStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"submitTimestamp\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"fundraisingDeadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"voteDeadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"tally\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.Tally\",\n \"components\": [\n {\n \"name\": \"yes\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"no\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"name\": \"proposerFundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"description\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalMultiplierCounts\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"proposalWanMultiplierCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"votingWanMultiplierCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalPartnerAndVoterCounts\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"partnerCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"voterCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalPartnerAt\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalPartnerInfo\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_partner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"partnerInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.PartnerInfo\",\n \"components\": [\n {\n \"name\": \"fundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalPartnerInfoAt\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"partner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"partnerInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.PartnerInfo\",\n \"components\": [\n {\n \"name\": \"fundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalState\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalVoterAt\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalVoterInfo\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_voter\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"voterInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.VoterInfo\",\n \"components\": [\n {\n \"name\": \"fundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"voteType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.VoteType\"\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalVoterInfoAt\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"voter\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"voterInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.VoterInfo\",\n \"components\": [\n {\n \"name\": \"fundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"voteType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.VoteType\"\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"_pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"_lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getProposalWanMultiplierAt\",\n \"inputs\": [\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getRoleAdmin\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getVotingWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"_pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"_lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getVotingWanMultiplierAt\",\n \"inputs\": [\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getWanPower\",\n \"inputs\": [\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"grantRole\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"hasProposalExists\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"state\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"hasRole\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"initialize\",\n \"inputs\": [\n {\n \"name\": \"_admin\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_operator\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_proposalGlobalConfig\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.ProposalGlobalConfig\",\n \"components\": [\n {\n \"name\": \"ethTransferGasLimit\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"minParticipationAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestWanMultiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"succeedThreshold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requireXpAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"pledgeLockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"fundraisingDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"voteDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"xp\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"stakingManager\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"wanTreasury\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"isFoundation\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"isFoundationMember\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proposalCategoryCount\",\n \"inputs\": [\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proposalGlobalConfig\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"ethTransferGasLimit\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"minParticipationAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestWanMultiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"succeedThreshold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requireXpAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"pledgeLockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"fundraisingDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"voteDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"xp\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"stakingManager\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"wanTreasury\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceRole\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"callerConfirmation\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"requestPartnerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"partnerRequestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"requestProposerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"proposerRequestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"requestVoterWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"voterRequestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"reviewProposal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"isApproved\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"_reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"revokeRole\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setFoundations\",\n \"inputs\": [\n {\n \"name\": \"params\",\n \"type\": \"tuple[]\",\n \"internalType\": \"struct IWanGovernor.SetFoundationParam[]\",\n \"components\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"isFoundationMember\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ]\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setProposalWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"params\",\n \"type\": \"tuple[]\",\n \"internalType\": \"struct IWanGovernor.SetWanMultiplier[]\",\n \"components\": [\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n }\n ]\n },\n {\n \"name\": \"ifClean\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setVotingWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"params\",\n \"type\": \"tuple[]\",\n \"internalType\": \"struct IWanGovernor.SetWanMultiplier[]\",\n \"components\": [\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n }\n ]\n },\n {\n \"name\": \"ifClean\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"supportsInterface\",\n \"inputs\": [\n {\n \"name\": \"interfaceId\",\n \"type\": \"bytes4\",\n \"internalType\": \"bytes4\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"tallyProposal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"totalProposalAmountInfo\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"allProposalWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"allProposalLockingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"allProposalBurnedWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updateEthTransferGasLimit\",\n \"inputs\": [\n {\n \"name\": \"_gasLimit\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updateFundraisingDuration\",\n \"inputs\": [\n {\n \"name\": \"_duration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updateMinParticipationAmount\",\n \"inputs\": [\n {\n \"name\": \"_amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updatePledgeLockDuration\",\n \"inputs\": [\n {\n \"name\": \"_lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updateRequestWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"_requestWanMultiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updateSucceedThreshold\",\n \"inputs\": [\n {\n \"name\": \"_threshold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updateVoteDuration\",\n \"inputs\": [\n {\n \"name\": \"_duration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"updateXpRequiredAmount\",\n \"inputs\": [\n {\n \"name\": \"_amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"voteProposal\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"votePledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"_voteType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.VoteType\"\n },\n {\n \"name\": \"_reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"CancelProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"keys\",\n \"type\": \"string[]\",\n \"indexed\": false,\n \"internalType\": \"string[]\"\n },\n {\n \"name\": \"values\",\n \"type\": \"bytes[]\",\n \"indexed\": false,\n \"internalType\": \"bytes[]\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ClaimPartnerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ClaimProposerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ClaimVoterWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ContributeProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"partner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"indexed\": true,\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"keys\",\n \"type\": \"string[]\",\n \"indexed\": false,\n \"internalType\": \"string[]\"\n },\n {\n \"name\": \"values\",\n \"type\": \"bytes[]\",\n \"indexed\": false,\n \"internalType\": \"bytes[]\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"CreateProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"indexed\": true,\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"keys\",\n \"type\": \"string[]\",\n \"indexed\": false,\n \"internalType\": \"string[]\"\n },\n {\n \"name\": \"values\",\n \"type\": \"bytes[]\",\n \"indexed\": false,\n \"internalType\": \"bytes[]\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Initialized\",\n \"inputs\": [\n {\n \"name\": \"version\",\n \"type\": \"uint64\",\n \"indexed\": false,\n \"internalType\": \"uint64\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RequestPartnerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"stWanAmount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RequestProposerWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"stWanAmount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RequestVoterWithdrawal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"stWanAmount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ReviewProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"isApproved\",\n \"type\": \"bool\",\n \"indexed\": true,\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"indexed\": true,\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"indexed\": false,\n \"internalType\": \"bytes\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RoleAdminChanged\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"previousAdminRole\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"newAdminRole\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RoleGranted\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RoleRevoked\",\n \"inputs\": [\n {\n \"name\": \"role\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"sender\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SetFoundation\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"isFoundationMember\",\n \"type\": \"bool\",\n \"indexed\": true,\n \"internalType\": \"bool\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SetProposalFailed\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"indexed\": false,\n \"internalType\": \"bytes\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SetProposalStage\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"ifSet\",\n \"type\": \"bool\",\n \"indexed\": true,\n \"internalType\": \"bool\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SetProposalWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"indexed\": true,\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"indexed\": true,\n \"internalType\": \"uint128\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"SetVotingWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"indexed\": true,\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"indexed\": true,\n \"internalType\": \"uint128\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"TallyProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"stWanAmount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdateEthTransferGasLimit\",\n \"inputs\": [\n {\n \"name\": \"gasLimit\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdateFundraisingDuration\",\n \"inputs\": [\n {\n \"name\": \"duration\",\n \"type\": \"uint128\",\n \"indexed\": true,\n \"internalType\": \"uint128\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdateMinParticipationAmount\",\n \"inputs\": [\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdatePledgeLockDuration\",\n \"inputs\": [\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"indexed\": true,\n \"internalType\": \"uint128\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdateRequestWanMultiplier\",\n \"inputs\": [\n {\n \"name\": \"requestWanMultiplier\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdateSucceedThreshold\",\n \"inputs\": [\n {\n \"name\": \"threshold\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdateVoteDuration\",\n \"inputs\": [\n {\n \"name\": \"duration\",\n \"type\": \"uint128\",\n \"indexed\": true,\n \"internalType\": \"uint128\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"UpdateXpRequiredAmount\",\n \"inputs\": [\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"VoteProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"indexed\": true,\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"voter\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"voteType\",\n \"type\": \"uint8\",\n \"indexed\": true,\n \"internalType\": \"enum IWanGovernor.VoteType\"\n },\n {\n \"name\": \"keys\",\n \"type\": \"string[]\",\n \"indexed\": false,\n \"internalType\": \"string[]\"\n },\n {\n \"name\": \"values\",\n \"type\": \"bytes[]\",\n \"indexed\": false,\n \"internalType\": \"bytes[]\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"AccessControlBadConfirmation\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"AccessControlUnauthorizedAccount\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"neededRole\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"AlreadyContributeProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"partner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"AmountBelowMinimum\",\n \"inputs\": [\n {\n \"name\": \"provided\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"required\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ApplicationExceedsLimit\",\n \"inputs\": [\n {\n \"name\": \"requested\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"limit\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"EthTransferFailed\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"gasLimit\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidInitialization\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidPledgeType\",\n \"inputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidVotePlegeType\",\n \"inputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidVoteType\",\n \"inputs\": [\n {\n \"name\": \"voteType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.VoteType\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"LockPeriodNotReached\",\n \"inputs\": [\n {\n \"name\": \"unlockTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NotAdmin\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NotAdminOrOperator\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NotExistsRequestId\",\n \"inputs\": [\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NotInitializing\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"NotMatchArrayLength\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"NotRequestProposal\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NotSupportedPledgeType\",\n \"inputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NotSupportedVotePledgeType\",\n \"inputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalAlreadyVoted\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"voter\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalAreadyExists\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalNotApproved\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalNotExist\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalNotFundraising\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalNotReachedTallyStage\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalNotUnderReview\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalNotVotingInProgress\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalVotingEnded\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProposalVotingTallied\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ProspectiveProposalNotExist\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"ReviewPendingProposalNotExist\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"SafeCastOverflowedUintDowncast\",\n \"inputs\": [\n {\n \"name\": \"bits\",\n \"type\": \"uint8\",\n \"internalType\": \"uint8\"\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"SafeERC20FailedOperation\",\n \"inputs\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"Unauthorized\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"UnauthorizedEtherTransfer\",\n \"inputs\": [\n {\n \"name\": \"from\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"VotingProposalNotExist\",\n \"inputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ZeroAddress\",\n \"inputs\": []\n }\n] as const;","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n type: 'function',\n name: 'getEthBalance',\n inputs: [{ \"name\": \"addr\", \"type\": \"address\", \"internalType\": \"address\" }],\n outputs: [{ name: 'balance', type: 'uint256', internalType: 'uint256' }],\n stateMutability: 'view'\n }\n] as const;\n\n\nexport function getEthBalance(multicall3Addr: Address, owner: Address) {\n const call = {\n address: multicall3Addr,\n abi,\n functionName: 'getEthBalance',\n args: [ owner ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getEthBalance.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n name: 'balanceOf',\n type: 'function',\n inputs: [{ name: 'owner', type: 'address' }],\n outputs: [{ name: 'balance', type: 'uint256' }],\n stateMutability: 'view'\n }\n] as const;\n\n\nexport function getErc20Balance(erc20Addr: Address, owner: Address) {\n const call = {\n address: erc20Addr,\n abi,\n functionName: 'balanceOf',\n args: [ owner ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getErc20Balance.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"BURN\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function BURN(governanceAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'BURN',\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/BURN.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getFoundations\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getFoundations(governanceAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getFoundations',\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getFoundations.ts","import type { Address } from 'viem';\nimport { ProposalState, ProposalCategory } from '../types'\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"proposalCategoryCount\",\n \"inputs\": [\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function proposalCategoryCount(governanceAddr: Address, state: ProposalState, category: ProposalCategory) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'proposalCategoryCount',\n args: [state, category]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/proposalCategoryCount.ts","import type { Address, Hex } from 'viem';\nimport type { ProposalCategory, PledgeType } from '../types';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalId\",\n \"inputs\": [\n {\n \"name\": \"_reqWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"_proposer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n },\n {\n \"name\": \"_pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"_description\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalId(governanceAddr: Address, reqWanAmount: bigint, proposer: Address, category: ProposalCategory, pledgeType: PledgeType, description: Hex) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalId',\n args: [ reqWanAmount, proposer, category, pledgeType, description ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalId.ts","import type { Address, Hex } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalInfo\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"info\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.ProposalInfo\",\n \"components\": [\n {\n \"name\": \"requireXpAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestMinVotingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalPledgingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalPledgingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalVotingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalVotingWanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalLockingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalBurnedWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalClaimeStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"submitTimestamp\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"fundraisingDeadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"voteDeadline\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"tally\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.Tally\",\n \"components\": [\n {\n \"name\": \"yes\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"no\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"name\": \"proposerFundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"category\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalCategory\"\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"proposer\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"description\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalInfo(governanceAddr: Address, proposalId: Hex) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalInfo',\n args: [ proposalId ],\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalInfo.ts","import type { Address } from 'viem';\nimport type { ProposalState } from '../types';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalIdByStateAt\",\n \"inputs\": [\n {\n \"name\": \"_state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalIdByStateAt(governanceAddr: Address, state: ProposalState, index: bigint) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalIdByStateAt',\n args: [ state, index ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalIdByStateAt.ts","import type { Address } from 'viem';\nimport type { ProposalState } from '../types';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalCountByState\",\n \"inputs\": [\n {\n \"name\": \"_state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalState\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalCountByState(governanceAddr: Address, state: ProposalState) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalCountByState',\n args: [ state ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalCountByState.ts","import type { Address } from 'viem';\nimport type { ProposalRole } from '../types'\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalCountByRole\",\n \"inputs\": [\n {\n \"name\": \"_role\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalRole\"\n },\n {\n \"name\": \"_account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalCountByRole(governanceAddr: Address, role: ProposalRole, account: address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalCountByRole',\n args: [ role, account ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalCountByRole.ts","import type { Address, Hex } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalPartnerAndVoterCounts\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"partnerCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"voterCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalPartnerAndVoterCounts(governanceAddr: Address, proposalId: Hex) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalPartnerAndVoterCounts',\n args: [ proposalId ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalPartnerAndVoterCounts.ts","import type { Address, Hex } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalPartnerInfo\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_partner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"partnerInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.PartnerInfo\",\n \"components\": [\n {\n \"name\": \"fundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalPartnerInfo(governanceAddr: Address, proposalId: Hex, partnerAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalPartnerInfo',\n args: [ proposalId, partnerAddr ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalPartnerInfo.ts","import type { Address } from 'viem';\nimport type { ProposalRole } from '../types';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalIdByRoleAt\",\n \"inputs\": [\n {\n \"name\": \"_role\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.ProposalRole\"\n },\n {\n \"name\": \"_account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalIdByRoleAt(governanceAddr: Address, role: ProposalRole, account: Address, index: bigint) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalIdByRoleAt',\n args: [role, account, index]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalIdByRoleAt.ts","import type { Address } from 'viem';\nimport { ProposalState, ProposalCategory } from '../types'\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getAllProposalCount\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"count\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getAllProposalCount(governanceAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getAllProposalCount',\n args: []\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getAllProposalCount.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"totalProposalAmountInfo\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"allProposalWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"allProposalLockingWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"allProposalBurnedWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function totalProposalAmountInfo(governanceAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'totalProposalAmountInfo',\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/totalProposalAmountInfo.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"proposalGlobalConfig\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"ethTransferGasLimit\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"minParticipationAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestWanMultiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"succeedThreshold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requireXpAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"pledgeLockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"fundraisingDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"voteDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"xp\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"stakingManager\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"wanTreasury\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function proposalGlobalConfig(governanceAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'proposalGlobalConfig',\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/proposalGlobalConfig.ts","import type { Address, Hex } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalVoterInfo\",\n \"inputs\": [\n {\n \"name\": \"_proposalId\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"_voter\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"voterInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.VoterInfo\",\n \"components\": [\n {\n \"name\": \"fundInfo\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IWanGovernor.FundInfo\",\n \"components\": [\n {\n \"name\": \"wanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"wanPower\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimStWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"claimWanAmount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"exited\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n },\n {\n \"name\": \"reason\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"voteType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.VoteType\"\n }\n ]\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalVoterInfo(governanceAddr: Address, proposalId: Hex, voterAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalVoterInfo',\n args: [proposalId, voterAddr]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalVoterInfo.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalMultiplierCounts\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"proposalWanMultiplierCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"votingWanMultiplierCount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalMultiplierCounts(governanceAddr: Address) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalMultiplierCounts',\n args: []\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/proposalWanMultiplierCount.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getProposalWanMultiplierAt\",\n \"inputs\": [\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getProposalWanMultiplierAt(governanceAddr: Address, index: bigint) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getProposalWanMultiplierAt',\n args: [ index ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getProposalWanMultiplierAt.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getVotingWanMultiplierAt\",\n \"inputs\": [\n {\n \"name\": \"_index\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"pledgeType\",\n \"type\": \"uint8\",\n \"internalType\": \"enum IWanGovernor.PledgeType\"\n },\n {\n \"name\": \"lockDuration\",\n \"type\": \"uint128\",\n \"internalType\": \"uint128\"\n },\n {\n \"name\": \"multiplier\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getVotingWanMultiplierAt(governanceAddr: Address, index: bigint) {\n const call = {\n address: governanceAddr,\n abi,\n functionName: 'getVotingWanMultiplierAt',\n args: [ index ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getVotingWanMultiplierAt.ts","import type { Address } from 'viem';\n\n\nconst abi = [\n {\n \"type\": \"function\",\n \"name\": \"getUnstakeStatus\",\n \"inputs\": [\n {\n \"name\": \"requestId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"unstakeStatus\",\n \"type\": \"uint8\",\n \"internalType\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\"\n }\n] as const;\n\n\nexport function getUnstakeStatus(stakingManagerAddr: Address, requestId: bigint) {\n const call = {\n address: stakingManagerAddr,\n abi,\n functionName: 'getUnstakeStatus',\n args: [ requestId ]\n } as const;\n\n return call;\n}\n\n// yarn tsx --tsconfig tsconfig.json src/parameters/getUnstakeStatus.ts","import { \n Abi,\n createPublicClient,\n encodeFunctionData,\n http,\n type Address,\n type Account,\n type Hex,\n type Chain,\n type EncodeFunctionDataParameters,\n type ContractFunctionName,\n type ContractFunctionArgs,\n type PrepareTransactionRequestReturnType,\n} from 'viem';\nimport { wanchain } from 'viem/chains';\nimport {\n UnstakeStatus,\n ProposalRole,\n PledgeType,\n VoteType,\n ProposalState,\n ProposalCategory,\n type ProposalInfo,\n type PartnerInfo,\n type VoterInfo,\n type IndexRange,\n type PlegeMultiplierReturn,\n type CanRequestProposalWithdrawalParam,\n type CanRequestProposalWithdrawalRetrunItem,\n type CanClaimProposalWithdrawalParam,\n} from './types'\nimport { ABI as GOVERNANCE_ABI } from './abis/WanGovernor';\nimport * as Parameters from './parameters';\n\n\nexport class Governance<TAbi extends Abi = typeof GOVERNANCE_ABI> {\n constructor(governanceAddr: Address, chain: Chain = wanchain, rpcUrl?: string) {\n // 1. Init Public Client (for read-only operations)\n this.publicClient = createPublicClient({\n chain,\n transport: rpcUrl ? http(rpcUrl) : http(),\n });\n this.governanceAddr = governanceAddr;\n }\n\n // get base parameters\n async getBaseParameters(): Promise<{\n allProposalWanAmount: bigint\n allProposalLockingWanAmount: bigint\n allProposalBurnedWanAmount: bigint\n\n ethTransferGasLimit: bigint\n minParticipationAmount: bigint\n requestWanMultiplier: bigint\n succeedThreshold: bigint\n requireXpAmount: bigint\n pledgeLockDuration: bigint\n fundraisingDuration: bigint\n voteDuration: bigint\n xp: Address\n stakingManager: Address\n wanTreasury: Address\n burnAddr: Address\n\n proposalCount: bigint\n reviewPendingProposalCount: bigint\n prospectiveProposalCount: bigint\n votingProposalCount: bigint\n succeededProposalCount: bigint\n failedProposalCount: bigint\n canceledProposalCount: bigint\n\n proposalWanMultiplierCount: bigint\n votingWanMultiplierCount: bigint\n }> {\n const results = await this.publicClient.multicall({\n contracts: [\n Parameters.totalProposalAmountInfo(this.governanceAddr),\n Parameters.proposalGlobalConfig(this.governanceAddr),\n Parameters.BURN(this.governanceAddr),\n Parameters.getAllProposalCount(this.governanceAddr),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.UnderReview),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Fundraising),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.VotingInProgress),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Succeeded),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Rejected),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Canceled),\n Parameters.getProposalMultiplierCounts(this.governanceAddr),\n ],\n allowFailure: false,\n });\n\n return {\n allProposalWanAmount: results[0][0],\n allProposalLockingWanAmount: results[0][1],\n allProposalBurnedWanAmount: results[0][2],\n\n ethTransferGasLimit: results[1][0],\n minParticipationAmount: results[1][1],\n requestWanMultiplier: results[1][2],\n succeedThreshold: results[1][3],\n requireXpAmount: results[1][4],\n pledgeLockDuration: results[1][5],\n fundraisingDuration: results[1][6],\n voteDuration: results[1][7],\n xp: results[1][8],\n stakingManager: results[1][9],\n wanTreasury: results[1][10],\n\n burnAddr: results[2],\n\n proposalCount: results[3],\n reviewPendingProposalCount: results[4],\n prospectiveProposalCount: results[5],\n votingProposalCount: results[6],\n succeededProposalCount: results[7],\n failedProposalCount: results[8],\n canceledProposalCount: results[9],\n\n proposalWanMultiplierCount: results[10][0],\n votingWanMultiplierCount: results[10][1],\n }\n }\n\n async getProposalMultipliers(options:{proposalWanMultiplier: IndexRange | undefined, votingWanMultiplier: IndexRange | undefined}): Promise<{\n proposalWanMultipliers: [PlegeMultiplierReturn] | []\n votingWanMultipliers: [PlegeMultiplierReturn] | []\n }> {\n let proposalWanMultiplierCount = 0n;\n let votingWanMultiplierCount = 0n;\n if (options.proposalWanMultiplier) {\n if (options.proposalWanMultiplier.end < options.proposalWanMultiplier.start || options.proposalWanMultiplier.start < 0n) {\n throw new Error('Invalid proposalWanMultiplier');\n }\n proposalWanMultiplierCount = options.proposalWanMultiplier.end - options.proposalWanMultiplier.start + 1n;\n }\n if (options.votingWanMultiplier) {\n if (options.votingWanMultiplier.end < options.votingWanMultiplier.start || options.votingWanMultiplier.start < 0n) {\n throw new Error('Invalid votingWanMultiplier');\n }\n votingWanMultiplierCount = options.votingWanMultiplier.end - options.votingWanMultiplier.start + 1n;\n }\n\n let contractCount = proposalWanMultiplierCount + votingWanMultiplierCount;\n\n let hasProposalWanMultipliers = proposalWanMultiplierCount > 0n;\n let hasVotingWanMultipliers = votingWanMultiplierCount > 0n;\n let contracts = new Array(contractCount);\n if (hasProposalWanMultipliers) {\n for (let i = 0; i < proposalWanMultiplierCount; ++i) {\n contracts[i] = Parameters.getProposalWanMultiplierAt(this.governanceAddr, i);\n }\n }\n if (hasVotingWanMultipliers) {\n for (let i = proposalWanMultiplierCount; i < contractCount; ++i) {\n contracts[i] = Parameters.getVotingWanMultiplierAt(this.governanceAddr, i - proposalWanMultiplierCount);\n }\n }\n\n const results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n\n let proposalWanMultipliers = hasProposalWanMultipliers ? new Array(proposalWanMultiplierCount) : [];\n let votingWanMultipliers = hasVotingWanMultipliers ? new Array(votingWanMultiplierCount) : [];\n\n for (let i = 0n; i < results.length; ++i) {\n if (i < proposalWanMultiplierCount) {\n proposalWanMultipliers[i] = {\n pledgeType: results[i][0],\n lockDuration: results[i][1],\n multiplier: results[i][2],\n };\n } else {\n votingWanMultipliers[i - proposalWanMultiplierCount] = {\n pledgeType: results[i][0],\n lockDuration: results[i][1],\n multiplier: results[i][2],\n };\n }\n }\n\n return {\n proposalWanMultipliers: proposalWanMultipliers,\n votingWanMultipliers: votingWanMultipliers,\n }\n }\n\n // get base parameters\n async getProposalCounts(): Promise<{\n allProposalCount: bigint\n reviewPendingProposalCount: bigint\n prospectiveProposalCount: bigint\n votingProposalCount: bigint\n succeededProposalCount: bigint\n failedProposalCount: bigint\n canceledProposalCount: bigint\n }> {\n\n const results = await this.publicClient.multicall({\n contracts: [\n Parameters.getAllProposalCount(this.governanceAddr),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.UnderReview),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Fundraising),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.VotingInProgress),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Succeeded),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Rejected),\n Parameters.getProposalCountByState(this.governanceAddr, ProposalState.Canceled),\n ],\n allowFailure: false,\n });\n\n return {\n allProposalCount: results[0],\n reviewPendingProposalCount: results[1],\n prospectiveProposalCount: results[2],\n votingProposalCount: results[3],\n succeededProposalCount: results[4],\n failedProposalCount: results[5],\n canceledProposalCount: results[6],\n }\n }\n\n async getActiveProposalCategoryCounts(): Promise<{\n fundingProposalCount: bigint\n technicalProposalCount: bigint\n }> {\n const results = await this.publicClient.multicall({\n contracts: [\n Parameters.proposalCategoryCount(this.governanceAddr, ProposalState.Fundraising, ProposalCategory.Funding),\n Parameters.proposalCategoryCount(this.governanceAddr, ProposalState.Fundraising, ProposalCategory.Technical),\n Parameters.proposalCategoryCount(this.governanceAddr, ProposalState.VotingInProgress, ProposalCategory.Funding),\n Parameters.proposalCategoryCount(this.governanceAddr, ProposalState.VotingInProgress, ProposalCategory.Technical),\n ],\n allowFailure: false,\n });\n\n return {\n fundingProposalCount: results[0] + results[2],\n technicalProposalCount: results[1] + results[3],\n }\n }\n\n // get balance about WAN and XP\n async getAssetBalances(xpAddress: Address, userAddress: Address): Promise<{\n ethBalance: bigint\n xpBalance: bigint\n }> {\n const results = await this.publicClient.multicall({\n contracts: [\n Parameters.getEthBalance(this.publicClient.chain.contracts.multicall3.address, userAddress),\n Parameters.getErc20Balance(xpAddress, userAddress)\n ],\n allowFailure: false,\n });\n\n return {\n ethBalance: results[0],\n xpBalance: results[1],\n }\n }\n\n // get partner proposal\n async getAccountProposalCount(account: Address): Promise<{\n proposerProposalCount: bigint,\n partnerProposalCount: bigint,\n voterProposalCount: bigint,\n }> {\n const results = await this.publicClient.multicall({\n contracts: [\n Parameters.getProposalCountByRole(this.governanceAddr, ProposalRole.Proposer, account),\n Parameters.getProposalCountByRole(this.governanceAddr, ProposalRole.Partner, account),\n Parameters.getProposalCountByRole(this.governanceAddr, ProposalRole.Voter, account),\n ],\n allowFailure: false,\n });\n\n return {\n proposerProposalCount: results[0],\n partnerProposalCount: results[1],\n voterProposalCount: results[2],\n }\n }\n\n // get foundations\n async getFoundations(): Promise<Address[]> {\n const governanceAddr = '0xaFBF28B258599466fFAC7C207172d84CE12761B8';\n const results = await this.publicClient.readContract(Parameters.getFoundations(governanceAddr));\n return results;\n }\n\n // calc proposal id by account\n async getAccountProposalId(\n account: Address,\n requestWanAmount: bigint,\n category: ProposalCategory,\n pledgeType: PledgeType,\n description: Hex\n\n ): Promise<Hex> {\n const governanceAddr = '0xaFBF28B258599466fFAC7C207172d84CE12761B8';\n const proposalId = await this.publicClient.readContract(Parameters.getProposalId(this.governanceAddr, requestWanAmount, account, category, pledgeType, description));\n return proposalId;\n }\n\n async getProposalPartnerAndVoterCounts(proposalId: Hex): Promise<bigint> {\n const result = await this.publicClient.readContract(Parameters.getProposalPartnerAndVoterCounts(this.governanceAddr, proposalId));\n return result;\n }\n\n // get partner proposal\n async getProposerProposals(proposerAddr: Address, indexRange: IndexRange): Promise<ProposalInfo[]> {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByRoleAt(this.governanceAddr, ProposalRole.Proposer, proposerAddr, i);\n }\n\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; i++) {\n contracts[i] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n }\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n for (let i = 0; i < proposalIds.length;) {\n results[i].proposalId = proposalIds[i];\n i += 2;\n }\n return results;\n }\n\n // get partner proposal\n async getPartnerProposals(partnerAddr: Address, indexRange: IndexRange): Promise<\n {\n proposalInfo: ProposalInfo\n partnerInfo: PartnerInfo\n }[]\n > {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByRoleAt(this.governanceAddr, ProposalRole.Partner, partnerAddr, i);\n }\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n contracts = new Array(proposalIds.length * 2);\n for (let i = 0; i < proposalIds.length; ++i) {\n let index = i * 2;\n contracts[index] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n contracts[index + 1] = Parameters.getProposalPartnerInfo(this.governanceAddr, proposalIds[i], partnerAddr);\n }\n\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n\n let partnerProposals = new Array(proposalIds.length);\n\n for (let i = 0; i < proposalIds.length; ++i) {\n let index = i * 2;\n results[index].proposalId = proposalIds[i];\n partnerProposals[i] = {\n proposalInfo: results[index],\n partnerInfo: results[index + 1],\n \n }\n }\n return partnerProposals;\n }\n\n // get voter proposal\n async getVoterProposals(voterAddr: Address, indexRange: IndexRange): Promise<\n {\n proposalInfo: ProposalInfo\n voterInfo: VoterInfo\n }[]\n > {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByRoleAt(this.governanceAddr, ProposalRole.Voter, voterAddr, i);\n }\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n contracts = new Array(proposalIds.length * 2);\n for (let i = 0; i < proposalIds.length; ++i) {\n let index = i * 2;\n contracts[index] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n contracts[index + 1] = Parameters.getProposalVoterInfo(this.governanceAddr, proposalIds[i], voterAddr);\n }\n\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n\n let voterProposals = new Array(proposalIds.length);\n\n for (let i = 0; i < proposalIds.length; ++i) {\n let index = i * 2;\n results[index].proposalId = proposalIds[i];\n voterProposals[i] = {\n proposalInfo: results[index],\n voterInfo: results[index + 1],\n \n }\n }\n return voterProposals;\n }\n\n // get partner proposal\n async getPartnerInfo(partnerAddr: Address, proposalIds: Hex[]): Promise<PartnerInfo[]> {\n let contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; ++i) {\n contracts[i] = Parameters.getProposalPartnerInfo(this.governanceAddr, proposalIds[i], partnerAddr);\n }\n\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n\n for (let i = 0; i < proposalIds.length; ++i) {\n results[i].proposalId = proposalIds[i];\n }\n return results;\n }\n\n // get voter proposal\n async getVoterInfo(voterAddr: Address, proposalIds: Hex[]): Promise<VoterInfo[]> {\n let contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; ++i) {\n contracts[i] = Parameters.getProposalVoterInfo(this.governanceAddr, proposalIds[i], voterAddr);\n }\n\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n\n for (let i = 0; i < proposalIds.length; ++i) {\n results[i].proposalId = proposalIds[i];\n }\n return results;\n }\n\n // get voter proposal\n async getReviewPendingProposals(indexRange: IndexRange): Promise<ProposalInfo> {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByStateAt(this.governanceAddr, ProposalState.UnderReview, i);\n }\n\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n\n contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; ++i) {\n contracts[i] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n }\n\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n for (let i = 0; i < proposalIds.length; ++i) {\n results[i].proposalId = proposalIds[i];\n }\n return results;\n }\n\n // get voter proposal\n async getProspectiveProposals(indexRange: IndexRange): Promise<ProposalInfo[]> {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByStateAt(this.governanceAddr, ProposalState.Fundraising, i);\n }\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; ++i) {\n contracts[i] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n }\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n for (let i = 0; i < proposalIds.length; ++i) {\n results[i].proposalId = proposalIds[i];\n }\n return results;\n }\n\n // get voter proposal\n async getVotingProposals(indexRange: IndexRange): Promise<ProposalInfo[]> {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByStateAt(this.governanceAddr, ProposalState.VotingInProgress, i);\n }\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; ++i) {\n contracts[i] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n }\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n for (let i = 0; i < proposalIds.length; ++i) {\n results[i].proposalId = proposalIds[i];\n }\n return results;\n }\n\n // get voter proposal\n async getSucceedProposals(indexRange: IndexRange): Promise<ProposalInfo[]> {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByStateAt(this.governanceAddr, ProposalState.Succeeded, i);\n }\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; ++i) {\n contracts[i] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n }\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n for (let i = 0; i < proposalIds.length; ++i) {\n results[i].proposalId = proposalIds[i];\n }\n return results;\n }\n\n // get voter proposal\n async getFailedProposals(indexRange: IndexRange): Promise<ProposalInfo[]> {\n if (indexRange.end < indexRange.start || indexRange.start < 0n) {\n throw new Error('Invalid indexRange');\n }\n\n let contracts = new Array(indexRange.end - indexRange.start + 1n);\n for (let i = indexRange.start; i <= indexRange.end; ++i) {\n contracts[i - indexRange.start] = Parameters.getProposalIdByStateAt(this.governanceAddr, ProposalState.Rejected, i);\n }\n const proposalIds = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n contracts = new Array(proposalIds.length);\n for (let i = 0; i < proposalIds.length; ++i) {\n contracts[i] = Parameters.getProposalInfo(this.governanceAddr, proposalIds[i]);\n }\n let results = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n for (let i = 0; i < proposalIds.length; ++i) {\n results[i].proposalId = proposalIds[i];\n }\n return results;\n }\n\n // get voter proposal\n async getProposalInfo(proposalId: Hex): Promise<ProposalInfo> {\n let result = await this.publicClient.readContract(Parameters.getProposalInfo(this.governanceAddr, proposalId));\n result.proposalId = proposalId;\n return result;\n }\n\n // can proposer|partner|voter request proposal withdrawal\n canRequestProposalWithdrawal(timestamp: bigint, params: CanRequestProposalWithdrawalParam[]): CanRequestProposalWithdrawalRetrunItem[] {\n let results = new Array(params.length);\n for (let i = 0; i < params.length; ++i) {\n let needRequestWithdrawal = true;\n let canRequestWithdrawal = false;\n if (params[i].state == ProposalState.Rejected || params[i].state == ProposalState.Succeeded && (params[i].lockDuration == 0n || params[i].requestId > 0n)) {\n needRequestWithdrawal = false;\n }\n if (params[i].state == ProposalState.Succeeded && params[i].lockDuration > 0n && timestamp > params[i].voteDeadline + params[i].lockDuration && params[i].requestId == 0n && !params[i].exited) {\n canRequestWithdrawal = true;\n }\n results[i] = {needRequestWithdrawal, canRequestWithdrawal};\n }\n return results;\n }\n\n // can proposer claim proposal withdrawal\n async canClaimProposalWithdrawal(stakingManagerAddr: Address, timestamp: bigint, params: CanClaimProposalWithdrawalParam[]): Promise<boolean[]> {\n let contractCount = 0;\n let indexMap = {};\n let results = new Array(params.length);\n let contracts = new Array(params.length);\n for (let i = 0; i < params.length; ++i) {\n if (params[i].state == ProposalState.Rejected || params[i].state == ProposalState.Succeeded && params[i].lockDuration == 0n && !params[i].exited) {\n results[i] = true;\n continue;\n }\n\n if (params[i].state == ProposalState.Succeeded && params[i].lockDuration > 0n && timestamp > params[i].voteDeadline + params[i].lockDuration && params[i].requestId > 0n && !params[i].exited) {\n contracts[contractCount] = Parameters.getUnstakeStatus(stakingManagerAddr, params[i].requestId);\n indexMap[i] = contractCount;\n contractCount ++;\n continue;\n }\n\n results[i] = false;\n }\n contracts = contracts.slice(0, contractCount);\n\n let multiUnstakeStatus = await this.publicClient.multicall({\n contracts: contracts,\n allowFailure: false,\n });\n for (let i = 0; i < contracts.length; i++) {\n results[indexMap[i]] = multiUnstakeStatus[i] == UnstakeStatus.ReadyToClaim;\n }\n return results;\n\n }\n\n async getUnstakeStatus(stakingManager: Address, requestId: bigint): Promise<UnstakeStatus> {\n return await this.publicClient.readContract(Parameters.getUnstakeStatus(stakingManager, requestId));\n }\n\n async buildTx<\n TFunctionName extends ContractFunctionName<TAbi, 'nonpayable' | 'payable'>\n >(\n account: Account | Address,\n functionName: TFunctionName,\n args: ContractFunctionArgs<TAbi, 'nonpayable' | 'payable', TFunctionName>,\n value: bigint = 0n\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n await this.publicClient.simulateContract({\n address: this.governanceAddr,\n abi: GOVERNANCE_ABI,\n functionName,\n args,\n account,\n value,\n });\n\n return await this.publicClient.prepareTransactionRequest({\n account,\n to: this.governanceAddr,\n data: encodeFunctionData({\n abi: GOVERNANCE_ABI,\n functionName,\n args,\n } as any),\n value,\n });\n }\n async _buildTx(account: Address | Account, parameters: EncodeFunctionDataParameters, value: bigint = 0n): Promise<\n PrepareTransactionRequestReturnType\n > {\n await this.publicClient.simulateContract({\n address: this.governanceAddr,\n abi: parameters.abi,\n functionName: parameters.functionName,\n args: parameters.args,\n account: account,\n });\n return await this.publicClient.prepareTransactionRequest({\n account: account,\n to: this.governanceAddr,\n data: encodeFunctionData(parameters),\n value: value,\n });\n }\n\n async buildCreateProposalTx(\n account: Address | Account,\n pledgeWanAmount: bigint,\n requestWanAmount: bigint,\n category: ProposalCategory,\n pledgeType: PledgeType,\n description: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"createProposal\", [requestWanAmount, category, pledgeType, description], pledgeWanAmount);\n }\n\n async buildCancelProposalTx(account: Address | Account, proposalId: Hex, reason: Hex): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"cancelProposal\", [proposalId, reason]);\n }\n\n async buildReviewProposalTx(\n account: Address | Account,\n proposalId: Hex,\n isApproved: boolean,\n reason: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"reviewProposal\", [proposalId, isApproved, reason]);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'reviewProposal',\n // args: [proposalId, isApproved, reason]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildContributeProposalTx(\n account: Address | Account,\n proposalId: Hex,\n pledgeWanAmount: bigint,\n pledgeType: PledgeType,\n reason: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"contributeProposal\", [proposalId, pledgeType, reason], pledgeWanAmount);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'contributeProposal',\n // args: [proposalId, pledgeType, reason]\n // }\n // return await this._buildTx(account, parameters, pledgeWanAmount);\n }\n\n async buildVoteProposalTx(\n account: Address | Account,\n proposalId: Hex, pledgeWanAmount: bigint,\n lockDuration: bigint,\n pledgeType: PledgeType,\n voteType: VoteType,\n reason: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"voteProposal\", [proposalId, lockDuration, pledgeType, voteType, reason], pledgeWanAmount);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'voteProposal',\n // args: [proposalId, lockDuration, pledgeType, voteType, reason]\n // }\n // return await this._buildTx(account, parameters, pledgeWanAmount);\n }\n\n async buildTallyProposalTx(\n account: Address | Account,\n proposalId: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"tallyProposal\", [proposalId]);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'tallyProposal',\n // args: [proposalId]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildRequestProposerWithdrawalTx(\n account: Address | Account,\n proposalId: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"requestProposerWithdrawal\", [proposalId], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'requestProposerWithdrawal',\n // args: [proposalId]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildClaimProposerWithdrawalTx(\n account: Address | Account,\n proposalId: Hex,\n requestId: bigint\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"claimProposerWithdrawal\", [proposalId, requestId], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'claimProposerWithdrawal',\n // args: [proposalId, requestId]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildRequestPartnerWithdrawalTx(\n account: Address | Account,\n proposalId: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"requestPartnerWithdrawal\", [proposalId], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'requestPartnerWithdrawal',\n // args: [proposalId]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildClaimPartnerWithdrawalTx(\n account: Address | Account,\n proposalId: Hex,\n requestId: bigint\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"claimPartnerWithdrawal\", [proposalId, requestId], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'claimPartnerWithdrawal',\n // args: [proposalId, requestId]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildRequestVoterWithdrawalTx(\n account: Address | Account,\n proposalId: Hex\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"requestVoterWithdrawal\", [proposalId], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'requestVoterWithdrawal',\n // args: [proposalId]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildClaimVoterWithdrawalTx(\n account: Address | Account,\n proposalId: Hex,\n requestId: bigint\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"claimVoterWithdrawal\", [proposalId, requestId], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'claimVoterWithdrawal',\n // args: [proposalId, requestId]\n // }\n // return await this._buildTx(account, parameters, 0n);\n }\n\n async buildUpdateFundraisingDurationTx(\n account: Address | Account,\n fundraisingDuration: bigint\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"updateFundraisingDuration\", [fundraisingDuration], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'updateFundraisingDuration',\n // args: [ fundraisingDuration ]\n // };\n return await this._buildTx(account, parameters, 0n);\n }\n\n async buildUpdateMinParticipationAmountTx(\n account: Address | Account,\n amount: bigint\n ): Promise<\n PrepareTransactionRequestReturnType\n > {\n return await this.buildTx(account, \"updateMinParticipationAmount\", [amount], 0n);\n // const parameters = {\n // abi: GOVERNANCE_ABI,\n // functionName: 'updateMinParticipationAmount',\n // args: [ amount ]\n // };\n // return await this._buildTx(account, parameters, 0n);\n }\n\n}"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wandevs/governance-contracts-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Sdk for governance-contracts",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/
|
|
7
|
-
"module": "./dist/
|
|
8
|
-
"types": "./dist/
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/index.d.cts",
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
|
-
"types": "./dist/
|
|
12
|
-
"import":
|
|
13
|
-
|
|
11
|
+
"types": "./dist/index.d.cts",
|
|
12
|
+
"import": {
|
|
13
|
+
"types": "./dist/index.d.mts",
|
|
14
|
+
"default": "./dist/index.mjs"
|
|
15
|
+
},
|
|
16
|
+
"require": {
|
|
17
|
+
"types": "./dist/index.d.cts",
|
|
18
|
+
"default": "./dist/index.cjs"
|
|
19
|
+
}
|
|
14
20
|
}
|
|
15
21
|
},
|
|
16
22
|
"files": [
|
|
@@ -25,9 +31,7 @@
|
|
|
25
31
|
"scripts": {
|
|
26
32
|
"build": "tsdown",
|
|
27
33
|
"dev": "tsdown --watch",
|
|
28
|
-
"
|
|
29
|
-
"prepublish": "npm publish --dry-run",
|
|
30
|
-
"publish": "npm publish"
|
|
34
|
+
"prepublishOnly": "npm run build"
|
|
31
35
|
},
|
|
32
36
|
"devDependencies": {
|
|
33
37
|
"@types/node": "^25.3.1",
|