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