ltc

package
v0.3.9 Latest Latest
Warning

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

Documentation

Overview

Package ltc implements the bridge interfaces for ltc blockchain.

Index

Constants

This section is empty.

Variables

View Source
var PairID = "ltc"

PairID unique ltc pair ID

Functions

func AuthoredTxToString

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

AuthoredTxToString AuthoredTx to string

func DecodeWIF

func DecodeWIF(wif string) (*ltcutil.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 ltc extra

func MarshalToJSON

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

MarshalToJSON marshal to json

Types

type Bridge

type Bridge struct {
	*tokens.CrossChainBridgeBase
}

Bridge ltc bridge

func NewCrossChainBridge

func NewCrossChainBridge(isSrc bool) *Bridge

NewCrossChainBridge new ltc 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 ltcutil.Address, err error)

ConvertBTCAddress decode btc address and convert to LTC address nolint:gocyclo // keep it

func (*Bridge) ConvertLTCAddress

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

ConvertLTCAddress decode ltc address and convert to BTC address nolint:gocyclo // keep it

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 ltcutil.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) IsValidAddress

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

IsValidAddress check address

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) (*ltcutil.AddressPubKeyHash, error)

NewAddressPubKeyHash encap

func (*Bridge) NewAddressScriptHash

func (b *Bridge) NewAddressScriptHash(redeemScript []byte) (*ltcutil.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 ltcAmountType, fetchInputs txauthor.InputSource, fetchChange txauthor.ChangeSource, isAggregate bool) (*txauthor.AuthoredTx, error)

NewUnsignedTransaction ref ltcwallet ref. https://github.com/ltcsuite/ltcwallet/blob/b07494fc2d662fdda2b8a9db2a3eacde3e1ef347/wallet/txauthor/author.go 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) 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) StartPoolTransactionScanJob

func (b *Bridge) StartPoolTransactionScanJob()

StartPoolTransactionScanJob scan job

func (*Bridge) StartSwapHistoryScanJob

func (b *Bridge) StartSwapHistoryScanJob()

StartSwapHistoryScanJob scan job

func (*Bridge) ToCompressedPublicKey

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

ToCompressedPublicKey convert to compressed public key if not

func (*Bridge) ToLTCTx

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

ToLTCTx convert address in ElectTx to LTC format

func (*Bridge) ToLTCVout

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

ToLTCVout convert address in ElectTx to LTC format

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  ltcAmountType
	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            ltcAmountType
}

EncTxIn struct

type EncTxOut

type EncTxOut struct {
	PkScript string
	Value    int64
}

EncTxOut struct

Jump to

Keyboard shortcuts

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