Documentation
¶
Index ¶
- Constants
- func BuildSignedEnvelopeOpReturnScript(payload []byte) (*script.Script, error)
- func EnvelopeDigest(fields []any) ([]byte, error)
- func ExtractSignedEnvelopeOpReturnPayload(lockingScript *script.Script) ([]byte, error)
- func HandleNodeCall(ctx context.Context, rt NodeRouteRuntime, meta ncall.CallContext, ...) (bool, ncall.CallResp, error)
- func MarshalQueryNameServicePayload(resp QueryNamePaidResp) ([]byte, error)
- func MarshalRegisterLockServicePayload(resp RegisterLockPaidResp) ([]byte, error)
- func MarshalResolveNameServicePayload(resp ResolveNamePaidResp) ([]byte, error)
- func MarshalSetTargetServicePayload(resp SetTargetPaidResp) ([]byte, error)
- func NormalizeName(raw string) (string, error)
- func SignEnvelope(fields []any, sign SignFunc) ([]byte, error)
- func Spec() caps.ModuleSpec
- type DomainPricingBody
- type ListOwnedReq
- type ListOwnedResp
- type NameRouteReq
- type NameTargetRouteReq
- type NodeRouteRuntime
- type OwnedNameItem
- type QueryNamePaidReq
- type QueryNamePaidResp
- type RegisterLockPaidReq
- type RegisterLockPaidResp
- type RegisterQuoteFields
- type RegisterReceiptFields
- type RegisterSubmitReq
- type RegisterSubmitResp
- type ResolutionFields
- type ResolveNamePaidReq
- type ResolveNamePaidResp
- type SetTargetPaidReq
- type SetTargetPaidResp
- type SignFunc
- type SignedEnvelope
- type VerifyFunc
Constants ¶
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" )
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" )
const ( ServiceTypeResolveName = RouteDomainV1Resolve ServiceTypeQueryName = RouteDomainV1Query ServiceTypeRegisterLock = RouteDomainV1Lock ServiceTypeSetTarget = RouteDomainV1SetTarget )
const ( InternalAbilityID = "bftp.domain@1" PublicCapabilityID = "domain" Version = uint32(1) )
Variables ¶
This section is empty.
Functions ¶
func BuildSignedEnvelopeOpReturnScript ¶
BuildSignedEnvelopeOpReturnScript 统一构造 domain 注册使用的完整签名原文 OP_RETURN。 设计说明: - 链上只接受完整签名原文,不做“部分字段”折中,避免验签语义被削弱; - 客户端与服务端都复用这套编码规则,防止一边能写一边读不出来。
func EnvelopeDigest ¶
func ExtractSignedEnvelopeOpReturnPayload ¶
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 ¶
NormalizeName 按 ENSIP-15 统一名字。 设计说明: - 域名系统、客户端 locator、链上提交验证都必须共用同一规范化实现; - 这里不再保留旧 resolver 的 trim+lowercase 简化逻辑,避免未来状态键不一致; - 规范化失败直接拒绝,让错误尽早暴露,不让脏名字进入锁表和注册表。
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 ¶
type NodeRouteRuntime struct {
Pricing func(context.Context) (DomainPricingBody, error)
Resolve func(context.Context, ncall.CallContext, ncall.CallReq, NameRouteReq) (ncall.CallResp, error)
Query func(context.Context, ncall.CallContext, ncall.CallReq, NameRouteReq) (ncall.CallResp, error)
Lock func(context.Context, ncall.CallContext, ncall.CallReq, NameTargetRouteReq) (ncall.CallResp, error)
ListOwned func(context.Context, ncall.CallContext, ListOwnedReq) (ListOwnedResp, error)
SetTarget func(context.Context, ncall.CallContext, ncall.CallReq, NameTargetRouteReq) (ncall.CallResp, error)
RegisterSubmit func(context.Context, ncall.CallContext, RegisterSubmitReq) (RegisterSubmitResp, error)
}
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 SignedEnvelope ¶
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