domainmodule

package
v0.0.0-...-799727d Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	ProtoResolveNamePaid protocol.ID = "/bsv-transfer/domain/resolve_name_paid/1.0.0"
	ProtoQueryNamePaid   protocol.ID = "/bsv-transfer/domain/query_name_paid/1.0.0"
	ProtoRegisterLock    protocol.ID = "/bsv-transfer/domain/register_lock_paid/1.0.0"
	ProtoRegisterSubmit  protocol.ID = "/bsv-transfer/domain/register_submit/1.0.0"
	ProtoSetTargetPaid   protocol.ID = "/bsv-transfer/domain/set_target_paid/1.0.0"
)
View Source
const (
	RouteDomainV1Pricing        = "domain.v1.pricing"
	RouteDomainV1Resolve        = "domain.v1.resolve"
	RouteDomainV1Query          = "domain.v1.query"
	RouteDomainV1Lock           = "domain.v1.lock"
	RouteDomainV1ListOwned      = "domain.v1.list_owned"
	RouteDomainV1SetTarget      = "domain.v1.set_target"
	RouteDomainV1RegisterSubmit = "domain.v1.register_submit"
)
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 struct {
	ResolveFeeSatoshi        uint64 `protobuf:"varint,1,opt,name=resolve_fee_satoshi,json=resolveFeeSatoshi,proto3" json:"resolve_fee_satoshi"`
	QueryFeeSatoshi          uint64 `protobuf:"varint,2,opt,name=query_fee_satoshi,json=queryFeeSatoshi,proto3" json:"query_fee_satoshi"`
	RegisterLockFeeSatoshi   uint64 `protobuf:"varint,3,opt,name=register_lock_fee_satoshi,json=registerLockFeeSatoshi,proto3" json:"register_lock_fee_satoshi"`
	RegisterSubmitFeeSatoshi uint64 `` /* 128-byte string literal not displayed */
	SetTargetFeeSatoshi      uint64 `protobuf:"varint,5,opt,name=set_target_fee_satoshi,json=setTargetFeeSatoshi,proto3" json:"set_target_fee_satoshi"`
	RegisterPriceSatoshi     uint64 `protobuf:"varint,6,opt,name=register_price_satoshi,json=registerPriceSatoshi,proto3" json:"register_price_satoshi"`
}

func (*DomainPricingBody) ProtoMessage

func (*DomainPricingBody) ProtoMessage()

func (*DomainPricingBody) Reset

func (m *DomainPricingBody) Reset()

func (*DomainPricingBody) String

func (m *DomainPricingBody) String() string

type ListOwnedReq

type ListOwnedReq struct {
	OwnerPubkeyHex string `protobuf:"bytes,1,opt,name=owner_pubkey_hex,json=ownerPubkeyHex,proto3" json:"owner_pubkey_hex,omitempty"`
	Limit          uint32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
}

func (*ListOwnedReq) ProtoMessage

func (*ListOwnedReq) ProtoMessage()

func (*ListOwnedReq) Reset

func (m *ListOwnedReq) Reset()

func (*ListOwnedReq) String

func (m *ListOwnedReq) String() string

type ListOwnedResp

type ListOwnedResp struct {
	Success        bool             `protobuf:"varint,1,opt,name=success,proto3" json:"success"`
	Status         string           `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	OwnerPubkeyHex string           `protobuf:"bytes,3,opt,name=owner_pubkey_hex,json=ownerPubkeyHex,proto3" json:"owner_pubkey_hex"`
	Items          []*OwnedNameItem `protobuf:"bytes,4,rep,name=items,proto3" json:"items,omitempty"`
	Total          int32            `protobuf:"varint,5,opt,name=total,proto3" json:"total"`
	Error          string           `protobuf:"bytes,6,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	QueriedAtUnix  int64            `protobuf:"varint,7,opt,name=queried_at_unix,json=queriedAtUnix,proto3" json:"queried_at_unix,omitempty"`
}

func (*ListOwnedResp) ProtoMessage

func (*ListOwnedResp) ProtoMessage()

func (*ListOwnedResp) Reset

func (m *ListOwnedResp) Reset()

func (*ListOwnedResp) String

func (m *ListOwnedResp) String() string

type NameRouteReq

type NameRouteReq struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
}

func (*NameRouteReq) ProtoMessage

func (*NameRouteReq) ProtoMessage()

func (*NameRouteReq) Reset

func (m *NameRouteReq) Reset()

func (*NameRouteReq) String

func (m *NameRouteReq) String() string

type NameTargetRouteReq

type NameTargetRouteReq struct {
	Name            string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	TargetPubkeyHex string `protobuf:"bytes,2,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex"`
}

func (*NameTargetRouteReq) ProtoMessage

func (*NameTargetRouteReq) ProtoMessage()

func (*NameTargetRouteReq) Reset

func (m *NameTargetRouteReq) Reset()

func (*NameTargetRouteReq) String

func (m *NameTargetRouteReq) String() string

type NodeRouteRuntime

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

type OwnedNameItem

type OwnedNameItem struct {
	Name            string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	OwnerPubkeyHex  string `protobuf:"bytes,2,opt,name=owner_pubkey_hex,json=ownerPubkeyHex,proto3" json:"owner_pubkey_hex"`
	TargetPubkeyHex string `protobuf:"bytes,3,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex"`
	ExpireAtUnix    int64  `protobuf:"varint,4,opt,name=expire_at_unix,json=expireAtUnix,proto3" json:"expire_at_unix"`
	RegisterTxID    string `protobuf:"bytes,5,opt,name=register_txid,json=registerTxid,proto3" json:"register_txid,omitempty"`
	UpdatedAtUnix   int64  `protobuf:"varint,6,opt,name=updated_at_unix,json=updatedAtUnix,proto3" json:"updated_at_unix,omitempty"`
}

func (*OwnedNameItem) ProtoMessage

func (*OwnedNameItem) ProtoMessage()

func (*OwnedNameItem) Reset

func (m *OwnedNameItem) Reset()

func (*OwnedNameItem) String

func (m *OwnedNameItem) String() string

type QueryNamePaidReq

type QueryNamePaidReq struct {
	ClientID string `protobuf:"bytes,1,opt,name=client_pubkey_hex,json=clientId,proto3" json:"client_pubkey_hex"`

	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`

	SpendTxID           string `protobuf:"bytes,3,opt,name=spend_txid,json=spendTxid,proto3" json:"spend_txid"`
	SequenceNumber      uint32 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number"`
	ServerAmount        uint64 `protobuf:"varint,5,opt,name=server_amount,json=serverAmount,proto3" json:"server_amount"`
	ChargeAmountSatoshi uint64 `protobuf:"varint,6,opt,name=charge_amount_satoshi,json=chargeAmountSatoshi,proto3" json:"charge_amount_satoshi"`
	Fee                 uint64 `protobuf:"varint,7,opt,name=fee,proto3" json:"fee"`
	ClientSignature     []byte `protobuf:"bytes,8,opt,name=client_signature,json=clientSignature,proto3" json:"client_signature"`
	ChargeReason        string `protobuf:"bytes,9,opt,name=charge_reason,json=chargeReason,proto3" json:"charge_reason,omitempty"`
	ProofIntent         []byte `protobuf:"bytes,10,opt,name=proof_intent,json=proofIntent,proto3" json:"proof_intent,omitempty"`
	SignedProofCommit   []byte `protobuf:"bytes,11,opt,name=signed_proof_commit,json=signedProofCommit,proto3" json:"signed_proof_commit,omitempty"`
	ServiceQuote        []byte `protobuf:"bytes,13,opt,name=service_quote,json=serviceQuote,proto3" json:"service_quote,omitempty"`
}

func (*QueryNamePaidReq) ProtoMessage

func (*QueryNamePaidReq) ProtoMessage()

func (*QueryNamePaidReq) Reset

func (m *QueryNamePaidReq) Reset()

func (*QueryNamePaidReq) String

func (m *QueryNamePaidReq) String() string

type QueryNamePaidResp

type QueryNamePaidResp struct {
	Success                  bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success"`
	Status                   string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	Name                     string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Available                bool   `protobuf:"varint,4,opt,name=available,proto3" json:"available"`
	Locked                   bool   `protobuf:"varint,5,opt,name=locked,proto3" json:"locked"`
	Registered               bool   `protobuf:"varint,6,opt,name=registered,proto3" json:"registered"`
	OwnerPubkeyHex           string `protobuf:"bytes,7,opt,name=owner_pubkey_hex,json=ownerPubkeyHex,proto3" json:"owner_pubkey_hex,omitempty"`
	TargetPubkeyHex          string `protobuf:"bytes,8,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex,omitempty"`
	ExpireAtUnix             int64  `protobuf:"varint,9,opt,name=expire_at_unix,json=expireAtUnix,proto3" json:"expire_at_unix,omitempty"`
	LockExpiresAtUnix        int64  `protobuf:"varint,10,opt,name=lock_expires_at_unix,json=lockExpiresAtUnix,proto3" json:"lock_expires_at_unix,omitempty"`
	RegisterPriceSatoshi     uint64 `protobuf:"varint,11,opt,name=register_price_satoshi,json=registerPriceSatoshi,proto3" json:"register_price_satoshi"`
	RegisterSubmitFeeSatoshi uint64 `` /* 129-byte string literal not displayed */
	RegisterLockFeeSatoshi   uint64 `protobuf:"varint,13,opt,name=register_lock_fee_satoshi,json=registerLockFeeSatoshi,proto3" json:"register_lock_fee_satoshi"`
	SetTargetFeeSatoshi      uint64 `protobuf:"varint,14,opt,name=set_target_fee_satoshi,json=setTargetFeeSatoshi,proto3" json:"set_target_fee_satoshi"`
	ResolveFeeSatoshi        uint64 `protobuf:"varint,15,opt,name=resolve_fee_satoshi,json=resolveFeeSatoshi,proto3" json:"resolve_fee_satoshi"`
	QueryFeeSatoshi          uint64 `protobuf:"varint,16,opt,name=query_fee_satoshi,json=queryFeeSatoshi,proto3" json:"query_fee_satoshi"`
	ChargedAmount            uint64 `protobuf:"varint,17,opt,name=charged_amount_satoshi,json=chargedAmountSatoshi,proto3" json:"charged_amount_satoshi,omitempty"`
	UpdatedTxID              string `protobuf:"bytes,18,opt,name=updated_txid,json=updatedTxid,proto3" json:"updated_txid,omitempty"`
	SignedRecordJSON         []byte `protobuf:"bytes,19,opt,name=signed_record_json,json=signedRecordJson,proto3" json:"signed_record_json,omitempty"`
	Error                    string `protobuf:"bytes,20,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	MergedCurrentTx          []byte `protobuf:"bytes,21,opt,name=merged_current_tx,json=mergedCurrentTx,proto3" json:"merged_current_tx,omitempty"`
	ProofStatePayload        []byte `protobuf:"bytes,22,opt,name=proof_state_payload,json=proofStatePayload,proto3" json:"proof_state_payload,omitempty"`
	ServiceReceipt           []byte `protobuf:"bytes,23,opt,name=service_receipt,json=serviceReceipt,proto3" json:"service_receipt,omitempty"`
}

func (*QueryNamePaidResp) ProtoMessage

func (*QueryNamePaidResp) ProtoMessage()

func (*QueryNamePaidResp) Reset

func (m *QueryNamePaidResp) Reset()

func (*QueryNamePaidResp) String

func (m *QueryNamePaidResp) String() string

type RegisterLockPaidReq

type RegisterLockPaidReq struct {
	ClientID string `protobuf:"bytes,1,opt,name=client_pubkey_hex,json=clientId,proto3" json:"client_pubkey_hex"`

	Name            string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`
	TargetPubkeyHex string `protobuf:"bytes,3,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex"`

	SpendTxID           string `protobuf:"bytes,4,opt,name=spend_txid,json=spendTxid,proto3" json:"spend_txid"`
	SequenceNumber      uint32 `protobuf:"varint,5,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number"`
	ServerAmount        uint64 `protobuf:"varint,6,opt,name=server_amount,json=serverAmount,proto3" json:"server_amount"`
	ChargeAmountSatoshi uint64 `protobuf:"varint,7,opt,name=charge_amount_satoshi,json=chargeAmountSatoshi,proto3" json:"charge_amount_satoshi"`
	Fee                 uint64 `protobuf:"varint,8,opt,name=fee,proto3" json:"fee"`
	ClientSignature     []byte `protobuf:"bytes,9,opt,name=client_signature,json=clientSignature,proto3" json:"client_signature"`
	ChargeReason        string `protobuf:"bytes,10,opt,name=charge_reason,json=chargeReason,proto3" json:"charge_reason,omitempty"`
	ProofIntent         []byte `protobuf:"bytes,11,opt,name=proof_intent,json=proofIntent,proto3" json:"proof_intent,omitempty"`
	SignedProofCommit   []byte `protobuf:"bytes,12,opt,name=signed_proof_commit,json=signedProofCommit,proto3" json:"signed_proof_commit,omitempty"`
	ServiceQuote        []byte `protobuf:"bytes,14,opt,name=service_quote,json=serviceQuote,proto3" json:"service_quote,omitempty"`
}

func (*RegisterLockPaidReq) ProtoMessage

func (*RegisterLockPaidReq) ProtoMessage()

func (*RegisterLockPaidReq) Reset

func (m *RegisterLockPaidReq) Reset()

func (*RegisterLockPaidReq) String

func (m *RegisterLockPaidReq) String() string

type RegisterLockPaidResp

type RegisterLockPaidResp struct {
	Success           bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success"`
	Status            string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	Name              string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	TargetPubkeyHex   string `protobuf:"bytes,4,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex,omitempty"`
	LockExpiresAtUnix int64  `protobuf:"varint,5,opt,name=lock_expires_at_unix,json=lockExpiresAtUnix,proto3" json:"lock_expires_at_unix,omitempty"`
	ChargedAmount     uint64 `protobuf:"varint,6,opt,name=charged_amount_satoshi,json=chargedAmountSatoshi,proto3" json:"charged_amount_satoshi,omitempty"`
	UpdatedTxID       string `protobuf:"bytes,7,opt,name=updated_txid,json=updatedTxid,proto3" json:"updated_txid,omitempty"`
	SignedQuoteJSON   []byte `protobuf:"bytes,8,opt,name=signed_quote_json,json=signedQuoteJson,proto3" json:"signed_quote_json,omitempty"`
	Error             string `protobuf:"bytes,9,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	MergedCurrentTx   []byte `protobuf:"bytes,10,opt,name=merged_current_tx,json=mergedCurrentTx,proto3" json:"merged_current_tx,omitempty"`
	ProofStatePayload []byte `protobuf:"bytes,11,opt,name=proof_state_payload,json=proofStatePayload,proto3" json:"proof_state_payload,omitempty"`
	ServiceReceipt    []byte `protobuf:"bytes,12,opt,name=service_receipt,json=serviceReceipt,proto3" json:"service_receipt,omitempty"`
}

func (*RegisterLockPaidResp) ProtoMessage

func (*RegisterLockPaidResp) ProtoMessage()

func (*RegisterLockPaidResp) Reset

func (m *RegisterLockPaidResp) Reset()

func (*RegisterLockPaidResp) String

func (m *RegisterLockPaidResp) String() string

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 struct {
	ClientID string `protobuf:"bytes,1,opt,name=client_pubkey_hex,json=clientId,proto3" json:"client_pubkey_hex"`

	RegisterTx []byte `protobuf:"bytes,2,opt,name=register_tx,json=registerTx,proto3" json:"register_tx"`
}

func (*RegisterSubmitReq) ProtoMessage

func (*RegisterSubmitReq) ProtoMessage()

func (*RegisterSubmitReq) Reset

func (m *RegisterSubmitReq) Reset()

func (*RegisterSubmitReq) String

func (m *RegisterSubmitReq) String() string

type RegisterSubmitResp

type RegisterSubmitResp struct {
	Success           bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success"`
	Status            string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	Name              string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	OwnerPubkeyHex    string `protobuf:"bytes,4,opt,name=owner_pubkey_hex,json=ownerPubkeyHex,proto3" json:"owner_pubkey_hex,omitempty"`
	TargetPubkeyHex   string `protobuf:"bytes,5,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex,omitempty"`
	ExpireAtUnix      int64  `protobuf:"varint,6,opt,name=expire_at_unix,json=expireAtUnix,proto3" json:"expire_at_unix,omitempty"`
	RegisterTxID      string `protobuf:"bytes,7,opt,name=register_txid,json=registerTxid,proto3" json:"register_txid,omitempty"`
	SignedReceiptJSON []byte `protobuf:"bytes,8,opt,name=signed_receipt_json,json=signedReceiptJson,proto3" json:"signed_receipt_json,omitempty"`
	Error             string `protobuf:"bytes,9,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}

func (*RegisterSubmitResp) ProtoMessage

func (*RegisterSubmitResp) ProtoMessage()

func (*RegisterSubmitResp) Reset

func (m *RegisterSubmitResp) Reset()

func (*RegisterSubmitResp) String

func (m *RegisterSubmitResp) String() string

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 struct {
	ClientID string `protobuf:"bytes,1,opt,name=client_pubkey_hex,json=clientId,proto3" json:"client_pubkey_hex"`

	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`

	SpendTxID           string `protobuf:"bytes,3,opt,name=spend_txid,json=spendTxid,proto3" json:"spend_txid"`
	SequenceNumber      uint32 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number"`
	ServerAmount        uint64 `protobuf:"varint,5,opt,name=server_amount,json=serverAmount,proto3" json:"server_amount"`
	ChargeAmountSatoshi uint64 `protobuf:"varint,6,opt,name=charge_amount_satoshi,json=chargeAmountSatoshi,proto3" json:"charge_amount_satoshi"`
	Fee                 uint64 `protobuf:"varint,7,opt,name=fee,proto3" json:"fee"`
	ClientSignature     []byte `protobuf:"bytes,8,opt,name=client_signature,json=clientSignature,proto3" json:"client_signature"`
	ChargeReason        string `protobuf:"bytes,9,opt,name=charge_reason,json=chargeReason,proto3" json:"charge_reason,omitempty"`
	ProofIntent         []byte `protobuf:"bytes,10,opt,name=proof_intent,json=proofIntent,proto3" json:"proof_intent,omitempty"`
	SignedProofCommit   []byte `protobuf:"bytes,11,opt,name=signed_proof_commit,json=signedProofCommit,proto3" json:"signed_proof_commit,omitempty"`
	ServiceQuote        []byte `protobuf:"bytes,13,opt,name=service_quote,json=serviceQuote,proto3" json:"service_quote,omitempty"`
}

func (*ResolveNamePaidReq) ProtoMessage

func (*ResolveNamePaidReq) ProtoMessage()

func (*ResolveNamePaidReq) Reset

func (m *ResolveNamePaidReq) Reset()

func (*ResolveNamePaidReq) String

func (m *ResolveNamePaidReq) String() string

type ResolveNamePaidResp

type ResolveNamePaidResp struct {
	Success           bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success"`
	Status            string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	Name              string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	OwnerPubkeyHex    string `protobuf:"bytes,4,opt,name=owner_pubkey_hex,json=ownerPubkeyHex,proto3" json:"owner_pubkey_hex,omitempty"`
	TargetPubkeyHex   string `protobuf:"bytes,5,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex,omitempty"`
	ExpireAtUnix      int64  `protobuf:"varint,6,opt,name=expire_at_unix,json=expireAtUnix,proto3" json:"expire_at_unix,omitempty"`
	ChargedAmount     uint64 `protobuf:"varint,7,opt,name=charged_amount_satoshi,json=chargedAmountSatoshi,proto3" json:"charged_amount_satoshi,omitempty"`
	UpdatedTxID       string `protobuf:"bytes,8,opt,name=updated_txid,json=updatedTxid,proto3" json:"updated_txid,omitempty"`
	SignedRecordJSON  []byte `protobuf:"bytes,9,opt,name=signed_record_json,json=signedRecordJson,proto3" json:"signed_record_json,omitempty"`
	Error             string `protobuf:"bytes,10,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	MergedCurrentTx   []byte `protobuf:"bytes,11,opt,name=merged_current_tx,json=mergedCurrentTx,proto3" json:"merged_current_tx,omitempty"`
	ProofStatePayload []byte `protobuf:"bytes,12,opt,name=proof_state_payload,json=proofStatePayload,proto3" json:"proof_state_payload,omitempty"`
	ServiceReceipt    []byte `protobuf:"bytes,13,opt,name=service_receipt,json=serviceReceipt,proto3" json:"service_receipt,omitempty"`
}

func (*ResolveNamePaidResp) ProtoMessage

func (*ResolveNamePaidResp) ProtoMessage()

func (*ResolveNamePaidResp) Reset

func (m *ResolveNamePaidResp) Reset()

func (*ResolveNamePaidResp) String

func (m *ResolveNamePaidResp) String() string

type SetTargetPaidReq

type SetTargetPaidReq struct {
	ClientID string `protobuf:"bytes,1,opt,name=client_pubkey_hex,json=clientId,proto3" json:"client_pubkey_hex"`

	Name            string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`
	TargetPubkeyHex string `protobuf:"bytes,3,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex"`

	SpendTxID           string `protobuf:"bytes,4,opt,name=spend_txid,json=spendTxid,proto3" json:"spend_txid"`
	SequenceNumber      uint32 `protobuf:"varint,5,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number"`
	ServerAmount        uint64 `protobuf:"varint,6,opt,name=server_amount,json=serverAmount,proto3" json:"server_amount"`
	ChargeAmountSatoshi uint64 `protobuf:"varint,7,opt,name=charge_amount_satoshi,json=chargeAmountSatoshi,proto3" json:"charge_amount_satoshi"`
	Fee                 uint64 `protobuf:"varint,8,opt,name=fee,proto3" json:"fee"`
	ClientSignature     []byte `protobuf:"bytes,9,opt,name=client_signature,json=clientSignature,proto3" json:"client_signature"`
	ChargeReason        string `protobuf:"bytes,10,opt,name=charge_reason,json=chargeReason,proto3" json:"charge_reason,omitempty"`
	ProofIntent         []byte `protobuf:"bytes,11,opt,name=proof_intent,json=proofIntent,proto3" json:"proof_intent,omitempty"`
	SignedProofCommit   []byte `protobuf:"bytes,12,opt,name=signed_proof_commit,json=signedProofCommit,proto3" json:"signed_proof_commit,omitempty"`
	ServiceQuote        []byte `protobuf:"bytes,14,opt,name=service_quote,json=serviceQuote,proto3" json:"service_quote,omitempty"`
}

func (*SetTargetPaidReq) ProtoMessage

func (*SetTargetPaidReq) ProtoMessage()

func (*SetTargetPaidReq) Reset

func (m *SetTargetPaidReq) Reset()

func (*SetTargetPaidReq) String

func (m *SetTargetPaidReq) String() string

type SetTargetPaidResp

type SetTargetPaidResp struct {
	Success           bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success"`
	Status            string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	Name              string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	OwnerPubkeyHex    string `protobuf:"bytes,4,opt,name=owner_pubkey_hex,json=ownerPubkeyHex,proto3" json:"owner_pubkey_hex,omitempty"`
	TargetPubkeyHex   string `protobuf:"bytes,5,opt,name=target_pubkey_hex,json=targetPubkeyHex,proto3" json:"target_pubkey_hex,omitempty"`
	ExpireAtUnix      int64  `protobuf:"varint,6,opt,name=expire_at_unix,json=expireAtUnix,proto3" json:"expire_at_unix,omitempty"`
	ChargedAmount     uint64 `protobuf:"varint,7,opt,name=charged_amount_satoshi,json=chargedAmountSatoshi,proto3" json:"charged_amount_satoshi,omitempty"`
	UpdatedTxID       string `protobuf:"bytes,8,opt,name=updated_txid,json=updatedTxid,proto3" json:"updated_txid,omitempty"`
	SignedRecordJSON  []byte `protobuf:"bytes,9,opt,name=signed_record_json,json=signedRecordJson,proto3" json:"signed_record_json,omitempty"`
	Error             string `protobuf:"bytes,10,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	MergedCurrentTx   []byte `protobuf:"bytes,11,opt,name=merged_current_tx,json=mergedCurrentTx,proto3" json:"merged_current_tx,omitempty"`
	ProofStatePayload []byte `protobuf:"bytes,12,opt,name=proof_state_payload,json=proofStatePayload,proto3" json:"proof_state_payload,omitempty"`
	ServiceReceipt    []byte `protobuf:"bytes,13,opt,name=service_receipt,json=serviceReceipt,proto3" json:"service_receipt,omitempty"`
}

func (*SetTargetPaidResp) ProtoMessage

func (*SetTargetPaidResp) ProtoMessage()

func (*SetTargetPaidResp) Reset

func (m *SetTargetPaidResp) Reset()

func (*SetTargetPaidResp) String

func (m *SetTargetPaidResp) String() string

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