@evergonlabs/tmi-protocol-staking-sdk 0.1.0 → 0.2.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-protocol-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-protocol-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 ga(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 ba(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 Na(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 Oa(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 Ga(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 to(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 io(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 lo(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 Ro(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 xo(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-protocol-utils/errors";function No(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 vo(e,t){let r=p(e);return{address:t.platform,abi:r,functionName:"getReward",args:[BigInt(t.data.stakeId)]}}function Go(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 Di(e){return ce[e]}import{createMiddlewares as hi}from"@evergonlabs/tmi-protocol-utils/common";import{viemClientAsMiddleware as Ni}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,hi as createMiddlewares,ga as createPlatform,Ga as createPool,De as facetOptionsBySlot,f as facetSlots,Ie as getChain,P as getPoolCreationAbi,vo as getReward,At as getStakingRole,d as getStakingRoleHex,Di as getTemplate,Ro as grantRole,Pt as isStakingRole,Te as isSupportedChainId,No as notifyRewards,Oa as parseAssetManagersDeployEvent,Na as parseCreatePoolEvent,ba as parseDeployDiamondEvent,io as parseStakeEvent,Go as partialUnstake,lo as restake,Qo as revokeRole,to as stake,Dt as supportedChains,xo as unstake,Ni as viemClientAsMiddleware};
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};
2
2
  //# sourceMappingURL=index.js.map