PageSourceSearch

https://docs.hazbase.com/assets/SmartContracts-DG6Ao7Es.js

js hazbase.com collected 2026-10-05 06:32:35 UTC 26,755 bytes, 1 lines download raw bytes

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.