Version: v0.3.9 Latest Latest

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

Go to latest
Published: Sep 15, 2021 License: GPL-3.0 Imports: 33 Imported by: 0



Package colx implements the bridge interfaces for colx blockchain.



This section is empty.


View Source
var PairID = "colx"

PairID unique colx pair ID


func AuthoredTxToString

func AuthoredTxToString(authtx interface{}, pretty bool) string

AuthoredTxToString AuthoredTx to string

func DecodeWIF

func DecodeWIF(wif string) (*colxutil.WIF, error)

DecodeWIF decode wif

func GetBindAddressFromMemoScipt

func GetBindAddressFromMemoScipt(memoScript string) (bind string, ok bool)

GetBindAddressFromMemoScipt get bind address

func Init

func Init(btcExtra *tokens.BtcExtraConfig)

Init init colx extra

func MarshalToJSON

func MarshalToJSON(obj interface{}, pretty bool) string

MarshalToJSON marshal to json


type Bridge

type Bridge struct {

Bridge colx bridge

func NewCrossChainBridge

func NewCrossChainBridge(isSrc bool) *Bridge

NewCrossChainBridge new colx bridge

func (*Bridge) AggregateUtxos

func (b *Bridge) AggregateUtxos(addrs []string, utxos []*electrs.ElectUtxo) (string, error)

AggregateUtxos aggregate uxtos

func (*Bridge) BuildAggregateTransaction

func (b *Bridge) BuildAggregateTransaction(relayFeePerKb int64, addrs []string, utxos []*electrs.ElectUtxo) (rawTx *txauthor.AuthoredTx, err error)

BuildAggregateTransaction build aggregate tx (spend p2sh utxo)

func (*Bridge) BuildRawTransaction

func (b *Bridge) BuildRawTransaction(args *tokens.BuildTxArgs) (rawTx interface{}, err error)

BuildRawTransaction build raw tx

func (*Bridge) BuildTransaction

func (b *Bridge) BuildTransaction(from string, receivers []string, amounts []int64, memo string, relayFeePerKb int64) (rawTx interface{}, err error)

BuildTransaction build tx

func (*Bridge) CalcSignatureHash

func (b *Bridge) CalcSignatureHash(sigScript []byte, tx *wire.MsgTx, i int) (sigHash []byte, err error)

CalcSignatureHash calc sig hash

func (*Bridge) CheckSwapinTxType

func (b *Bridge) CheckSwapinTxType(tx *electrs.ElectTx) (p2shBindAddrs []string, err error)

CheckSwapinTxType check swapin type

func (*Bridge) ConvertBTCAddress

func (b *Bridge) ConvertBTCAddress(addr, btcNet string) (address colxutil.Address, err error)

ConvertBTCAddress decode btc address and convert to COLX address

func (*Bridge) ConvertCOLXAddress

func (b *Bridge) ConvertCOLXAddress(addr, net string) (address btcutil.Address, err error)

ConvertCOLXAddress decode ltc address and convert to BTC address

func (*Bridge) DcrmSignMsgHash

func (b *Bridge) DcrmSignMsgHash(msgHash []string, args *tokens.BuildTxArgs) (rsv []string, err error)

DcrmSignMsgHash dcrm sign msg hash

func (*Bridge) DcrmSignTransaction

func (b *Bridge) DcrmSignTransaction(rawTx interface{}, args *tokens.BuildTxArgs) (signedTx interface{}, txHash string, err error)

DcrmSignTransaction dcrm sign raw tx

func (*Bridge) DecodeAddress

func (b *Bridge) DecodeAddress(addr string) (address colxutil.Address, err error)

DecodeAddress decode address

func (*Bridge) EstimateFeePerKb

func (b *Bridge) EstimateFeePerKb(blocks int) (int64, error)

EstimateFeePerKb impl

func (*Bridge) FindUtxos

func (b *Bridge) FindUtxos(addr string) ([]*electrs.ElectUtxo, error)

FindUtxos impl

func (*Bridge) GetBalance

func (b *Bridge) GetBalance(account string) (*big.Int, error)

GetBalance impl

func (*Bridge) GetBlock

func (b *Bridge) GetBlock(blockHash string) (*electrs.ElectBlock, error)

GetBlock impl

func (*Bridge) GetBlockHash

func (b *Bridge) GetBlockHash(height uint64) (string, error)

GetBlockHash impl

func (*Bridge) GetBlockTransactions

func (b *Bridge) GetBlockTransactions(blockHash string, startIndex uint32) ([]*electrs.ElectTx, error)

GetBlockTransactions impl

func (*Bridge) GetBlockTxids

func (b *Bridge) GetBlockTxids(blockHash string) ([]string, error)

GetBlockTxids impl

func (*Bridge) GetChainParams

func (b *Bridge) GetChainParams() *chaincfg.Params

GetChainParams get chain config (net params)

func (*Bridge) GetCompressedPublicKey

func (b *Bridge) GetCompressedPublicKey(fromPublicKey string, needVerify bool) (cPkData []byte, err error)

GetCompressedPublicKey get compressed public key

func (*Bridge) GetElectTransactionStatus

func (b *Bridge) GetElectTransactionStatus(txHash string) (*electrs.ElectTxStatus, error)

GetElectTransactionStatus impl

func (*Bridge) GetLatestBlockNumber

func (b *Bridge) GetLatestBlockNumber() (uint64, error)

GetLatestBlockNumber impl

func (*Bridge) GetLatestBlockNumberOf

func (b *Bridge) GetLatestBlockNumberOf(apiAddress string) (uint64, error)

GetLatestBlockNumberOf impl

func (*Bridge) GetOutspend

func (b *Bridge) GetOutspend(txHash string, vout uint32) (*electrs.ElectOutspend, error)

GetOutspend impl

func (*Bridge) GetP2shAddress

func (b *Bridge) GetP2shAddress(bindAddr string) (p2shAddress string, redeemScript []byte, err error)

GetP2shAddress get p2sh address from bind address

func (*Bridge) GetP2shAddressByRedeemScript

func (b *Bridge) GetP2shAddressByRedeemScript(redeemScript []byte) (string, error)

GetP2shAddressByRedeemScript get p2sh address by redeem script

func (*Bridge) GetP2shRedeemScript

func (b *Bridge) GetP2shRedeemScript(memo, pubKeyHash []byte) (redeemScript []byte, err error)

GetP2shRedeemScript get p2sh redeem script

func (*Bridge) GetP2shSigScript

func (b *Bridge) GetP2shSigScript(redeemScript []byte) ([]byte, error)

GetP2shSigScript get p2sh signature script

func (*Bridge) GetPayToAddrScript

func (b *Bridge) GetPayToAddrScript(address string) ([]byte, error)

GetPayToAddrScript get pay to address script

func (*Bridge) GetPoolTransactions

func (b *Bridge) GetPoolTransactions(addr string) ([]*electrs.ElectTx, error)

GetPoolTransactions impl

func (*Bridge) GetPoolTxidList

func (b *Bridge) GetPoolTxidList() ([]string, error)

GetPoolTxidList impl

func (*Bridge) GetPublicKeyFromECDSA

func (b *Bridge) GetPublicKeyFromECDSA(privKey *ecdsa.PrivateKey, compressed bool) []byte

GetPublicKeyFromECDSA get public key from ecdsa private key

func (*Bridge) GetReceivedValue

func (b *Bridge) GetReceivedValue(vout []*electrs.ElectTxOut, receiver, pubkeyType string) (value uint64, memoScript string, rightReceiver bool)

GetReceivedValue get received value

func (*Bridge) GetSigScript

func (b *Bridge) GetSigScript(sigScripts [][]byte, prevScript, signData, cPkData []byte, i int) (sigScript []byte, err error)

GetSigScript get script

func (*Bridge) GetTokenBalance

func (b *Bridge) GetTokenBalance(tokenType, tokenAddress, accountAddress string) (*big.Int, error)

GetTokenBalance impl

func (*Bridge) GetTokenSupply

func (b *Bridge) GetTokenSupply(tokenType, tokenAddress string) (*big.Int, error)

GetTokenSupply impl

func (*Bridge) GetTransaction

func (b *Bridge) GetTransaction(txHash string) (interface{}, error)

GetTransaction impl

func (*Bridge) GetTransactionByHash

func (b *Bridge) GetTransactionByHash(txHash string) (*electrs.ElectTx, error)

GetTransactionByHash impl

func (*Bridge) GetTransactionHistory

func (b *Bridge) GetTransactionHistory(addr, lastSeenTxid string) ([]*electrs.ElectTx, error)

GetTransactionHistory impl

func (*Bridge) GetTransactionStatus

func (b *Bridge) GetTransactionStatus(txHash string) (*tokens.TxStatus, error)

GetTransactionStatus impl

func (*Bridge) InitLatestBlockNumber

func (b *Bridge) InitLatestBlockNumber()

InitLatestBlockNumber init latest block number

func (*Bridge) IsP2pkhAddress

func (b *Bridge) IsP2pkhAddress(addr string) bool

IsP2pkhAddress check p2pkh addrss

func (*Bridge) IsP2shAddress

func (b *Bridge) IsP2shAddress(addr string) bool

IsP2shAddress check p2sh addrss

func (*Bridge) IsPayToScriptHash

func (b *Bridge) IsPayToScriptHash(sigScript []byte) bool

IsPayToScriptHash is p2sh

func (*Bridge) IsUtxoLocked added in v0.3.7

func (b *Bridge) IsUtxoLocked(txhash string, vout int) bool

IsUtxoLocked is utxo locked

func (*Bridge) IsValidAddress

func (b *Bridge) IsValidAddress(addr string) bool

IsValidAddress check address

func (*Bridge) LockUtxo added in v0.3.7

func (b *Bridge) LockUtxo(txhash string, vout int) error

LockUtxo lock utxo

func (*Bridge) LockUtxoWithCond added in v0.3.7

func (b *Bridge) LockUtxoWithCond(txhash string, vout int, cond func() bool) error

LockUtxoWithCond lock utxo with condition

func (*Bridge) MakeSignedTransaction

func (b *Bridge) MakeSignedTransaction(authoredTx *txauthor.AuthoredTx, msgHash, rsv []string, sigScripts [][]byte, cPkData []byte) (signedTx interface{}, txHash string, err error)

MakeSignedTransaction make signed tx

func (*Bridge) NewAddressPubKeyHash

func (b *Bridge) NewAddressPubKeyHash(pkData []byte) (*colxutil.AddressPubKeyHash, error)

NewAddressPubKeyHash encap

func (*Bridge) NewAddressScriptHash

func (b *Bridge) NewAddressScriptHash(redeemScript []byte) (*colxutil.AddressScriptHash, error)

NewAddressScriptHash encap

func (*Bridge) NewMsgTx

func (b *Bridge) NewMsgTx(inputs []*wire.TxIn, outputs []*wire.TxOut, locktime uint32) *wire.MsgTx

NewMsgTx new msg tx

func (*Bridge) NewTxIn

func (b *Bridge) NewTxIn(txid string, vout uint32, pkScript []byte) (*wire.TxIn, error)

NewTxIn new txin

func (*Bridge) NewTxOut

func (b *Bridge) NewTxOut(amount int64, pkScript []byte) *wire.TxOut

NewTxOut new txout

func (*Bridge) NewUnsignedTransaction

func (b *Bridge) NewUnsignedTransaction(outputs []*wireTxOutType, relayFeePerKb colxAmountType, fetchInputs txauthor.InputSource, fetchChange txauthor.ChangeSource, isAggregate bool) (*txauthor.AuthoredTx, error)

NewUnsignedTransaction ref btcwallet ref. we only modify it to support P2PKH change script (the origin only support P2WPKH change script) and update estimate size because we are not use P2WKH

func (*Bridge) NullDataScript

func (b *Bridge) NullDataScript(memo string) ([]byte, error)

NullDataScript encap

func (*Bridge) ParsePkScript

func (b *Bridge) ParsePkScript(pkScript []byte) (txscript.PkScript, error)

ParsePkScript parse pkScript

func (*Bridge) PostTransaction

func (b *Bridge) PostTransaction(txHex string) (txHash string, err error)

PostTransaction impl

func (*Bridge) SendTransaction

func (b *Bridge) SendTransaction(signedTx interface{}) (txHash string, err error)

SendTransaction send signed tx

func (*Bridge) SerializePublicKey

func (b *Bridge) SerializePublicKey(ecPub *ecdsa.PublicKey, compressed bool) []byte

SerializePublicKey serialize ecdsa public key

func (*Bridge) SerializeSignature

func (b *Bridge) SerializeSignature(r, s *big.Int) []byte

SerializeSignature serialize signature

func (*Bridge) SetChainAndGateway

func (b *Bridge) SetChainAndGateway(chainCfg *tokens.ChainConfig, gatewayCfg *tokens.GatewayConfig)

SetChainAndGateway set chain and gateway config

func (*Bridge) SetUnlockUtxoCond added in v0.3.7

func (b *Bridge) SetUnlockUtxoCond(txhash string, vout int, cond func() bool) error

SetUnlockUtxoCond set unlock utxo condition

func (*Bridge) ShouldAggregate

func (b *Bridge) ShouldAggregate(aggUtxoCount int, aggSumVal uint64) bool

ShouldAggregate should aggregate

func (*Bridge) SignTransaction

func (b *Bridge) SignTransaction(rawTx interface{}, pairID string) (signedTx interface{}, txHash string, err error)

SignTransaction sign tx with pairID

func (*Bridge) SignTransactionWithPrivateKey

func (b *Bridge) SignTransactionWithPrivateKey(rawTx interface{}, privKey *ecdsa.PrivateKey) (signTx interface{}, txHash string, err error)

SignTransactionWithPrivateKey sign tx with ECDSA private key

func (*Bridge) SignTransactionWithWIF

func (b *Bridge) SignTransactionWithWIF(rawTx interface{}, wif string) (signedTx interface{}, txHash string, err error)

SignTransactionWithWIF sign tx with WIF

func (*Bridge) SignWithECDSA

func (b *Bridge) SignWithECDSA(privKey *ecdsa.PrivateKey, msgHash []byte) (rsv string, err error)

SignWithECDSA sign with ecdsa private key

func (*Bridge) StartChainTransactionScanJob

func (b *Bridge) StartChainTransactionScanJob()

StartChainTransactionScanJob scan job

func (*Bridge) StartMonitLockedUtxo added in v0.3.7

func (b *Bridge) StartMonitLockedUtxo()

StartMonitLockedUtxo start monitor locked utxo

func (*Bridge) StartPoolTransactionScanJob

func (b *Bridge) StartPoolTransactionScanJob()

StartPoolTransactionScanJob scan job

func (*Bridge) StartSwapHistoryScanJob

func (b *Bridge) StartSwapHistoryScanJob()

StartSwapHistoryScanJob scan job

func (*Bridge) ToCOLXTx

func (b *Bridge) ToCOLXTx(tx *belectrs.ElectTx) *belectrs.ElectTx

ToCOLXTx convert address in ElectTx to COLX format

func (*Bridge) ToCOLXVout

func (b *Bridge) ToCOLXVout(vout *belectrs.ElectTxOut) *belectrs.ElectTxOut

ToCOLXVout convert address in ElectTx to COLX format

func (*Bridge) ToCompressedPublicKey

func (b *Bridge) ToCompressedPublicKey(pkData []byte) ([]byte, error)

ToCompressedPublicKey convert to compressed public key if not

func (*Bridge) UnlockUtxo added in v0.3.7

func (b *Bridge) UnlockUtxo(txhash string, vout int)

UnlockUtxo unlock utxo

func (*Bridge) VerifyAggregateMsgHash

func (b *Bridge) VerifyAggregateMsgHash(msgHash []string, args *tokens.BuildTxArgs) error

VerifyAggregateMsgHash verify aggregate msgHash

func (*Bridge) VerifyChainConfig

func (b *Bridge) VerifyChainConfig()

VerifyChainConfig verify chain config

func (*Bridge) VerifyMsgHash

func (b *Bridge) VerifyMsgHash(rawTx interface{}, msgHash []string) (err error)

VerifyMsgHash verify msg hash

func (*Bridge) VerifyP2shTransaction

func (b *Bridge) VerifyP2shTransaction(pairID, txHash, bindAddress string, allowUnstable bool) (*tokens.TxSwapInfo, error)

VerifyP2shTransaction verify p2sh tx

func (*Bridge) VerifyRedeemScript

func (b *Bridge) VerifyRedeemScript(prevScript, redeemScript []byte) error

VerifyRedeemScript verify redeem script

func (*Bridge) VerifyTokenConfig

func (b *Bridge) VerifyTokenConfig(tokenCfg *tokens.TokenConfig) error

VerifyTokenConfig verify token config

func (*Bridge) VerifyTransaction

func (b *Bridge) VerifyTransaction(pairID, txHash string, allowUnstable bool) (*tokens.TxSwapInfo, error)

VerifyTransaction impl

type EncAuthoredTx

type EncAuthoredTx struct {
	Tx          *EncMsgTx
	TotalInput  colxAmountType
	ChangeIndex int

EncAuthoredTx stuct

type EncMsgTx

type EncMsgTx struct {
	Txid     string
	Version  int32
	TxIn     []*EncTxIn
	TxOut    []*EncTxOut
	LockTime uint32

EncMsgTx struct

type EncOutPoint

type EncOutPoint struct {
	Hash  string
	Index uint32

EncOutPoint struct

type EncTxIn

type EncTxIn struct {
	PreviousOutPoint EncOutPoint
	SignatureScript  string
	Witness          []hexutil.Bytes
	Sequence         uint32
	Value            colxAmountType

EncTxIn struct

type EncTxOut

type EncTxOut struct {
	PkScript string
	Value    int64

EncTxOut struct


Path Synopsis
Package colxdev dev tools to output compressed public key.
Package colxdev dev tools to output compressed public key.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL