1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3139],{13229:(e,t,n)=>{n.d(t,{I:()=>p});var r=n(95155),a=n(12115);let s=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/u;function i(e){return Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute)}function o(e,t){try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=e=>Number(n.find(t=>t.type===e)?.value),a={year:r("year"),month:r("month"),day:r("day"),hour:r("hour"),minute:r("minute")};return Object.values(a).every(Number.isFinite)?a:null}catch{return null}}let l="local",c="jb-time-zone",u="jb-time-zone-change";function d(e){if(e===l)return!0;try{return new Intl.DateTimeFormat("en",{timeZone:e}).format(),!0}catch{return!1}}function p({value:e,onChange:t,min:n,disabled:m=!1,inputClassName:h,wrapperClassName:f,ariaLabel:x}){let{timeZone:b,localTimeZone:y,setTimeZone:k}=function(){let[e,t]=(0,a.useState)(l),[n,r]=(0,a.useState)("");return(0,a.useEffect)(()=>{r(function(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}}());try{let e=localStorage.getItem(c);e&&d(e)&&t(e)}catch{}let e=e=>{let n=e.detail;d(n)&&t(n)};return window.addEventListener(u,e),()=>window.removeEventListener(u,e)},[]),{timeZone:e,localTimeZone:n,setTimeZone:e=>{if(d(e)){t(e);try{localStorage.setItem(c,e)}catch{}window.dispatchEvent(new CustomEvent(u,{detail:e}))}}}}(),g=b===l?y:b,v=(0,a.useMemo)(()=>(function(){try{let e=Intl.supportedValuesOf;return e?e("timeZone"):[]}catch{return[]}})(),[]),w=e=>{let t,n,r;if(!e||b===l||!g)return e??"";let a=Number.isFinite(t=new Date(e).getTime())?t:null;return null===a?"":(n=o(a,g))?(r=e=>String(e).padStart(2,"0"),`${n.year}-${r(n.month)}-${r(n.day)}T${r(n.hour)}:${r(n.minute)}`):""};return(0,r.jsxs)("div",{className:f,children:[(0,r.jsx)("input",{type:"datetime-local",value:w(e),min:w(n),disabled:m,"aria-label":x,onChange:e=>{if(b===l||!g)return void t(e.target.value);let n=function(e,t){let n=function(e){let t=s.exec(e);if(!t)return null;let[,n,r,a,i,o]=t;return{year:Number(n),month:Number(r),day:Number(a),hour:Number(i),minute:Number(o)}}(e);if(!n)return null;let r=i(n),a=r;for(let e=0;e<4;e+=1){let e=o(a,t);if(!e)return null;let n=r-i(e);if(0===n)return a;a+=n}let l=o(a,t);return l&&i(l)===r?a:null}(e.target.value,g);null!==n&&t(function(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return"";let n=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}(n))},className:h}),(0,r.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5 text-[11px] text-smoke-600",children:[(0,r.jsx)("span",{children:"Time shown in"}),(0,r.jsxs)("select",{value:b,onChange:e=>k(e.target.value),disabled:m,"aria-label":`${x} timezone`,className:"select-caret min-h-[30px] max-w-full rounded-md border border-smoke-200 bg-white py-1 pl-2 pr-7 text-[11px] text-smoke-700 hover:border-smoke-400 disabled:opacity-60",children:[(0,r.jsx)("option",{value:l,children:y?`${y} (local)`:"Local timezone"}),"UTC"!==y?(0,r.jsx)("option",{value:"UTC",children:"UTC"}):null,v.filter(e=>e!==y&&"UTC"!==e).map(e=>(0,r.jsx)("option",{value:e,children:e.replaceAll("_"," ")},e))]})]})]})}},30220:(e,t,n)=>{n.d(t,{FI:()=>B,KB:()=>F,MC:()=>N,Nf:()=>C,Sy:()=>j,T2:()=>T,YC:()=>E,ZY:()=>L,aR:()=>w,az:()=>S,cS:()=>$,eI:()=>M,f1:()=>z,hq:()=>x,kx:()=>K,oC:()=>P,oM:()=>y,ue:()=>R,vs:()=>O,zf:()=>H});var r=n(6353),a=n(58381),s=n(71265),i=n(46979),o=n(80247),l=n(68900),c=n(35816),u=n(76552),d=n(93953),p=n(60860),m=n(49169),h=n(74652),f=n(47186);let x=9999,b=2n**224n-1n;function y(e,t){return"routed"===e&&t.length>0&&t.every(Boolean)}let k=r.PR["6"][a.eZ.JBUniswapV4LPSplitHook],g=k[1],v=["0xaf2d8a027955871cd2f3c4d2f32338e574e69bc0","0x2f23b09975eb9305670b01e94c11e702792f25a3"];function w(e){let t=e.toLowerCase();return t===g.toLowerCase()?"current":v.some(e=>e.toLowerCase()===t)?"legacy":null}function j(e){return e.filter(e=>!k[e])}function C(e){let t=k[e]??null;if(!t)throw Error(`${(0,f.H9)(e)} has no market split hook deployed â remove the "Fund market" recipient or deselect that chain.`);return t}let N=0xffffffff,T={"3hours":10800,"1day":86400,"3days":259200,"7days":604800};function S(e,t,n){if(0===t)return n;let r=e+t;if(r>=n)return r;let a=n-(n-r)%t;for(;n>a;)a+=t;return a}function $(e,t){if(!e||e===h.X)return 0;for(let n of Object.keys(T)){let r=(0,l.R)(I[n],t);
1if(r&&r.toLowerCase()===e.toLowerCase())return T[n]}return 0}let I={"3hours":"JBDeadline3Hours","1day":"JBDeadline1Day","3days":"JBDeadline3Days","7days":"JBDeadline7Days"},A={duration:0,mustStartAtOrAfter:0,weight:10n**22n,weightCutPercent:0,reservedPercent:0,reservedSplits:[],payouts:"none",payoutSplits:[],payoutLimitAmount:null,payoutSplitsUsdc:[],payoutLimitAmountUsdc:null,surplusAllowanceOn:!1,surplusAllowanceAmount:null,holdFees:!1,cashOutTaxRate:null,allowOwnerMinting:!1,pausePay:!1,pauseCreditTransfers:!1,pause721Transfers:!1,metadataExtra:0,autoIssuances:[],allowSetTerminals:!1,allowSetController:!1,allowTerminalMigration:!1,allowSetCustomToken:!1,allowAddAccountingContext:!1,allowAddPriceFeed:!1,issuanceCutFrequency:0};function P(){return{...A,payouts:"flexible",surplusAllowanceOn:!0,allowOwnerMinting:!0,allowSetTerminals:!0,allowSetController:!0,allowTerminalMigration:!0,allowSetCustomToken:!0,allowAddAccountingContext:!0,allowAddPriceFeed:!0}}let M={preventOverspending:!1,noNewTiersWithReserves:!1,noNewTiersWithVotes:!1,noNewTiersWithOwnerMinting:!1,issueTokensForSplits:!1,itemsRedeem:!1,operatorCanAdjustTiers:!0,operatorCanUpdateMetadata:!0,operatorCanMint:!0,operatorCanIncreaseDiscount:!0};function O(e){let t=e.reduce((e,t)=>e+t,0);if(!(t>0))return e.map(()=>0);let n=e.map(e=>Math.floor(e/t*1e9)),r=n.slice(0,-1).reduce((e,t)=>e+t,0);if(n[n.length-1]=1e9-r,n.some(e=>e<=0))throw Error("These split percentages cannot be represented â one share is too small to encode.");return n}function U(e){return e.map(e=>({percent:e.percent,projectId:e.projectId,beneficiary:e.beneficiary,preferAddToBalance:e.preferAddToBalance,lockedUntil:e.lockedUntil,hook:e.hook}))}function D(e,t,n){return{contexts:e.custom?[(0,c.V4)(e.custom.address,e.custom.decimals)]:e.tokens.map(e=>(0,c.V4)("usdc"===e?s.P[n]:i.gr,"usdc"===e?6:18)),baseCurrency:e.custom?(0,u.U9)(e.custom.address):(t??(e.tokens.includes("eth")?"eth":"usd"))==="eth"?u.O$:u.fl}}function B(e,t,n){let{contexts:r,baseCurrency:a}=D(e,t,n),o=new Map([[u.O$,"ETH"],[u.fl,"USD"],[(0,u.U9)(i.gr),"ETH"],[(0,u.U9)(s.P[n]),"USDC"]]),l=e=>o.get(e)??`currency ${e}`;return(0,d.F)(r,a).map(e=>({...e,aLabel:l(e.pricingCurrency),bLabel:l(e.unitCurrency)}))}function F(e,t){return null!=t&&e.includes(t)?t:e[0]}function L(e){let t,{chainId:n,plan:a}=e,{accounting:s}=a,i=a.owner??e.owner,{contexts:o,baseCurrency:u}=D(s,a.issuanceBase,n);if("revnet"===a.flavor){let t=a.operator??i,r=a.stages.map(e=>{let n=[...U(e.reservedSplits)],r=n.reduce((e,t)=>e+t.percent,0);return e.reservedPercent>0&&r<1e9&&n.push({percent:1e9-r,projectId:0n,beneficiary:t,preferAddToBalance:!1,lockedUntil:0,hook:h.X}),(0,p.hY)({startsAtOrAfter:e.mustStartAtOrAfter,autoIssuances:e.autoIssuances.map(e=>({chainId:F(a.chains,e.chainId),count:e.count,beneficiary:e.beneficiary})),initialIssuance:e.weight,splitPercent:e.reservedPercent,splits:e.reservedPercent>0?n:[],issuanceCutFrequency:e.issuanceCutFrequency,issuanceCutPercent:e.weightCutPercent,cashOutTaxRate:e.cashOutTaxRate??0,extraMetadata:4|(0,m.uM)({metadata:e.metadataExtra,pauseTransfers:!0})})});return(0,p.ac)({chainId:n,config:{description:{name:a.projectName,ticker:a.ticker,uri:e.projectUri,salt:e.salt},baseCurrency:u,operator:t,scopeCashOutsToLocalBalances:!1,stageConfigurations:r},accountingContexts:o,suckerConfig:W(a,n,e.salt),creationFee:e.creationFee,tiered721Config:a.store.items.length>0?{baseline721HookConfiguration:G(a.store,e.projectUri,s,n),salt:e.salt,preventOperatorAdjustingTiers:!a.store.operatorCanAdjustTiers,preventOperatorUpdatingMetadata:!a.store.operatorCanUpdateMetadata,preventOperatorMinting:!a.store.operatorCanMint,preventOperatorIncreasingDiscountPercent:!a.store.operatorCanIncreaseDiscount}:void 0})}let d=(t=a.stages[a.stages.length-1]).duration>0&&t.duration!==N&&"cycle"!==a.afterMode?"terminal"===a.afterMode?[...a.stages,{...t,duration:N}]:[...a.stages,{...A,weight:0n,pausePay:!0,cashOutTaxRate:t.cashOutTaxRate}]:a.stages,f=d[d.length-1].duration===N,x="none"===a.approvalDeadline||f?h.X:"custom"===a.approvalDeadline?a.approvalCustomAddress??h.X:(0,l.R)(I[a.approvalDeadline],n),k=d.map(e=>(0,c.vw)({mustStartAtOrAfter:e.mustStartAtOrAfter,duration:e.duration,weight:e.weight,weightCutPercent:e.weightCutPercent,approvalHook:x,metadata:(0,c.u9)({baseCurrency:u,reservedPercent:e.reservedPercent,cashOutTaxRate:y(e.payouts,o.map(t=>null===V(a,e,t.token,n)))?1e4:e.cashOutTaxRate??1e4,allowOwnerMinting:e.allowOwnerMinting,holdFees:e.holdFees,pausePay:e.pausePay,pauseCreditTransfers:e.pauseCreditTransfers,metadata:(0,m.uM)({metadata:e.metadataExtra,pauseTransfers:e.pause721Transfers}),allowSetTerminals:e.allowSetTerminals,allowSetController:e.allowSetController,allowTerminalMigration:e.allowTerminalMigration,allowSetCustomToken:e.allowSetCustomToken,allowAddAccountingContext:e.allowAddAccountingContext,allowAddPriceFeed:e.allowAddPriceFeed||null!==s.custom,useDataHookForCashOut:a.store.itemsRedeem}),splitGroups:[...e.reservedPercent>0&&e.reservedSplits.length>0?[{groupId:1n,splits:U(e.reservedSplits)}]:[],..."routed"===e.payouts?o.flatMap(t=>{var r,s,i;let o=(r=a,s=e,i=t.token,_(r,i,n)?s.payoutSplitsUsdc:s.payoutSplits);return o.length>0?[{groupId:BigInt(t.token),splits:U(o)}]:[]}):[]],fundAccessLimitGroups:"none"===e.payouts?[]:o.map(t=>{var r,i,o;return{terminal:(0,l.R)("JBMultiTerminal",n),token:t.token,payoutLimits:"routed"===e.payouts?[{amount:V(a,e,t.token,n)??b,currency:t.currency}]:[],surplusAllowances:e.surplusAllowanceOn?[{amount:null===e.surplusAllowanceAmount?b:(r=e.surplusAllowanceAmount,i=s.custom?s.custom.decimals:s.tokens.includes("eth")?18:6,(o=t.decimals)===i?r:o>i?r*10n**BigInt(o-i):r/10n**BigInt(i-o)),currency:t.currency}]:[]}})})),g=a.allowAnyToken?(0,c.wP)({chainId:n,accountingContexts:o}):[{terminal:(0,l.R)("JBMultiTerminal",n),accountingContextsToAccept:o}];return a.linkChains&&a.chains.length>1?{chainId:n,address:(0,l.R)("JBOmnichainDeployer",n),abi:r.$p,functionName:"launchProjectFor",args:[i,e.projectUri,{deployTiersHookConfig:G(e.plan.store,e.projectUri,s,n),useDataHookForCashOut:a.store.itemsRedeem,salt:e.salt},k,g,"",W(a,n,e.salt)],value:e.creationFee}:{chainId:n,address:(0,l.R)("JB721TiersHookProjectDeployer",n),abi:r.gg,functionName:"launchProjectFor",args:[i,G(e.plan.store,e.projectUri,s,n),{projectUri:e.projectUri,rulesetConfigurations:k,terminalConfigurations:g,memo:""},(0,l.R)("JBController",n),e.salt],value:e.creationFee}}function R(e,t){return"revnet"===e||t}function E(e,t,n){let r=[1,0xaa36a7];return 2===e.length&&e.some(e=>
1r.includes(e))&&!n&&1===t.length&&"eth"===t[0]}function H(e,t){return t.map(t=>e[t]?.trim()??"").filter(Boolean)}function W(e,t,n){if(!e.linkChains||e.chains.length<2)return{deployerConfigurations:[],salt:n};let r=e.accounting.custom?[]:[...e.accounting.tokens.includes("eth")?[o.F.NATIVE]:[],...e.accounting.tokens.includes("usdc")?[o.F.USDC]:[]];return{deployerConfigurations:(0,o.V)(t,e.chains,r,{version:6,bridge:e.bridge}).deployerConfigurations,salt:n}}function _(e,t,n){return null===e.accounting.custom&&e.accounting.tokens.length>1&&t.toLowerCase()===s.P[n].toLowerCase()}function V(e,t,n,r){return _(e,n,r)?t.payoutLimitAmountUsdc:t.payoutLimitAmount}function K(e,t){return[...e].sort((e,t)=>e.category-t.category).map(e=>{let n=t in e.perChainSupply?e.perChainSupply[t]:e.supply;return{price:e.price,initialSupply:n??m.$n,votingUnits:e.votingUnits,reserveFrequency:e.reserveFrequency,reserveBeneficiary:e.reserveBeneficiary??h.X,encodedIpfsUri:e.encodedIpfsUri,category:e.category,discountPercent:e.discountPercent,flags:{allowOwnerMint:e.flags.allowOwnerMint,useReserveBeneficiaryAsDefault:e.reserveFrequency>0&&null!==e.reserveBeneficiary,transfersPausable:e.flags.transfersPausable,useVotingUnits:e.votingUnits>0,cantBeRemoved:e.flags.cantBeRemoved,cantIncreaseDiscountPercent:!e.flags.ownerCanEditDiscount,cantBuyWithCredits:!e.flags.allowCredits},splitPercent:e.splitPercent,splits:U(e.perChainSplits?.[t]??e.splits)}})}function G(e,t,n,r){if("token"===e.currency&&!n.custom)throw Error("Shop items are priced in the project token, but no custom accounting token is configured. Pick ETH or USD pricing.");let a="token"===e.currency&&n.custom?{currency:(0,u.U9)(n.custom.address),decimals:n.custom.decimals}:"usd"===e.currency?{currency:u.fl,decimals:6}:{currency:u.O$,decimals:18},s=K(e.items,r);return{name:e.name,symbol:e.symbol,baseUri:"ipfs://",tokenUriResolver:h.X,contractUri:t,tiersConfig:{tiers:s,currency:a.currency,decimals:a.decimals},flags:{noNewTiersWithReserves:e.noNewTiersWithReserves,noNewTiersWithVotes:e.noNewTiersWithVotes,noNewTiersWithOwnerMinting:e.noNewTiersWithOwnerMinting,preventOverspending:e.preventOverspending,issueTokensForSplits:e.issueTokensForSplits}}}function z(e,t){let n=(0,c.PG)(e.logs,{chainId:t});return null===n||n>BigInt(Number.MAX_SAFE_INTEGER)?null:Number(n)}},39117:(e,t,n)=>{n.r(t),n.d(t,{checkStickyToken:()=>f,stickyDestinationProblem:()=>b,stickySplitsProblem:()=>x});var r=n(6353),a=n(53172),s=n(28609),i=n(66568),o=n(78568),l=n(53385),c=n(18587),u=n(13364),d=n(64076),p=n(47186);let m=[{type:"function",name:"PROJECT_ID",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]}],h=[{type:"function",name:"tokenOf",stateMutability:"view",inputs:[{name:"projectId",type:"uint256"}],outputs:[{type:"address"}]}];async function f(e,t,n){let a,s,d=(0,p.H9)(t),f=r.PR["6"].StickyHook[t];if(!f)return{ok:!1,reason:`Sticky is not deployed on ${d}.`};try{a=await e.readContract({address:n,abi:m,functionName:"PROJECT_ID"})}catch(e){return e instanceof i.C&&e.walk(e=>e instanceof o.M||e instanceof o.rR)?{ok:!1,reason:`${(0,u.LV)(n)} is not a Sticky token on ${d}.`}:{ok:!1,reason:`Could not check the Sticky token on ${d}.`}}try{s=await e.readContract({address:f,abi:h,functionName:"tokenOf",args:[a]})}catch{return{ok:!1,reason:`Could not check the Sticky token on ${d}.`}}return(0,l.h)(s,n)?{ok:!0,symbol:await e.readContract({address:n,abi:c.xw,functionName:"symbol"}).catch(()=>"")}:{ok:!1,reason:`${(0,u.LV)(n)} is not a Sticky token on ${d}.`}}async function x(e,t,n){for(let t of e){let e=(0,a.Qg)(t.projectId);if(e)return e}let r=[...new Set(e.map(e=>e.beneficiary.toLowerCase()))],s=(await Promise.all(t.flatMap(e=>r.map(t=>f(n(e),e,t))))).find(e=>!e.ok);return s&&!s.ok?s.reason:null}async function b({client:e,chainId:t,projectId:n,reserved:r,splits:a}){return 0===a.length?null:r&&!await (0,s.me)(e,{chainId:t,projectId:BigInt(n)})?(0,d.vh)(t):x(a,[t],()=>e)}},39383:(e,t,n)=>{n.d(t,{A6:()=>s,Ff:()=>r,KO:()=>a});let r={issuance:"How many new tokens a payment creates per unit paid, before any are set aside for other recipients. The rules set this rate; trading does not.",issuanceCut:"How much the token creation rate falls each time the rules repeat. A lower rate means the same payment creates fewer tokens.",reservedShare:"The share of new tokens set aside for chosen recipients. The payer gets the rest.",autoIssuance:"Tokens set aside for named recipients without a payment. They can be created once their stage starts.",cashOutTax:"A setting that leaves more money for remaining holders when someone cashes out part of the token supply. At 0%, the formula returns a proportional share of funds not set aside for payouts. Higher settings return less; 100% returns nothing.",payoutLimit:"The most the project can pay to its recipients each time the rules repeat. This budget resets each cycle. Funds above the unused budget can back cash outs, subject to the other rules.",surplusAllowance:"An extra withdrawal budget for funds not set aside for payouts. The owner or an account they authorize can spend it. It does not reset when the same rules repeat.",prepaidFee:"Paid when the loan opens. Paying more gives you longer before repayment costs start growing. Repay to recover the tokens locked for the loan. After 10 years, those tokens are lost.",twapWindow:"How much trading history to use for an average price. This helps check a trade before it goes through. A longer window is harder to manipulate but slower to reflect price changes. Allowed range: 5 minutes to 2 days.",itemTransfers:"Whether holders can send shop items to someone else during this stage. A pause affects only items created with this control enabled."},a=["Change the revnet's name, logo, and description","Change the token's name and symbol","Change who receives the share of new tokens set at launch, without increasing that share","Add, remove, and re-price shop items, create them for free, and change their discounts","Choose where tokens are bought back and how the reference trading price is averaged","Choose among approved payment contracts, including one that can convert payment tokens","Extend the revnet to new approved chains, and pause a bridge that looks unsafe","Sign messages on behalf of the revnet's token","Hand the operator role to another address"],s="It cannot change how new tokens are created, the cash out rules, or the stage schedule. It cannot withdraw the revnet's funds."},44277:(e,t,n)=>{n.d(t,{R:()=>p,Y:()=>d});var r=n(95155),a=n(12115),s=n(94768),i=n(47186),o=n(56746);function l({open:e}){return(0,r.jsx)("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",className:`h-5 w-5 shrink-0 text-grey-500 transition-transform ${e?"rotate-180":""}
1`,"aria-hidden":!0,children:(0,r.jsx)("path",{d:"m5 7.5 5 5 5-5"})})}function c(){return(0,r.jsx)("svg",{viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",className:"h-5 w-5 text-bluebs-500","aria-hidden":!0,children:(0,r.jsx)("path",{d:"m4.5 10 3.25 3.25L15.5 5.5"})})}function u({chainId:e,selected:t,onSelect:n,disabled:a}){let s=(0,i.H9)(e);return(0,r.jsxs)("button",{type:"button",role:"option","aria-selected":t,"aria-label":`Select ${s}`,onClick:n,disabled:a,className:`flex min-h-[56px] w-full items-center gap-3 px-4 text-left text-base transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${t?"bg-bluebs-25 text-grey-900":"bg-white text-grey-900 hover:bg-grey-50"}`,children:[(0,r.jsx)(o.P,{chainId:e,size:30}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:s}),t?(0,r.jsx)(c,{}):null]})}function d({options:e,value:t,onChange:n,disabled:c=!1,placeholder:p="Select a chain",className:m=""}){let{open:h,setOpen:f,rootRef:x}=function(){let[e,t]=(0,a.useState)(!1),n=(0,a.useRef)(null);return(0,s.H)(n,()=>t(!1),e),{open:e,setOpen:t,rootRef:n}}(),b=(0,a.useId)(),y=null===t?p:(0,i.H9)(t);return(0,r.jsxs)("div",{ref:x,className:`relative min-w-0 ${m}`,onKeyDown:e=>"Escape"===e.key&&f(!1),children:[(0,r.jsxs)("button",{type:"button",onClick:()=>!c&&f(e=>!e),disabled:c,"aria-haspopup":"listbox","aria-expanded":h,"aria-controls":b,"aria-label":null===t?p:`Selected chain: ${y}`,className:"flex min-h-[52px] w-full items-center gap-3 rounded-lg border border-grey-300 bg-white px-3.5 text-left text-grey-900 shadow-[0_2px_8px_rgba(0,0,0,0.06)] transition-colors hover:border-bluebs-300 disabled:cursor-not-allowed disabled:bg-grey-25 disabled:text-grey-400",children:[null!==t?(0,r.jsx)(o.P,{chainId:t,size:30}):null,(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate text-base font-medium",children:y}),(0,r.jsx)(l,{open:h})]}),h?(0,r.jsx)("div",{id:b,role:"listbox","aria-label":"Chains",className:"absolute inset-x-0 top-full z-50 mt-2 overflow-hidden rounded-xl border border-grey-200 bg-white py-1 shadow-[0_12px_30px_rgba(0,0,0,0.12)]",children:e.map(e=>(0,r.jsx)(u,{chainId:e,selected:e===t,disabled:c,onSelect:()=>{n(e),f(!1)}},e))}):null]})}function p({options:e,values:t,onToggle:n,disabled:a=!1,className:s=""}){return(0,r.jsx)("div",{role:"group","aria-label":"Chains",className:`flex min-w-0 flex-wrap gap-2 ${s}`,children:e.map(e=>{let s=t.includes(e),l=(0,i.H9)(e);return(0,r.jsxs)("button",{type:"button","aria-pressed":s,"aria-label":`${s?"Remove":"Add"} ${l}`,onClick:()=>n(e),disabled:a,className:`inline-flex min-h-[48px] items-center gap-2 rounded-lg border px-3.5 text-sm font-medium transition-colors focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-40 ${s?"border-bluebs-500 bg-bluebs-25 text-bluebs-700 shadow-[0_1px_4px_rgba(39,79,245,0.12)]":"border-grey-300 bg-white text-grey-700 hover:border-bluebs-300 hover:text-bluebs-600"}`,children:[(0,r.jsx)(o.P,{chainId:e,size:26}),(0,r.jsx)("span",{children:l})]},e)})})}},57291:(e,t,n)=>{n.d(t,{$O:()=>x,G1:()=>u,GI:()=>m,Jv:()=>k,QX:()=>f,UE:()=>i,XI:()=>y,_Y:()=>d,dV:()=>p,h:()=>h,k6:()=>b,o4:()=>l,xU:()=>c});var r=n(30220),a=n(83645),s=n(67758);function i(e,t="project"){return{id:crypto.randomUUID(),durationValue:"0",customDuration:"",customUnit:"days",scheduleOn:!1,schedule:"",issuanceRate:e?"10000":"",cutOn:!1,cutPct:"",cutFreqDays:"30",daysAfter:"30",startMode:"cycles",startCycles:"1",startDate:"",reservedPct:"0",reservedSplits:[],payouts:"none",routedMode:"all",payoutSplits:[],routedModeUsdc:"all",payoutSplitsUsdc:[],holdFees:!1,surplusCapOn:!1,surplusAmount:"",routedSurplusOn:!1,cashOuts:"revnet"===t,cashOutTax:1e3*("revnet"===t),taxCustomOn:!1,taxCustomPct:"",ownerMinting:!1,acceptPayments:!0,pauseCreditTransfers:!1,pause721Transfers:!1,metadataExtra:0,autoIssuances:[],powers:{setTerminals:!1,setController:!1,terminalMigration:!1,setCustomToken:!1,addAccountingContext:!1,addPriceFeed:!1},expanded:e,open:{}}}let o={hours:3600,days:86400,weeks:604800,years:31536e3};function l(e,t,n){if("date"===e.startMode)return e.startDate?Math.floor(new Date(e.startDate).getTime()/1e3):0;let r=Number(e.startCycles)||1;return r>1?t+r*n:0}function c(e){if("date"===e.startMode)return!Number.isNaN(new Date(e.startDate).getTime());let t=Number(e.startCycles);return Number.isInteger(t)&&t>=1}function u(e){if("custom"===e.durationValue){let t=Number(e.customDuration);return!Number.isFinite(t)||t<=0?0:Math.round(t*o[e.customUnit])}return Number(e.durationValue)||0}function d(e){return e%31536e3==0&&e>=31536e3?`${e/31536e3} year${31536e3===e?"":"s"}`:e%604800==0&&e>=604800?`${e/604800} week${604800===e?"":"s"}`:e%86400==0&&e>=86400?`${e/86400} day${86400===e?"":"s"}`:`${Math.round(e/360)/10} hours`}function p(e){if(e.taxCustomOn){let t=Number(e.taxCustomPct);return Number.isFinite(t)&&t>=0&&t<=99.99?Math.round(100*t):0}return e.cashOutTax}function m(e){if(!e.taxCustomOn)return!0;let t=Number(e.taxCustomPct);return Number.isFinite(t)&&t>=0&&t<=99.99}let h=(e,t=1/0)=>{let n=Number(e);return Number.isFinite(n)&&n>=0&&n<=t};function f(e,t){return""===e.issuanceRate.trim()?!t:h(e.issuanceRate)}function x(e,t,n="project",r=!1){let i="all"===e.routedMode?"percent":"amount",o=f(e,t),l=e.reservedSplits.every(e=>(0,s.$t)(e,"percent"))&&100>=(0,s.II)(e.reservedSplits,"percent"),d=o&&(""===e.cutPct.trim()||h(e.cutPct,100))&&l;return"revnet"===n?o&&l&&(!e.cutOn||Number(e.cutPct)>0&&h(e.cutPct,100)&&Number(e.cutFreqDays)>=1&&h(e.cutFreqDays))&&(t||Number(e.daysAfter)>=1)&&(!e.cashOuts||m(e))&&e.autoIssuances.every(e=>""===e.count.trim()&&""===e.address.trim()||Number(e.count)>0&&null!==(0,a.l1)(e.address)):d&&("routed"!==e.payouts||e.payoutSplits.every(e=>(0,s.$t)(e,i))&&("percent"!==i||100>=(0,s.II)(e.payoutSplits,"percent"))&&(!r||e.payoutSplitsUsdc.every(t=>
1(0,s.$t)(t,"all"===e.routedModeUsdc?"percent":"amount"))&&("all"!==e.routedModeUsdc||100>=(0,s.II)(e.payoutSplitsUsdc,"percent"))))&&("custom"!==e.durationValue||u(e)>0)&&(t||c(e))&&(!e.cashOuts||m(e))&&(!e.surplusCapOn||Number(e.surplusAmount)>0&&h(e.surplusAmount))}function b(e,t){return t?["all"===e.routedMode,"all"===e.routedModeUsdc]:["all"===e.routedMode]}function y(e,t,n,a="project",i=!1){let o=[];0===t?o.push(e.scheduleOn&&e.schedule?"Starts at a set time":"Starts at launch"):"revnet"===a?o.push(`Starts ${Number(e.daysAfter)||"?"} days after Stage #${t}`):o.push(function(e,t){if("date"===e.startMode)return e.startDate?`Starts ${new Date(e.startDate).toLocaleString("en-US",{dateStyle:"medium",timeStyle:"short"})}, snapped to Ruleset #${t}'s cycle`:"Starts on a date";let n=Number(e.startCycles)||1;return`Starts after ${n} cycle${1===n?"":"s"} of Ruleset #${t}`}(e,t));let l=u(e);"revnet"!==a&&o.push(0===l?"Lasts until changed":l===r.MC?"Lasts forever":`Lasts ${d(l)}`);let c=Number(e.cutPct)>0&&("revnet"!==a||e.cutOn)?"revnet"===a?`-${Number(e.cutPct)}% every ${Number(e.cutFreqDays)||"?"} days`:`-${Number(e.cutPct)}% per cycle`:"";""===e.issuanceRate.trim()&&t>0?o.push("Keeps issuance"+(c?`, ${c}`:"")):Number(e.issuanceRate)>0?o.push(`Issues ${Number(e.issuanceRate).toLocaleString("en-US")} per ${n}`+(c?`, ${c}`:"")):o.push("No issuance");let m=(0,s.II)(e.reservedSplits,"percent");m>0&&o.push("revnet"===a?`${m}% to splits`:`${m}% reserved`);let h="revnet"!==a&&(0,r.oM)(e.payouts,b(e,i));return"revnet"===a?o.push(e.cashOuts?`${p(e)/100}% cash out tax`:"99.99% cash out tax"):e.cashOuts&&!h&&o.push("Cash outs on"),o}function k(e,t,n,r="project",a=!1){return y(e,t,n,r,a).join(" | ")}},59701:(e,t,n)=>{n.d(t,{tE:()=>c,vt:()=>d});var r=n(95155),a=n(12115),s=n(80339),i=n(83645),o=n(47186);function l({note:e,id:t}){let[n,s]=(0,a.useState)(!1);return((0,a.useEffect)(()=>{if(!n)return;let e=setTimeout(()=>s(!1),1200);return()=>clearTimeout(e)},[n]),"bad"===e.kind)?(0,r.jsx)("p",{id:t,className:`field-error mt-0.5 pl-1 text-[11px] ${e.full?"w-72 max-w-[80vw] leading-relaxed":"truncate"}`,children:e.text}):"warn"===e.kind?(0,r.jsx)("p",{id:t,className:"mt-0.5 w-72 max-w-[80vw] pl-1 text-[11px] leading-relaxed text-amber-700",children:e.text}):e.copy?(0,r.jsx)("button",{id:t,onClick:()=>{navigator.clipboard.writeText(e.copy),s(!0)},title:`Copy ${e.copy}`,className:"mt-0.5 block max-w-full truncate pl-1 text-left text-[11px] text-smoke-500 hover:text-ink hover:underline",children:n?"Copied!":e.text}):(0,r.jsx)("p",{id:t,className:"field-hint mt-0.5 truncate pl-1 text-[11px]",children:e.text})}function c({value:e,onChange:t,disabled:n,placeholder:o="0x⦠or name.eth",ariaLabel:u="Address",className:d="",compact:p=!1}){let[m,h]=(0,a.useState)(null),f=(0,a.useId)();return(0,a.useEffect)(()=>{let t=e.trim();if(h(null),!t)return;let n=!1,r=setTimeout(async()=>{if((0,s.P)(t)){let e=await (0,i.AW)(t);!n&&e&&h({kind:"ok",text:`â ${e}`})}else if((0,i.oD)(t)){let e=await (0,i.Zv)(t);if(n)return;h(e?{kind:"ok",text:`â ${e}`,copy:e}:{kind:"bad",text:"Name not found"})}else n||h({kind:"bad",text:"Not a valid address"})},400);return()=>{n=!0,clearTimeout(r)}},[e]),(0,r.jsxs)("div",{className:`min-w-0 ${d}`,children:[(0,r.jsx)("input",{type:"text",value:e,onChange:e=>t(e.target.value.trim().slice(0,64)),disabled:n,placeholder:o,"aria-label":u,"aria-invalid":m?.kind==="bad","aria-describedby":m?f:void 0,className:`input-well w-full font-mono text-xs disabled:opacity-60 ${p?"min-h-[40px] px-3":"min-h-[44px] px-3"} ${m?.kind==="bad"?"!border-red-400":""}`}),m?(0,r.jsx)(l,{note:m,id:f}):null]})}let u=new Map;function d({value:e,onChange:t,disabled:n,chainIds:s,className:i=""}){let[c,p]=(0,a.useState)(null),m=(0,a.useId)(),h=[...new Set(s)].sort((e,t)=>e-t).join(",");return(0,a.useEffect)(()=>{let t=Number(e.trim().replace("#",""));if(p(null),!e.trim())return;if(!Number.isInteger(t)||t<1)return void p({kind:"bad",text:"Not a valid project id"});let n=!1,r=setTimeout(async()=>{let e=h.split(",").map(Number).filter(e=>Number.isSafeInteger(e)&&e>0),r=await Promise.all(e.map(async e=>{let n,r=`${e}:${t}`,a=u.get(r);if(a)return a;try{let r=await fetch(`/api/project-name?chainId=${e}&projectId=${t}`),a=await r.json();n={chainId:e,found:r.ok&&!0===a.found,name:a.name??null,suckerGroupId:a.suckerGroupId??null,unavailable:!r.ok}}catch{n={chainId:e,found:!1,name:null,suckerGroupId:null,unavailable:!0}}return n.found&&u.set(r,n),n}));n||p(function(e,t,n){let r=[...new Set(t)],a=r.map(e=>n.find(t=>t.chainId===e)).filter(e=>!!e?.found);if(0===a.length)return r.map(e=>n.find(t=>t.chainId===e)).some(e=>e?.unavailable)?{kind:"warn",text:`Couldn't check project #${e} right now â verify it before deploying`,full:!0}:{kind:"bad",text:`No project #${e}
1 found on the selected ${1===r.length?"chain":"chains"}`,full:!0};let s=a.find(e=>e.name)?.name??`Project #${e}`;return 1===r.length?{kind:"ok",text:`â ${s}`}:a.length<r.length?{kind:"warn",text:`â ${s} found on ${a.map(e=>(0,o.H9)(e.chainId)).join(", ")} only â set per-chain project IDs for the other selected chains`}:1!==new Set(a.map(e=>e.suckerGroupId).filter(Boolean)).size||a.some(e=>null===e.suckerGroupId)?{kind:"warn",text:`â Project #${e} exists on every selected chain, but the deployments aren't linked â confirm each per-chain project ID`}:{kind:"ok",text:`â ${s} on all selected chains`}}(t,e,r))},400);return()=>{n=!0,clearTimeout(r)}},[e,h]),(0,r.jsxs)("div",{className:`min-w-0 ${i}`,children:[(0,r.jsx)("input",{type:"text",inputMode:"numeric",value:e,onChange:e=>t(e.target.value.trim().slice(0,11)),disabled:n,placeholder:"#12","aria-label":"Project id","aria-invalid":c?.kind==="bad","aria-describedby":c?m:void 0,className:`input-well min-h-[44px] w-full px-3 text-sm tabular-nums disabled:opacity-60 ${c?.kind==="bad"?"!border-red-400":""}`}),c?(0,r.jsx)(l,{note:c,id:m}):null]})}},67758:(e,t,n)=>{n.d(t,{VY:()=>C,UM:()=>y,Kw:()=>k,$t:()=>w,II:()=>j});var r=n(95155),a=n(83645),s=n(13364),i=n(47186),o=n(56746),l=n(59701),c=n(70383),u=n(30220),d=n(13229),p=n(64076),m=n(4109),h=n(87444),f=n(42482),x=n(39117);function b({row:e,chainIds:t}){let n=(0,f.U)(),s=(0,a.l1)(e.beneficiary),i=(0,p.kQ)(e),o=(0,m.I)({queryKey:["stickyToken",s?.toLowerCase(),t.join(",")],enabled:!!s&&t.length>0,staleTime:6e4,queryFn:async()=>{let e=await Promise.all(t.map(e=>{let t=(0,h.B)(n,{chainId:e});return t?(0,x.checkStickyToken)(t,e,s):{ok:!1,reason:"Could not connect to every chain."}})),r=e.find(e=>!e.ok);if(r&&!r.ok)return{symbol:null,reason:r.reason};let a=e[0];return{symbol:a?.ok?a.symbol:null,reason:null}}});if(!s)return null;let l=i&&e.stickyMinWeeks.trim()?i:o.data?.reason;return(0,r.jsxs)("div",{className:"mt-1.5 space-y-0.5 text-[11px] leading-relaxed",children:[i?null:(0,r.jsx)("p",{className:"text-smoke-700",children:(0,p.tm)({projectId:(0,p.$d)(e),beneficiary:s},o.data?.symbol)}),l?(0,r.jsx)("p",{role:"alert",className:"text-error-600",children:l}):o.isPending?(0,r.jsx)("p",{className:"text-smoke-500",children:"Checking the Sticky tokenâ¦"}):o.isError?(0,r.jsx)("p",{role:"alert",className:"text-error-600",children:"Could not check the Sticky token."}):null]})}function y(e){return"hook"===e.kind&&"sticky"===e.hookKind}function k(){return{id:crypto.randomUUID(),value:"",kind:"address",recipient:"",projectId:"",beneficiary:"",perChain:{},perChainBeneficiary:{},perChainAmount:{},perChainOpen:!1,hookKind:"fundmarket",hookAddress:"",preferAddToBalance:!1,lockedUntil:"",stickyGroup:"all",stickyMinWeeks:"",stickyMaxWeeks:""}}function g(e,t){let n=Number(e);return!!Number.isFinite(n)&&!(n<=0)&&("percent"!==t||n<=100)}function v(e){return/^#?\d{1,10}$/.test(e.trim())&&Number(e.replace("#",""))>0}function w(e,t){if(!g(e.value,t)||e.lockedUntil&&Number.isNaN(new Date(e.lockedUntil).getTime()))return!1;let n=Object.values(e.perChain).filter(e=>""!==e.trim());if("address"===e.kind)return null!==(0,a.l1)(e.recipient)&&n.every(e=>null!==(0,a.l1)(e));if("hook"===e.kind)return"sticky"===e.hookKind?null!==(0,a.l1)(e.beneficiary)&&null===(0,p.kQ)(e):"fundmarket"===e.hookKind||("fundmarket-legacy"===e.hookKind?null!==(0,a.l1)(e.hookAddress):null!==(0,a.l1)(e.hookAddress)&&(""===e.projectId.trim()||v(e.projectId))&&(""===e.beneficiary.trim()||null!==(0,a.l1)(e.beneficiary)));let r=Object.values(e.perChainBeneficiary).filter(e=>""!==e.trim());return v(e.projectId)&&(e.preferAddToBalance||null!==(0,a.l1)(e.beneficiary))&&n.every(v)&&r.every(e=>null!==(0,a.l1)(e))}function j(e,t){return e.reduce((e,n)=>e+(g(n.value,t)?Number(n.value):0),0)}function C({splits:e,onChange:t,disabled:n,bucketLabel:a,mode:m="percent",amountLabel:h="",remainderNote:f="go to the project owner",chainIds:x,addLabel:b="Add a recipient",allocatedLabel:v="allocated",allowHook:w=!1,allowFundMarket:T=!1,showRouting:S=!1,allowLock:$=!1,allowSticky:I=!1,stickyBlocked:A=null}){let P=(n,r)=>{t(e.map(e=>e.id===n?{...e,...r}:e))},M=j(e,m),O=(x?.length??0)>1,U=(0,u.Sy)(x??[]),D=0===U.length,B=(0,p.S5)(x?.length?x:[1]),F=I?A??(B.length>0?`Sticky is not deployed on ${B.map(i.H9).join(", ")}.`:null):"Sticky holders can only get payouts and reserved tokens. Pick another recipient.",L=null===F;return(0,r.jsxs)("div",{children:[e.map(a=>(0,r.jsx)("div",{className:"mt-2 rounded-lg border border-smoke-200 bg-smoke-75 p-2.5",children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsxs)("div",{className:"relative w-20 shrink-0",children:[(0,r.jsx)("input",{type:"text",inputMode:"decimal",value:a.value,onChange:e=>P(a.id,{value:e.target.value.slice(0,10)}),disabled:n,placeholder:"percent"===m?void 0:h,"aria-label":"percent"===m?"Percent":`Amount (${h})`,className:`input-well min-h-[44px] w-full px-3 text-sm tabular-nums disabled:opacity-60 ${"percent"===m?"pr-7":""} ${a.value&&!g(a.value,m)?"!border-red-400":""}`}),"percent"===m?(0,r.jsx)("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-sm text-smoke-500",children:"%"}):null]}),(0,r.jsx)("span",{className:"mt-3 shrink-0 text-sm text-smoke-700",children:"to"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-x-2",children:[(0,r.jsxs)("div",{className:"flex min-w-0 flex-wrap items-start gap-2",children:[(0,r.jsxs)("select",{value:a.kind,onChange:e=>{let t=e.target.value;P(a.id,{kind:t,perChain:{},perChainBeneficiary:{},..."hook"===t?{hookKind:T&&D?"fundmarket":"custom"}:{}
1,...y(a)?{beneficiary:""}:{}})},disabled:n,"aria-label":"Recipient type",className:"input-well select-caret min-h-[44px] w-28 shrink-0 px-3 pr-8 text-sm disabled:opacity-60",children:[(0,r.jsx)("option",{value:"address",children:"Address"}),(0,r.jsx)("option",{value:"project",children:"Project"}),w||"hook"===a.kind?(0,r.jsx)("option",{value:"hook",children:"Hook"}):null]}),"hook"===a.kind&&(T||L||"custom"!==a.hookKind)?(0,r.jsxs)("select",{value:a.hookKind,onChange:e=>{let t=e.target.value;P(a.id,{hookKind:t,..."sticky"===t||y(a)?{beneficiary:""}:{}})},disabled:n,"aria-label":"Hook type",className:"input-well select-caret min-h-[44px] w-36 shrink-0 px-3 pr-8 text-sm disabled:opacity-60",children:[T||"fundmarket"===a.hookKind?(0,r.jsx)("option",{value:"fundmarket",disabled:!D,children:"Fund market"}):null,"fundmarket-legacy"===a.hookKind?(0,r.jsx)("option",{value:"fundmarket-legacy",children:"Fund market (older version)"}):null,L||"sticky"===a.hookKind?(0,r.jsx)("option",{value:"sticky",children:"Sticky"}):null,(0,r.jsx)("option",{value:"custom",children:"Custom"})]}):null,"project"===a.kind?(0,r.jsx)(l.vt,{value:a.projectId,onChange:e=>P(a.id,{projectId:e}),disabled:n,chainIds:x?.length?x:[1],className:"w-28"}):null]}),(0,r.jsx)("button",{onClick:()=>t(e.filter(e=>e.id!==a.id)),disabled:n,"aria-label":"Remove recipient",className:"mt-3 shrink-0 text-xs font-medium text-smoke-700 underline underline-offset-2 hover:text-ink disabled:opacity-60",children:"Remove"})]}),"address"===a.kind?(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)(l.tE,{value:a.recipient,onChange:e=>P(a.id,{recipient:e}),disabled:n,ariaLabel:"Recipient address"})}):null,y(a)?F?(0,r.jsx)("p",{role:"alert",className:"mt-2 text-[11px] leading-relaxed text-error-600",children:F}):(0,r.jsx)(N,{split:a,disabled:n,chainIds:x?.length?x:[1],onChange:e=>P(a.id,e)}):null,"hook"!==a.kind||y(a)?null:"fundmarket-legacy"===a.hookKind&&T?(0,r.jsxs)("p",{className:"mt-2 rounded-lg bg-smoke-75 px-3 py-2 text-[11px] leading-relaxed text-smoke-700",children:["This recipient points at an older version of the market hook (",(0,s.LV)(a.hookAddress),"). It is kept as is; pick âFund marketâ to move it to the current one."]}):"fundmarket"!==a.hookKind||T?"fundmarket"===a.hookKind?(0,r.jsxs)("div",{className:"mt-2",children:[(0,r.jsx)("p",{className:"rounded-lg bg-smoke-75 px-3 py-2 text-[11px] leading-relaxed text-smoke-700",children:"Makes these tokens available to trade on Uniswap V4. Trading fees route back to your project."}),U.length>0?(0,r.jsxs)("p",{className:"mt-1.5 text-[11px] leading-relaxed text-error-600",children:["No market hook is deployed on"," ",U.map(i.H9).join(", ")," â remove this recipient or deselect"," ",U.length>1?"those chains":"that chain","."]}):null]}):(0,r.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,r.jsx)(l.tE,{value:a.hookAddress,onChange:e=>P(a.id,{hookAddress:e}),disabled:n,placeholder:"0x⦠(split hook contract)",ariaLabel:"Split hook address"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"shrink-0 text-xs text-smoke-700",children:"with project (optional):"}),(0,r.jsx)(l.vt,{value:a.projectId,onChange:e=>P(a.id,{projectId:e}),disabled:n,chainIds:x?.length?x:[1],className:"w-24"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"shrink-0 text-xs text-smoke-700",children:"and recipient (optional):"}),(0,r.jsx)(l.tE,{value:a.beneficiary,onChange:e=>P(a.id,{beneficiary:e}),disabled:n,ariaLabel:"Hook beneficiary",className:"flex-1",compact:!0})]})]}):(0,r.jsx)("p",{role:"alert",className:"mt-2 text-[11px] leading-relaxed text-error-600",children:"The Fund market only takes reserved tokens. Pick another hook."}),"project"===a.kind&&S?(0,r.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,r.jsx)("span",{className:"shrink-0 text-xs text-smoke-700",children:"route as:"}),(0,r.jsxs)("select",{value:a.preferAddToBalance?"balance":"pay",onChange:e=>P(a.id,{preferAddToBalance:"balance"===e.target.value}),disabled:n,"aria-label":"Payout routing",className:"input-well select-caret min-h-[40px] w-40 px-3 pr-8 text-xs disabled:opacity-60",children:[(0,r.jsx)("option",{value:"pay",children:"Pay"}),(0,r.jsx)("option",{value:"balance",children:"Add to balance"})]})]}):null,"project"!==a.kind||a.preferAddToBalance?null:(0,r.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,r.jsx)("span",{className:"shrink-0 text-xs text-smoke-700",children:"who gets the project's tokens:"}),(0,r.jsx)(l.tE,{value:a.beneficiary,onChange:e=>P(a.id,{beneficiary:e}),disabled:n,ariaLabel:"Token beneficiary",className:"flex-1",compact:!0})]}),$?(0,r.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[(0,r.jsxs)("label",{className:"flex items-center gap-1.5 text-[11px] font-medium text-smoke-700",children:[(0,r.jsx)("input",{type:"checkbox",checked:""!==a.lockedUntil,onCh
1ange:e=>P(a.id,{lockedUntil:e.target.checked?(0,s.ix)(Math.floor(Date.now()/1e3)+2592e3):""}),disabled:n,className:"h-3.5 w-3.5 accent-ink"}),"Lock until"]}),""!==a.lockedUntil?(0,r.jsx)(d.I,{value:a.lockedUntil,onChange:e=>P(a.id,{lockedUntil:e}),disabled:n,ariaLabel:"Split lock date and time",wrapperClassName:"min-w-[15rem] flex-1",inputClassName:"input-well min-h-[36px] w-full px-2.5 text-xs disabled:opacity-60"}):(0,r.jsx)("span",{className:"text-[11px] text-smoke-500",children:"â locked splits can't be removed until the date passes"})]}):null,O&&"hook"!==a.kind?(0,r.jsxs)("div",{className:"-ml-[7.5rem] mt-2 border-l-2 border-smoke-200 pl-3 sm:ml-0 sm:border-l-0 sm:pl-0",children:[(0,r.jsx)("button",{onClick:()=>P(a.id,{perChainOpen:!a.perChainOpen}),disabled:n,"aria-expanded":a.perChainOpen,className:"text-[11px] font-medium text-bluebs-600 hover:text-bluebs-700 disabled:opacity-60",children:a.perChainOpen?"Same on every chain":`Set per chain â if this ${"address"===a.kind?"address":"project id"} differs by chain`}),a.perChainOpen?(0,r.jsxs)("div",{className:"mt-2 space-y-2",children:[x.map(e=>(0,r.jsxs)("div",{className:"flex items-start gap-1.5",children:[(0,r.jsx)("span",{className:"mt-2 flex w-7 shrink-0 items-center justify-center",children:(0,r.jsx)(o.P,{chainId:e,size:24})}),"amount"===m?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{type:"text",inputMode:"decimal",value:a.perChainAmount[e]??"",onChange:t=>P(a.id,{perChainAmount:{...a.perChainAmount,[e]:t.target.value.slice(0,10)}}),disabled:n,placeholder:a.value.trim()||h,"aria-label":`Amount on ${(0,i.H9)(e)}`,className:"input-well min-h-[40px] w-16 shrink-0 px-2.5 text-xs tabular-nums disabled:opacity-60 sm:w-24"}),(0,r.jsx)("span",{className:"mt-2.5 shrink-0 text-xs text-smoke-700",children:"to"})]}):null,"address"===a.kind?(0,r.jsx)(l.tE,{value:a.perChain[e]??"",onChange:t=>P(a.id,{perChain:{...a.perChain,[e]:t}}),disabled:n,placeholder:a.recipient.trim()||"default",ariaLabel:`Recipient on ${(0,i.H9)(e)}`,className:"flex-1",compact:!0}):(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)(l.vt,{value:a.perChain[e]??"",onChange:t=>P(a.id,{perChain:{...a.perChain,[e]:t}}),disabled:n,chainIds:[e],className:"w-24"}),(0,r.jsx)(l.tE,{value:a.perChainBeneficiary[e]??"",onChange:t=>P(a.id,{perChainBeneficiary:{...a.perChainBeneficiary,[e]:t}}),disabled:n,placeholder:a.beneficiary.trim()||"beneficiary",ariaLabel:`Beneficiary on ${(0,i.H9)(e)}`,className:"mt-2",compact:!0})]})]},e)),(0,r.jsx)("p",{className:"pl-[34px] text-[11px] leading-relaxed text-smoke-500",children:"Empty fields use the default above."})]}):null]}):null]})]})},a.id)),(0,r.jsxs)("div",{className:"mt-2 flex flex-wrap items-baseline justify-between gap-2",children:[(0,r.jsx)(c.M3,{onClick:()=>t([...e,k()]),disabled:n,children:b}),e.length>0?"percent"===m?(0,r.jsx)("span",{className:`text-xs tabular-nums ${M>100?"font-medium text-red-600":"text-smoke-700"}`,children:M>100?`${M}% â over 100%`:M<100?(0,r.jsx)(c.T8,{text:`${M}% ${v} | remaining ${a} ${f}`}):`100% ${v}`}):(0,r.jsx)("span",{className:"text-xs tabular-nums text-smoke-700",children:M>0?(0,r.jsx)(c.T8,{text:`${M.toLocaleString("en-US")} ${h} total | the rest stays in the project`}):""}):null]})]})}function N({split:e,disabled:t,chainIds:n,onChange:a}){let s=(n,s,i)=>(0,r.jsx)("input",{type:"text",inputMode:"numeric",value:e[n],onChange:e=>a({[n]:e.target.value.replace(/\D/g,"").slice(0,3)}),disabled:t,placeholder:i,"aria-label":s,className:"input-well min-h-[40px] w-16 px-2.5 text-xs tabular-nums disabled:opacity-60"});return(0,r.jsxs)("div",{className:"-ml-[7.5rem] mt-2 space-y-2 sm:ml-0",children:[(0,r.jsx)(l.tE,{value:e.beneficiary,onChange:e=>a({beneficiary:e}),disabled:t,placeholder:"0x⦠(Sticky token)",ariaLabel:"Sticky token"}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-smoke-700",children:[(0,r.jsxs)("select",{value:e.stickyGroup,onChange:e=>a({stickyGroup:e.target.value}),disabled:t,"aria-label":"Sticky holders",className:"input-well select-caret min-h-[40px] px-3 pr-8 text-xs disabled:opacity-60",children:[(0,r.jsx)("option",{value:"all",children:"All holders"}),(0,r.jsx)("option",{value:"tenure",children:"Holders stuck at least"})]}),"tenure"===e.stickyGroup?(0,r.jsxs)(r.Fragment,{children:[s("stickyMinWeeks","Minimum weeks stuck","4"),(0,r.jsx)("span",{children:"weeks, up to"}
1),s("stickyMaxWeeks","Maximum weeks stuck (optional)","any"),(0,r.jsx)("span",{children:"weeks"})]}):null]}),"all"===e.stickyGroup?(0,r.jsx)("p",{className:"text-[11px] leading-relaxed text-smoke-500",children:"Pays every holder by voting power when each round starts."}):(0,r.jsxs)("p",{className:"text-[11px] leading-relaxed text-smoke-500",children:["Counts stake held that long when each round starts, 1 to"," ",p.DQ," weeks."]}),(0,r.jsx)(b,{row:e,chainIds:n})]})}},70383:(e,t,n)=>{n.d(t,{M3:()=>c,Sr:()=>s,T8:()=>a,Tl:()=>l,Wo:()=>p,_I:()=>o,cL:()=>d,z2:()=>u});var r=n(95155);function a({text:e}){let t=e.split(" | ");return(0,r.jsx)("span",{className:"inline-flex flex-wrap items-baseline gap-x-2",children:t.map((e,n)=>(0,r.jsxs)("span",{className:"whitespace-nowrap",children:[e,n<t.length-1?(0,r.jsx)("span",{"aria-hidden":!0,className:"ml-2 hidden text-smoke-300 sm:inline",children:"|"}):null]},n))})}function s({className:e}){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",className:e,fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:(0,r.jsx)("path",{d:"m5 13 4 4L19 7"})})}function i({kind:e,checked:t,onActivate:n,disabled:a,title:o,blurb:l}){return(0,r.jsxs)("button",{type:"button",role:e,onClick:n,disabled:a,"aria-checked":t,className:"group flex min-h-[52px] w-full items-start gap-3 rounded-lg border border-smoke-200 bg-white px-3 py-2.5 text-left transition-colors hover:border-bluebs-200 hover:bg-grey-50 focus-visible:border-bluebs-400 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-40",children:["radio"===e?(0,r.jsx)("span",{className:`mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border bg-white transition-shadow group-focus-visible:ring-4 group-focus-visible:ring-bluebs-50 ${t?"border-bluebs-500":"border-grey-300"}`,children:t?(0,r.jsx)("span",{className:"h-2 w-2 rounded-full bg-bluebs-500"}):null}):(0,r.jsx)("span",{className:`mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-md border transition-shadow group-focus-visible:ring-4 group-focus-visible:ring-bluebs-50 ${t?"border-bluebs-600 bg-bluebs-600":"border-grey-300 bg-white"}`,children:t?(0,r.jsx)(s,{className:"h-3 w-3 text-white"}):null}),(0,r.jsxs)("span",{className:"min-w-0",children:[(0,r.jsx)("span",{className:"block text-sm font-medium text-ink",children:o}),(0,r.jsx)("span",{className:"mt-0.5 block text-xs leading-relaxed text-smoke-700",children:l})]})]})}function o({checked:e,onSelect:t,disabled:n,title:a,blurb:s}){return(0,r.jsx)(i,{kind:"radio",checked:e,onActivate:t,disabled:n,title:a,blurb:s})}function l({checked:e,onToggle:t,disabled:n,title:a,blurb:s}){return(0,r.jsx)(i,{kind:"checkbox",checked:e,onActivate:t,disabled:n,title:a,blurb:s})}function c({onClick:e,disabled:t,children:n}){return(0,r.jsxs)("button",{onClick:e,disabled:t,className:"group inline-flex min-h-[40px] items-center gap-2 rounded-full border border-dashed border-grey-400 bg-white py-1.5 pl-1.5 pr-4 text-xs font-medium text-grey-700 transition-colors hover:border-bluebs-500 hover:text-bluebs-700 disabled:opacity-60",children:[(0,r.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-bluebs-100 font-agrandir text-sm text-bluebs-700 transition-colors group-hover:bg-bluebs-600 group-hover:text-white",children:"+"}),n]})}function u({active:e,onClick:t,disabled:n,children:a}){return(0,r.jsx)("button",{type:"button",onClick:t,disabled:n,"aria-pressed":e,className:e?"inline-flex min-h-[40px] items-center rounded-lg border border-bluebs-500 bg-bluebs-25 px-3.5 text-xs font-medium text-bluebs-700 shadow-[0_1px_4px_rgba(39,79,245,0.12)] transition-colors focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-40":"inline-flex min-h-[40px] items-center rounded-lg border border-grey-300 bg-white px-3.5 text-xs font-medium text-grey-700 transition-colors hover:border-bluebs-300 hover:text-bluebs-600 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-40",children:a})}function d({open:e}){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",className:`h-4 w-4 shrink-0 text-smoke-500 transition-transform ${e?"rotate-180":""}`,fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,
1children:(0,r.jsx)("path",{d:"m6 9 6 6 6-6"})})}function p({label:e,summary:t,open:n,onToggle:s,children:i}){return(0,r.jsxs)("div",{className:"mt-3 rounded-xl border border-grey-200 bg-white",children:[(0,r.jsxs)("button",{onClick:s,"aria-expanded":n,className:"flex min-h-[52px] w-full items-center justify-between gap-3 px-4 py-3 text-left",children:[(0,r.jsx)("span",{className:"field-label !text-smoke-700",children:e}),(0,r.jsxs)("span",{className:"flex min-w-0 items-center gap-2.5",children:[n?null:(0,r.jsx)("span",{className:"truncate text-sm font-medium text-ink",children:(0,r.jsx)(a,{text:t})}),(0,r.jsx)(d,{open:n})]})]}),n?(0,r.jsx)("div",{className:"px-4 pb-4",children:i}):null]})}},74016:(e,t,n)=>{n.d(t,{Am:()=>s,D1:()=>i,_A:()=>d,h1:()=>u,jO:()=>l,oz:()=>c,tJ:()=>o});var r=n(83645),a=n(67758);function s(){return{id:crypto.randomUUID(),name:"",price:"",supply:"",description:"",mediaFile:null,mediaPreview:null,discountPct:"",reserveN:"",reserveBeneficiary:"",splits:[],category:0,votingUnits:"",allowOwnerMint:!1,transfersPausable:!1,cantBeRemoved:!1,allowCredits:!0,ownerCanEditDiscount:!0,perChainSupply:{},perChainSupplyOpen:!1,moreOpen:!1}}function i(e){let t=Number(e);return Number.isFinite(t)&&t>0}function o(e){if(""===e.trim())return!0;let t=Number(e);return Number.isInteger(t)&&t>=1&&t<=0x3b9ac9fe}function l(e){if(""===e.trim())return!0;let t=Number(e);return Number.isFinite(t)&&t>=0&&t<=100}function c(e){if(""===e.reserveN.trim())return!0;let t=Number(e.reserveN);return Number.isInteger(t)&&t>=1&&t<=65535&&null!==(0,r.l1)(e.reserveBeneficiary)}function u(e){if(""===e.votingUnits.trim())return!0;let t=Number(e.votingUnits);return Number.isInteger(t)&&t>=0&&t<=0xffffffff}function d(e){var t;return e.name.trim().length>0&&i(e.price)&&o(e.supply)&&l(e.discountPct)&&c(e)&&(t=e).splits.every(e=>(0,a.$t)(e,"percent"))&&100>=(0,a.II)(t.splits,"percent")&&u(e)&&Object.values(e.perChainSupply).every(e=>""===e.trim()||"unlimited"===e.trim()||o(e))}},78115:(e,t,n)=>{n.d(t,{T:()=>l});var r=n(74652),a=n(67758),s=n(83645),i=n(30220),o=n(64076);function l(e,t){let n=e.perChain[t]?.trim()||"",l=e.lockedUntil?Math.floor(new Date(e.lockedUntil).getTime()/1e3):0;if((0,a.UM)(e))return{projectId:(0,o.$d)(e),beneficiary:(0,s.l1)(e.beneficiary),preferAddToBalance:!1,lockedUntil:l,hook:(0,o.Ib)(t)};if("hook"===e.kind){let n=e.projectId.trim().replace("#","");return{projectId:n?BigInt(n):0n,beneficiary:(0,s.l1)(e.beneficiary)??r.X,preferAddToBalance:!1,lockedUntil:l,hook:"fundmarket"===e.hookKind?(0,i.Nf)(t):(0,s.l1)(e.hookAddress)}}if("project"===e.kind){let a=(n||e.projectId).trim().replace("#",""),i=e.perChainBeneficiary[t]?.trim()||e.beneficiary;return{projectId:BigInt(a),beneficiary:e.preferAddToBalance?(0,s.l1)(i)??r.X:(0,s.l1)(i),preferAddToBalance:e.preferAddToBalance,lockedUntil:l,hook:r.X}}return{projectId:0n,beneficiary:(0,s.l1)(n||e.recipient),preferAddToBalance:!1,lockedUntil:l,hook:r.X}}},85372:(e,t,n)=>{n.d(t,{$X:()=>l,Mw:()=>c,UP:()=>o,aZ:()=>u});var r=n(6353),a=n(58381),s=n(84428),i=n(18860);function o(e,t){if(!t)return!1;let n=r.PR["6"][a.VW.JBController][e];return!!n&&t.toLowerCase()===n.toLowerCase()}let l=/^[A-Z0-9]{1,8}$/;function c(){return(0,s.nj)(crypto.getRandomValues(new Uint8Array(32)))}function u(e,t){return(0,i.S)((0,s.nj)(`jb-erc20:${e.trim()}:${t.trim()}`))}},93723:(e,t,n)=>{n.d(t,{f:()=>r,p:()=>a});let r="Full token credit on split sales",a="Buyers get project tokens for their entire payment, even the portion an item routes to splits. When off, tokens are only issued for what stays in the project."},94768:(e,t,n)=>{n.d(t,{H:()=>a});var r=n(12115);function a(e,t,n=!0){(0,r.useEffect)(()=>{if(!n)return;let r=n=>{e.current?.contains(n.target)||t()};return document.addEventListener("pointerdown",r),()=>document.removeEventListener("pointerdown",r)},[n,t,e])}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.