Documentation
¶
Index ¶
- Variables
- type AcceptChannelInfo
- type AddHtlcRequest
- type AtomicSwapAccepted
- type AtomicSwapRequest
- type ChannelID
- type ChannelIdReq
- type CloseChannel
- type CloseChannelSign
- type CommitmentTx
- type CommitmentTxSigned
- type CreateMultiSigRequest
- type FundingAsset
- type FundingBtc
- type FundingBtcCreated
- type FundingBtcSigned
- type FundingCreated
- type FundingSigned
- type GetBalanceRequest
- type GetBalanceRespond
- type HtlcCheckRAndCreateTx
- type HtlcCloseChannelReq
- type HtlcCloseChannelSign
- type HtlcHRespond
- type HtlcRequestCloseCurrTx
- type HtlcRequestFindPath
- type HtlcRequestOpen
- type HtlcSendR
- type HtlcSignCloseCurrTx
- type HtlcSignGetH
- type OmniSendGrant
- type OmniSendIssuanceFixed
- type OmniSendIssuanceManaged
- type OmniSendRevoke
- type OpenChannelInfo
- type OutPoint
- type ReplyMessage
- type RequestMessage
- type SendBreachRemedyTransaction
- type ShortChannelID
- type User
- type UserState
Constants ¶
This section is empty.
Variables ¶
var ChannelIdService = channelIdManager{}
Functions ¶
This section is empty.
Types ¶
type AcceptChannelInfo ¶
type AcceptChannelInfo struct {
OpenChannelInfo
Approval bool `json:"approval"`
}
type = -33
type AddHtlcRequest ¶
type AddHtlcRequest struct {
RecipientUserPeerId string `json:"recipient_user_peer_id"`
PropertyId int64 `json:"property_id"`
Amount float64 `json:"amount"`
Memo string `json:"memo"`
H string `json:"h"`
HtlcChannelPath string `json:"htlc_channel_path"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // 开通通道用到的地址的私钥
LastTempAddressPrivateKey string `json:"last_temp_address_private_key"` // 上个RSMC委托交易用到的临时地址的私钥
CurrRsmcTempAddressPubKey string `json:"curr_rsmc_temp_address_pub_key"` // 创建Cnx中的toRsmc的部分使用的临时地址的公钥
CurrRsmcTempAddressPrivateKey string `json:"curr_rsmc_temp_address_private_key"` // 创建Cnx中的toRsmc的部分使用的临时地址的私钥
CurrHtlcTempAddressPubKey string `json:"curr_htlc_temp_address_pub_key"` // 创建Cnx中的toHtlc的部分使用的临时地址的公钥
CurrHtlcTempAddressPrivateKey string `json:"curr_htlc_temp_address_private_key"` // 创建Cnx中的toHtlc的部分使用的临时地址的私钥
CurrHtlcTempAddressForHt1aPubKey string `json:"curr_htlc_temp_address_for_ht1a_pub_key"` // 创建Ht1a中生成ht1a的输出的Rmsc的临时地址的公钥
CurrHtlcTempAddressForHt1aPrivateKey string `json:"curr_htlc_temp_address_for_ht1a_private_key"` // 创建Ht1a中生成ht1a的输出的Rmsc的临时地址的私钥
}
type 40 payer start htlc tx
type AtomicSwapAccepted ¶
type AtomicSwapAccepted struct {
AtomicSwapRequest
TargetTransactionId string `json:"target_transaction_id"` // 针对的目标交易id
}
type -81: MsgType_Atomic_Swap_Accept_N81
type AtomicSwapRequest ¶
type AtomicSwapRequest struct {
ChannelIdFrom string `json:"channel_id_from"`
ChannelIdTo string `json:"channel_id_to"`
RecipientUserPeerId string `json:"recipient_user_peer_id"`
PropertySent int64 `json:"property_sent"`
Amount float64 `json:"amount"`
ExchangeRate float64 `json:"exchange_rate"`
PropertyReceived int64 `json:"property_received"`
TransactionId string `json:"transaction_id"`
TimeLocker uint32 `json:"time_locker"`
}
type -80: MsgType_Atomic_Swap_N80
type ChannelIdReq ¶
type ChannelIdReq CloseChannel
type CloseChannel ¶
type CloseChannel struct {
ChannelId string `json:"channel_id"`
}
type: -38 (close_channel)
type CloseChannelSign ¶
type CloseChannelSign struct {
ChannelId string `json:"channel_id"`
RequestCloseChannelHash string `json:"request_close_channel_hash"`
Approval bool `json:"approval"` // true agree false disagree
}
type: -39 (close_channel_sign)
type CommitmentTx ¶
type CommitmentTx struct {
ChannelId string `json:"channel_id"` //the global channel id.
RequestCommitmentHash string `json:"request_commitment_hash"`
PropertyId int64 `json:"property_id"` //the id of the Omni asset
Amount float64 `json:"amount"` //amount of the payment
ChannelAddressPrivateKey string `json:"channel_address_private_key"`
LastTempAddressPrivateKey string `json:"last_temp_address_private_key"`
CurrTempAddressPubKey string `json:"curr_temp_address_pub_key"`
CurrTempAddressPrivateKey string `json:"curr_temp_address_private_key"`
}
type: -351 (commitment_tx)
type CommitmentTxSigned ¶
type CommitmentTxSigned struct {
ChannelId string `json:"channel_id"`
RequestCommitmentHash string `json:"request_commitment_hash"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // bob private key
LastTempAddressPrivateKey string `json:"last_temp_address_private_key"` // bob2's private key
CurrTempAddressPubKey string `json:"curr_temp_address_pub_key"` // bob3 or alice3
CurrTempAddressPrivateKey string `json:"curr_temp_address_private_key"`
Approval bool `json:"approval"` // true agree false disagree
}
type: -352 (commitment_tx_signed)
type CreateMultiSigRequest ¶
type FundingAsset ¶
type FundingAsset struct {
FundingBtc
PropertyId int64 `json:"property_id"`
}
type FundingBtc ¶
type FundingBtcCreated ¶
type FundingBtcCreated struct {
TemporaryChannelId string `json:"temporary_channel_id"`
FundingTxHex string `json:"funding_tx_hex"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"`
}
type: -3400 (FundingBtcCreated)
type FundingBtcSigned ¶
type FundingBtcSigned struct {
TemporaryChannelId string `json:"temporary_channel_id"`
FundingTxid string `json:"funding_txid"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"`
Approval bool `json:"approval"`
}
type: -3500 (FundingBtcSigned)
type FundingCreated ¶
type FundingCreated struct {
TemporaryChannelId string `json:"temporary_channel_id"`
PropertyId int64 `json:"property_id"`
MaxAssets float64 `json:"max_assets"`
AmountA float64 `json:"amount_a"`
FundingTxHex string `json:"funding_tx_hex"`
TempAddressPubKey string `json:"temp_address_pub_key"`
TempAddressPrivateKey string `json:"temp_address_private_key"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"`
}
type: -34 (funding_created)
type FundingSigned ¶
type FundingSigned struct {
ChannelId string `json:"channel_id"`
//the omni address of funder Alice
FunderPubKey string `json:"funder_pub_key"`
// the id of the Omni asset
PropertyId int `json:"property_id"`
//amount of the asset on Alice side
AmountA float64 `json:"amount_a"`
//the omni address of fundee Bob
FundeePubKey string `json:"fundee_pub_key"`
//amount of the asset on Bob side
AmountB float64 `json:"amount_b"`
//signature of fundee Bob
FundeeChannelAddressPrivateKey string `json:"fundee_channel_address_private_key"`
//redeem script used to generate P2SH address
RedeemScript string `json:"redeem_script"`
//hash of redeemScript
P2shAddress string `json:"p2sh_address"`
Approval bool `json:"approval"`
}
type: -35 (funding_signed)
type GetBalanceRequest ¶
type GetBalanceRequest struct {
//the global channel id.
ChannelId string `json:"channel_id"`
//the p2sh address generated in funding_signed message.
P2shAddress string `json:"p2sh_address"`
// the channel owner, Alice or Bob, can query the balance.
Who chainhash.Hash `json:"who"`
//the signature of Alice or Bob
Signature chainhash.Signature `json:"signature"`
}
type: -353 (get_balance_request)
type GetBalanceRespond ¶
type GetBalanceRespond struct {
//the global channel id.
ChannelId string `json:"channel_id"`
//the asset id generated by Omnilayer protocol.
PropertyId int `json:"property_id"`
//the name of the asset.
Name string `json:"name"`
//balance in this channel
Balance float64 `json:"balance"`
//currently not in use
Reserved float64 `json:"reserved"`
//currently not in use
Frozen float64 `json:"frozen"`
}
type: -354 (get_balance_respond)
type HtlcCheckRAndCreateTx ¶
type HtlcCheckRAndCreateTx struct {
ChannelId string `json:"channel_id"`
R string `json:"r"`
RequestHash string `json:"request_hash"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // The key of creator tx. Example Bob send R to Alice, that is Alice's.
}
type -47: Middleman node check out if R is correct
type HtlcCloseChannelReq ¶
type HtlcCloseChannelReq CloseChannel
type HtlcCloseChannelSign ¶
type HtlcCloseChannelSign CloseChannelSign
type HtlcHRespond ¶
type HtlcHRespond struct {
RequestHash string `json:"request_hash"`
Approval bool `json:"approval"` // true agree false disagree
PropertyId int `json:"property_id"`
Amount float64 `json:"amount"`
H string `json:"h"` // pubKey
R string `json:"r"` // privateKey
}
type -41: carl tell alice the H,and he ca Deprecated: h and r create by transfer, do not need tell the receiver
type HtlcRequestCloseCurrTx ¶
type HtlcRequestCloseCurrTx struct {
ChannelId string `json:"channel_id"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // 开通通道用到的私钥
LastRsmcTempAddressPrivateKey string `json:"last_rsmc_temp_address_private_key"`
LastHtlcTempAddressPrivateKey string `json:"last_htlc_temp_address_private_key"`
LastHtlcTempAddressForHtnxPrivateKey string `json:"last_htlc_temp_address_for_htnx_private_key"`
CurrRsmcTempAddressPubKey string `json:"curr_rsmc_temp_address_pub_key"`
CurrRsmcTempAddressPrivateKey string `json:"curr_rsmc_temp_address_private_key"`
}
type -49: user wanna close htlc tx when tx is on getH state
type HtlcRequestFindPath ¶
type HtlcRequestFindPath struct {
RecipientNodePeerId string `json:"recipient_node_peer_id"`
RecipientUserPeerId string `json:"recipient_user_peer_id"`
PropertyId int64 `json:"property_id"`
Amount float64 `json:"amount"`
}
type -4001: alice tell carl ,she wanna transfer some money to Carl
type HtlcRequestOpen ¶
type HtlcRequestOpen struct {
RequestHash string `json:"request_hash"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // 开通通道用到的私钥
LastTempAddressPrivateKey string `json:"last_temp_address_private_key"` // 上个RSMC委托交易用到的临时地址的私钥
CurrRsmcTempAddressPubKey string `json:"curr_rsmc_temp_address_pub_key"` // 创建Cnx中的toRsmc的部分使用的临时地址的公钥
CurrRsmcTempAddressPrivateKey string `json:"curr_rsmc_temp_address_private_key"` // 创建Cnx中的toRsmc的部分使用的临时地址的私钥
CurrHtlcTempAddressPubKey string `json:"curr_htlc_temp_address_pub_key"` // 创建Cnx中的toHtlc的部分使用的临时地址的公钥
CurrHtlcTempAddressPrivateKey string `json:"curr_htlc_temp_address_private_key"` // 创建Cnx中的toHtlc的部分使用的临时地址的私钥
CurrHtlcTempAddressForHt1aPubKey string `json:"curr_htlc_temp_address_for_ht1a_pub_key"` // 创建Ht1a中生成ht1a的输出的Rmsc的临时地址的公钥
CurrHtlcTempAddressForHt1aPrivateKey string `json:"curr_htlc_temp_address_for_ht1a_private_key"` // 创建Ht1a中生成ht1a的输出的Rmsc的临时地址的私钥
}
type -45: sender request obd to open htlc tx
type HtlcSendR ¶
type HtlcSendR struct {
ChannelId string `json:"channel_id"`
R string `json:"r"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // The key of Sender. Example Bob send R to Alice, the Sender is Bob.
CurrHtlcTempAddressForHE1bPubKey string `json:"curr_htlc_temp_address_for_he1b_pub_key"` // These keys of HE1b output. Example Bob send R to Alice, these is Bob3's.
CurrHtlcTempAddressForHE1bPrivateKey string `json:"curr_htlc_temp_address_for_he1b_private_key"`
}
type -46: Send R to previous node. and create commitment transactions.
type HtlcSignCloseCurrTx ¶
type HtlcSignCloseCurrTx struct {
RequestHash string `json:"request_hash"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // 开通通道用到的私钥
LastRsmcTempAddressPrivateKey string `json:"last_rsmc_temp_address_private_key"`
LastHtlcTempAddressPrivateKey string `json:"last_htlc_temp_address_private_key"`
LastHtlcTempAddressForHtnxPrivateKey string `json:"last_htlc_temp_address_for_htnx_private_key"`
CurrRsmcTempAddressPubKey string `json:"curr_rsmc_temp_address_pub_key"`
CurrRsmcTempAddressPrivateKey string `json:"curr_rsmc_temp_address_private_key"`
}
type -50: receiver sign the close request
type HtlcSignGetH ¶
type HtlcSignGetH struct {
RequestHash string `json:"request_hash"`
Approval bool `json:"approval"` // true agree false disagree ,最后的收款节点,必须是true
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // 开通通道用到的私钥
LastTempAddressPrivateKey string `json:"last_temp_address_private_key"` // 上个RSMC委托交易用到的临时私钥
CurrRsmcTempAddressPubKey string `json:"curr_rsmc_temp_address_pub_key"` // 创建Cnx中的toRsmc的部分使用的临时地址的公钥
CurrRsmcTempAddressPrivateKey string `json:"curr_rsmc_temp_address_private_key"` // 创建Cnx中的toRsmc的部分使用的临时地址的私钥
CurrHtlcTempAddressPubKey string `json:"curr_htlc_temp_address_pub_key"` // 创建Cnx中的toHtlc的部分使用的临时地址的公钥
CurrHtlcTempAddressPrivateKey string `json:"curr_htlc_temp_address_private_key"` // 创建Cnx中的toHtlc的部分使用的临时地址的私钥
}
type -41: bob sign the request for the interNode
type OmniSendGrant ¶
type OmniSendIssuanceFixed ¶
type OmniSendIssuanceFixed struct {
OmniSendIssuanceManaged
Amount float64 `json:"amount"`
}
type OmniSendIssuanceManaged ¶
type OmniSendRevoke ¶
type OmniSendRevoke OmniSendGrant
type OpenChannelInfo ¶
type OpenChannelInfo struct {
ChainHash chainhash.ChainHash `json:"chain_hash"`
TemporaryChannelId string `json:"temporary_channel_id"`
FundingSatoshis uint64 `json:"funding_satoshis"`
PushMsat uint64 `json:"push_msat"`
DustLimitSatoshis uint64 `json:"dust_limit_satoshis"`
MaxHtlcValueInFlightMsat uint64 `json:"max_htlc_value_in_flight_msat"`
ChannelReserveSatoshis uint64 `json:"channel_reserve_satoshis"`
HtlcMinimumMsat uint64 `json:"htlc_minimum_msat"`
FeeRatePerKw uint32 `json:"fee_rate_per_kw"`
ToSelfDelay uint16 `json:"to_self_delay"`
MaxAcceptedHtlcs uint16 `json:"max_accepted_htlcs"`
FundingPubKey string `json:"funding_pubkey"`
FundingAddress string `json:"funding_address"`
RevocationBasePoint chainhash.Point `json:"revocation_base_point"`
PaymentBasePoint chainhash.Point `json:"payment_base_point"`
DelayedPaymentBasePoint chainhash.Point `json:"delayed_payment_base_point"`
HtlcBasePoint chainhash.Point `json:"htlc_base_point"`
}
type OutPoint ¶
OutPoint defines a bitcoin data type that is used to track previous transaction outputs.
type ReplyMessage ¶
type RequestMessage ¶
type RequestMessage struct {
Type enum.MsgType `json:"type"`
SenderNodePeerId string `json:"sender_node_peer_id"`
SenderUserPeerId string `json:"sender_user_peer_id"`
RecipientUserPeerId string `json:"recipient_user_peer_id"`
RecipientNodePeerId string `json:"recipient_node_peer_id"`
Data string `json:"data"`
RawData string `json:"raw_data"`
PubKey string `json:"pub_key"`
Signature string `json:"signature"`
}
type SendBreachRemedyTransaction ¶
type SendBreachRemedyTransaction struct {
ChannelId string `json:"channel_id"`
ChannelAddressPrivateKey string `json:"channel_address_private_key"` // openChannel address
}
type: -35107 (SendBreachRemedyTransaction)
type ShortChannelID ¶
type ShortChannelID struct {
// BlockHeight is the height of the block where funding transaction located.
// NOTE: This field is limited to 4 bytes.
BlockHeight uint32
// TxIndex is a position of funding transaction within a block.
// NOTE: This field is limited to 2 bytes.
TxIndex uint16
// TxPosition indicating transaction output which pays to the channel.
TxPosition uint16
}
ShortChannelID represents the set of data which is needed to retrieve all necessary data to validate the channel existence.
func NewShortChanIDFromInt ¶
func NewShortChanIDFromInt(chanID uint64) ShortChannelID
NewShortChanIDFromInt returns a new ShortChannelID which is the decoded version of the compact channel ID encoded within the uint64. The format of the compact channel ID is as follows: 3 bytes for the block height, 3 bytes for the transaction index, and 2 bytes for the output index.
func (ShortChannelID) String ¶
func (c ShortChannelID) String() string
String generates a human-readable representation of the channel ID.
func (ShortChannelID) ToUint64 ¶
func (c ShortChannelID) ToUint64() (num uint64, err error)
ToUint64 converts the ShortChannelID into a compact format encoded within a uint64 (8 bytes).
type User ¶
type User struct {
P2PLocalAddress string `json:"p2p_local_address"`
P2PLocalPeerId string `json:"p2p_local_peer_id"`
PeerId string `json:"peer_id"`
Mnemonic string `json:"mnemonic"`
State UserState `json:"state"`
ChangeExtKey *bip32.Key
CurrAddrIndex int `json:"curr_addr_index"`
Db *storm.DB //db
}
type = 1