UNPKG

@goat-sdk/plugin-mode-governance

Version:

<div align="center"> <a href="https://github.com/goat-sdk/goat">

2 lines (1 loc) 2.83 kB
import{a as s}from"./chunk-PBXBIFMS.mjs";import{c as g,d as m}from"./chunk-76QJIKKH.mjs";import{a as v,b as k,c as P}from"./chunk-ADH3CWI5.mjs";import{a as u}from"./chunk-YSXGDEY5.mjs";import{Tool as O}from"@goat-sdk/core";import{EVMWalletClient as c}from"@goat-sdk/wallet-evm";import{formatUnits as y,parseUnits as h}from"viem";function w(d,e,o,t){var i=arguments.length,n=i<3?e:t===null?t=Object.getOwnPropertyDescriptor(e,o):t,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(d,e,o,t);else for(var f=d.length-1;f>=0;f--)(a=d[f])&&(n=(i<3?a(n):i>3?a(e,o,n):a(e,o))||n);return i>3&&n&&Object.defineProperty(e,o,n),n}u(w,"_ts_decorate");function r(d,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(d,e)}u(r,"_ts_metadata");var p=class{static{u(this,"ModeGovernanceService")}async stakeTokensForModeGovernance(e,o){let t=o.tokenType==="MODE"?g:m;return(await e.sendTransaction({to:t,abi:s,functionName:"createLock",args:[h(o.amount,18)]})).hash}async getModeGovernanceStakeInfo(e,o){let t=o.tokenType==="MODE"?g:m,i=await e.getAddress(),n=await e.read({address:t,abi:s,functionName:"ownedTokens",args:[i]});if(n.length===0)return{stakedAmount:"0",startTime:0,votingPower:"0",isVoting:!1};let a=n[0],[f,b]=await e.read({address:t,abi:s,functionName:"locked",args:[a]}),T=await e.read({address:t,abi:s,functionName:"votingPower",args:[a]}),M=await e.read({address:t,abi:s,functionName:"isVoting",args:[a]});return{stakedAmount:y(f,18),startTime:Number(b),votingPower:y(T,18),isVoting:M}}async getModeGovernanceVotingPower(e,o){let t=o.address||await e.getAddress();switch(o.tokenType){case"MODE":case"veMode":return y(await e.read({address:g,abi:s,functionName:"votingPowerForAccount",args:[t]}),18);case"BPT":case"veBPT":return y(await e.read({address:m,abi:s,functionName:"votingPowerForAccount",args:[t]}),18);default:throw new Error("Invalid token type")}}};w([O({description:"Stake MODE or BPT tokens in the Mode governance system. Requires MODE or BPT tokens to be approved first."}),r("design:type",Function),r("design:paramtypes",[typeof c>"u"?Object:c,typeof v>"u"?Object:v]),r("design:returntype",Promise)],p.prototype,"stakeTokensForModeGovernance",null);w([O({description:"Get Mode governance staking information including lock period and voting power"}),r("design:type",Function),r("design:paramtypes",[typeof c>"u"?Object:c,typeof k>"u"?Object:k]),r("design:returntype",Promise)],p.prototype,"getModeGovernanceStakeInfo",null);w([O({description:"Get the Mode governance voting power for any address. Use 'veMode' or 'veBPT' to check voting power."}),r("design:type",Function),r("design:paramtypes",[typeof c>"u"?Object:c,typeof P>"u"?Object:P]),r("design:returntype",Promise)],p.prototype,"getModeGovernanceVotingPower",null);export{p as a};