@evergonlabs/tmi-protocol-staking-sdk 0.11.0-rc.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var v=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var Zt=Object.prototype.hasOwnProperty;var te=(e,t)=>{for(var a in t)v(e,a,{get:t[a],enumerable:!0})},ee=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Xt(t))!Zt.call(e,i)&&i!==a&&v(e,i,{get:()=>t[i],enumerable:!(r=Qt(t,i))||r.enumerable});return e};var ae=e=>ee(v({},"__esModule",{value:!0}),e);var Ne={};te(Ne,{DistributeRewardsError:()=>M,FacetOptionEnum:()=>u,FacetSlot:()=>c,StakingChainId:()=>se,StakingChains:()=>x,StakingRole:()=>C,TemplateEnum:()=>Yt,createFacetInitDictionary:()=>V,createFacetSettersDictionary:()=>Y,createMiddlewares:()=>jt.createMiddlewares,createPlatform:()=>ce,createPool:()=>Te,distributeRewards:()=>Se,facetOptionsBySlot:()=>oe,facetSlots:()=>g,getPoolCreationAbi:()=>P,getReward:()=>be,getStakingChain:()=>me,getStakingRole:()=>et,getStakingRoleHex:()=>l,getTemplate:()=>Be,grantRole:()=>Ce,isStakingRole:()=>at,parseAssetManagersDeployEvent:()=>Ie,parseCreatePoolEvent:()=>ge,parseDeployDiamondEvent:()=>fe,parseStakeEvent:()=>he,partialUnstake:()=>De,restake:()=>xe,revokeRole:()=>Ee,stake:()=>we,unstake:()=>Le,viemClientAsMiddleware:()=>qt.viemClientAsMiddleware});module.exports=ae(Ne);var Ko=require("@hono/zod-openapi");var Nt=require("@evergonlabs/tmi-contracts-staking-sdk/abis");var lt=require("@evergonlabs/tmi-contracts-staking-sdk");var Q=require("@evergonlabs/tmi-utils/errors"),d=class extends Q.CustomError{constructor(t){super({message:`Option ${t} is not supported or implemented yet`,name:"FacetNotSupportedYetError",data:{option:t}})}};var tt=require("@evergonlabs/tmi-contracts-staking-sdk"),{DEFAULT_ROLES:X,GENERIC_ROLES:Z}=tt.constants,C=(i=>(i.Admin="Admin",i.Open="Open",i.Creator="Creator",i.Staker="Staker",i))(C||{}),re={Admin:X.adminRole,Open:X.openRole,Creator:Z.creatorRole,Staker:Z.stakerRole};function et(e){return re[e]}function at(e){return Object.values(C).includes(e)}function l(e){return at(e)?et(e):e}var rt=require("viem"),ot=require("@evergonlabs/tmi-contracts-staking-sdk");var c=(s=>(s.Erc721="Erc721",s.Amount="Amount",s.Time="Time",s.PoolCreation="PoolCreation",s.StakeCreation="StakeCreation",s.CreatorsEligibility="CreatorsEligibility",s.StakersEligibility="StakersEligibility",s.Lock="Lock",s.RewardsDistribution="RewardsDistribution",s.Input="Input",s.Reward="Reward",s.AmountMult="AmountMult",s.LockMult="LockMult",s.Withdrawal="Withdrawal",s.AccessControl="AccessControl",s))(c||{}),g=["AccessControl","Erc721","Amount","Time","PoolCreation","StakeCreation","CreatorsEligibility","StakersEligibility","Lock","RewardsDistribution","Input","Reward","AmountMult","LockMult","Withdrawal"];var u=(o=>(o.AccessControlDefault="AccessControlDefault",o.AmountHardCap="AmountHardCap",o.AmountTwoBorder="AmountTwoBorder",o.TimeOnlyStarting="TimeOnlyStarting",o.TimeTwoBorder="TimeTwoBorder",o.LockStaticPeriod="LockStaticPeriod",o.LockTwoBorder="LockTwoBorder",o.LockAutoComplex="LockAutoComplex",o.LockAutoRateBasedOpen="LockAutoRateBasedOpen",o.LockAutoPreStake="LockAutoPreStake",o.RewardDistributionComplex="RewardDistributionComplex",o.RewardDistributionPreStake="RewardDistributionPreStake",o.RewardDistributionRateBasedOpen="RewardDistributionRateBasedOpen",o.RewardDistributionRateBasedLock="RewardDistributionRateBasedLock",o.InputErc20="InputErc20",o.InputErc1155="InputErc1155",o.RewardErc20Transfer="RewardErc20Transfer",o.RewardErc20Minter="RewardErc20Minter",o.RewardErc1155Transfer="RewardErc1155Transfer",o.RewardErc1155Minter="RewardErc1155Minter",o.LockMultContinuous="LockMultContinuous",o.LockMultInterval="LockMultInterval",o.LockMultNoMultiplier="LockMultNoMultiplier",o.AmountMultContinuous="AmountMultContinuous",o.AmountMultInterval="AmountMultInterval",o.AmountMultNoMultiplier="AmountMultNoMultiplier",o.Erc721Default="Erc721Default",o.CreatorsEligibilityByRole="CreatorsEligibilityByRole",o.CreatorsEligibilityDefault="CreatorsEligibilityDefault",o.CreatorsEligibilityNID="CreatorsEligibilityNID",o.StakersEligibilityByRole="StakersEligibilityByRole",o.StakersEligibilityDefault="StakersEligibilityDefault",o.StakersEligibilityNID="StakersEligibilityNID",o.WithdrawalLockChecker="WithdrawalLockChecker",o.PoolCreationDefault="PoolCreationDefault",o.PoolCreationNID="PoolCreationNID",o.StakeCreationDefault="StakeCreationDefault",o.StakeCreationNID="StakeCreationNID",o))(u||{}),oe={Amount:["AmountHardCap","AmountTwoBorder"],Time:["TimeOnlyStarting","TimeTwoBorder"],CreatorsEligibility:["CreatorsEligibilityDefault","CreatorsEligibilityByRole","CreatorsEligibilityNID"],Erc721:["Erc721Default"],Input:["InputErc1155","InputErc20"],Reward:["RewardErc20Transfer","RewardErc20Minter","RewardErc1155Transfer","RewardErc1155Minter"],RewardsDistribution:["RewardDistributionComplex","RewardDistributionPreStake","RewardDistributionRateBasedLock","RewardDistributionRateBasedOpen"],Lock:["LockAutoComplex","LockAutoPreStake","LockAutoRateBasedOpen","LockStaticPeriod","LockTwoBorder"],LockMult:["LockMultContinuous","LockMultInterval","LockMultNoMultiplier"],Withdrawal:["WithdrawalLockChecker"],StakersEligibility:["StakersEligibilityDefault","StakersEligibilityByRole","StakersEligibilityNID"],PoolCreation:["PoolCreationDefault","PoolCreationNID"],AmountMult:["AmountMultContinuous","AmountMultInterval","AmountMultNoMultiplier"],StakeCreation:["StakeCreationDefault","StakeCreationNID"],AccessControl:["AccessControlDefault"]};var{SetterSelectors:n}=ot.constants,ie={AmountHardCap:n.CampaignAmounts.Hardcap,AmountTwoBorder:n.CampaignAmounts.TwoBorder,TimeOnlyStarting:n.CampaignTimes.OnlyStarting,TimeTwoBorder:n.CampaignTimes.TwoBorder,LockTwoBorder:n.LockVariations.TwoBorder,LockStaticPeriod:n.LockVariations.Static,LockAutoComplex:n.LockVariations.Static,LockAutoPreStake:n.LockVariations.Static,LockAutoRateBasedOpen:n.LockVariations.Static,RewardDistributionComplex:n.RewardsDistribution.Complex,RewardDistributionPreStake:n.RewardsDistribution.PreStake,RewardDistributionRateBasedLock:n.RewardsDistribution.RateBasedLock,RewardDistributionRateBasedOpen:n.RewardsDistribution.RateBasedOpen,StakersEligibilityDefault:n.Eligibility.Stakers,StakersEligibilityByRole:n.Eligibility.Stakers,InputErc20:n.TransferInput.Erc20,InputErc1155:n.TransferInput.Erc1155,RewardErc1155Transfer:n.TransferReward.Erc1155Transfer,RewardErc1155Minter:n.TransferReward.Erc1155Minter,RewardErc20Transfer:n.TransferReward.Erc20Transfer,RewardErc20Minter:n.TransferReward.Erc20Minter,AmountMultInterval:n.VirtualAmountMultiplier.Interval,AmountMultContinuous:n.VirtualAmountMultiplier.Continuous,LockMultContinuous:n.VirtualLockMultiplier.Continuous,LockMultInterval:n.VirtualLockMultiplier.Interval};function it(e){let t=[];return g.forEach(a=>{let r=e[a],i=ie[r];i&&t.push({option:r,selector:i})}),(0,rt.encodeAbiParameters)([{name:"requiredSelectors",type:"bytes4[]"},{name:"optionalSelectors",type:"bytes4[]"}],[t.map(a=>a.selector),[]])}var nt=require("viem");function W(e){return(0,nt.encodeAbiParameters)([{name:"roles",type:"bytes32[]"}],[[l(e)]])}var st=require("viem");function mt(e,t){return(0,st.encodeAbiParameters)([{name:"name",type:"string"},{name:"symbol",type:"string"},{name:"baseUri",type:"string"},{name:"isTransferrable",type:"bool"}],[e.name,e.symbol,e.baseUri,t])}var O=require("viem");function dt(e){return(0,O.encodeAbiParameters)([{name:"maxLockPeriodInSeconds",type:"uint256"}],[BigInt(e)])}function y(e){return(0,O.encodeAbiParameters)([{name:"lockPeriods",type:"uint256[]"}],[e.map(t=>BigInt(t))])}function pt(e,t){return(0,O.encodeAbiParameters)([{name:"minAcceptedLockPeriodSeconds",type:"uint256"},{name:"maxAcceptedLockPeriodSeconds",type:"uint256"}],[BigInt(e),BigInt(t)])}var{InitSelectors:D}=lt.constants;function V(e){return{AccessControlDefault:()=>({targetFacet:"AccessControlStakingFacet",data:void 0}),Erc721Default:t=>({targetFacet:"ERC721Facet",data:{selector:D.Generic.Erc721,data:mt(t.erc721,t.isSoulbound)}}),PoolCreationDefault:()=>({targetFacet:"CampaignCreationSkeleton",data:{selector:D.Skeletons.CampaignCreation,data:it(e)}}),PoolCreationNID:()=>{throw new d("PoolCreationNID")},LockStaticPeriod:t=>({targetFacet:"StaticPeriodLockFacet",data:{selector:D.LockVariations.Static,data:dt(t.maxLockPeriod)}}),LockTwoBorder:()=>({targetFacet:"TwoBorderTimeLockFacet",data:void 0}),LockAutoComplex:()=>({targetFacet:"StaticPeriodLockFacet",data:void 0}),LockAutoPreStake:()=>({targetFacet:"StaticPeriodLockFacet",data:void 0}),LockAutoRateBasedOpen:()=>({targetFacet:"StaticPeriodLockFacet",data:void 0}),AmountHardCap:()=>({targetFacet:"HardcapAmountFacet",data:void 0}),AmountTwoBorder:()=>({targetFacet:"TwoBorderAmountFacet",data:void 0}),AmountMultContinuous:()=>({targetFacet:"ContinuousVirtualAmountMultiplierFacet",data:void 0}),AmountMultInterval:()=>({targetFacet:"IntervalVirtualAmountMultiplierFacet",data:void 0}),AmountMultNoMultiplier:()=>({targetFacet:"NoVirtualAmountMultiplierFacet",data:void 0}),CreatorsEligibilityByRole:t=>({targetFacet:"WhitelistedCampaignCreatorsFacet",data:{selector:D.Eligibility.Creators,data:W(t.role)}}),CreatorsEligibilityDefault:()=>({targetFacet:"WhitelistedCampaignCreatorsFacet",data:{selector:D.Eligibility.Creators,data:W("Creator")}}),CreatorsEligibilityNID:()=>{throw new d("CreatorsEligibilityNID")},InputErc20:()=>({targetFacet:"Erc20InputFacet",data:void 0}),InputErc1155:()=>({targetFacet:"Erc1155InputFacet",data:void 0}),RewardErc1155Transfer:()=>({targetFacet:"Erc1155RewardTransferFacet",data:void 0}),RewardErc1155Minter:()=>({targetFacet:"Erc1155RewardMinterFacet",data:void 0}),RewardErc20Transfer:()=>({targetFacet:"Erc20RewardTransferFacet",data:void 0}),RewardErc20Minter:()=>({targetFacet:"Erc20RewardMinterFacet",data:void 0}),LockMultContinuous:()=>({targetFacet:"ContinuousVirtualLockMultiplierFacet",data:void 0}),LockMultInterval:()=>({targetFacet:"IntervalVirtualLockMultiplierFacet",data:void 0}),LockMultNoMultiplier:()=>({targetFacet:"NoVirtualLockMultiplierFacet",data:void 0}),StakeCreationDefault:()=>({targetFacet:"StakingSkeleton",data:void 0}),StakeCreationNID:()=>{throw new d("StakeCreationNID")},StakersEligibilityDefault:()=>({targetFacet:"WhitelistedStakersFacet",data:void 0}),StakersEligibilityByRole:()=>({targetFacet:"WhitelistedStakersFacet",data:void 0}),StakersEligibilityNID:()=>{throw new d("StakersEligibilityNID")},TimeOnlyStarting:()=>({targetFacet:"OnlyStartingTimestampCampaign",data:void 0}),TimeTwoBorder:()=>({targetFacet:"TwoBorderTimestampCampaign",data:void 0}),WithdrawalLockChecker:()=>({targetFacet:"LockCheckerWithdrawalVariationFacet",data:void 0}),RewardDistributionComplex:()=>({targetFacet:"ComplexRewardDistributionFacet",data:void 0}),RewardDistributionPreStake:()=>({targetFacet:"PreStakeRewardDistributionFacet",data:void 0}),RewardDistributionRateBasedLock:()=>({targetFacet:"RateBasedLockRewardDistributionFacet",data:void 0}),RewardDistributionRateBasedOpen:()=>({targetFacet:"RateBasedOpenRewardDistributionFacet",data:void 0})}}var I=require("viem/chains"),U=require("@evergonlabs/tmi-protocol-utils/zod"),ut=require("@evergonlabs/tmi-utils/models"),x=(0,ut.createSupportedChains)([I.sepolia,I.baseSepolia,I.anvil]),ne=x.chainIds.map(e=>U.z.literal(e)),se=U.z.union(ne).openapi({enum:x.chainIds,description:"Supported chain id",example:`${I.sepolia.id}`}),me=x.get.bind(x);var Lt=require("@evergonlabs/tmi-utils/errors");var $=require("viem");function ct(e,t){return(0,$.encodeAbiParameters)([{name:"minAmountOfPackets",type:"uint256"},{name:"maxAmountOfPackets",type:"uint256"}],[BigInt(e),BigInt(t)])}function ft(e){return(0,$.encodeAbiParameters)([{name:"hardCapPackets",type:"uint256"}],[BigInt(e)])}var T=require("viem");function kt(e){return(0,T.encodeAbiParameters)([{name:"packetsStaked",type:"uint256[]"},{name:"packetsStakedMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t[0])),e.map(t=>(0,T.parseUnits)(t[1].toString(),18))])}function gt(e){return(0,T.encodeAbiParameters)([{name:"packetsStaked",type:"uint256[]"},{name:"packetsStakedMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t[0])),e.map(t=>(0,T.parseUnits)(t[1].toString(),18))])}var It=require("viem");function Tt(e){return(0,It.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var St=require("viem");function _(e){return(0,St.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var Rt=require("viem");function B(e){let t=parseInt(e);if(isNaN(t))throw new Error(`Invalid token id: ${e}`);return BigInt(t)}function bt(e){return(0,Rt.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"tokenIds",type:"uint256[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>B(t.tokenId)),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var Ct=require("viem");function G(e){return(0,Ct.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"tokenIds",type:"uint256[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>B(t.tokenId)),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var S=require("viem");function yt(e){return(0,S.encodeAbiParameters)([{name:"timeLockPeriods",type:"uint256[]"},{name:"timeLockMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t.lockPeriodSeconds)),e.map(t=>(0,S.parseUnits)(t.multiplier.toString(),18))])}function Dt(e){return(0,S.encodeAbiParameters)([{name:"timeLockPeriods",type:"uint256[]"},{name:"timeLockMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t.lockPeriodSeconds)),e.map(t=>(0,S.parseUnits)(t.multiplier.toString(),18))])}var A=require("viem");function xt(e,t){return(0,A.encodeAbiParameters)([{name:"campaignRate",type:"uint256"},{name:"isVirtualLockMultiplierSupported",type:"bool"}],[BigInt(e),t])}function At(e){return(0,A.encodeAbiParameters)([{name:"campaignRate",type:"uint256"}],[BigInt(e)])}function Et(e,t){return(0,A.encodeAbiParameters)([{name:"interval",type:"uint256"},{name:"campaignRewardDistributor",type:"address"}],[BigInt(e),t])}function Pt(e,t,a){return(0,A.encodeAbiParameters)([{name:"totalReward",type:"uint256"},{name:"isInstaRewards",type:"bool"},{name:"rewardsProvider",type:"address"}],[BigInt(e),t,a])}var wt=require("viem");function z(e,t){return(0,wt.encodeAbiParameters)([{name:"eligibleForStakingRoles",type:"bytes32[]"},{name:"isCampaignScoped",type:"bool"}],[e.map(a=>l(a)),t])}var K=require("viem"),E=require("@evergonlabs/tmi-protocol-utils/date");function Ft(e,t,a){return(0,K.encodeAbiParameters)([{name:"campaignStartingTimestamp",type:"uint256"},{name:"campaignEndingTimestamp",type:"uint256"},{name:"campaignRewardsEndingTimestamp",type:"uint256"}],[(0,E.msToSeconds)(BigInt(e.getTime())),(0,E.msToSeconds)(BigInt(t.getTime())),(0,E.msToSeconds)(BigInt(a.getTime()))])}function ht(e){return(0,K.encodeAbiParameters)([{name:"campaignStartingTimestamp",type:"uint256"}],[(0,E.msToSeconds)(BigInt(e.getTime()))])}function Y(e){return{AccessControlDefault:()=>{},Erc721Default:()=>{},PoolCreationDefault:()=>{},PoolCreationNID:()=>{throw new d("PoolCreationNID")},LockStaticPeriod:t=>({data:y(t.lockPeriods)}),LockTwoBorder:t=>({data:pt(t.minAcceptedLockPeriod,t.maxAcceptedLockPeriod)}),LockAutoComplex:(t,a)=>{if(a.RewardsDistribution.type!=="RewardDistributionComplex")throw new R("LockAutoComplex","RewardDistributionComplex");return{data:y([0])}},LockAutoPreStake:(t,a)=>{if(a.RewardsDistribution.type!=="RewardDistributionPreStake")throw new R("LockAutoPreStake","RewardDistributionPreStake");let r=a.Time;if(r.type!=="TimeTwoBorder")throw new R("LockAutoPreStake","TimeTwoBorder");let i=r.rewardsEndDate.getTime()-r.endDate.getTime();return{data:y([i/1e3])}},LockAutoRateBasedOpen:(t,a)=>{if(a.RewardsDistribution.type!=="RewardDistributionRateBasedOpen")throw new R("LockAutoRateBasedOpen","RewardDistributionRateBasedOpen");return{data:y([0])}},AmountHardCap:t=>({data:ft(t.hardCap)}),AmountTwoBorder:t=>({data:ct(t.minAmount,t.maxAmount)}),AmountMultNoMultiplier:()=>{},AmountMultContinuous:t=>({data:gt(t.packetsAndMultipliers)}),AmountMultInterval:t=>({data:kt(t.packetsAndMultipliers)}),CreatorsEligibilityByRole:()=>{},CreatorsEligibilityDefault:()=>{},CreatorsEligibilityNID:()=>{throw new d("CreatorsEligibilityNID")},InputErc20:t=>({data:Tt(t.entries.map(a=>({tokenAddress:a.tokenAddress,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),InputErc1155:t=>({data:bt(t.entries.map(a=>({tokenAddress:a.tokenAddress,tokenId:a.tokenId,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc1155Transfer:t=>({data:G(t.entries.map(a=>({tokenAddress:a.tokenAddress,tokenId:a.tokenId,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc1155Minter:t=>({data:G(t.entries.map(a=>({tokenAddress:a.tokenAddress,tokenId:a.tokenId,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc20Transfer:t=>({data:_(t.entries.map(a=>({tokenAddress:a.tokenAddress,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc20Minter:t=>({data:_(t.entries.map(a=>({tokenAddress:a.tokenAddress,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),LockMultNoMultiplier:()=>{},LockMultContinuous:t=>({data:Dt(t.lockPeriods.map(a=>({lockPeriodSeconds:a[0],multiplier:a[1]})))}),LockMultInterval:t=>({data:yt(t.lockPeriods.map(a=>({lockPeriodSeconds:a[0],multiplier:a[1]})))}),StakeCreationDefault:()=>{},StakeCreationNID:()=>{throw new d("StakeCreationNID")},StakersEligibilityDefault:t=>({data:z(["Staker"],t.isCampaignScoped)}),StakersEligibilityByRole:t=>({data:z(t.eligibleRoles,t.isCampaignScoped)}),StakersEligibilityNID:()=>{throw new d("StakersEligibilityNID")},TimeOnlyStarting:t=>({data:ht(t.startDate)}),TimeTwoBorder:t=>({data:Ft(t.startDate,t.endDate,t.rewardsEndDate)}),WithdrawalLockChecker:()=>{},RewardDistributionComplex:t=>({data:Et(t.duration,t.distributor)}),RewardDistributionPreStake:t=>({data:Pt(t.totalPackets,t.isInstaRewards,t.rewardsProvider)}),RewardDistributionRateBasedLock:t=>({data:xt(t.campaignRate,e.LockMult!=="LockMultNoMultiplier")}),RewardDistributionRateBasedOpen:t=>({data:At(t.campaignRate)})}}var R=class extends Lt.CustomError{constructor(t,a){super({message:`Option ${t} can be used only in combination with ${a}`,name:"CombinationError",data:{requiredOption:a,targetOption:t}})}};var m=require("viem/chains"),f=require("@evergonlabs/tmi-contracts-staking-sdk");function Ot(e,t){let a=t.map(r=>{let i=(0,f.getStakingFacetFactory)(r);return i.getContract(de(r,e),i.createInterface())});return(0,f.getFacetCutsAdd)(a).map(r=>({target:r.target,action:r.action,selectors:r.selectors}))}function de(e,t){return f.constants.contractAddresses[le(t)][e]}var pe={[`${m.sepolia.id}`]:m.sepolia.id,[`${m.baseSepolia.id}`]:m.baseSepolia.id,[`${m.anvil.id}`]:m.sepolia.id};function le(e){return pe[e]}var ue={[`${m.sepolia.id}`]:f.constants.diamondFactoryAddresses[m.sepolia.id],[`${m.baseSepolia.id}`]:f.constants.diamondFactoryAddresses[m.baseSepolia.id],[`${m.anvil.id}`]:f.constants.diamondFactoryAddresses[m.sepolia.id]};function Bt(e){return ue[e]}function ce(e,t){let a=V(e),r=[],i=[],w=[],k=t.data;g.forEach(h=>{let L=e[h],Jt=a[L],b=Jt(k[h],k);b.targetFacet&&r.push(b.targetFacet),b.data&&(i.push(b.data.selector),w.push(b.data.data))});let F=Ot(t.chainId,r);return{address:Bt(t.chainId),abi:Nt.diamondFactoryAbi,functionName:"deployAndInitializeDiamond",args:[F,i,w,t.admin]}}var Mt=require("viem"),Ht=require("@evergonlabs/tmi-contracts-staking-sdk/abis");function fe(e){let t=(0,Mt.parseEventLogs)({eventName:"DiamondDeployedAndInitialized",abi:Ht.diamondFactoryAbi,logs:e})[0];return t?{diamondAddress:t.args.diamondAddress,admin:t.args.admin}:null}var vt=require("viem");var j=require("viem"),N=require("@evergonlabs/tmi-contracts-staking-sdk/abis");var ke={PoolCreationDefault:N.campaignCreationSkeletonAbi,PoolCreationNID:N.campaignCreationSkeletonNidAbi};function P(e){return ke[e.PoolCreation]}function ge(e,t){let a=P(e),r=(0,j.parseEventLogs)({eventName:"StakingCampaignCreated",abi:a,logs:t})[0];return r?{poolId:r.args.campaignId,creator:r.args.creator}:null}function Ie(e,t){let a=P(e),r=(0,j.parseEventLogs)({eventName:"CampaignAssetManagersDeployed",abi:a,logs:t})[0];return r?{poolId:r.args.campaignId,inputAssetKeeper:r.args.inputAssetKeeper,rewardAssetHandler:r.args.rewardAssetHandler}:null}function Te(e,t){let a=Y(e),r=t.data,i=[];g.forEach(k=>{let F=e[k],h=a[F],L=h(r[k],r);L&&i.push({data:L.data,option:F})});let w=(0,vt.encodeAbiParameters)([{name:"optionalParams",type:"bytes4[]"},{name:"params",type:"bytes[]"}],[[],i.map(k=>k.data)]);return{address:t.platform,abi:P(e),functionName:"createCampaign",args:[w]}}var Wt=require("@evergonlabs/tmi-contracts-staking-sdk/abis"),Vt=require("@evergonlabs/tmi-utils/errors");function Se(e,t){switch(e.RewardsDistribution){case"RewardDistributionComplex":return{address:t.platform,abi:Wt.complexRewardDistributionFacetAbi,functionName:"notifyRewardAmount",args:[BigInt(t.data.poolId),BigInt(t.data.packets)]};default:throw new M(e.RewardsDistribution)}}var M=class extends Vt.CustomError{constructor(t){super({message:`Reward distribution ${t} is not eligible for distributeRewards action`,name:"DistributeRewardsError",data:{option:t}})}};var H=require("@evergonlabs/tmi-contracts-staking-sdk/abis");var Re={StakeCreationDefault:H.stakingSkeletonAbi,StakeCreationNID:H.stakingSkeletonNidAbi};function p(e){return Re[e.StakeCreation]}function be(e,t){let a=p(e);return{address:t.platform,abi:a,functionName:"getReward",args:[BigInt(t.data.stakeId)]}}var q=require("@evergonlabs/tmi-contracts-staking-sdk/abis"),Ut=require("@evergonlabs/tmi-protocol-utils/typeUtils");function Ce(e){let{abi:t,functionName:a,args:r}=ye(e);return{address:e.platform,abi:t,functionName:a,args:r}}function ye(e){if(!(0,Ut.isNonEmptyArray)(e.addresses))throw new Error("Addresses array must have at least 1 address");return e.addresses.length===1?{abi:q.accessControlStakingFacetAbi,functionName:"grantRole",args:[l(e.role),e.addresses[0]]}:{abi:q.accessControlStakingFacetAbi,functionName:"grantRoleMultiple",args:[l(e.role),e.addresses]}}function De(e,t){let a=p(e);return{address:t.platform,abi:a,functionName:"partialUnstake",args:[BigInt(t.data.stakeId),BigInt(t.data.amount)]}}function xe(e,t){let{abi:a,functionName:r,args:i}=Ae(e,p(e),t.data);return{abi:a,args:i,functionName:r,address:t.platform}}function Ae(e,t,a){return{abi:t,functionName:"restake",args:[BigInt(a.stakeId),BigInt(a.packets),BigInt(a.lockPeriod??0)]}}var J=require("@evergonlabs/tmi-contracts-staking-sdk/abis"),$t=require("@evergonlabs/tmi-protocol-utils/typeUtils");function Ee(e){let{abi:t,functionName:a,args:r}=Pe(e);return{address:e.platform,abi:t,args:r,functionName:a}}function Pe(e){if(!(0,$t.isNonEmptyArray)(e.addresses))throw new Error("Addresses array must have at least 1 address");return e.addresses.length===1?{abi:J.accessControlStakingFacetAbi,functionName:"revokeRole",args:[l(e.role),e.addresses[0]]}:{abi:J.accessControlStakingFacetAbi,functionName:"revokeRoleMultiple",args:[l(e.role),e.addresses]}}function we(e,t){let a=p(e),{functionName:r,args:i}=Fe(e,a,t.data);return{address:t.platform,abi:a,functionName:r,args:i}}function Fe(e,t,a){return{abi:t,functionName:"stake",args:[BigInt(a.poolId),BigInt(a.packets),BigInt(a.lockPeriod??0)]}}var _t=require("viem");function he(e,t){let a=(0,_t.parseEventLogs)({eventName:"StakingPositionCreated",abi:p(e),logs:t})[0];return a?{poolId:a.args.campaignId,stakeId:a.args.nftId,operator:a.args.operator,owner:a.args.owner,inputPacketsStaked:a.args.inputPacketsStaked,stakeStartActiveTimestamp:a.args.stakeStartActiveTimestamp,unlockTimestamp:a.args.unlockTimestamp}:null}function Le(e,t){let a=p(e);return{address:t.platform,abi:a,functionName:"fullyUnstake",args:[BigInt(t.data.stakeId)]}}var Gt={RewardsDistribution:"RewardDistributionRateBasedOpen",StakeCreation:"StakeCreationDefault",PoolCreation:"PoolCreationDefault",Time:"TimeOnlyStarting",Amount:"AmountTwoBorder",CreatorsEligibility:"CreatorsEligibilityDefault",Erc721:"Erc721Default",Input:"InputErc20",Lock:"LockAutoRateBasedOpen",LockMult:"LockMultNoMultiplier",Reward:"RewardErc20Minter",StakersEligibility:"StakersEligibilityDefault",Withdrawal:"WithdrawalLockChecker",AmountMult:"AmountMultInterval",AccessControl:"AccessControlDefault"};var zt={RewardsDistribution:"RewardDistributionRateBasedLock",StakeCreation:"StakeCreationDefault",PoolCreation:"PoolCreationDefault",Time:"TimeOnlyStarting",Amount:"AmountTwoBorder",CreatorsEligibility:"CreatorsEligibilityDefault",Erc721:"Erc721Default",Input:"InputErc20",Lock:"LockTwoBorder",LockMult:"LockMultInterval",Reward:"RewardErc20Minter",StakersEligibility:"StakersEligibilityDefault",Withdrawal:"WithdrawalLockChecker",AmountMult:"AmountMultInterval",AccessControl:"AccessControlDefault"};var Kt={RewardsDistribution:"RewardDistributionComplex",StakeCreation:"StakeCreationDefault",PoolCreation:"PoolCreationDefault",Time:"TimeOnlyStarting",Amount:"AmountHardCap",CreatorsEligibility:"CreatorsEligibilityDefault",Erc721:"Erc721Default",Input:"InputErc20",Lock:"LockAutoComplex",LockMult:"LockMultNoMultiplier",Reward:"RewardErc20Transfer",StakersEligibility:"StakersEligibilityDefault",Withdrawal:"WithdrawalLockChecker",AmountMult:"AmountMultNoMultiplier",AccessControl:"AccessControlDefault"};var Yt=(r=>(r.RWA="RWA",r.Reputation="Reputation",r.ReputationLock="ReputationLock",r))(Yt||{}),Oe={RWA:Kt,Reputation:Gt,ReputationLock:zt};function Be(e){return Oe[e]}var jt=require("@evergonlabs/tmi-protocol-utils/common"),qt=require("@evergonlabs/tmi-protocol-utils/viem");0&&(module.exports={DistributeRewardsError,FacetOptionEnum,FacetSlot,StakingChainId,StakingChains,StakingRole,TemplateEnum,createFacetInitDictionary,createFacetSettersDictionary,createMiddlewares,createPlatform,createPool,distributeRewards,facetOptionsBySlot,facetSlots,getPoolCreationAbi,getReward,getStakingChain,getStakingRole,getStakingRoleHex,getTemplate,grantRole,isStakingRole,parseAssetManagersDeployEvent,parseCreatePoolEvent,parseDeployDiamondEvent,parseStakeEvent,partialUnstake,restake,revokeRole,stake,unstake,viemClientAsMiddleware});
1
+ "use strict";var v=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var Zt=Object.prototype.hasOwnProperty;var te=(e,t)=>{for(var a in t)v(e,a,{get:t[a],enumerable:!0})},ee=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Xt(t))!Zt.call(e,i)&&i!==a&&v(e,i,{get:()=>t[i],enumerable:!(r=Qt(t,i))||r.enumerable});return e};var ae=e=>ee(v({},"__esModule",{value:!0}),e);var Ne={};te(Ne,{DistributeRewardsError:()=>M,FacetOptionEnum:()=>u,FacetSlot:()=>c,StakingChainId:()=>se,StakingChains:()=>x,StakingRole:()=>C,TemplateEnum:()=>Yt,createFacetInitDictionary:()=>V,createFacetSettersDictionary:()=>Y,createMiddlewares:()=>qt.createMiddlewares,createPlatform:()=>ce,createPool:()=>Te,distributeRewards:()=>Se,facetOptionsBySlot:()=>oe,facetSlots:()=>g,getPoolCreationAbi:()=>P,getReward:()=>be,getStakingChain:()=>me,getStakingRole:()=>et,getStakingRoleHex:()=>l,getTemplate:()=>Be,grantRole:()=>Ce,isStakingRole:()=>at,parseAssetManagersDeployEvent:()=>Ie,parseCreatePoolEvent:()=>ge,parseDeployDiamondEvent:()=>fe,parseStakeEvent:()=>he,partialUnstake:()=>De,restake:()=>xe,revokeRole:()=>Ee,stake:()=>we,unstake:()=>Le,viemClientAsMiddleware:()=>jt.viemClientAsMiddleware});module.exports=ae(Ne);var Ko=require("@hono/zod-openapi");var Nt=require("@evergonlabs/tmi-contracts-staking-sdk/abis");var lt=require("@evergonlabs/tmi-contracts-staking-sdk");var Q=require("@evergonlabs/tmi-utils/errors"),d=class extends Q.CustomError{constructor(t){super({message:`Option ${t} is not supported or implemented yet`,name:"FacetNotSupportedYetError",data:{option:t}})}};var tt=require("@evergonlabs/tmi-contracts-staking-sdk"),{DEFAULT_ROLES:X,GENERIC_ROLES:Z}=tt.constants,C=(i=>(i.Admin="Admin",i.Open="Open",i.Creator="Creator",i.Staker="Staker",i))(C||{}),re={Admin:X.adminRole,Open:X.openRole,Creator:Z.creatorRole,Staker:Z.stakerRole};function et(e){return re[e]}function at(e){return Object.values(C).includes(e)}function l(e){return at(e)?et(e):e}var rt=require("viem"),ot=require("@evergonlabs/tmi-contracts-staking-sdk");var c=(s=>(s.Erc721="Erc721",s.Amount="Amount",s.Time="Time",s.PoolCreation="PoolCreation",s.StakeCreation="StakeCreation",s.CreatorsEligibility="CreatorsEligibility",s.StakersEligibility="StakersEligibility",s.Lock="Lock",s.RewardsDistribution="RewardsDistribution",s.Input="Input",s.Reward="Reward",s.AmountMult="AmountMult",s.LockMult="LockMult",s.Withdrawal="Withdrawal",s.AccessControl="AccessControl",s))(c||{}),g=["AccessControl","Erc721","Amount","Time","PoolCreation","StakeCreation","CreatorsEligibility","StakersEligibility","Lock","RewardsDistribution","Input","Reward","AmountMult","LockMult","Withdrawal"];var u=(o=>(o.AccessControlDefault="AccessControlDefault",o.AmountHardCap="AmountHardCap",o.AmountTwoBorder="AmountTwoBorder",o.TimeOnlyStarting="TimeOnlyStarting",o.TimeTwoBorder="TimeTwoBorder",o.LockStaticPeriod="LockStaticPeriod",o.LockTwoBorder="LockTwoBorder",o.LockAutoComplex="LockAutoComplex",o.LockAutoRateBasedOpen="LockAutoRateBasedOpen",o.LockAutoPreStake="LockAutoPreStake",o.RewardDistributionComplex="RewardDistributionComplex",o.RewardDistributionPreStake="RewardDistributionPreStake",o.RewardDistributionRateBasedOpen="RewardDistributionRateBasedOpen",o.RewardDistributionRateBasedLock="RewardDistributionRateBasedLock",o.InputErc20="InputErc20",o.InputErc1155="InputErc1155",o.RewardErc20Transfer="RewardErc20Transfer",o.RewardErc20Minter="RewardErc20Minter",o.RewardErc1155Transfer="RewardErc1155Transfer",o.RewardErc1155Minter="RewardErc1155Minter",o.LockMultContinuous="LockMultContinuous",o.LockMultInterval="LockMultInterval",o.LockMultNoMultiplier="LockMultNoMultiplier",o.AmountMultContinuous="AmountMultContinuous",o.AmountMultInterval="AmountMultInterval",o.AmountMultNoMultiplier="AmountMultNoMultiplier",o.Erc721Default="Erc721Default",o.CreatorsEligibilityByRole="CreatorsEligibilityByRole",o.CreatorsEligibilityDefault="CreatorsEligibilityDefault",o.CreatorsEligibilityNID="CreatorsEligibilityNID",o.StakersEligibilityByRole="StakersEligibilityByRole",o.StakersEligibilityDefault="StakersEligibilityDefault",o.StakersEligibilityNID="StakersEligibilityNID",o.WithdrawalLockChecker="WithdrawalLockChecker",o.PoolCreationDefault="PoolCreationDefault",o.PoolCreationNID="PoolCreationNID",o.StakeCreationDefault="StakeCreationDefault",o.StakeCreationNID="StakeCreationNID",o))(u||{}),oe={Amount:["AmountHardCap","AmountTwoBorder"],Time:["TimeOnlyStarting","TimeTwoBorder"],CreatorsEligibility:["CreatorsEligibilityDefault","CreatorsEligibilityByRole","CreatorsEligibilityNID"],Erc721:["Erc721Default"],Input:["InputErc1155","InputErc20"],Reward:["RewardErc20Transfer","RewardErc20Minter","RewardErc1155Transfer","RewardErc1155Minter"],RewardsDistribution:["RewardDistributionComplex","RewardDistributionPreStake","RewardDistributionRateBasedLock","RewardDistributionRateBasedOpen"],Lock:["LockAutoComplex","LockAutoPreStake","LockAutoRateBasedOpen","LockStaticPeriod","LockTwoBorder"],LockMult:["LockMultContinuous","LockMultInterval","LockMultNoMultiplier"],Withdrawal:["WithdrawalLockChecker"],StakersEligibility:["StakersEligibilityDefault","StakersEligibilityByRole","StakersEligibilityNID"],PoolCreation:["PoolCreationDefault","PoolCreationNID"],AmountMult:["AmountMultContinuous","AmountMultInterval","AmountMultNoMultiplier"],StakeCreation:["StakeCreationDefault","StakeCreationNID"],AccessControl:["AccessControlDefault"]};var{SetterSelectors:n}=ot.constants,ie={AmountHardCap:n.CampaignAmounts.Hardcap,AmountTwoBorder:n.CampaignAmounts.TwoBorder,TimeOnlyStarting:n.CampaignTimes.OnlyStarting,TimeTwoBorder:n.CampaignTimes.TwoBorder,LockTwoBorder:n.LockVariations.TwoBorder,LockStaticPeriod:n.LockVariations.Static,LockAutoComplex:n.LockVariations.Static,LockAutoPreStake:n.LockVariations.Static,LockAutoRateBasedOpen:n.LockVariations.Static,RewardDistributionComplex:n.RewardsDistribution.Complex,RewardDistributionPreStake:n.RewardsDistribution.PreStake,RewardDistributionRateBasedLock:n.RewardsDistribution.RateBasedLock,RewardDistributionRateBasedOpen:n.RewardsDistribution.RateBasedOpen,StakersEligibilityDefault:n.Eligibility.Stakers,StakersEligibilityByRole:n.Eligibility.Stakers,InputErc20:n.TransferInput.Erc20,InputErc1155:n.TransferInput.Erc1155,RewardErc1155Transfer:n.TransferReward.Erc1155Transfer,RewardErc1155Minter:n.TransferReward.Erc1155Minter,RewardErc20Transfer:n.TransferReward.Erc20Transfer,RewardErc20Minter:n.TransferReward.Erc20Minter,AmountMultInterval:n.VirtualAmountMultiplier.Interval,AmountMultContinuous:n.VirtualAmountMultiplier.Continuous,LockMultContinuous:n.VirtualLockMultiplier.Continuous,LockMultInterval:n.VirtualLockMultiplier.Interval};function it(e){let t=[];return g.forEach(a=>{let r=e[a],i=ie[r];i&&t.push({option:r,selector:i})}),(0,rt.encodeAbiParameters)([{name:"requiredSelectors",type:"bytes4[]"},{name:"optionalSelectors",type:"bytes4[]"}],[t.map(a=>a.selector),[]])}var nt=require("viem");function W(e){return(0,nt.encodeAbiParameters)([{name:"roles",type:"bytes32[]"}],[[l(e)]])}var st=require("viem");function mt(e,t){return(0,st.encodeAbiParameters)([{name:"name",type:"string"},{name:"symbol",type:"string"},{name:"baseUri",type:"string"},{name:"isTransferrable",type:"bool"}],[e.name,e.symbol,e.baseUri,t])}var O=require("viem");function dt(e){return(0,O.encodeAbiParameters)([{name:"maxLockPeriodInSeconds",type:"uint256"}],[BigInt(e)])}function y(e){return(0,O.encodeAbiParameters)([{name:"lockPeriods",type:"uint256[]"}],[e.map(t=>BigInt(t))])}function pt(e,t){return(0,O.encodeAbiParameters)([{name:"minAcceptedLockPeriodSeconds",type:"uint256"},{name:"maxAcceptedLockPeriodSeconds",type:"uint256"}],[BigInt(e),BigInt(t)])}var{InitSelectors:D}=lt.constants;function V(e){return{AccessControlDefault:()=>({targetFacet:"AccessControlStakingFacet",data:void 0}),Erc721Default:t=>({targetFacet:"ERC721Facet",data:{selector:D.Generic.Erc721,data:mt(t.erc721,t.isSoulbound)}}),PoolCreationDefault:()=>({targetFacet:"CampaignCreationSkeleton",data:{selector:D.Skeletons.CampaignCreation,data:it(e)}}),PoolCreationNID:()=>{throw new d("PoolCreationNID")},LockStaticPeriod:t=>({targetFacet:"StaticPeriodLockFacet",data:{selector:D.LockVariations.Static,data:dt(t.maxLockPeriod)}}),LockTwoBorder:()=>({targetFacet:"TwoBorderTimeLockFacet",data:void 0}),LockAutoComplex:()=>({targetFacet:"StaticPeriodLockFacet",data:void 0}),LockAutoPreStake:()=>({targetFacet:"StaticPeriodLockFacet",data:void 0}),LockAutoRateBasedOpen:()=>({targetFacet:"StaticPeriodLockFacet",data:void 0}),AmountHardCap:()=>({targetFacet:"HardcapAmountFacet",data:void 0}),AmountTwoBorder:()=>({targetFacet:"TwoBorderAmountFacet",data:void 0}),AmountMultContinuous:()=>({targetFacet:"ContinuousVirtualAmountMultiplierFacet",data:void 0}),AmountMultInterval:()=>({targetFacet:"IntervalVirtualAmountMultiplierFacet",data:void 0}),AmountMultNoMultiplier:()=>({targetFacet:"NoVirtualAmountMultiplierFacet",data:void 0}),CreatorsEligibilityByRole:t=>({targetFacet:"WhitelistedCampaignCreatorsFacet",data:{selector:D.Eligibility.Creators,data:W(t.role)}}),CreatorsEligibilityDefault:()=>({targetFacet:"WhitelistedCampaignCreatorsFacet",data:{selector:D.Eligibility.Creators,data:W("Creator")}}),CreatorsEligibilityNID:()=>{throw new d("CreatorsEligibilityNID")},InputErc20:()=>({targetFacet:"Erc20InputFacet",data:void 0}),InputErc1155:()=>({targetFacet:"Erc1155InputFacet",data:void 0}),RewardErc1155Transfer:()=>({targetFacet:"Erc1155RewardTransferFacet",data:void 0}),RewardErc1155Minter:()=>({targetFacet:"Erc1155RewardMinterFacet",data:void 0}),RewardErc20Transfer:()=>({targetFacet:"Erc20RewardTransferFacet",data:void 0}),RewardErc20Minter:()=>({targetFacet:"Erc20RewardMinterFacet",data:void 0}),LockMultContinuous:()=>({targetFacet:"ContinuousVirtualLockMultiplierFacet",data:void 0}),LockMultInterval:()=>({targetFacet:"IntervalVirtualLockMultiplierFacet",data:void 0}),LockMultNoMultiplier:()=>({targetFacet:"NoVirtualLockMultiplierFacet",data:void 0}),StakeCreationDefault:()=>({targetFacet:"StakingSkeleton",data:void 0}),StakeCreationNID:()=>{throw new d("StakeCreationNID")},StakersEligibilityDefault:()=>({targetFacet:"WhitelistedStakersFacet",data:void 0}),StakersEligibilityByRole:()=>({targetFacet:"WhitelistedStakersFacet",data:void 0}),StakersEligibilityNID:()=>{throw new d("StakersEligibilityNID")},TimeOnlyStarting:()=>({targetFacet:"OnlyStartingTimestampCampaign",data:void 0}),TimeTwoBorder:()=>({targetFacet:"TwoBorderTimestampCampaign",data:void 0}),WithdrawalLockChecker:()=>({targetFacet:"LockCheckerWithdrawalVariationFacet",data:void 0}),RewardDistributionComplex:()=>({targetFacet:"ComplexRewardDistributionFacet",data:void 0}),RewardDistributionPreStake:()=>({targetFacet:"PreStakeRewardDistributionFacet",data:void 0}),RewardDistributionRateBasedLock:()=>({targetFacet:"RateBasedLockRewardDistributionFacet",data:void 0}),RewardDistributionRateBasedOpen:()=>({targetFacet:"RateBasedOpenRewardDistributionFacet",data:void 0})}}var I=require("viem/chains"),U=require("@evergonlabs/tmi-protocol-utils/zod"),ut=require("@evergonlabs/tmi-utils/models"),x=(0,ut.createSupportedChains)([I.sepolia,I.baseSepolia,I.anvil]),ne=x.chainIds.map(e=>U.z.literal(e)),se=U.z.union(ne).openapi({enum:x.chainIds,description:"Supported chain id",example:`${I.sepolia.id}`}),me=x.get.bind(x);var Lt=require("@evergonlabs/tmi-utils/errors");var $=require("viem");function ct(e,t){return(0,$.encodeAbiParameters)([{name:"minAmountOfPackets",type:"uint256"},{name:"maxAmountOfPackets",type:"uint256"}],[BigInt(e),BigInt(t)])}function ft(e){return(0,$.encodeAbiParameters)([{name:"hardCapPackets",type:"uint256"}],[BigInt(e)])}var T=require("viem");function kt(e){return(0,T.encodeAbiParameters)([{name:"packetsStaked",type:"uint256[]"},{name:"packetsStakedMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t[0])),e.map(t=>(0,T.parseUnits)(t[1].toString(),18))])}function gt(e){return(0,T.encodeAbiParameters)([{name:"packetsStaked",type:"uint256[]"},{name:"packetsStakedMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t[0])),e.map(t=>(0,T.parseUnits)(t[1].toString(),18))])}var It=require("viem");function Tt(e){return(0,It.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var St=require("viem");function _(e){return(0,St.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var Rt=require("viem");function B(e){let t=parseInt(e);if(isNaN(t))throw new Error(`Invalid token id: ${e}`);return BigInt(t)}function bt(e){return(0,Rt.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"tokenIds",type:"uint256[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>B(t.tokenId)),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var Ct=require("viem");function G(e){return(0,Ct.encodeAbiParameters)([{name:"tokenAddresses",type:"address[]"},{name:"tokenIds",type:"uint256[]"},{name:"amountOfTokensPerPacket",type:"uint256[]"}],[e.map(t=>t.tokenAddress),e.map(t=>B(t.tokenId)),e.map(t=>BigInt(t.amountOfTokensPerPacket))])}var S=require("viem");function yt(e){return(0,S.encodeAbiParameters)([{name:"timeLockPeriods",type:"uint256[]"},{name:"timeLockMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t.lockPeriodSeconds)),e.map(t=>(0,S.parseUnits)(t.multiplier.toString(),18))])}function Dt(e){return(0,S.encodeAbiParameters)([{name:"timeLockPeriods",type:"uint256[]"},{name:"timeLockMultipliers",type:"uint256[]"}],[e.map(t=>BigInt(t.lockPeriodSeconds)),e.map(t=>(0,S.parseUnits)(t.multiplier.toString(),18))])}var A=require("viem");function xt(e,t){return(0,A.encodeAbiParameters)([{name:"campaignRate",type:"uint256"},{name:"isVirtualLockMultiplierSupported",type:"bool"}],[BigInt(e),t])}function At(e){return(0,A.encodeAbiParameters)([{name:"campaignRate",type:"uint256"}],[BigInt(e)])}function Et(e,t){return(0,A.encodeAbiParameters)([{name:"interval",type:"uint256"},{name:"campaignRewardDistributor",type:"address"}],[BigInt(e),t])}function Pt(e,t,a){return(0,A.encodeAbiParameters)([{name:"totalReward",type:"uint256"},{name:"isInstaRewards",type:"bool"},{name:"rewardsProvider",type:"address"}],[BigInt(e),t,a])}var wt=require("viem");function z(e,t){return(0,wt.encodeAbiParameters)([{name:"eligibleForStakingRoles",type:"bytes32[]"},{name:"isCampaignScoped",type:"bool"}],[e.map(a=>l(a)),t])}var K=require("viem"),E=require("@evergonlabs/tmi-protocol-utils/date");function Ft(e,t,a){return(0,K.encodeAbiParameters)([{name:"campaignStartingTimestamp",type:"uint256"},{name:"campaignEndingTimestamp",type:"uint256"},{name:"campaignRewardsEndingTimestamp",type:"uint256"}],[(0,E.msToSeconds)(BigInt(e.getTime())),(0,E.msToSeconds)(BigInt(t.getTime())),(0,E.msToSeconds)(BigInt(a.getTime()))])}function ht(e){return(0,K.encodeAbiParameters)([{name:"campaignStartingTimestamp",type:"uint256"}],[(0,E.msToSeconds)(BigInt(e.getTime()))])}function Y(e){return{AccessControlDefault:()=>{},Erc721Default:()=>{},PoolCreationDefault:()=>{},PoolCreationNID:()=>{throw new d("PoolCreationNID")},LockStaticPeriod:t=>({data:y(t.lockPeriods)}),LockTwoBorder:t=>({data:pt(t.minAcceptedLockPeriod,t.maxAcceptedLockPeriod)}),LockAutoComplex:(t,a)=>{if(a.RewardsDistribution.type!=="RewardDistributionComplex")throw new R("LockAutoComplex","RewardDistributionComplex");return{data:y([0])}},LockAutoPreStake:(t,a)=>{if(a.RewardsDistribution.type!=="RewardDistributionPreStake")throw new R("LockAutoPreStake","RewardDistributionPreStake");let r=a.Time;if(r.type!=="TimeTwoBorder")throw new R("LockAutoPreStake","TimeTwoBorder");let i=r.rewardsEndDate.getTime()-r.endDate.getTime();return{data:y([i/1e3])}},LockAutoRateBasedOpen:(t,a)=>{if(a.RewardsDistribution.type!=="RewardDistributionRateBasedOpen")throw new R("LockAutoRateBasedOpen","RewardDistributionRateBasedOpen");return{data:y([0])}},AmountHardCap:t=>({data:ft(t.hardCap)}),AmountTwoBorder:t=>({data:ct(t.minAmount,t.maxAmount)}),AmountMultNoMultiplier:()=>{},AmountMultContinuous:t=>({data:gt(t.packetsAndMultipliers)}),AmountMultInterval:t=>({data:kt(t.packetsAndMultipliers)}),CreatorsEligibilityByRole:()=>{},CreatorsEligibilityDefault:()=>{},CreatorsEligibilityNID:()=>{throw new d("CreatorsEligibilityNID")},InputErc20:t=>({data:Tt(t.entries.map(a=>({tokenAddress:a.tokenAddress,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),InputErc1155:t=>({data:bt(t.entries.map(a=>({tokenAddress:a.tokenAddress,tokenId:a.tokenId,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc1155Transfer:t=>({data:G(t.entries.map(a=>({tokenAddress:a.tokenAddress,tokenId:a.tokenId,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc1155Minter:t=>({data:G(t.entries.map(a=>({tokenAddress:a.tokenAddress,tokenId:a.tokenId,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc20Transfer:t=>({data:_(t.entries.map(a=>({tokenAddress:a.tokenAddress,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),RewardErc20Minter:t=>({data:_(t.entries.map(a=>({tokenAddress:a.tokenAddress,amountOfTokensPerPacket:a.amountOfTokensPerPacket})))}),LockMultNoMultiplier:()=>{},LockMultContinuous:t=>({data:Dt(t.lockPeriods.map(a=>({lockPeriodSeconds:a[0],multiplier:a[1]})))}),LockMultInterval:t=>({data:yt(t.lockPeriods.map(a=>({lockPeriodSeconds:a[0],multiplier:a[1]})))}),StakeCreationDefault:()=>{},StakeCreationNID:()=>{throw new d("StakeCreationNID")},StakersEligibilityDefault:t=>({data:z(["Staker"],t.isCampaignScoped)}),StakersEligibilityByRole:t=>({data:z(t.eligibleRoles,t.isCampaignScoped)}),StakersEligibilityNID:()=>{throw new d("StakersEligibilityNID")},TimeOnlyStarting:t=>({data:ht(t.startDate)}),TimeTwoBorder:t=>({data:Ft(t.startDate,t.endDate,t.rewardsEndDate)}),WithdrawalLockChecker:()=>{},RewardDistributionComplex:t=>({data:Et(t.duration,t.distributor)}),RewardDistributionPreStake:t=>({data:Pt(t.totalPackets,t.isInstaRewards,t.rewardsProvider)}),RewardDistributionRateBasedLock:t=>({data:xt(t.campaignRate,e.LockMult!=="LockMultNoMultiplier")}),RewardDistributionRateBasedOpen:t=>({data:At(t.campaignRate)})}}var R=class extends Lt.CustomError{constructor(t,a){super({message:`Option ${t} can be used only in combination with ${a}`,name:"CombinationError",data:{requiredOption:a,targetOption:t}})}};var m=require("viem/chains"),f=require("@evergonlabs/tmi-contracts-staking-sdk");function Ot(e,t){let a=t.map(r=>{let i=(0,f.getStakingFacetFactory)(r);return i.getContract(de(r,e),i.createInterface())});return(0,f.getFacetCutsAdd)(a).map(r=>({target:r.target,action:r.action,selectors:r.selectors}))}function de(e,t){return f.constants.contractAddresses[le(t)][e]}var pe={[`${m.sepolia.id}`]:m.sepolia.id,[`${m.baseSepolia.id}`]:m.baseSepolia.id,[`${m.anvil.id}`]:m.sepolia.id};function le(e){return pe[e]}var ue={[`${m.sepolia.id}`]:f.constants.diamondFactoryAddresses[m.sepolia.id],[`${m.baseSepolia.id}`]:f.constants.diamondFactoryAddresses[m.baseSepolia.id],[`${m.anvil.id}`]:f.constants.diamondFactoryAddresses[m.sepolia.id]};function Bt(e){return ue[e]}function ce(e,t){let a=V(e),r=[],i=[],w=[],k=t.data;g.forEach(h=>{let L=e[h],Jt=a[L],b=Jt(k[h],k);b.targetFacet&&r.push(b.targetFacet),b.data&&(i.push(b.data.selector),w.push(b.data.data))});let F=Ot(t.chainId,r);return{address:Bt(t.chainId),abi:Nt.diamondFactoryAbi,functionName:"deployAndInitializeDiamond",args:[F,i,w,t.admin]}}var Mt=require("viem"),Ht=require("@evergonlabs/tmi-contracts-staking-sdk/abis");function fe(e){let t=(0,Mt.parseEventLogs)({eventName:"DiamondDeployedAndInitialized",abi:Ht.diamondFactoryAbi,logs:e})[0];return t?{diamondAddress:t.args.diamondAddress,admin:t.args.admin}:null}var vt=require("viem");var j=require("viem"),N=require("@evergonlabs/tmi-contracts-staking-sdk/abis");var ke={PoolCreationDefault:N.campaignCreationSkeletonAbi,PoolCreationNID:N.campaignCreationSkeletonNidAbi};function P(e){return ke[e.PoolCreation]}function ge(e,t){let a=P(e),r=(0,j.parseEventLogs)({eventName:"StakingCampaignCreated",abi:a,logs:t})[0];return r?{poolId:r.args.campaignId,creator:r.args.creator}:null}function Ie(e,t){let a=P(e),r=(0,j.parseEventLogs)({eventName:"CampaignAssetManagersDeployed",abi:a,logs:t})[0];return r?{poolId:r.args.campaignId,inputAssetKeeper:r.args.inputAssetKeeper,rewardAssetHandler:r.args.rewardAssetHandler}:null}function Te(e,t){let a=Y(e),r=t.data,i=[];g.forEach(k=>{let F=e[k],h=a[F],L=h(r[k],r);L&&i.push({data:L.data,option:F})});let w=(0,vt.encodeAbiParameters)([{name:"optionalParams",type:"bytes4[]"},{name:"params",type:"bytes[]"}],[[],i.map(k=>k.data)]);return{address:t.platform,abi:P(e),functionName:"createCampaign",args:[w]}}var Wt=require("@evergonlabs/tmi-contracts-staking-sdk/abis"),Vt=require("@evergonlabs/tmi-utils/errors");function Se(e,t){switch(e.RewardsDistribution){case"RewardDistributionComplex":return{address:t.platform,abi:Wt.complexRewardDistributionFacetAbi,functionName:"notifyRewardAmount",args:[BigInt(t.data.poolId),BigInt(t.data.packets)]};default:throw new M(e.RewardsDistribution)}}var M=class extends Vt.CustomError{constructor(t){super({message:`Reward distribution ${t} is not eligible for distributeRewards action`,name:"DistributeRewardsError",data:{option:t}})}};var H=require("@evergonlabs/tmi-contracts-staking-sdk/abis");var Re={StakeCreationDefault:H.stakingSkeletonAbi,StakeCreationNID:H.stakingSkeletonNidAbi};function p(e){return Re[e.StakeCreation]}function be(e,t){let a=p(e);return{address:t.platform,abi:a,functionName:"getReward",args:[BigInt(t.data.stakeId)]}}var q=require("@evergonlabs/tmi-contracts-staking-sdk/abis"),Ut=require("@evergonlabs/tmi-utils/typeUtils");function Ce(e){let{abi:t,functionName:a,args:r}=ye(e);return{address:e.platform,abi:t,functionName:a,args:r}}function ye(e){if(!(0,Ut.isNonEmptyArray)(e.addresses))throw new Error("Addresses array must have at least 1 address");return e.addresses.length===1?{abi:q.accessControlStakingFacetAbi,functionName:"grantRole",args:[l(e.role),e.addresses[0]]}:{abi:q.accessControlStakingFacetAbi,functionName:"grantRoleMultiple",args:[l(e.role),e.addresses]}}function De(e,t){let a=p(e);return{address:t.platform,abi:a,functionName:"partialUnstake",args:[BigInt(t.data.stakeId),BigInt(t.data.amount)]}}function xe(e,t){let{abi:a,functionName:r,args:i}=Ae(e,p(e),t.data);return{abi:a,args:i,functionName:r,address:t.platform}}function Ae(e,t,a){return{abi:t,functionName:"restake",args:[BigInt(a.stakeId),BigInt(a.packets),BigInt(a.lockPeriod??0)]}}var J=require("@evergonlabs/tmi-contracts-staking-sdk/abis"),$t=require("@evergonlabs/tmi-utils/typeUtils");function Ee(e){let{abi:t,functionName:a,args:r}=Pe(e);return{address:e.platform,abi:t,args:r,functionName:a}}function Pe(e){if(!(0,$t.isNonEmptyArray)(e.addresses))throw new Error("Addresses array must have at least 1 address");return e.addresses.length===1?{abi:J.accessControlStakingFacetAbi,functionName:"revokeRole",args:[l(e.role),e.addresses[0]]}:{abi:J.accessControlStakingFacetAbi,functionName:"revokeRoleMultiple",args:[l(e.role),e.addresses]}}function we(e,t){let a=p(e),{functionName:r,args:i}=Fe(e,a,t.data);return{address:t.platform,abi:a,functionName:r,args:i}}function Fe(e,t,a){return{abi:t,functionName:"stake",args:[BigInt(a.poolId),BigInt(a.packets),BigInt(a.lockPeriod??0)]}}var _t=require("viem");function he(e,t){let a=(0,_t.parseEventLogs)({eventName:"StakingPositionCreated",abi:p(e),logs:t})[0];return a?{poolId:a.args.campaignId,stakeId:a.args.nftId,operator:a.args.operator,owner:a.args.owner,inputPacketsStaked:a.args.inputPacketsStaked,stakeStartActiveTimestamp:a.args.stakeStartActiveTimestamp,unlockTimestamp:a.args.unlockTimestamp}:null}function Le(e,t){let a=p(e);return{address:t.platform,abi:a,functionName:"fullyUnstake",args:[BigInt(t.data.stakeId)]}}var Gt={RewardsDistribution:"RewardDistributionRateBasedOpen",StakeCreation:"StakeCreationDefault",PoolCreation:"PoolCreationDefault",Time:"TimeOnlyStarting",Amount:"AmountTwoBorder",CreatorsEligibility:"CreatorsEligibilityDefault",Erc721:"Erc721Default",Input:"InputErc20",Lock:"LockAutoRateBasedOpen",LockMult:"LockMultNoMultiplier",Reward:"RewardErc20Minter",StakersEligibility:"StakersEligibilityDefault",Withdrawal:"WithdrawalLockChecker",AmountMult:"AmountMultInterval",AccessControl:"AccessControlDefault"};var zt={RewardsDistribution:"RewardDistributionRateBasedLock",StakeCreation:"StakeCreationDefault",PoolCreation:"PoolCreationDefault",Time:"TimeOnlyStarting",Amount:"AmountTwoBorder",CreatorsEligibility:"CreatorsEligibilityDefault",Erc721:"Erc721Default",Input:"InputErc20",Lock:"LockTwoBorder",LockMult:"LockMultInterval",Reward:"RewardErc20Minter",StakersEligibility:"StakersEligibilityDefault",Withdrawal:"WithdrawalLockChecker",AmountMult:"AmountMultInterval",AccessControl:"AccessControlDefault"};var Kt={RewardsDistribution:"RewardDistributionComplex",StakeCreation:"StakeCreationDefault",PoolCreation:"PoolCreationDefault",Time:"TimeOnlyStarting",Amount:"AmountHardCap",CreatorsEligibility:"CreatorsEligibilityDefault",Erc721:"Erc721Default",Input:"InputErc20",Lock:"LockAutoComplex",LockMult:"LockMultNoMultiplier",Reward:"RewardErc20Transfer",StakersEligibility:"StakersEligibilityDefault",Withdrawal:"WithdrawalLockChecker",AmountMult:"AmountMultNoMultiplier",AccessControl:"AccessControlDefault"};var Yt=(r=>(r.RWA="RWA",r.Reputation="Reputation",r.ReputationLock="ReputationLock",r))(Yt||{}),Oe={RWA:Kt,Reputation:Gt,ReputationLock:zt};function Be(e){return Oe[e]}var jt=require("@evergonlabs/tmi-protocol-utils/viem"),qt=require("@evergonlabs/tmi-utils/typeUtils");0&&(module.exports={DistributeRewardsError,FacetOptionEnum,FacetSlot,StakingChainId,StakingChains,StakingRole,TemplateEnum,createFacetInitDictionary,createFacetSettersDictionary,createMiddlewares,createPlatform,createPool,distributeRewards,facetOptionsBySlot,facetSlots,getPoolCreationAbi,getReward,getStakingChain,getStakingRole,getStakingRoleHex,getTemplate,grantRole,isStakingRole,parseAssetManagersDeployEvent,parseCreatePoolEvent,parseDeployDiamondEvent,parseStakeEvent,partialUnstake,restake,revokeRole,stake,unstake,viemClientAsMiddleware});
2
2
  //# sourceMappingURL=index.cjs.map