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