1import{u as N,b as S,j as e,L as o,a as C,r as v,S as P,A as c,d as b,C as y,c as K}from"./index-BAAzACLV.js";import{c as h}from"./contracts-CTO9MIBl.js";import A from"./reference-DLgAthYW.js";import I from"./NotFound-B7j0Y0Jd.js";const f=s=>`/smart-contracts/contracts/${s}`,D=s=>`${h.repository}/blob/${h.commit}/${s.source}`,u=A.packages.find(s=>s.id==="kit"),z=s=>`/reference/sdk/kit?symbol=${encodeURIComponent(s)}`,k=[["overview","å
¨ä½å","Overview"],["contracts","ã³ã³ãã©ã¯ãä¸è¦§","Contract catalog"],["classification","ç¨éããé¸ã¶","Choose by use case"],["security","権éã»éç¨è¨è¨","Permissions & operations"]];function w({ids:s}){return e.jsx("div",{className:"contract-links",children:s.map(t=>{const n=h.contracts.find(i=>i.id===t);return n?e.jsxs(o,{to:f(t),children:[n.name,e.jsx(c,{size:13,"aria-hidden":"true"})]},t):null})})}function M({t:s,copy:t}){const[n]=C(),[i,p]=v.useState(""),[r,l]=v.useState(h.categories.some(a=>a.id===n.get("category"))?n.get("category"):"all"),[d,g]=v.useState(!1),x=h.contracts.filter(a=>(r==="all"||a.category===r)&&(!d||a.core)&&[a.name,a.sourceName,...a.purpose,...a.use,...a.methods,a.helper??""].join(" ").toLowerCase().includes(i.trim().toLowerCase()));return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"contract-filters",role:"search","aria-label":s("ã³ã³ãã©ã¯ããæ¢ã","Find a contract"),children:[e.jsxs("label",{className:"contract-search",children:[e.jsx(P,{size:18,"aria-hidden":"true"}),e.jsx("input",{value:i,onChange:a=>p(a.target.value),"aria-label":s("ååã»ç¨éã»æä½åã§æ¤ç´¢","Search by name, purpose or operation"),placeholder:s("ååã»ç¨éã»æä½åã§æ¤ç´¢ï¼ä¾ï¼åµæ¨©ãmintï¼","Search by name, purpose or operation (e.g. debt, mint)")})]}),e.jsxs("div",{className:"contract-chips","aria-label":s("å½¹å²ã§çµãè¾¼ã¿","Filter by role"),children:[e.jsx("button",{type:"button","aria-pressed":r==="all",onClick:()=>l("all"),children:s("ãã¹ã¦","All")}),h.categories.map(a=>e.jsx("button",{type:"button","aria-pressed":r===a.id,onClick:()=>l(a.id),children:t(a.title)},a.id))]}),e.jsxs("div",{className:"contract-filter-summary",children:[e.jsx("p",{role:"status","aria-live":"polite",children:s(`${x.length} / ${h.contracts.length} ä»¶ã表示`,`${x.length} of ${h.contracts.length} contracts`)}),e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:d,onChange:a=>g(a.target.checked)}),s("主è¦ã³ã³ãã©ã¯ãã®ã¿","Core contracts only")]})]})]}),x.length===0?e.jsxs("div",{className:"contract-empty",children:[e.jsx("h2",{children:s("ä¸è´ããã³ã³ãã©ã¯ããããã¾ãã","No matching contracts")}),e.jsx("p",{children:s("ãã¼ã¯ã¼ããå¤ããããçµãè¾¼ã¿ãè§£é¤ããã¨ä¸è¦§ã«æ»ãã¾ãã","Try another keyword or reset the filters to see all contracts.")}),e.jsxs("button",{className:"dev-link",type:"button",onClick:()=>{p(""),l("all"),g(!1)},children:[s("çµãè¾¼ã¿ãè§£é¤","Reset filters"),e.jsx(c,{size:14})]})]}):h.categories.map(a=>{const j=x.filter(m=>m.category===a.id);return j.length?e.jsxs("section",{className:"contract-group",id:a.anchor,children:[e.jsxs("div",{className:"contract-group-heading",children:[e.jsx("h2",{children:t(a.title)}),e.jsx("p",{children:t(a.description)})]}),e.jsx("div",{className:"contract-list",children:j.map(m=>e.jsxs(o,{id:m.id,className:"contract-row",to:f(m.id),children:[e.jsxs("div",{children:[e.jsx("h3",{children:m.name}),e.jsx("span",{className:"contract-row-meta",children:m.helper?"@hazbase/kit":s("ã³ã³ãã©ã¯ã仿§","Contract source")})]}),e.jsx("p",{children:t(m.purpose)}),e.jsx(c,{size:18,"aria-hidden":"true"})]},m.id))})]},a.id):null}),e.jsxs("div",{className:"contract-next",children:[e.jsx("p",{children:s("çµã¿åããæ¹ãã確èªãããå ´åã¯ãç¨éå¥ã®æ§æã¨å®è£
ãã¿ã¼ã³ã¸é²ãã¾ãã","Explore use-case compositions and implementation patterns to see how these contracts work together.")}),e.jsxs(o,{className:"dev-link",to:"/smart-contracts/classification",children:[s("ç¨éããé¸ã¶","Choose by use case"),e.jsx(c,{size:15})]})]})]})}const F={weight:["æç¥¨è
ã®éã¿ãè¨ç®","Calculate voter weight"],quorum:["å®è¶³æ°ãè¨ç®","Calculate quorum"],minThreshold:["ææ¡ã®é¾å¤ãåå¾","Read the proposal threshold"],verifyProof:["証æã¨å
¬éå
¥åãæ¤è¨¼","Verify a proof and its public inputs"],registerKpi:["KPIã®å®ç¾©ãç»é²","Register a KPI definition"],pushKpiValue:["KPIã®å¤ãè¨é²","Record a KPI value"],kpiMeta:["KPIã®å®ç¾©æ
å ±ãåç
§","Read KPI metadata"],listProjectKpis:["ããã¸ã§ã¯ãã®KPIä¸è¦§ãåå¾","List project KPIs"],getReserves:["ãã¼ã«ã®æºåæ®é«ãåå¾","Read pool reserves"],quoteOut:["交ææã®ååé¡ãè¦ç©ãã","Quote swap output"],swapExactToken0ForToken1:["token0ããtoken1ã¸äº¤æ","Swap token0 for token1"],updateParams:["ãã¼ã«ã®å¶å¾¡ãã©ã¡ã¼ã¿ãæ´æ°","Update pool control parameters"],swapExactTokensForTokens:["æå®ããçµè·¯ã§ãã¼ã¯ã³ã交æ","Swap tokens along a path"],addLiquidity:["ãã¼ã«ã«æµåæ§ã追å ","Add pool liquidity"],removeLiquidity:["ãã¼ã«ããæµåæ§ãå¼ãåºã","Remove pool liquidity"],quoteExactTokensForTokens:["交æçµè·¯ã®ååé¡ãè¦ç©ãã","Quote output along a swap path"],createPool:["ãã¼ã¯ã³ãã¢ã®ãã¼ã«ãçæ","Create a token-pair pool"],getPool:["ãã¼ã¯ã³ãã¢ã®ãã¼ã«ãæ¤ç´¢","Find a token-pair pool"],setDefaults:["æ°è¦ãã¼ã«ã®åæè¨å®ãæ´æ°","Update defaults for new pools"],getImplementationByVersion:["æå®ãã¼ã¸ã§ã³ã®å®è£
ãåå¾","Read a versioned implementation"],deployContractByVersion:["æå®ãã¼ã¸ã§ã³ã§çæã»åæå","Deploy and initialize a specified version"],getImplementationPolicy:["å®è£
ã®çæããªã·ã¼ãåç
§","Read an implementationâs deployment policy"],execute:["æ¿èªãããå¼ã³åºããå®è¡","Execute an authorized call"],executeBatch:["è¤æ°ã®å¼ã³åºãã䏿¬å®è¡","Execute a batch of calls"],grantSessionKey:["ã»ãã·ã§ã³ãã¼ã®å©ç¨æ¡ä»¶ãè¨å®","Configure session-key permissions"],revokeSessionKey:["ã»ãã·ã§ã³ãã¼ã失å¹","Revoke a session key"],predictAddress:["çæãããã¦ã©ã¬ããã¢ãã¬ã¹ãäºæ¸¬","Predict a wallet address"],createAccount:["ã¦ã©ã¬ãããçæã»åæå","Create and initialize a wallet"]};function T({item:s,t,copy:n}){const i=u.entries.find(r=>r.name===s.helper),p=b.find(r=>r[0]===s.pattern);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dev-meta",children:[e.jsx("span",{children:n(h.categories.find(r=>r.id===s.category).title)}),e.jsxs("span",{children:[s.sourceName,".sol"]}),i&&e.jsxs("span",{children:[u.name,"@",u.version]})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"role",children:t("å½¹å²ã¨ä½¿ãã©ãã","Role and use")}),e.jsx("p",{children:n(s.use)}),e.jsxs("div",{className:"dev-callout",children:[e.jsx("strong",{children:t("æ¥ç¶ã»è¨å®ã®ãã¤ã³ã","Integration considerations")}),n(s.note)]})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"operations",children:i?t("主è¦ãªSDKæä½","Key SDK operations"):t("主è¦ãªã³ã³ãã©ã¯ãæä½","Key contract operations")}),i?e.jsxs(e.Fragment,{children:[e.jsx("p",{children:t(`${u.name}@${u.version}ã®${i.name}ããå©ç¨ããæä½ã§ãã以ä¸ã¯ã¡ã½ããã®åå®ç¾©ã§ãã弿°ã®æ§é ã¨å
¨æä½ã¯SDKãªãã¡ã¬ã³ã¹ã§ç¢ºèªã§ãã¾ãã`,`These operations are exposed by ${i.name} in ${u.name}@${u.version}. The signatures below are type definitions; see the SDK reference for parameter structures and the complete interface.`)}),e.jsx(y,{language:"typescript",code:`import { ${i.name} } from '${i.imports[0]}';`}),e.jsx("div",{className:"contract-methods",children:s.methods.map(r=>{const l=i.methods.find(d=>d.name===r);return l?e.jsxs("div",{children:[e.jsx("h3",{children:e.jsx("code",{children:r})}),e.jsx(y,{language:"typescript",code:l.signature})]},r):null})}),e.jsxs(o,{className:"dev-link",to:z(i.name),children:[t("弿°ã»æ»ãå¤ã»å
¨ã¡ã½ãããè¦ã","View parameters, return types and all methods"),e.jsx(c,{size:15})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{children:t("ã³ã³ãã©ã¯ããç´æ¥å¼ã³åºãå ´åã®ä¸»è¦ãªå
¥å£ã§ãã弿°ã»åã»ã¢ã¯ã»ã¹æ¡ä»¶ã¯ããªã³ã¯å
ã
1®å®è£
ã¨å¯¾å¿ããABIã§ç¢ºèªã§ãã¾ãã","Key entry points for direct contract calls. Consult the linked implementation and matching ABI for parameters, types and access conditions.")}),e.jsx("div",{className:"dev-table-wrap",children:e.jsxs("table",{className:"dev-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:t("æä½","Operation")}),e.jsx("th",{scope:"col",children:t("ç¨é","Purpose")})]})}),e.jsx("tbody",{children:s.methods.map(r=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:r})}),e.jsx("td",{children:n(F[r])})]},r))})]})}),s.id==="contract-factory"&&e.jsxs(o,{className:"dev-link",to:"/reference/sdk/factory?symbol=deployViaFactory",children:[t("Factory SDKããã®çææ¹æ³","Deployment with the Factory SDK"),e.jsx(c,{size:15})]}),s.category==="account"&&e.jsxs(o,{className:"dev-link",to:"/reference/http",children:[t("Wallet APIã§ã®çµã¿è¾¼ã¿æ¹æ³","Integrate through the Wallet API"),e.jsx(c,{size:15})]}),s.id==="verifier"&&e.jsxs(o,{className:"dev-link",to:"/reference/sdk/zk",children:[t("証æçæã»ZKã®SDK仿§","Proof generation and ZK SDK reference"),e.jsx(c,{size:15})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"composition",children:t("çµã¿åãããã³ã³ãã©ã¯ã","Related contracts")}),e.jsx("div",{className:"contract-related",children:s.related.map(r=>{const l=h.contracts.find(d=>d.id===r);return e.jsxs(o,{to:f(r),children:[e.jsxs("strong",{children:[l.name,e.jsx(c,{size:14,"aria-hidden":"true"})]}),e.jsx("p",{children:n(l.purpose)})]},r)})})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"implementation",children:t("å®è£
ã«ã¤ãªãã","Put it into practice")}),e.jsxs(o,{className:"dev-card",to:`/patterns/${p[0]}`,children:[e.jsx("h3",{children:t(p[1],p[2])}),e.jsx("p",{children:t("ãã¼ã¿ã®æã¡æ¹ãå¦çã®é åºãSDKã³ã¼ããéãã¦ãã¢ããªã±ã¼ã·ã§ã³ã¸ã®çµã¿è¾¼ã¿æ¹ã確èªã§ãã¾ãã","See the data model, processing sequence and SDK code for an application-level implementation.")}),e.jsxs("span",{className:"dev-link",children:[t("å®è£
ãã¿ã¼ã³ãèªã","Read the implementation pattern"),e.jsx(c,{size:15})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"source",children:t("仿§ã¨ã½ã¼ã¹ã³ã¼ã","Specification and source")}),e.jsx("p",{children:t("æ²è¼ããSolidityã½ã¼ã¹ã¯ä¸è¨ã®ãªãã¸ã§ã³ãåç
§ãã¦ãã¾ããSDKã®å¯¾å¿ãã¼ã¸ã§ã³ã¨ãæ¥ç¶å
ãããã¯ã¼ã¯ã®å®è£
ã¢ãã¬ã¹ã»ABIãåããã¦åç
§ã§ãã¾ãã","The Solidity source is pinned to the revision below. Match it with the SDK version and your networkâs implementation address and ABI.")}),e.jsxs("a",{className:"dev-link contract-source",href:D(s),target:"_blank",rel:"noreferrer",children:[s.source,e.jsx(K,{size:15})]}),e.jsxs("p",{className:"contract-revision",children:[t("ã½ã¼ã¹ãªãã¸ã§ã³","Source revision"),": ",e.jsx("code",{children:h.commit.slice(0,7)})]})]}),e.jsxs("div",{className:"contract-next",children:[e.jsxs(o,{className:"dev-link",to:"/smart-contracts/contracts",children:["â ",t("ã³ã³ãã©ã¯ãä¸è¦§ã«æ»ã","Back to the contract catalog")]}),e.jsxs(o,{className:"dev-link",to:"/smart-contracts/security",children:[t("権éã»éç¨è¨è¨","Permissions & operations"),e.jsx(c,{size:15})]})]})]})}const R=[{pattern:"assets",ids:["privilege-nft","flexible-token","agreement-manager","whitelist"],description:["åä½ãèå¥ãããªãPrivilegeNFTãæ°éã§æåã表ããªãFlexibleTokenãé¸ã³ã¾ããå弿¡ä»¶ã®åæã«AgreementManagerãåå æ¡ä»¶ã«Whitelistãçµã¿åããã¾ãã","Use PrivilegeNFT for individual identities or FlexibleToken for fungible units. Add AgreementManager for bilateral offers and Whitelist for eligibility."]},{pattern:"finance",ids:["bond-token","debt-manager","splitter"],description:["BondTokenã§æ¡ä»¶ã¨çºè¡åä½ãåããDebtManagerã§å©æãã»å
æ¬ã»è«æ±ã管çãã¾ããéå¶è
ãæºåéã¸ã®è³éé
åã«ã¯Splitterãçµã¿åããããã¾ãã","Use BondToken for classes and issuance units, DebtManager for coupons, principal and claims, and Splitter for routing funds to operators or reserves."]},{pattern:"access",ids:["privilege-edition","privilege-nft","whitelist"],description:["è¤æ°æã®å©ç¨å¸ãªãPrivilegeEditionãä¸ã¤ãã¤èå¥ããè³æ ¼ãªãPrivilegeNFTã使ãã¾ããã¢ããªã±ã¼ã·ã§ã³å´ã®å©ç¨å¤å®ã¨ãå¿
è¦ã«å¿ããredeemå¦çã飿ºãã¾ãã","Use PrivilegeEdition for multiple passes or PrivilegeNFT for individual credentials. Connect application access checks to redemption where appropriate."]},{pattern:"governance",ids:["flexible-token","generic-governor","strategy","timelock-controller"],description:["æç¥¨ãã¼ã¯ã³ãGenericGovernorã«æ¥ç¶ããStrategyã
1§ç¥¨ã®éã¿ãå®ç¾©ãã¾ãã坿±ºå¾ã¯TimelockControllerãä»ãã¦æä½ãå®è¡ãã¾ãã","Connect a voting token to GenericGovernor, define vote weights with Strategy, then execute approved actions through TimelockController."]},{pattern:"payments",ids:["smart-account","account-factory","market-manager","splitter"],description:["SmartAccountã¨Wallet APIãæ±ºæ¸ã®å
¥å£ã«ä½¿ãã¾ãããã¼ã¯ã³å£²è²·ãæ±ãå ´åã¯MarketManagerãåé è³éãè¤æ°ã®å®å
ã¸åããå ´åã¯Splitterãçµã¿åããã¾ãã","Use SmartAccount and the Wallet API for payment initiation. Add MarketManager for token trades or Splitter when receipts need multiple destinations."]},{pattern:"evidence",ids:["multi-trust-credential","verifier","kpi-registry"],description:["ææ¨ã¨è³æ ¼ãMultiTrustCredentialã§æ±ããå¿
è¦ãªæ¡ä»¶ã ãã証æããå ´åã¯å¯¾å¿ããVerifierãçµã¿åããã¾ããKPIã®æç³»åè¨é²ã«ã¯KpiRegistryãåç
§ã§ãã¾ãã","Use MultiTrustCredential for metrics and credentials, with a matching Verifier when proving conditions. Consult KpiRegistry for project KPI updates."]}];function B({t:s,copy:t}){return e.jsxs(e.Fragment,{children:[R.map((n,i)=>{const p=b.find(r=>r[0]===n.pattern);return e.jsxs("section",{className:"contract-use-case",children:[e.jsxs("div",{className:"contract-section-number",children:["0",i+1]}),e.jsxs("div",{children:[e.jsx("h2",{id:n.pattern,children:s(p[1],p[2])}),e.jsx("p",{children:t(n.description)}),e.jsx(w,{ids:n.ids}),e.jsxs(o,{className:"dev-link",to:`/patterns/${n.pattern}`,children:[s("ãã¼ã¿è¨è¨ã»å¦çããã¼ã»ã³ã¼ããè¦ã","See the data model, flow and code"),e.jsx(c,{size:15})]})]})]},n.pattern)}),e.jsxs("div",{className:"dev-callout",children:[e.jsx("strong",{children:s("æ§æã«å¿ãã¦è¿½å ããæ©è½","Additional components")}),s("ãã¼ã«åã®äº¤æã«ã¯CircuitBreakerAMMã»AMMRouterã»AMMFactoryãé å
¥ã¨å ±é
¬ã«ã¯Stakingãè¤æ°ç³»çµ±ã®æç¥¨ã«ã¯MetaGovernorãé¸ã¹ã¾ããå
±éã®éç¨æ©è½ã«ã¯ContractFactoryã¨EmergencyPauseManagerãããã¾ãã","Choose CircuitBreakerAMM, AMMRouter and AMMFactory for pool-based swaps, Staking for deposits and rewards, and MetaGovernor for multiple voting chambers. ContractFactory and EmergencyPauseManager support deployment and operations.")]}),e.jsxs(o,{className:"dev-link",to:"/smart-contracts/contracts",children:[s("ãã¹ã¦ã®ã³ã³ãã©ã¯ããè¦ã","Browse all contracts"),e.jsx(c,{size:15})]})]})}function $({t:s,copy:t}){const n=[["ã¢ããªã±ã¼ã·ã§ã³ã»æ¥åãã¼ã¿","Application & business data","è¨åIDãå¥ç´æ¸ã審æ»çµæãªã©ã管çãããã¼ã¯ã³ã®IDã»ã¢ãã¬ã¹ã¨å¯¾å¿ã¥ãã¾ãã","Maintain asset IDs, agreements and review outcomes, mapped to token IDs and addresses."],["APIã»SDK","APIs & SDKs","Wallet APIã§æ¿èªã¨éä¿¡ãæ±ããSDKã§å¼æ°ã®çµã¿ç«ã¦ãã³ã³ãã©ã¯ãã®èªã¿æ¸ããè¡ãã¾ãã","Use the Wallet API for approval and submission, and SDKs to prepare arguments and read or write contracts."],["ã¹ãã¼ãã³ã³ãã©ã¯ã","Smart contracts","æ®é«ãç§»è»¢ãææ¡ãè«æ±ãªã©ã®ç¶æ
ããã³ã³ãã©ã¯ããã¨ã®æ¨©éã¨æ¡ä»¶ã«å¾ã£ã¦æ´æ°ãã¾ãã","Update balances, transfers, proposals and claims under each contractâs permissions and rules."],["確å®çµæã»ã¤ãã³ã","Confirmed results & events","確å®ãããã©ã³ã¶ã¯ã·ã§ã³ã¨ã¤ãã³ããåå¾ããç»é¢ãæ¥åå°å¸³ã¸åæ ãã¾ãã","Read confirmed transactions and events, then reconcile application screens and business records."]];return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dev-actions",children:[e.jsxs(o,{className:"dev-button",to:"/smart-contracts/contracts",children:[s("ã³ã³ãã©ã¯ããæ¢ã","Browse contracts"),e.jsx(c,{size:15})]}),e.jsxs(o,{className:"dev-link",to:"/smart-contracts/classification",children:[s("ç¨éå¥ã®æ§æãè¦ã","Explore use-case compositions"),e.jsx(c,{size:15})]})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"architecture",children:s("ã¢ããªã±ã¼ã·ã§ã³ã¨ã®æ¥ç¶","How the application connects")}),e.jsx("p",{children:s("hazBaseã®ã¹ãã¼ãã³ã³ãã©ã¯ãã¯ã権å©ã®çºè¡ã»ç§»è»¢ããåå¼ãè°æ±ºãè³éé
åã¾ã§ãå½¹å²å¥ã«çµã¿åãããé¨åã§ããæ¥åãã¼ã¿ã¨ãªã³ãã§ã¼ã³ã®ç¶æ
ããAPIã»SDKã¨ç¢ºå®çµæãä»ãã¦ã¤ãªãã¾ãã","hazBase contracts are composable components for issuance, transfers, markets, governance and fund routing. Connect business records to on-chain state through APIs, SDKs and confirmed results.")}),e.jsx("ol",{className:"contract-flow",children:n.map((i,p)=>e.jsxs("li",{children:[e.jsxs("span",{children:["0",p+1]}),e.jsxs("div",{children:[e.jsx("h3",{children:s(i[0],i[1])}),e.jsx("p",{children:s(i[2],i[3])})]})]},i[1]))})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"roles",children:s("å
ã¤ã®å½¹å²","Six roles")}),e.jsx("div",{className:"dev-grid",children:h.categories.map(i=>e.jsxs(o,{className:"dev-card",to:`/smart-contracts/contracts?category=${i.id}`,children:[e.jsx("h3",{children:t(i.title)}),e.jsx("p",{children:t(i.description)}),e.jsxs("span",{className:"dev-link",children:[s("ã³ã³ãã©ã¯ããè¦ã","Browse contracts"),e.jsx(c,{size:14})]})]},i.id))})]}),e.jsxs("section",{children:[e.jsx("h2",{id:"first-integration",children:s("æåã®å®è£
ã«åãã¦","Start an implementation")}),e.jsx("p",{children:s("ã¾ãç¨éã«åããã¼ã¯ã³ãé¸ã³ãæ¥ç¶ãããã¯ã¼ã¯ã»ã³ã³ãã©ã¯ãã¢ãã¬ã¹ã»ABIã»ç½²åè
ã確èªããã¨ãèªã¿åãããå°ããªæä½ã¸æ®µéçã«é²ãããã¾ãã","Choose a token model, then identify the network, contract address, ABI and signer. Begin with reads before submitting a small transaction.")}),e.jsxs("div",{className:"dev-actions",children:[e.jsxs(o,{className:"dev-link",to:"/start/day0",children:[s("ã¯ã¤ãã¯ã¹ã¿ã¼ã","Quickstart"),e.jsx(c,{size:15})]}),e.jsxs(o,{className:"dev-link",to:"/guides/environments",children:[s("ç°å¢ã¨æ¥ç¶æ
å ±","Environments & connections"),e.jsx(c,{size:15})]}),e.jsxs(o,{className:"dev-link",to:"/reference/sdk/kit",children:[s("SDKãªãã¡ã¬ã³ã¹","SDK reference"),e.jsx(c,{size:15})]})]})]})]})}function E({t:s}){const t=[{id:"permissions",title:["æä½ã®æ¨©éãåãã","Separate operation permissions"],body:["çºè¡ãè¨å®å¤æ´ã忢ãªã©ã®æä½ã¯ãã³ã³ãã©ã¯ããã¨ã®ãã¼ã«ãææè
æ¡ä»¶ã§å¶å¾¡ããã¾ããã¢ããªã±ã¼ã·ã§ã³ã®ãã°ã¤ã³æ¨©éã¨ããã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ã§ãããªã³ãã§ã¼ã³æ¨©éã対å¿ã¥ãã¾ãã","Issuance, configuration and pausing depend on each contractâs roles or ownership conditions. Map application access to the actual on-chain execution permissions."],note:["管çè
ãéå¸¸ã®æä½æ
å½è
ãç·æ¥åæ¢æ
å½è
ã®ã¢ãã¬ã¹ã¨æ¨©éãè¨é²ãã¾ãã対象ã®ãã¼ã«åã»ç®¡çé¢ä¿ã»åæ¶æ¹æ³ã¯åã½ã¼ã¹ã§ç¢ºèªã§ãã¾ãã","Record administrator, routine operator and incident-response addresses and permissions. Consult each source for role identifiers, administration and revocation."],ids:["whitelist","generic-governor","timelock-controller"]},{id:"deployment",title:["å®è£
ã»åæåã»ãã¼ã¸ã§ã³ã対å¿ã¥ãã","Align implementation, initialization and version"],body:["ãããã¯ã¼ã¯ãå®è£
ã¢ãã¬ã¹ãçæãããã¢ãã¬ã¹ãåæè¨å®ãä¸çµã¨ãã¦ç®¡çãã¾ããContractFactoryããã®çæã§ã¯ãå®è£
ã®ææè
ã»ç¨®é¡ã»ãã¼ã¸ã§ã³ã¨åæåãã¼ã¿ãå¯¾è±¡ãæ±ºãã¾ãã","Track the network, implementation address, deployed address and initial configuration together. Factory deployment selects an implementation owner, type, version and initialization data."],note:["æ°ããå®è£
ã®ç»é²ã ãã§æ¢åã³ã³ãã©ã¯ããæ´æ°ãããããã§ã¯ããã¾ãããã¯ãã¼ã³ããããã·ã®æ¹å¼ã«åããã¦ãæ´æ°ã®å¯å¦ã¨æ¨©éã確èªãã¾ãã","Registering a new implementation does not update existing contracts. Check update capabilities and authority against the actual clone or proxy architecture."],ids:["contract-factory","account-factory"]},{id:"signatures",title:["ç½²åããå¯¾è±¡ã¨æå¹ç¯å²ã確èªãã","Scope signatures and delegated actions"],body:["ç½²åä»ããªãã¡ã¼ããã¦ãã£ã¼ã§ã¯ã対象ã³ã³ãã©ã¯ãããããã¯ã¼ã¯ãnonceãæéã対å¿ã¥ãã¾ããSmartAccountã®ã»ãã·ã§ã³ãã¼ã§ã¯ã許å¯ããå¯¾è±¡ã¨æä½ãå¶éã§ãã¾ãã","For signed offers and vouchers, align contract, network, nonce and expiry. SmartAccount session keys can constrain target contracts and allowed operations."],note:["ç½²åã®æ¿èªãéä¿¡ã確å®ãå¥ã®ç¶æ
ã§è¨é²ããã¨ãæéåããåéæã®å¯¾å¿ã
1æç¢ºã«ãªãã¾ãã確å®åã«åãæ¥åå¦çãéè¤ãã¦å®äºãããªããããæä½IDã管çãã¾ãã","Track approval, submission and confirmation separately to handle expiry and retries. Use operation IDs to prevent duplicate completion of the same business action."],ids:["agreement-manager","bond-token","smart-account"]},{id:"incident",title:["忢ã»åéã¨è¨é²ã®ç
§åãéç¨ã«çµã¿è¾¼ã","Plan pausing, recovery and reconciliation"],body:["EmergencyPauseManagerã¯ç»é²å¯¾è±¡ã¸ã®åæ¢ã»åéãã¾ã¨ãã¦å®è¡ãã¾ãã対象ã«ãã£ã¦å¤±æããå ´åããããããæä½ã®éä¿¡çµæã ãã§ãªãåå¥ã®ç¶æ
ã¨ã¤ãã³ããç
§åãã¾ãã","EmergencyPauseManager coordinates pause and resume calls for registered targets. Because individual calls can fail, reconcile target states and events rather than relying solely on submission success."],note:["忢ä¸ã«å©ç¨ã§ããæä½ãåéã®å¤æè
ãæ¥åå°å¸³ã¨æ®é«ã®ç
§åæ¹æ³ãå®ãã¾ãã忢ã¯ç¢ºå®æ¸ã¿ã®å¦çãåãæ¶ããã®ã§ã¯ããã¾ããã","Define operations available while paused, who authorizes resumption and how records are reconciled with balances. Pausing does not reverse confirmed transactions."],ids:["emergency-pause-manager","debt-manager","market-manager"]}];return e.jsxs(e.Fragment,{children:[t.map((n,i)=>e.jsxs("section",{className:"contract-use-case",children:[e.jsxs("div",{className:"contract-section-number",children:["0",i+1]}),e.jsxs("div",{children:[e.jsx("h2",{id:n.id,children:s(n.title[0],n.title[1])}),e.jsx("p",{children:s(n.body[0],n.body[1])}),e.jsx("p",{children:s(n.note[0],n.note[1])}),e.jsx(w,{ids:n.ids})]})]},n.id)),e.jsxs("div",{className:"contract-next",children:[e.jsxs(o,{className:"dev-link",to:"/guides/production",children:[s("å°å
¥ã»éç¨ã¬ã¤ã","Deployment & operations guide"),e.jsx(c,{size:15})]}),e.jsxs(o,{className:"dev-link",to:"/guides/troubleshooting",children:[s("ã¨ã©ã¼ã¨ãã©ãã«å¯¾å¿","Errors & troubleshooting"),e.jsx(c,{size:15})]})]})]})}function L(){const{tab:s,contractId:t}=N(),n=t?"contracts":s??"overview",{i18n:i}=S(),p=!i.language.startsWith("en"),r=(a,j)=>p?a:j,l=a=>a[p?0:1],d=t?h.contracts.find(a=>a.id===t):void 0;if(!k.some(a=>a[0]===n)||t&&!d)return e.jsx(I,{});const g={overview:["ã¹ãã¼ãã³ã³ãã©ã¯ã","Smart contracts"],contracts:["ã³ã³ãã©ã¯ãä¸è¦§","Contract catalog"],classification:["ç¨éããã³ã³ãã©ã¯ããé¸ã¶","Choose contracts by use case"],security:["権éã»éç¨è¨è¨","Permissions & operations"]},x={overview:["権å©ã®çºè¡ãåå¼ãè°æ±ºãè³éé
åãå¿
è¦ãªå½¹å²ãçµã¿åããã¦ãã¢ããªã±ã¼ã·ã§ã³ãæ§æã§ãã¾ãã","Compose issuance, markets, governance and fund routing into your application."],
1contracts:["å½¹å²ã¨ç¨éããã³ã³ãã©ã¯ããæ¢ãã¾ããåãã¼ã¸ã«ä¸»è¦ãªæä½ãé¢é£SDKãã½ã¼ã¹ã³ã¼ããã¾ã¨ãã¦ãã¾ãã","Find contracts by role and purpose. Each page brings together key operations, related SDKs and source code."],classification:["å®ç¾ãããæ©è½ãããã³ã³ãã©ã¯ãã®çµã¿åããã¨å
·ä½çãªå®è£
ãã¿ã¼ã³ã確èªã§ãã¾ãã","Start with the feature you want to build, then explore the contract composition and an implementation pattern."],security:["ç½²åè
ãæä½æ¨©éãå®è£
ãã¼ã¸ã§ã³ã忢æã®å¯¾å¿ãã¢ããªã±ã¼ã·ã§ã³ã¨ã³ã³ãã©ã¯ããã¤ãªãéç¨ã®è¦ç¹ãæ´çãã¾ãã","Connect application operations to signers, contract permissions, implementation versions and incident handling."]};return e.jsxs("article",{className:"dev-page contracts-page",children:[e.jsx("div",{className:"dev-eyebrow",children:"SMART CONTRACTS"}),d&&e.jsxs(o,{className:"dev-link contract-back",to:"/smart-contracts/contracts",children:["â ",r("ã³ã³ãã©ã¯ãä¸è¦§","Contract catalog")]}),e.jsx("h1",{children:d?d.name:l(g[n])}),e.jsx("p",{className:"dev-lead",children:l(d?d.purpose:x[n])}),e.jsx("nav",{className:"contract-nav","aria-label":r("ã¹ãã¼ãã³ã³ãã©ã¯ãå
ã®ãã¼ã¸","Smart contract pages"),children:k.map(([a,j,m])=>e.jsx(o,{to:`/smart-contracts/${a}`,"aria-current":n===a?"page":void 0,children:r(j,m)},a))}),d?e.jsx(T,{item:d,t:r,copy:l}):n==="contracts"?e.jsx(M,{t:r,copy:l}):n==="classification"?e.jsx(B,{t:r,copy:l}):n==="security"?e.jsx(E,{t:r}):e.jsx($,{t:r,copy:l})]})}export{L as default};
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.