domainmodule

package
v0.0.0-...-5e0592e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2026 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RouteDomainV1Pricing        = string(contractroute.RouteDomainV1Pricing)
	RouteDomainV1Resolve        = string(contractroute.RouteDomainV1Resolve)
	RouteDomainV1Query          = string(contractroute.RouteDomainV1Query)
	RouteDomainV1Lock           = string(contractroute.RouteDomainV1Lock)
	RouteDomainV1ListOwned      = string(contractroute.RouteDomainV1ListOwned)
	RouteDomainV1SetTarget      = string(contractroute.RouteDomainV1SetTarget)
	RouteDomainV1RegisterSubmit = string(contractroute.RouteDomainV1RegisterSubmit)
)
View Source
const (
	ServiceTypeResolveName  = RouteDomainV1Resolve
	ServiceTypeQueryName    = RouteDomainV1Query
	ServiceTypeRegisterLock = RouteDomainV1Lock
	ServiceTypeSetTarget    = RouteDomainV1SetTarget
)
View Source
const (
	InternalAbilityID  = "bftp.domain@1"
	PublicCapabilityID = "domain"
	Version            = uint32(1)
)

Variables

This section is empty.

Functions

func BuildSignedEnvelopeOpReturnScript

func BuildSignedEnvelopeOpReturnScript(payload []byte) (*script.Script, error)

BuildSignedEnvelopeOpReturnScript 统一构造 domain 注册使用的完整签名原文 OP_RETURN。 设计说明: - 链上只接受完整签名原文,不做“部分字段”折中,避免验签语义被削弱; - 客户端与服务端都复用这套编码规则,防止一边能写一边读不出来。

func EnvelopeDigest

func EnvelopeDigest(fields []any) ([]byte, error)

func ExtractSignedEnvelopeOpReturnPayload

func ExtractSignedEnvelopeOpReturnPayload(lockingScript *script.Script) ([]byte, error)

ExtractSignedEnvelopeOpReturnPayload 提取完整签名原文 payload。 注意: - go-sdk 的 Chunks() 默认会把 OP_RETURN 后续原样塞进 RETURN chunk.Data,不适合这里; - 这里使用 ParseOps(),按真实 pushdata 逐段读取,再拼回完整原文。

func HandleNodeCall

func HandleNodeCall(ctx context.Context, rt NodeRouteRuntime, meta ncall.CallContext, req ncall.CallReq) (bool, ncall.CallResp, error)

HandleNodeCall 统一处理 domain.v1.* 的 node.call 路由。 注意: - 它只做共享分发,不直接调用 ncall.Register; - 真正把入口挂到宿主上的动作,仍由角色项目在自己的 run/register 阶段显式完成。

func MarshalQueryNameServicePayload

func MarshalQueryNameServicePayload(resp QueryNamePaidResp) ([]byte, error)

func MarshalRegisterLockServicePayload

func MarshalRegisterLockServicePayload(resp RegisterLockPaidResp) ([]byte, error)

func MarshalResolveNameServicePayload

func MarshalResolveNameServicePayload(resp ResolveNamePaidResp) ([]byte, error)

func MarshalSetTargetServicePayload

func MarshalSetTargetServicePayload(resp SetTargetPaidResp) ([]byte, error)

func NormalizeName

func NormalizeName(raw string) (string, error)

NormalizeName 按 ENSIP-15 统一名字。 设计说明: - 域名系统、客户端 locator、链上提交验证都必须共用同一规范化实现; - 这里不再保留旧 resolver 的 trim+lowercase 简化逻辑,避免未来状态键不一致; - 规范化失败直接拒绝,让错误尽早暴露,不让脏名字进入锁表和注册表。

func SignEnvelope

func SignEnvelope(fields []any, sign SignFunc) ([]byte, error)

func Spec

func Spec() caps.ModuleSpec

Types

type DomainPricingBody

type DomainPricingBody = contractmessage.DomainPricingBody

type ListOwnedReq

type ListOwnedReq = contractmessage.ListOwnedReq

type ListOwnedResp

type ListOwnedResp = contractmessage.ListOwnedResp

type NameRouteReq

type NameRouteReq = contractmessage.NameRouteReq

type NameTargetRouteReq

type NameTargetRouteReq = contractmessage.NameTargetRouteReq

type NodeRouteRuntime

NodeRouteRuntime 描述 domain.v1.* 公开 node.call 路由在角色侧需要注入的运行时。 设计说明: - modules.domain 只收口公开合同壳、解码和基础入参校验; - 具体业务处理、费用池扣费、持久化仍留在角色项目; - 这样后续 domain/gateway/client 若复用同一合同面,边界会更清楚。

type OwnedNameItem

type OwnedNameItem = contractmessage.OwnedNameItem

type QueryNamePaidReq

type QueryNamePaidReq = contractmessage.QueryNamePaidReq

type QueryNamePaidResp

type QueryNamePaidResp = contractmessage.QueryNamePaidResp

type RegisterLockPaidReq

type RegisterLockPaidReq = contractmessage.RegisterLockPaidReq

type RegisterLockPaidResp

type RegisterLockPaidResp = contractmessage.RegisterLockPaidResp

type RegisterQuoteFields

type RegisterQuoteFields struct {
	QuoteID                  string
	Name                     string
	OwnerPubkeyHex           string
	TargetPubkeyHex          string
	PayToAddress             string
	RegisterPriceSatoshi     uint64
	RegisterSubmitFeeSatoshi uint64
	TotalPaySatoshi          uint64
	LockExpiresAtUnix        int64
	TermSeconds              uint64
}

func (RegisterQuoteFields) Array

func (f RegisterQuoteFields) Array() []any

type RegisterReceiptFields

type RegisterReceiptFields struct {
	Name            string
	OwnerPubkeyHex  string
	TargetPubkeyHex string
	ExpireAtUnix    int64
	RegisterTxID    string
	IssuedAtUnix    int64
}

func (RegisterReceiptFields) Array

func (f RegisterReceiptFields) Array() []any

type RegisterSubmitReq

type RegisterSubmitReq = contractmessage.RegisterSubmitReq

type RegisterSubmitResp

type RegisterSubmitResp = contractmessage.RegisterSubmitResp

type ResolutionFields

type ResolutionFields struct {
	Name            string
	OwnerPubkeyHex  string
	TargetPubkeyHex string
	ExpireAtUnix    int64
	IssuedAtUnix    int64
}

func (ResolutionFields) Array

func (f ResolutionFields) Array() []any

type ResolveNamePaidReq

type ResolveNamePaidReq = contractmessage.ResolveNamePaidReq

type ResolveNamePaidResp

type ResolveNamePaidResp = contractmessage.ResolveNamePaidResp

type SetTargetPaidReq

type SetTargetPaidReq = contractmessage.SetTargetPaidReq

type SetTargetPaidResp

type SetTargetPaidResp = contractmessage.SetTargetPaidResp

type SignFunc

type SignFunc func([]byte) ([]byte, error)

type SignedEnvelope

type SignedEnvelope struct {
	Fields       []any
	SignatureHex string
}

SignedEnvelope 是链上 OP_RETURN 与链下 RPC 共用的完整签名原文。 JSON 线格式固定为:[[字段...], "signature_hex"]。

func VerifyEnvelope

func VerifyEnvelope(raw []byte, verify VerifyFunc) (SignedEnvelope, error)

func (SignedEnvelope) MarshalJSON

func (e SignedEnvelope) MarshalJSON() ([]byte, error)

func (*SignedEnvelope) UnmarshalJSON

func (e *SignedEnvelope) UnmarshalJSON(raw []byte) error

type VerifyFunc

type VerifyFunc func([]byte, []byte) (bool, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL