Merge remote-tracking branch 'upstream/master' into flo-upstream
This commit is contained in:
commit
84be24ef7f
10
.editorconfig
Normal file
10
.editorconfig
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
max_line_length = 80
|
||||||
|
insert_final_newline = true
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
10
Makefile
10
Makefile
@ -1,9 +1,10 @@
|
|||||||
BIN_IMAGE = blockbook-build
|
BIN_IMAGE = blockbook-build
|
||||||
DEB_IMAGE = blockbook-build-deb
|
DEB_IMAGE = blockbook-build-deb
|
||||||
PACKAGER = $(shell id -u):$(shell id -g)
|
PACKAGER = $(shell id -u):$(shell id -g)
|
||||||
|
DOCKER_VERSION = $(shell docker version --format '{{.Client.Version}}')
|
||||||
BASE_IMAGE = $$(awk -F= '$$1=="ID" { print $$2 ;}' /etc/os-release):$$(awk -F= '$$1=="VERSION_ID" { print $$2 ;}' /etc/os-release | tr -d '"')
|
BASE_IMAGE = $$(awk -F= '$$1=="ID" { print $$2 ;}' /etc/os-release):$$(awk -F= '$$1=="VERSION_ID" { print $$2 ;}' /etc/os-release | tr -d '"')
|
||||||
NO_CACHE = false
|
NO_CACHE = false
|
||||||
TCMALLOC =
|
TCMALLOC =
|
||||||
PORTABLE = 0
|
PORTABLE = 0
|
||||||
ARGS ?=
|
ARGS ?=
|
||||||
|
|
||||||
@ -27,7 +28,7 @@ test-all: .bin-image
|
|||||||
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" --network="host" $(BIN_IMAGE) make test-all ARGS="$(ARGS)"
|
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" --network="host" $(BIN_IMAGE) make test-all ARGS="$(ARGS)"
|
||||||
|
|
||||||
deb-backend-%: .deb-image
|
deb-backend-%: .deb-image
|
||||||
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" -v "$(CURDIR)/build:/out" $(DEB_IMAGE) /build/build-deb.sh backend $* $(ARGS)
|
docker run -t --rm -e PACKAGER=$(PACKAGER) -v /var/run/docker.sock:/var/run/docker.sock -v "$(CURDIR):/src" -v "$(CURDIR)/build:/out" $(DEB_IMAGE) /build/build-deb.sh backend $* $(ARGS)
|
||||||
|
|
||||||
deb-blockbook-%: .deb-image
|
deb-blockbook-%: .deb-image
|
||||||
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" -v "$(CURDIR)/build:/out" $(DEB_IMAGE) /build/build-deb.sh blockbook $* $(ARGS)
|
docker run -t --rm -e PACKAGER=$(PACKAGER) -v "$(CURDIR):/src" -v "$(CURDIR)/build:/out" $(DEB_IMAGE) /build/build-deb.sh blockbook $* $(ARGS)
|
||||||
@ -55,7 +56,7 @@ build-images: clean-images
|
|||||||
.deb-image: .bin-image
|
.deb-image: .bin-image
|
||||||
@if [ $$(build/tools/image_status.sh $(DEB_IMAGE):latest build/docker) != "ok" ]; then \
|
@if [ $$(build/tools/image_status.sh $(DEB_IMAGE):latest build/docker) != "ok" ]; then \
|
||||||
echo "Building image $(DEB_IMAGE)..."; \
|
echo "Building image $(DEB_IMAGE)..."; \
|
||||||
docker build --no-cache=$(NO_CACHE) -t $(DEB_IMAGE) build/docker/deb; \
|
docker build --no-cache=$(NO_CACHE) --build-arg DOCKER_VERSION=$(DOCKER_VERSION) -t $(DEB_IMAGE) build/docker/deb; \
|
||||||
else \
|
else \
|
||||||
echo "Image $(DEB_IMAGE) is up to date"; \
|
echo "Image $(DEB_IMAGE) is up to date"; \
|
||||||
fi
|
fi
|
||||||
@ -79,3 +80,6 @@ clean-bin-image:
|
|||||||
|
|
||||||
clean-deb-image:
|
clean-deb-image:
|
||||||
- docker rmi $(DEB_IMAGE)
|
- docker rmi $(DEB_IMAGE)
|
||||||
|
|
||||||
|
style:
|
||||||
|
find . -name "*.go" -exec gofmt -w {} \;
|
||||||
|
|||||||
@ -220,3 +220,7 @@ Blockbook stores data the key-value store RocksDB. Database format is described
|
|||||||
## API
|
## API
|
||||||
|
|
||||||
Blockbook API is described [here](/docs/api.md).
|
Blockbook API is described [here](/docs/api.md).
|
||||||
|
|
||||||
|
## Environment variables
|
||||||
|
|
||||||
|
List of environment variables that affect Blockbook's behavior is [here](/docs/env.md).
|
||||||
|
|||||||
@ -62,7 +62,7 @@ func (w *Worker) RefetchInternalDataRoutine() {
|
|||||||
if block != nil {
|
if block != nil {
|
||||||
blockSpecificData, _ = block.CoinSpecificData.(*bchain.EthereumBlockSpecificData)
|
blockSpecificData, _ = block.CoinSpecificData.(*bchain.EthereumBlockSpecificData)
|
||||||
}
|
}
|
||||||
if err != nil || block == nil || blockSpecificData == nil || blockSpecificData.InternalDataError != "" {
|
if err != nil || block == nil || (blockSpecificData != nil && blockSpecificData.InternalDataError != "") {
|
||||||
glog.Errorf("Refetching internal data for %d %s, error %v, retrying", ie.Height, ie.Hash, err)
|
glog.Errorf("Refetching internal data for %d %s, error %v, retrying", ie.Height, ie.Hash, err)
|
||||||
// try for second time to fetch the data - the 2nd attempt after the first unsuccessful has many times higher probability of success
|
// try for second time to fetch the data - the 2nd attempt after the first unsuccessful has many times higher probability of success
|
||||||
// probably something to do with data preloaded to cache on the backend
|
// probably something to do with data preloaded to cache on the backend
|
||||||
|
|||||||
@ -232,6 +232,10 @@ type EthereumSpecific struct {
|
|||||||
GasLimit *big.Int `json:"gasLimit"`
|
GasLimit *big.Int `json:"gasLimit"`
|
||||||
GasUsed *big.Int `json:"gasUsed,omitempty"`
|
GasUsed *big.Int `json:"gasUsed,omitempty"`
|
||||||
GasPrice *Amount `json:"gasPrice,omitempty"`
|
GasPrice *Amount `json:"gasPrice,omitempty"`
|
||||||
|
L1Fee *big.Int `json:"l1Fee,omitempty"`
|
||||||
|
L1FeeScalar string `json:"l1FeeScalar,omitempty"`
|
||||||
|
L1GasPrice *Amount `json:"l1GasPrice,omitempty"`
|
||||||
|
L1GasUsed *big.Int `json:"l1GasUsed,omitempty"`
|
||||||
Data string `json:"data,omitempty"`
|
Data string `json:"data,omitempty"`
|
||||||
ParsedData *bchain.EthereumParsedInputData `json:"parsedData,omitempty"`
|
ParsedData *bchain.EthereumParsedInputData `json:"parsedData,omitempty"`
|
||||||
InternalTransfers []EthereumInternalTransfer `json:"internalTransfers,omitempty"`
|
InternalTransfers []EthereumInternalTransfer `json:"internalTransfers,omitempty"`
|
||||||
@ -499,6 +503,7 @@ type BlockRaw struct {
|
|||||||
// BlockbookInfo contains information about the running blockbook instance
|
// BlockbookInfo contains information about the running blockbook instance
|
||||||
type BlockbookInfo struct {
|
type BlockbookInfo struct {
|
||||||
Coin string `json:"coin"`
|
Coin string `json:"coin"`
|
||||||
|
Network string `json:"network"`
|
||||||
Host string `json:"host"`
|
Host string `json:"host"`
|
||||||
Version string `json:"version"`
|
Version string `json:"version"`
|
||||||
GitCommit string `json:"gitCommit"`
|
GitCommit string `json:"gitCommit"`
|
||||||
|
|||||||
@ -172,9 +172,18 @@ func (w *Worker) getAddressAliases(addresses map[string]struct{}) AddressAliases
|
|||||||
}
|
}
|
||||||
for a := range addresses {
|
for a := range addresses {
|
||||||
if w.chainType == bchain.ChainEthereumType {
|
if w.chainType == bchain.ChainEthereumType {
|
||||||
ci, err := w.db.GetContractInfoForAddress(a)
|
addrDesc, err := w.chainParser.GetAddrDescFromAddress(a)
|
||||||
if err == nil && ci != nil && ci.Name != "" {
|
if err != nil || addrDesc == nil {
|
||||||
aliases[a] = AddressAlias{Type: "Contract", Alias: ci.Name}
|
continue
|
||||||
|
}
|
||||||
|
ci, err := w.db.GetContractInfo(addrDesc, bchain.UnknownTokenType)
|
||||||
|
if err == nil && ci != nil {
|
||||||
|
if ci.Type == bchain.UnhandledTokenType {
|
||||||
|
ci, _, err = w.getContractDescriptorInfo(addrDesc, bchain.UnknownTokenType)
|
||||||
|
}
|
||||||
|
if err == nil && ci != nil && ci.Name != "" {
|
||||||
|
aliases[a] = AddressAlias{Type: "Contract", Alias: ci.Name}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
n := w.db.GetAddressAlias(a)
|
n := w.db.GetAddressAlias(a)
|
||||||
@ -198,6 +207,11 @@ func (w *Worker) GetTransaction(txid string, spendingTxs bool, specificJSON bool
|
|||||||
return tx, nil
|
return tx, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRawTransaction gets raw transaction data in hex format from txid
|
||||||
|
func (w *Worker) GetRawTransaction(txid string) (string, error) {
|
||||||
|
return w.chain.EthereumTypeGetRawTransaction(txid)
|
||||||
|
}
|
||||||
|
|
||||||
// getTransaction reads transaction data from txid
|
// getTransaction reads transaction data from txid
|
||||||
func (w *Worker) getTransaction(txid string, spendingTxs bool, specificJSON bool, addresses map[string]struct{}) (*Tx, error) {
|
func (w *Worker) getTransaction(txid string, spendingTxs bool, specificJSON bool, addresses map[string]struct{}) (*Tx, error) {
|
||||||
bchainTx, height, err := w.txCache.GetTransaction(txid)
|
bchainTx, height, err := w.txCache.GetTransaction(txid)
|
||||||
@ -429,18 +443,25 @@ func (w *Worker) getTransactionFromBchainTx(bchainTx *bchain.Tx, height int, spe
|
|||||||
// mempool txs do not have fees yet
|
// mempool txs do not have fees yet
|
||||||
if ethTxData.GasUsed != nil {
|
if ethTxData.GasUsed != nil {
|
||||||
feesSat.Mul(ethTxData.GasPrice, ethTxData.GasUsed)
|
feesSat.Mul(ethTxData.GasPrice, ethTxData.GasUsed)
|
||||||
|
if ethTxData.L1Fee != nil {
|
||||||
|
feesSat.Add(&feesSat, ethTxData.L1Fee)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if len(bchainTx.Vout) > 0 {
|
if len(bchainTx.Vout) > 0 {
|
||||||
valOutSat = bchainTx.Vout[0].ValueSat
|
valOutSat = bchainTx.Vout[0].ValueSat
|
||||||
}
|
}
|
||||||
ethSpecific = &EthereumSpecific{
|
ethSpecific = &EthereumSpecific{
|
||||||
GasLimit: ethTxData.GasLimit,
|
GasLimit: ethTxData.GasLimit,
|
||||||
GasPrice: (*Amount)(ethTxData.GasPrice),
|
GasPrice: (*Amount)(ethTxData.GasPrice),
|
||||||
GasUsed: ethTxData.GasUsed,
|
GasUsed: ethTxData.GasUsed,
|
||||||
Nonce: ethTxData.Nonce,
|
L1Fee: ethTxData.L1Fee,
|
||||||
Status: ethTxData.Status,
|
L1FeeScalar: ethTxData.L1FeeScalar,
|
||||||
Data: ethTxData.Data,
|
L1GasPrice: (*Amount)(ethTxData.L1GasPrice),
|
||||||
ParsedData: parsedInputData,
|
L1GasUsed: ethTxData.L1GasUsed,
|
||||||
|
Nonce: ethTxData.Nonce,
|
||||||
|
Status: ethTxData.Status,
|
||||||
|
Data: ethTxData.Data,
|
||||||
|
ParsedData: parsedInputData,
|
||||||
}
|
}
|
||||||
if internalData != nil {
|
if internalData != nil {
|
||||||
ethSpecific.Type = internalData.Type
|
ethSpecific.Type = internalData.Type
|
||||||
@ -601,7 +622,7 @@ func (w *Worker) GetTransactionFromMempoolTx(mempoolTx *bchain.MempoolTx) (*Tx,
|
|||||||
return r, nil
|
return r, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *Worker) getContractInfo(contract string, typeFromContext bchain.TokenTypeName) (*bchain.ContractInfo, bool, error) {
|
func (w *Worker) GetContractInfo(contract string, typeFromContext bchain.TokenTypeName) (*bchain.ContractInfo, bool, error) {
|
||||||
cd, err := w.chainParser.GetAddrDescFromAddress(contract)
|
cd, err := w.chainParser.GetAddrDescFromAddress(contract)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
@ -641,7 +662,7 @@ func (w *Worker) getContractDescriptorInfo(cd bchain.AddressDescriptor, typeFrom
|
|||||||
glog.Errorf("StoreContractInfo error %v, contract %v", err, cd)
|
glog.Errorf("StoreContractInfo error %v, contract %v", err, cd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (len(contractInfo.Name) > 0 && contractInfo.Name[0] == 0) || (len(contractInfo.Symbol) > 0 && contractInfo.Symbol[0] == 0) {
|
} else if (contractInfo.Type == bchain.UnhandledTokenType || len(contractInfo.Name) > 0 && contractInfo.Name[0] == 0) || (len(contractInfo.Symbol) > 0 && contractInfo.Symbol[0] == 0) {
|
||||||
// fix contract name/symbol that was parsed as a string consisting of zeroes
|
// fix contract name/symbol that was parsed as a string consisting of zeroes
|
||||||
blockchainContractInfo, err := w.chain.GetContractInfo(cd)
|
blockchainContractInfo, err := w.chain.GetContractInfo(cd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -660,6 +681,10 @@ func (w *Worker) getContractDescriptorInfo(cd bchain.AddressDescriptor, typeFrom
|
|||||||
if blockchainContractInfo != nil {
|
if blockchainContractInfo != nil {
|
||||||
contractInfo.Decimals = blockchainContractInfo.Decimals
|
contractInfo.Decimals = blockchainContractInfo.Decimals
|
||||||
}
|
}
|
||||||
|
if contractInfo.Type == bchain.UnhandledTokenType {
|
||||||
|
glog.Infof("Contract %v %v [%s] handled", cd, typeFromContext, contractInfo.Name)
|
||||||
|
contractInfo.Type = typeFromContext
|
||||||
|
}
|
||||||
if err = w.db.StoreContractInfo(contractInfo); err != nil {
|
if err = w.db.StoreContractInfo(contractInfo); err != nil {
|
||||||
glog.Errorf("StoreContractInfo error %v, contract %v", err, cd)
|
glog.Errorf("StoreContractInfo error %v, contract %v", err, cd)
|
||||||
}
|
}
|
||||||
@ -680,7 +705,7 @@ func (w *Worker) getEthereumTokensTransfers(transfers bchain.TokenTransfers, add
|
|||||||
if info, ok := contractCache[t.Contract]; ok {
|
if info, ok := contractCache[t.Contract]; ok {
|
||||||
contractInfo = info
|
contractInfo = info
|
||||||
} else {
|
} else {
|
||||||
info, _, err := w.getContractInfo(t.Contract, typeName)
|
info, _, err := w.GetContractInfo(t.Contract, typeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("getContractInfo error %v, contract %v", err, t.Contract)
|
glog.Errorf("getContractInfo error %v, contract %v", err, t.Contract)
|
||||||
continue
|
continue
|
||||||
@ -1117,10 +1142,16 @@ func (w *Worker) getEthereumTypeAddressBalances(addrDesc bchain.AddressDescripto
|
|||||||
d.tokens = d.tokens[:j]
|
d.tokens = d.tokens[:j]
|
||||||
sort.Sort(d.tokens)
|
sort.Sort(d.tokens)
|
||||||
}
|
}
|
||||||
d.contractInfo, err = w.db.GetContractInfo(addrDesc, "")
|
d.contractInfo, err = w.db.GetContractInfo(addrDesc, bchain.UnknownTokenType)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
if d.contractInfo != nil && d.contractInfo.Type == bchain.UnhandledTokenType {
|
||||||
|
d.contractInfo, _, err = w.getContractDescriptorInfo(addrDesc, bchain.UnknownTokenType)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
if filter.FromHeight == 0 && filter.ToHeight == 0 {
|
if filter.FromHeight == 0 && filter.ToHeight == 0 {
|
||||||
// compute total results for paging
|
// compute total results for paging
|
||||||
if filter.Vout == AddressFilterVoutOff {
|
if filter.Vout == AddressFilterVoutOff {
|
||||||
@ -2406,6 +2437,7 @@ func (w *Worker) GetSystemInfo(internal bool) (*SystemInfo, error) {
|
|||||||
}
|
}
|
||||||
blockbookInfo := &BlockbookInfo{
|
blockbookInfo := &BlockbookInfo{
|
||||||
Coin: w.is.Coin,
|
Coin: w.is.Coin,
|
||||||
|
Network: w.is.GetNetwork(),
|
||||||
Host: w.is.Host,
|
Host: w.is.Host,
|
||||||
Version: vi.Version,
|
Version: vi.Version,
|
||||||
GitCommit: vi.GitCommit,
|
GitCommit: vi.GitCommit,
|
||||||
|
|||||||
@ -64,7 +64,7 @@ func (b *BaseChain) EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc A
|
|||||||
return nil, errors.New("not supported")
|
return nil, errors.New("not supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetContractInfo returns URI of non fungible or multi token defined by token id
|
// GetTokenURI returns URI of non fungible or multi token defined by token id
|
||||||
func (p *BaseChain) GetTokenURI(contractDesc AddressDescriptor, tokenID *big.Int) (string, error) {
|
func (p *BaseChain) GetTokenURI(contractDesc AddressDescriptor, tokenID *big.Int) (string, error) {
|
||||||
return "", errors.New("not supported")
|
return "", errors.New("not supported")
|
||||||
}
|
}
|
||||||
@ -76,3 +76,12 @@ func (b *BaseChain) EthereumTypeGetSupportedStakingPools() []string {
|
|||||||
func (b *BaseChain) EthereumTypeGetStakingPoolsData(addrDesc AddressDescriptor) ([]StakingPoolData, error) {
|
func (b *BaseChain) EthereumTypeGetStakingPoolsData(addrDesc AddressDescriptor) ([]StakingPoolData, error) {
|
||||||
return nil, errors.New("not supported")
|
return nil, errors.New("not supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EthereumTypeRpcCall calls eth_call with given data and to address
|
||||||
|
func (b *BaseChain) EthereumTypeRpcCall(data, to, from string) (string, error) {
|
||||||
|
return "", errors.New("not supported")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *BaseChain) EthereumTypeGetRawTransaction(txid string) (string, error) {
|
||||||
|
return "", errors.New("not supported")
|
||||||
|
}
|
||||||
|
|||||||
77
bchain/coins/arbitrum/arbitrumrpc.go
Normal file
77
bchain/coins/arbitrum/arbitrumrpc.go
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
package arbitrum
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/golang/glog"
|
||||||
|
"github.com/juju/errors"
|
||||||
|
"github.com/trezor/blockbook/bchain"
|
||||||
|
"github.com/trezor/blockbook/bchain/coins/eth"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
ArbitrumOneMainNet eth.Network = 42161
|
||||||
|
ArbitrumNovaMainNet eth.Network = 42170
|
||||||
|
)
|
||||||
|
|
||||||
|
// ArbitrumRPC is an interface to JSON-RPC arbitrum service.
|
||||||
|
type ArbitrumRPC struct {
|
||||||
|
*eth.EthereumRPC
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewArbitrumRPC returns new ArbitrumRPC instance.
|
||||||
|
func NewArbitrumRPC(config json.RawMessage, pushHandler func(bchain.NotificationType)) (bchain.BlockChain, error) {
|
||||||
|
c, err := eth.NewEthereumRPC(config, pushHandler)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
s := &ArbitrumRPC{
|
||||||
|
EthereumRPC: c.(*eth.EthereumRPC),
|
||||||
|
}
|
||||||
|
|
||||||
|
return s, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize arbitrum rpc interface
|
||||||
|
func (b *ArbitrumRPC) Initialize() error {
|
||||||
|
b.OpenRPC = eth.OpenRPC
|
||||||
|
|
||||||
|
rc, ec, err := b.OpenRPC(b.ChainConfig.RPCURL)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// set chain specific
|
||||||
|
b.Client = ec
|
||||||
|
b.RPC = rc
|
||||||
|
b.NewBlock = eth.NewEthereumNewBlock()
|
||||||
|
b.NewTx = eth.NewEthereumNewTx()
|
||||||
|
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
id, err := b.Client.NetworkID(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// parameters for getInfo request
|
||||||
|
switch eth.Network(id.Uint64()) {
|
||||||
|
case ArbitrumOneMainNet:
|
||||||
|
b.MainNetChainID = ArbitrumOneMainNet
|
||||||
|
b.Testnet = false
|
||||||
|
b.Network = "livenet"
|
||||||
|
case ArbitrumNovaMainNet:
|
||||||
|
b.MainNetChainID = ArbitrumNovaMainNet
|
||||||
|
b.Testnet = false
|
||||||
|
b.Network = "livenet"
|
||||||
|
default:
|
||||||
|
return errors.Errorf("Unknown network id %v", id)
|
||||||
|
}
|
||||||
|
|
||||||
|
glog.Info("rpc: block chain ", b.Network)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@ -11,6 +11,7 @@ import (
|
|||||||
|
|
||||||
"github.com/juju/errors"
|
"github.com/juju/errors"
|
||||||
"github.com/trezor/blockbook/bchain"
|
"github.com/trezor/blockbook/bchain"
|
||||||
|
"github.com/trezor/blockbook/bchain/coins/arbitrum"
|
||||||
"github.com/trezor/blockbook/bchain/coins/avalanche"
|
"github.com/trezor/blockbook/bchain/coins/avalanche"
|
||||||
"github.com/trezor/blockbook/bchain/coins/bch"
|
"github.com/trezor/blockbook/bchain/coins/bch"
|
||||||
"github.com/trezor/blockbook/bchain/coins/bellcoin"
|
"github.com/trezor/blockbook/bchain/coins/bellcoin"
|
||||||
@ -42,6 +43,7 @@ import (
|
|||||||
"github.com/trezor/blockbook/bchain/coins/namecoin"
|
"github.com/trezor/blockbook/bchain/coins/namecoin"
|
||||||
"github.com/trezor/blockbook/bchain/coins/nuls"
|
"github.com/trezor/blockbook/bchain/coins/nuls"
|
||||||
"github.com/trezor/blockbook/bchain/coins/omotenashicoin"
|
"github.com/trezor/blockbook/bchain/coins/omotenashicoin"
|
||||||
|
"github.com/trezor/blockbook/bchain/coins/optimism"
|
||||||
"github.com/trezor/blockbook/bchain/coins/pivx"
|
"github.com/trezor/blockbook/bchain/coins/pivx"
|
||||||
"github.com/trezor/blockbook/bchain/coins/polis"
|
"github.com/trezor/blockbook/bchain/coins/polis"
|
||||||
"github.com/trezor/blockbook/bchain/coins/polygon"
|
"github.com/trezor/blockbook/bchain/coins/polygon"
|
||||||
@ -66,6 +68,7 @@ var BlockChainFactories = make(map[string]blockChainFactory)
|
|||||||
func init() {
|
func init() {
|
||||||
BlockChainFactories["Bitcoin"] = btc.NewBitcoinRPC
|
BlockChainFactories["Bitcoin"] = btc.NewBitcoinRPC
|
||||||
BlockChainFactories["Testnet"] = btc.NewBitcoinRPC
|
BlockChainFactories["Testnet"] = btc.NewBitcoinRPC
|
||||||
|
BlockChainFactories["Testnet4"] = btc.NewBitcoinRPC
|
||||||
BlockChainFactories["Signet"] = btc.NewBitcoinRPC
|
BlockChainFactories["Signet"] = btc.NewBitcoinRPC
|
||||||
BlockChainFactories["Regtest"] = btc.NewBitcoinRPC
|
BlockChainFactories["Regtest"] = btc.NewBitcoinRPC
|
||||||
BlockChainFactories["Zcash"] = zec.NewZCashRPC
|
BlockChainFactories["Zcash"] = zec.NewZCashRPC
|
||||||
@ -139,6 +142,12 @@ func init() {
|
|||||||
BlockChainFactories["BNB Smart Chain Archive"] = bsc.NewBNBSmartChainRPC
|
BlockChainFactories["BNB Smart Chain Archive"] = bsc.NewBNBSmartChainRPC
|
||||||
BlockChainFactories["Polygon"] = polygon.NewPolygonRPC
|
BlockChainFactories["Polygon"] = polygon.NewPolygonRPC
|
||||||
BlockChainFactories["Polygon Archive"] = polygon.NewPolygonRPC
|
BlockChainFactories["Polygon Archive"] = polygon.NewPolygonRPC
|
||||||
|
BlockChainFactories["Optimism"] = optimism.NewOptimismRPC
|
||||||
|
BlockChainFactories["Optimism Archive"] = optimism.NewOptimismRPC
|
||||||
|
BlockChainFactories["Arbitrum"] = arbitrum.NewArbitrumRPC
|
||||||
|
BlockChainFactories["Arbitrum Archive"] = arbitrum.NewArbitrumRPC
|
||||||
|
BlockChainFactories["Arbitrum Nova"] = arbitrum.NewArbitrumRPC
|
||||||
|
BlockChainFactories["Arbitrum Nova Archive"] = arbitrum.NewArbitrumRPC
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewBlockChain creates bchain.BlockChain and bchain.Mempool for the coin passed by the parameter coin
|
// NewBlockChain creates bchain.BlockChain and bchain.Mempool for the coin passed by the parameter coin
|
||||||
@ -325,7 +334,7 @@ func (c *blockChainWithMetrics) EthereumTypeGetErc20ContractBalance(addrDesc, co
|
|||||||
return c.b.EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc)
|
return c.b.EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetContractInfo returns URI of non fungible or multi token defined by token id
|
// GetTokenURI returns URI of non fungible or multi token defined by token id
|
||||||
func (c *blockChainWithMetrics) GetTokenURI(contractDesc bchain.AddressDescriptor, tokenID *big.Int) (v string, err error) {
|
func (c *blockChainWithMetrics) GetTokenURI(contractDesc bchain.AddressDescriptor, tokenID *big.Int) (v string, err error) {
|
||||||
defer func(s time.Time) { c.observeRPCLatency("GetTokenURI", s, err) }(time.Now())
|
defer func(s time.Time) { c.observeRPCLatency("GetTokenURI", s, err) }(time.Now())
|
||||||
return c.b.GetTokenURI(contractDesc, tokenID)
|
return c.b.GetTokenURI(contractDesc, tokenID)
|
||||||
@ -340,6 +349,17 @@ func (c *blockChainWithMetrics) EthereumTypeGetStakingPoolsData(addrDesc bchain.
|
|||||||
return c.b.EthereumTypeGetStakingPoolsData(addrDesc)
|
return c.b.EthereumTypeGetStakingPoolsData(addrDesc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EthereumTypeRpcCall calls eth_call with given data and to address
|
||||||
|
func (c *blockChainWithMetrics) EthereumTypeRpcCall(data, to, from string) (v string, err error) {
|
||||||
|
defer func(s time.Time) { c.observeRPCLatency("EthereumTypeRpcCall", s, err) }(time.Now())
|
||||||
|
return c.b.EthereumTypeRpcCall(data, to, from)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *blockChainWithMetrics) EthereumTypeGetRawTransaction(txid string) (v string, err error) {
|
||||||
|
defer func(s time.Time) { c.observeRPCLatency("EthereumTypeGetRawTransaction", s, err) }(time.Now())
|
||||||
|
return c.b.EthereumTypeGetRawTransaction(txid)
|
||||||
|
}
|
||||||
|
|
||||||
type mempoolWithMetrics struct {
|
type mempoolWithMetrics struct {
|
||||||
mempool bchain.Mempool
|
mempool bchain.Mempool
|
||||||
m *common.Metrics
|
m *common.Metrics
|
||||||
|
|||||||
@ -4,11 +4,28 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
|
"github.com/martinboehm/btcd/wire"
|
||||||
"github.com/martinboehm/btcutil/chaincfg"
|
"github.com/martinboehm/btcutil/chaincfg"
|
||||||
"github.com/trezor/blockbook/bchain"
|
"github.com/trezor/blockbook/bchain"
|
||||||
"github.com/trezor/blockbook/common"
|
"github.com/trezor/blockbook/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// temp params for signet(wait btcd commit)
|
||||||
|
// magic numbers
|
||||||
|
const (
|
||||||
|
Testnet4Magic wire.BitcoinNet = 0x283f161c
|
||||||
|
)
|
||||||
|
|
||||||
|
// chain parameters
|
||||||
|
var (
|
||||||
|
TestNet4Params chaincfg.Params
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
TestNet4Params = chaincfg.TestNet3Params
|
||||||
|
TestNet4Params.Net = Testnet4Magic
|
||||||
|
}
|
||||||
|
|
||||||
// BitcoinParser handle
|
// BitcoinParser handle
|
||||||
type BitcoinParser struct {
|
type BitcoinParser struct {
|
||||||
*BitcoinLikeParser
|
*BitcoinLikeParser
|
||||||
@ -33,6 +50,8 @@ func GetChainParams(chain string) *chaincfg.Params {
|
|||||||
switch chain {
|
switch chain {
|
||||||
case "test":
|
case "test":
|
||||||
return &chaincfg.TestNet3Params
|
return &chaincfg.TestNet3Params
|
||||||
|
case "testnet4":
|
||||||
|
return &TestNet4Params
|
||||||
case "regtest":
|
case "regtest":
|
||||||
return &chaincfg.RegressionNetParams
|
return &chaincfg.RegressionNetParams
|
||||||
case "signet":
|
case "signet":
|
||||||
|
|||||||
@ -467,11 +467,12 @@ func TestGetAddressesFromAddrDescTestnet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
testTx1, testTx2, testTx3 bchain.Tx
|
testTx1, testTx2, testTx3, testTx4 bchain.Tx
|
||||||
|
|
||||||
testTxPacked1 = "0001e2408ba8d7af5401000000017f9a22c9cbf54bd902400df746f138f37bcf5b4d93eb755820e974ba43ed5f42040000006a4730440220037f4ed5427cde81d55b9b6a2fd08c8a25090c2c2fff3a75c1a57625ca8a7118022076c702fe55969fa08137f71afd4851c48e31082dd3c40c919c92cdbc826758d30121029f6da5623c9f9b68a9baf9c1bc7511df88fa34c6c2f71f7c62f2f03ff48dca80feffffff019c9700000000000017a9146144d57c8aff48492c9dfb914e120b20bad72d6f8773d00700"
|
testTxPacked1 = "0001e2408ba8d7af5401000000017f9a22c9cbf54bd902400df746f138f37bcf5b4d93eb755820e974ba43ed5f42040000006a4730440220037f4ed5427cde81d55b9b6a2fd08c8a25090c2c2fff3a75c1a57625ca8a7118022076c702fe55969fa08137f71afd4851c48e31082dd3c40c919c92cdbc826758d30121029f6da5623c9f9b68a9baf9c1bc7511df88fa34c6c2f71f7c62f2f03ff48dca80feffffff019c9700000000000017a9146144d57c8aff48492c9dfb914e120b20bad72d6f8773d00700"
|
||||||
testTxPacked2 = "0007c91a899ab7da6a010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000"
|
testTxPacked2 = "0007c91a899ab7da6a010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000"
|
||||||
testTxPacked3 = "00003d818bfda9aa3e02000000000102deb1999a857ab0a13d6b12fbd95ea75b409edde5f2ff747507ce42d9986a8b9d0000000000fdffffff9fd2d3361e203b2375eba6438efbef5b3075531e7e583c7cc76b7294fe7f22980000000000fdffffff02a0860100000000001600148091746745464e7555c31e9a5afceac14a02978ae7fc1c0000000000160014565ea9ff4589d3e05ba149ae6e257752bfdc2a1e0247304402207d67d320a8e813f986b35e9791935fcb736754812b7038686f5de6cfdcda99cd02201c3bb2c178e0056016437ecfe365a7eef84aa9d293ebdc566177af82e22fcdd3012103abb30c1bbe878b07b58dc169b1d061d48c60be8107f632a59778b38bf7ceea5a02473044022044f54a478cfe086e870cb026c9dcd4e14e63778bef569a4d55a6332725cd9a9802202f0e94c04e6f328fc64ad9efe552888c299750d1b8d033324825a3ff29920e030121036fcd433428aa7dc65c4f5408fa31f208c54fe4b4c6c1ae9c39a825ed4f1ac039813d0000"
|
testTxPacked3 = "00003d818bfda9aa3e02000000000102deb1999a857ab0a13d6b12fbd95ea75b409edde5f2ff747507ce42d9986a8b9d0000000000fdffffff9fd2d3361e203b2375eba6438efbef5b3075531e7e583c7cc76b7294fe7f22980000000000fdffffff02a0860100000000001600148091746745464e7555c31e9a5afceac14a02978ae7fc1c0000000000160014565ea9ff4589d3e05ba149ae6e257752bfdc2a1e0247304402207d67d320a8e813f986b35e9791935fcb736754812b7038686f5de6cfdcda99cd02201c3bb2c178e0056016437ecfe365a7eef84aa9d293ebdc566177af82e22fcdd3012103abb30c1bbe878b07b58dc169b1d061d48c60be8107f632a59778b38bf7ceea5a02473044022044f54a478cfe086e870cb026c9dcd4e14e63778bef569a4d55a6332725cd9a9802202f0e94c04e6f328fc64ad9efe552888c299750d1b8d033324825a3ff29920e030121036fcd433428aa7dc65c4f5408fa31f208c54fe4b4c6c1ae9c39a825ed4f1ac039813d0000"
|
||||||
|
testTxPacked4 = "0000a2b98ced82b6400300000000010148f8f93ebb12407809920d2ab9cc1bf01289b314eb23028c83fdab21e5fefa690100000000fdffffff0150c3000000000000160014cb888de3c89670a3061fb6ef6590f187649cca060247304402206a9db8d7157e4b0a06a1f090b9de88cdc616028b431b80617a055117877e479a02202937d6d1658d4a8afde86b245325c3bb0e769a87cb09d802bcefaa21550065e201210374aa8f312de4ebccbef55609700a39764387aa4ff5d76f1ccb4d2382e454f05b00000000"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -595,6 +596,37 @@ func init() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testTx4 = bchain.Tx{
|
||||||
|
Hex: "0300000000010148f8f93ebb12407809920d2ab9cc1bf01289b314eb23028c83fdab21e5fefa690100000000fdffffff0150c3000000000000160014cb888de3c89670a3061fb6ef6590f187649cca060247304402206a9db8d7157e4b0a06a1f090b9de88cdc616028b431b80617a055117877e479a02202937d6d1658d4a8afde86b245325c3bb0e769a87cb09d802bcefaa21550065e201210374aa8f312de4ebccbef55609700a39764387aa4ff5d76f1ccb4d2382e454f05b00000000",
|
||||||
|
Blocktime: 1724927392,
|
||||||
|
Txid: "8e3f38bf6854dd3c358be8d4f9a40a6dccc50de49616125d27af9fdbe65287eb",
|
||||||
|
LockTime: 0,
|
||||||
|
VSize: 110,
|
||||||
|
Version: 3,
|
||||||
|
Vin: []bchain.Vin{
|
||||||
|
{
|
||||||
|
ScriptSig: bchain.ScriptSig{
|
||||||
|
Hex: "",
|
||||||
|
},
|
||||||
|
Txid: "69fafee521abfd838c0223eb14b38912f01bccb92a0d9209784012bb3ef9f848",
|
||||||
|
Vout: 1,
|
||||||
|
Sequence: 4294967293,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Vout: []bchain.Vout{
|
||||||
|
{
|
||||||
|
ValueSat: *big.NewInt(50000),
|
||||||
|
N: 0,
|
||||||
|
ScriptPubKey: bchain.ScriptPubKey{
|
||||||
|
Hex: "0014cb888de3c89670a3061fb6ef6590f187649cca06",
|
||||||
|
Addresses: []string{
|
||||||
|
"tb1qewygmc7gjec2xpslkmhkty83sajfejsxqmy5dq",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPackTx(t *testing.T) {
|
func TestPackTx(t *testing.T) {
|
||||||
@ -643,6 +675,17 @@ func TestPackTx(t *testing.T) {
|
|||||||
want: testTxPacked3,
|
want: testTxPacked3,
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "testnet4-1",
|
||||||
|
args: args{
|
||||||
|
tx: testTx4,
|
||||||
|
height: 41657,
|
||||||
|
blockTime: 1724927392,
|
||||||
|
parser: NewBitcoinParser(GetChainParams("testnet4"), &Configuration{}),
|
||||||
|
},
|
||||||
|
want: testTxPacked4,
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
@ -701,6 +744,16 @@ func TestUnpackTx(t *testing.T) {
|
|||||||
want1: 15745,
|
want1: 15745,
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "testnet4-1",
|
||||||
|
args: args{
|
||||||
|
packedTx: testTxPacked4,
|
||||||
|
parser: NewBitcoinParser(GetChainParams("testnet4"), &Configuration{}),
|
||||||
|
},
|
||||||
|
want: &testTx4,
|
||||||
|
want1: 41657,
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|||||||
@ -3,11 +3,11 @@ package ecash
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/pirk/ecashutil"
|
|
||||||
"github.com/martinboehm/btcutil"
|
"github.com/martinboehm/btcutil"
|
||||||
"github.com/martinboehm/btcutil/chaincfg"
|
"github.com/martinboehm/btcutil/chaincfg"
|
||||||
"github.com/martinboehm/btcutil/txscript"
|
"github.com/martinboehm/btcutil/txscript"
|
||||||
"github.com/pirk/ecashaddr-converter/address"
|
"github.com/pirk/ecashaddr-converter/address"
|
||||||
|
"github.com/pirk/ecashutil"
|
||||||
"github.com/trezor/blockbook/bchain"
|
"github.com/trezor/blockbook/bchain"
|
||||||
"github.com/trezor/blockbook/bchain/coins/btc"
|
"github.com/trezor/blockbook/bchain/coins/btc"
|
||||||
)
|
)
|
||||||
|
|||||||
@ -273,14 +273,19 @@ func contractGetTransfersFromTx(tx *bchain.RpcTransaction) (bchain.TokenTransfer
|
|||||||
return r, nil
|
return r, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *EthereumRPC) ethCall(data, to string) (string, error) {
|
// EthereumTypeRpcCall calls eth_call with given data and to address
|
||||||
|
func (b *EthereumRPC) EthereumTypeRpcCall(data, to, from string) (string, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
var r string
|
var r string
|
||||||
err := b.RPC.CallContext(ctx, &r, "eth_call", map[string]interface{}{
|
args := map[string]interface{}{
|
||||||
"data": data,
|
"data": data,
|
||||||
"to": to,
|
"to": to,
|
||||||
}, "latest")
|
}
|
||||||
|
if from != "" {
|
||||||
|
args["from"] = from
|
||||||
|
}
|
||||||
|
err := b.RPC.CallContext(ctx, &r, "eth_call", args, "latest")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@ -289,7 +294,7 @@ func (b *EthereumRPC) ethCall(data, to string) (string, error) {
|
|||||||
|
|
||||||
func (b *EthereumRPC) fetchContractInfo(address string) (*bchain.ContractInfo, error) {
|
func (b *EthereumRPC) fetchContractInfo(address string) (*bchain.ContractInfo, error) {
|
||||||
var contract bchain.ContractInfo
|
var contract bchain.ContractInfo
|
||||||
data, err := b.ethCall(contractNameSignature, address)
|
data, err := b.EthereumTypeRpcCall(contractNameSignature, address, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// ignore the error from the eth_call - since geth v1.9.15 they changed the behavior
|
// ignore the error from the eth_call - since geth v1.9.15 they changed the behavior
|
||||||
// and returning error "execution reverted" for some non contract addresses
|
// and returning error "execution reverted" for some non contract addresses
|
||||||
@ -300,14 +305,14 @@ func (b *EthereumRPC) fetchContractInfo(address string) (*bchain.ContractInfo, e
|
|||||||
}
|
}
|
||||||
name := strings.TrimSpace(parseSimpleStringProperty(data))
|
name := strings.TrimSpace(parseSimpleStringProperty(data))
|
||||||
if name != "" {
|
if name != "" {
|
||||||
data, err = b.ethCall(contractSymbolSignature, address)
|
data, err = b.EthereumTypeRpcCall(contractSymbolSignature, address, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// glog.Warning(errors.Annotatef(err, "Contract SymbolSignature %v", address))
|
// glog.Warning(errors.Annotatef(err, "Contract SymbolSignature %v", address))
|
||||||
return nil, nil
|
return nil, nil
|
||||||
// return nil, errors.Annotatef(err, "erc20SymbolSignature %v", address)
|
// return nil, errors.Annotatef(err, "erc20SymbolSignature %v", address)
|
||||||
}
|
}
|
||||||
symbol := strings.TrimSpace(parseSimpleStringProperty(data))
|
symbol := strings.TrimSpace(parseSimpleStringProperty(data))
|
||||||
data, _ = b.ethCall(contractDecimalsSignature, address)
|
data, _ = b.EthereumTypeRpcCall(contractDecimalsSignature, address, "")
|
||||||
// if err != nil {
|
// if err != nil {
|
||||||
// glog.Warning(errors.Annotatef(err, "Contract DecimalsSignature %v", address))
|
// glog.Warning(errors.Annotatef(err, "Contract DecimalsSignature %v", address))
|
||||||
// // return nil, errors.Annotatef(err, "erc20DecimalsSignature %v", address)
|
// // return nil, errors.Annotatef(err, "erc20DecimalsSignature %v", address)
|
||||||
@ -340,7 +345,7 @@ func (b *EthereumRPC) EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc
|
|||||||
addr := hexutil.Encode(addrDesc)[2:]
|
addr := hexutil.Encode(addrDesc)[2:]
|
||||||
contract := hexutil.Encode(contractDesc)
|
contract := hexutil.Encode(contractDesc)
|
||||||
req := contractBalanceOfSignature + "0000000000000000000000000000000000000000000000000000000000000000"[len(addr):] + addr
|
req := contractBalanceOfSignature + "0000000000000000000000000000000000000000000000000000000000000000"[len(addr):] + addr
|
||||||
data, err := b.ethCall(req, contract)
|
data, err := b.EthereumTypeRpcCall(req, contract, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -351,7 +356,7 @@ func (b *EthereumRPC) EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc
|
|||||||
return r, nil
|
return r, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetContractInfo returns URI of non fungible or multi token defined by token id
|
// GetTokenURI returns URI of non fungible or multi token defined by token id
|
||||||
func (b *EthereumRPC) GetTokenURI(contractDesc bchain.AddressDescriptor, tokenID *big.Int) (string, error) {
|
func (b *EthereumRPC) GetTokenURI(contractDesc bchain.AddressDescriptor, tokenID *big.Int) (string, error) {
|
||||||
address := hexutil.Encode(contractDesc)
|
address := hexutil.Encode(contractDesc)
|
||||||
// CryptoKitties do not fully support ERC721 standard, do not have tokenURI method
|
// CryptoKitties do not fully support ERC721 standard, do not have tokenURI method
|
||||||
@ -364,7 +369,7 @@ func (b *EthereumRPC) GetTokenURI(contractDesc bchain.AddressDescriptor, tokenID
|
|||||||
}
|
}
|
||||||
// try ERC721 tokenURI method and ERC1155 uri method
|
// try ERC721 tokenURI method and ERC1155 uri method
|
||||||
for _, method := range []string{erc721TokenURIMethodSignature, erc1155URIMethodSignature} {
|
for _, method := range []string{erc721TokenURIMethodSignature, erc1155URIMethodSignature} {
|
||||||
data, err := b.ethCall(method+id, address)
|
data, err := b.EthereumTypeRpcCall(method+id, address, "")
|
||||||
if err == nil && data != "" {
|
if err == nil && data != "" {
|
||||||
uri := parseSimpleStringProperty(data)
|
uri := parseSimpleStringProperty(data)
|
||||||
// try to sanitize the URI returned from the contract
|
// try to sanitize the URI returned from the contract
|
||||||
|
|||||||
@ -7,10 +7,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
"github.com/juju/errors"
|
"github.com/juju/errors"
|
||||||
"github.com/trezor/blockbook/bchain"
|
"github.com/trezor/blockbook/bchain"
|
||||||
"golang.org/x/crypto/sha3"
|
"golang.org/x/crypto/sha3"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// EthereumTypeAddressDescriptorLen - the AddressDescriptor of EthereumType has fixed length
|
// EthereumTypeAddressDescriptorLen - the AddressDescriptor of EthereumType has fixed length
|
||||||
@ -331,6 +331,24 @@ func (p *EthereumParser) PackTx(tx *bchain.Tx, height uint32, blockTime int64) (
|
|||||||
|
|
||||||
}
|
}
|
||||||
pt.Receipt.Log = ptLogs
|
pt.Receipt.Log = ptLogs
|
||||||
|
if r.Receipt.L1Fee != "" {
|
||||||
|
if pt.Receipt.L1Fee, err = hexDecodeBig(r.Receipt.L1Fee); err != nil {
|
||||||
|
return nil, errors.Annotatef(err, "L1Fee %v", r.Receipt.L1Fee)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if r.Receipt.L1FeeScalar != "" {
|
||||||
|
pt.Receipt.L1FeeScalar = []byte(r.Receipt.L1FeeScalar)
|
||||||
|
}
|
||||||
|
if r.Receipt.L1GasPrice != "" {
|
||||||
|
if pt.Receipt.L1GasPrice, err = hexDecodeBig(r.Receipt.L1GasPrice); err != nil {
|
||||||
|
return nil, errors.Annotatef(err, "L1GasPrice %v", r.Receipt.L1GasPrice)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if r.Receipt.L1GasUsed != "" {
|
||||||
|
if pt.Receipt.L1GasUsed, err = hexDecodeBig(r.Receipt.L1GasUsed); err != nil {
|
||||||
|
return nil, errors.Annotatef(err, "L1GasUsed %v", r.Receipt.L1GasUsed)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return proto.Marshal(pt)
|
return proto.Marshal(pt)
|
||||||
}
|
}
|
||||||
@ -359,27 +377,37 @@ func (p *EthereumParser) UnpackTx(buf []byte) (*bchain.Tx, uint32, error) {
|
|||||||
}
|
}
|
||||||
var rr *bchain.RpcReceipt
|
var rr *bchain.RpcReceipt
|
||||||
if pt.Receipt != nil {
|
if pt.Receipt != nil {
|
||||||
logs := make([]*bchain.RpcLog, len(pt.Receipt.Log))
|
rr = &bchain.RpcReceipt{
|
||||||
|
GasUsed: hexEncodeBig(pt.Receipt.GasUsed),
|
||||||
|
Status: "",
|
||||||
|
Logs: make([]*bchain.RpcLog, len(pt.Receipt.Log)),
|
||||||
|
}
|
||||||
for i, l := range pt.Receipt.Log {
|
for i, l := range pt.Receipt.Log {
|
||||||
topics := make([]string, len(l.Topics))
|
topics := make([]string, len(l.Topics))
|
||||||
for j, t := range l.Topics {
|
for j, t := range l.Topics {
|
||||||
topics[j] = hexutil.Encode(t)
|
topics[j] = hexutil.Encode(t)
|
||||||
}
|
}
|
||||||
logs[i] = &bchain.RpcLog{
|
rr.Logs[i] = &bchain.RpcLog{
|
||||||
Address: EIP55Address(l.Address),
|
Address: EIP55Address(l.Address),
|
||||||
Data: hexutil.Encode(l.Data),
|
Data: hexutil.Encode(l.Data),
|
||||||
Topics: topics,
|
Topics: topics,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
status := ""
|
|
||||||
// handle a special value []byte{'U'} as unknown state
|
// handle a special value []byte{'U'} as unknown state
|
||||||
if len(pt.Receipt.Status) != 1 || pt.Receipt.Status[0] != 'U' {
|
if len(pt.Receipt.Status) != 1 || pt.Receipt.Status[0] != 'U' {
|
||||||
status = hexEncodeBig(pt.Receipt.Status)
|
rr.Status = hexEncodeBig(pt.Receipt.Status)
|
||||||
}
|
}
|
||||||
rr = &bchain.RpcReceipt{
|
if len(pt.Receipt.L1Fee) > 0 {
|
||||||
GasUsed: hexEncodeBig(pt.Receipt.GasUsed),
|
rr.L1Fee = hexEncodeBig(pt.Receipt.L1Fee)
|
||||||
Status: status,
|
}
|
||||||
Logs: logs,
|
if len(pt.Receipt.L1FeeScalar) > 0 {
|
||||||
|
rr.L1FeeScalar = string(pt.Receipt.L1FeeScalar)
|
||||||
|
}
|
||||||
|
if len(pt.Receipt.L1GasPrice) > 0 {
|
||||||
|
rr.L1GasPrice = hexEncodeBig(pt.Receipt.L1GasPrice)
|
||||||
|
}
|
||||||
|
if len(pt.Receipt.L1GasUsed) > 0 {
|
||||||
|
rr.L1GasUsed = hexEncodeBig(pt.Receipt.L1GasUsed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO handle internal transactions
|
// TODO handle internal transactions
|
||||||
@ -477,12 +505,16 @@ const (
|
|||||||
|
|
||||||
// EthereumTxData contains ethereum specific transaction data
|
// EthereumTxData contains ethereum specific transaction data
|
||||||
type EthereumTxData struct {
|
type EthereumTxData struct {
|
||||||
Status TxStatus `json:"status"` // 1 OK, 0 Fail, -1 pending, -2 unknown
|
Status TxStatus `json:"status"` // 1 OK, 0 Fail, -1 pending, -2 unknown
|
||||||
Nonce uint64 `json:"nonce"`
|
Nonce uint64 `json:"nonce"`
|
||||||
GasLimit *big.Int `json:"gaslimit"`
|
GasLimit *big.Int `json:"gaslimit"`
|
||||||
GasUsed *big.Int `json:"gasused"`
|
GasUsed *big.Int `json:"gasused"`
|
||||||
GasPrice *big.Int `json:"gasprice"`
|
GasPrice *big.Int `json:"gasprice"`
|
||||||
Data string `json:"data"`
|
L1Fee *big.Int `json:"l1Fee,omitempty"`
|
||||||
|
L1FeeScalar string `json:"l1FeeScalar,omitempty"`
|
||||||
|
L1GasPrice *big.Int `json:"l1GasPrice,omitempty"`
|
||||||
|
L1GasUsed *big.Int `json:"L1GasUsed,omitempty"`
|
||||||
|
Data string `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetEthereumTxData returns EthereumTxData from bchain.Tx
|
// GetEthereumTxData returns EthereumTxData from bchain.Tx
|
||||||
@ -511,6 +543,10 @@ func GetEthereumTxDataFromSpecificData(coinSpecificData interface{}) *EthereumTx
|
|||||||
etd.Status = TxStatusFailure
|
etd.Status = TxStatusFailure
|
||||||
}
|
}
|
||||||
etd.GasUsed, _ = hexutil.DecodeBig(csd.Receipt.GasUsed)
|
etd.GasUsed, _ = hexutil.DecodeBig(csd.Receipt.GasUsed)
|
||||||
|
etd.L1Fee, _ = hexutil.DecodeBig(csd.Receipt.L1Fee)
|
||||||
|
etd.L1GasPrice, _ = hexutil.DecodeBig(csd.Receipt.L1GasPrice)
|
||||||
|
etd.L1GasUsed, _ = hexutil.DecodeBig(csd.Receipt.L1GasUsed)
|
||||||
|
etd.L1FeeScalar = csd.Receipt.L1FeeScalar
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return &etd
|
return &etd
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"math/big"
|
"math/big"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -40,6 +40,7 @@ const (
|
|||||||
type Configuration struct {
|
type Configuration struct {
|
||||||
CoinName string `json:"coin_name"`
|
CoinName string `json:"coin_name"`
|
||||||
CoinShortcut string `json:"coin_shortcut"`
|
CoinShortcut string `json:"coin_shortcut"`
|
||||||
|
Network string `json:"network"`
|
||||||
RPCURL string `json:"rpc_url"`
|
RPCURL string `json:"rpc_url"`
|
||||||
RPCTimeout int `json:"rpc_timeout"`
|
RPCTimeout int `json:"rpc_timeout"`
|
||||||
BlockAddressesToKeep int `json:"block_addresses_to_keep"`
|
BlockAddressesToKeep int `json:"block_addresses_to_keep"`
|
||||||
@ -49,6 +50,7 @@ type Configuration struct {
|
|||||||
ProcessInternalTransactions bool `json:"processInternalTransactions"`
|
ProcessInternalTransactions bool `json:"processInternalTransactions"`
|
||||||
ProcessZeroInternalTransactions bool `json:"processZeroInternalTransactions"`
|
ProcessZeroInternalTransactions bool `json:"processZeroInternalTransactions"`
|
||||||
ConsensusNodeVersionURL string `json:"consensusNodeVersion"`
|
ConsensusNodeVersionURL string `json:"consensusNodeVersion"`
|
||||||
|
DisableMempoolSync bool `json:"disableMempoolSync,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthereumRPC is an interface to JSON-RPC eth service.
|
// EthereumRPC is an interface to JSON-RPC eth service.
|
||||||
@ -159,7 +161,7 @@ func (b *EthereumRPC) Initialize() error {
|
|||||||
return errors.Errorf("Unknown network id %v", id)
|
return errors.Errorf("Unknown network id %v", id)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = b.initStakingPools(b.ChainConfig.CoinShortcut)
|
err = b.initStakingPools()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -173,7 +175,7 @@ func (b *EthereumRPC) Initialize() error {
|
|||||||
func (b *EthereumRPC) CreateMempool(chain bchain.BlockChain) (bchain.Mempool, error) {
|
func (b *EthereumRPC) CreateMempool(chain bchain.BlockChain) (bchain.Mempool, error) {
|
||||||
if b.Mempool == nil {
|
if b.Mempool == nil {
|
||||||
b.Mempool = bchain.NewMempoolEthereumType(chain, b.ChainConfig.MempoolTxTimeoutHours, b.ChainConfig.QueryBackendOnMempoolResync)
|
b.Mempool = bchain.NewMempoolEthereumType(chain, b.ChainConfig.MempoolTxTimeoutHours, b.ChainConfig.QueryBackendOnMempoolResync)
|
||||||
glog.Info("mempool created, MempoolTxTimeoutHours=", b.ChainConfig.MempoolTxTimeoutHours, ", QueryBackendOnMempoolResync=", b.ChainConfig.QueryBackendOnMempoolResync)
|
glog.Info("mempool created, MempoolTxTimeoutHours=", b.ChainConfig.MempoolTxTimeoutHours, ", QueryBackendOnMempoolResync=", b.ChainConfig.QueryBackendOnMempoolResync, ", DisableMempoolSync=", b.ChainConfig.DisableMempoolSync)
|
||||||
}
|
}
|
||||||
return b.Mempool, nil
|
return b.Mempool, nil
|
||||||
}
|
}
|
||||||
@ -262,21 +264,23 @@ func (b *EthereumRPC) subscribeEvents() error {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// new mempool transaction subscription
|
if !b.ChainConfig.DisableMempoolSync {
|
||||||
if err := b.subscribe(func() (bchain.EVMClientSubscription, error) {
|
// new mempool transaction subscription
|
||||||
// invalidate the previous subscription - it is either the first one or there was an error
|
if err := b.subscribe(func() (bchain.EVMClientSubscription, error) {
|
||||||
b.newTxSubscription = nil
|
// invalidate the previous subscription - it is either the first one or there was an error
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
b.newTxSubscription = nil
|
||||||
defer cancel()
|
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
||||||
sub, err := b.RPC.EthSubscribe(ctx, b.NewTx.Channel(), "newPendingTransactions")
|
defer cancel()
|
||||||
if err != nil {
|
sub, err := b.RPC.EthSubscribe(ctx, b.NewTx.Channel(), "newPendingTransactions")
|
||||||
return nil, errors.Annotatef(err, "EthSubscribe newPendingTransactions")
|
if err != nil {
|
||||||
|
return nil, errors.Annotatef(err, "EthSubscribe newPendingTransactions")
|
||||||
|
}
|
||||||
|
b.newTxSubscription = sub
|
||||||
|
glog.Info("Subscribed to newPendingTransactions")
|
||||||
|
return sub, nil
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
b.newTxSubscription = sub
|
|
||||||
glog.Info("Subscribed to newPendingTransactions")
|
|
||||||
return sub, nil
|
|
||||||
}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -377,7 +381,7 @@ func (b *EthereumRPC) getConsensusVersion() string {
|
|||||||
glog.Error("getConsensusVersion ", err)
|
glog.Error("getConsensusVersion ", err)
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
body, err := io.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Error("getConsensusVersion ", err)
|
glog.Error("getConsensusVersion ", err)
|
||||||
return ""
|
return ""
|
||||||
@ -610,19 +614,24 @@ type rpcTraceResult struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b *EthereumRPC) getCreationContractInfo(contract string, height uint32) *bchain.ContractInfo {
|
func (b *EthereumRPC) getCreationContractInfo(contract string, height uint32) *bchain.ContractInfo {
|
||||||
ci, err := b.fetchContractInfo(contract)
|
// do not fetch fetchContractInfo in sync, it slows it down
|
||||||
if ci == nil || err != nil {
|
// the contract will be fetched only when asked by a client
|
||||||
ci = &bchain.ContractInfo{
|
// ci, err := b.fetchContractInfo(contract)
|
||||||
Contract: contract,
|
// if ci == nil || err != nil {
|
||||||
}
|
ci := &bchain.ContractInfo{
|
||||||
|
Contract: contract,
|
||||||
}
|
}
|
||||||
ci.Type = bchain.UnknownTokenType
|
// }
|
||||||
|
ci.Type = bchain.UnhandledTokenType
|
||||||
ci.CreatedInBlock = height
|
ci.CreatedInBlock = height
|
||||||
return ci
|
return ci
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *EthereumRPC) processCallTrace(call *rpcCallTrace, d *bchain.EthereumInternalData, contracts []bchain.ContractInfo, blockHeight uint32) []bchain.ContractInfo {
|
func (b *EthereumRPC) processCallTrace(call *rpcCallTrace, d *bchain.EthereumInternalData, contracts []bchain.ContractInfo, blockHeight uint32) []bchain.ContractInfo {
|
||||||
value, err := hexutil.DecodeBig(call.Value)
|
value, err := hexutil.DecodeBig(call.Value)
|
||||||
|
if err != nil {
|
||||||
|
value = new(big.Int)
|
||||||
|
}
|
||||||
if call.Type == "CREATE" || call.Type == "CREATE2" {
|
if call.Type == "CREATE" || call.Type == "CREATE2" {
|
||||||
d.Transfers = append(d.Transfers, bchain.EthereumInternalTransfer{
|
d.Transfers = append(d.Transfers, bchain.EthereumInternalTransfer{
|
||||||
Type: bchain.CREATE,
|
Type: bchain.CREATE,
|
||||||
@ -834,12 +843,13 @@ func (b *EthereumRPC) GetTransactionForMempool(txid string) (*bchain.Tx, error)
|
|||||||
func (b *EthereumRPC) GetTransaction(txid string) (*bchain.Tx, error) {
|
func (b *EthereumRPC) GetTransaction(txid string) (*bchain.Tx, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
var tx *bchain.RpcTransaction
|
tx := &bchain.RpcTransaction{}
|
||||||
hash := ethcommon.HexToHash(txid)
|
hash := ethcommon.HexToHash(txid)
|
||||||
err := b.RPC.CallContext(ctx, &tx, "eth_getTransactionByHash", hash)
|
err := b.RPC.CallContext(ctx, tx, "eth_getTransactionByHash", hash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
} else if tx == nil {
|
}
|
||||||
|
if *tx == (bchain.RpcTransaction{}) {
|
||||||
if b.mempoolInitialized {
|
if b.mempoolInitialized {
|
||||||
b.Mempool.RemoveTransactionFromMempool(txid)
|
b.Mempool.RemoveTransactionFromMempool(txid)
|
||||||
}
|
}
|
||||||
@ -982,21 +992,31 @@ func (b *EthereumRPC) EthereumTypeEstimateGas(params map[string]interface{}) (ui
|
|||||||
|
|
||||||
// SendRawTransaction sends raw transaction
|
// SendRawTransaction sends raw transaction
|
||||||
func (b *EthereumRPC) SendRawTransaction(hex string) (string, error) {
|
func (b *EthereumRPC) SendRawTransaction(hex string) (string, error) {
|
||||||
|
return b.callRpcStringResult("eth_sendRawTransaction", hex)
|
||||||
|
}
|
||||||
|
|
||||||
|
// EthereumTypeGetRawTransaction gets raw transaction in hex format
|
||||||
|
func (b *EthereumRPC) EthereumTypeGetRawTransaction(txid string) (string, error) {
|
||||||
|
return b.callRpcStringResult("eth_getRawTransactionByHash", txid)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function for calling ETH RPC with parameters and getting string result
|
||||||
|
func (b *EthereumRPC) callRpcStringResult(rpcMethod string, args ...interface{}) (string, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
var raw json.RawMessage
|
var raw json.RawMessage
|
||||||
err := b.RPC.CallContext(ctx, &raw, "eth_sendRawTransaction", hex)
|
err := b.RPC.CallContext(ctx, &raw, rpcMethod, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
} else if len(raw) == 0 {
|
} else if len(raw) == 0 {
|
||||||
return "", errors.New("SendRawTransaction: failed")
|
return "", errors.New(rpcMethod + " : failed")
|
||||||
}
|
}
|
||||||
var result string
|
var result string
|
||||||
if err := json.Unmarshal(raw, &result); err != nil {
|
if err := json.Unmarshal(raw, &result); err != nil {
|
||||||
return "", errors.Annotatef(err, "raw result %v", raw)
|
return "", errors.Annotatef(err, "raw result %v", raw)
|
||||||
}
|
}
|
||||||
if result == "" {
|
if result == "" {
|
||||||
return "", errors.New("SendRawTransaction: failed, empty result")
|
return "", errors.New(rpcMethod + " : failed, empty result")
|
||||||
}
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,261 +1,530 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.28.1
|
||||||
|
// protoc v3.21.12
|
||||||
// source: bchain/coins/eth/ethtx.proto
|
// source: bchain/coins/eth/ethtx.proto
|
||||||
|
|
||||||
/*
|
|
||||||
Package eth is a generated protocol buffer package.
|
|
||||||
|
|
||||||
It is generated from these files:
|
|
||||||
bchain/coins/eth/ethtx.proto
|
|
||||||
|
|
||||||
It has these top-level messages:
|
|
||||||
ProtoCompleteTransaction
|
|
||||||
*/
|
|
||||||
package eth
|
package eth
|
||||||
|
|
||||||
import proto "github.com/golang/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
import math "math"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
const (
|
||||||
var _ = proto.Marshal
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
var _ = fmt.Errorf
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
var _ = math.Inf
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
)
|
||||||
// is compatible with the proto package it is being compiled against.
|
|
||||||
// A compilation error at this line likely means your copy of the
|
|
||||||
// proto package needs to be updated.
|
|
||||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
|
||||||
|
|
||||||
type ProtoCompleteTransaction struct {
|
type ProtoCompleteTransaction struct {
|
||||||
BlockNumber uint32 `protobuf:"varint,1,opt,name=BlockNumber" json:"BlockNumber,omitempty"`
|
state protoimpl.MessageState
|
||||||
BlockTime uint64 `protobuf:"varint,2,opt,name=BlockTime" json:"BlockTime,omitempty"`
|
sizeCache protoimpl.SizeCache
|
||||||
Tx *ProtoCompleteTransaction_TxType `protobuf:"bytes,3,opt,name=Tx" json:"Tx,omitempty"`
|
unknownFields protoimpl.UnknownFields
|
||||||
Receipt *ProtoCompleteTransaction_ReceiptType `protobuf:"bytes,4,opt,name=Receipt" json:"Receipt,omitempty"`
|
|
||||||
|
BlockNumber uint32 `protobuf:"varint,1,opt,name=BlockNumber,proto3" json:"BlockNumber,omitempty"`
|
||||||
|
BlockTime uint64 `protobuf:"varint,2,opt,name=BlockTime,proto3" json:"BlockTime,omitempty"`
|
||||||
|
Tx *ProtoCompleteTransaction_TxType `protobuf:"bytes,3,opt,name=Tx,proto3" json:"Tx,omitempty"`
|
||||||
|
Receipt *ProtoCompleteTransaction_ReceiptType `protobuf:"bytes,4,opt,name=Receipt,proto3" json:"Receipt,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction) Reset() { *m = ProtoCompleteTransaction{} }
|
func (x *ProtoCompleteTransaction) Reset() {
|
||||||
func (m *ProtoCompleteTransaction) String() string { return proto.CompactTextString(m) }
|
*x = ProtoCompleteTransaction{}
|
||||||
func (*ProtoCompleteTransaction) ProtoMessage() {}
|
if protoimpl.UnsafeEnabled {
|
||||||
func (*ProtoCompleteTransaction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction) GetBlockNumber() uint32 {
|
func (x *ProtoCompleteTransaction) String() string {
|
||||||
if m != nil {
|
return protoimpl.X.MessageStringOf(x)
|
||||||
return m.BlockNumber
|
}
|
||||||
|
|
||||||
|
func (*ProtoCompleteTransaction) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ProtoCompleteTransaction.ProtoReflect.Descriptor instead.
|
||||||
|
func (*ProtoCompleteTransaction) Descriptor() ([]byte, []int) {
|
||||||
|
return file_bchain_coins_eth_ethtx_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction) GetBlockNumber() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.BlockNumber
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction) GetBlockTime() uint64 {
|
func (x *ProtoCompleteTransaction) GetBlockTime() uint64 {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.BlockTime
|
return x.BlockTime
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction) GetTx() *ProtoCompleteTransaction_TxType {
|
func (x *ProtoCompleteTransaction) GetTx() *ProtoCompleteTransaction_TxType {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Tx
|
return x.Tx
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction) GetReceipt() *ProtoCompleteTransaction_ReceiptType {
|
func (x *ProtoCompleteTransaction) GetReceipt() *ProtoCompleteTransaction_ReceiptType {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Receipt
|
return x.Receipt
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProtoCompleteTransaction_TxType struct {
|
type ProtoCompleteTransaction_TxType struct {
|
||||||
AccountNonce uint64 `protobuf:"varint,1,opt,name=AccountNonce" json:"AccountNonce,omitempty"`
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
AccountNonce uint64 `protobuf:"varint,1,opt,name=AccountNonce,proto3" json:"AccountNonce,omitempty"`
|
||||||
GasPrice []byte `protobuf:"bytes,2,opt,name=GasPrice,proto3" json:"GasPrice,omitempty"`
|
GasPrice []byte `protobuf:"bytes,2,opt,name=GasPrice,proto3" json:"GasPrice,omitempty"`
|
||||||
GasLimit uint64 `protobuf:"varint,3,opt,name=GasLimit" json:"GasLimit,omitempty"`
|
GasLimit uint64 `protobuf:"varint,3,opt,name=GasLimit,proto3" json:"GasLimit,omitempty"`
|
||||||
Value []byte `protobuf:"bytes,4,opt,name=Value,proto3" json:"Value,omitempty"`
|
Value []byte `protobuf:"bytes,4,opt,name=Value,proto3" json:"Value,omitempty"`
|
||||||
Payload []byte `protobuf:"bytes,5,opt,name=Payload,proto3" json:"Payload,omitempty"`
|
Payload []byte `protobuf:"bytes,5,opt,name=Payload,proto3" json:"Payload,omitempty"`
|
||||||
Hash []byte `protobuf:"bytes,6,opt,name=Hash,proto3" json:"Hash,omitempty"`
|
Hash []byte `protobuf:"bytes,6,opt,name=Hash,proto3" json:"Hash,omitempty"`
|
||||||
To []byte `protobuf:"bytes,7,opt,name=To,proto3" json:"To,omitempty"`
|
To []byte `protobuf:"bytes,7,opt,name=To,proto3" json:"To,omitempty"`
|
||||||
From []byte `protobuf:"bytes,8,opt,name=From,proto3" json:"From,omitempty"`
|
From []byte `protobuf:"bytes,8,opt,name=From,proto3" json:"From,omitempty"`
|
||||||
TransactionIndex uint32 `protobuf:"varint,9,opt,name=TransactionIndex" json:"TransactionIndex,omitempty"`
|
TransactionIndex uint32 `protobuf:"varint,9,opt,name=TransactionIndex,proto3" json:"TransactionIndex,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) Reset() { *m = ProtoCompleteTransaction_TxType{} }
|
func (x *ProtoCompleteTransaction_TxType) Reset() {
|
||||||
func (m *ProtoCompleteTransaction_TxType) String() string { return proto.CompactTextString(m) }
|
*x = ProtoCompleteTransaction_TxType{}
|
||||||
func (*ProtoCompleteTransaction_TxType) ProtoMessage() {}
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_TxType) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*ProtoCompleteTransaction_TxType) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_TxType) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[1]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ProtoCompleteTransaction_TxType.ProtoReflect.Descriptor instead.
|
||||||
func (*ProtoCompleteTransaction_TxType) Descriptor() ([]byte, []int) {
|
func (*ProtoCompleteTransaction_TxType) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor0, []int{0, 0}
|
return file_bchain_coins_eth_ethtx_proto_rawDescGZIP(), []int{0, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetAccountNonce() uint64 {
|
func (x *ProtoCompleteTransaction_TxType) GetAccountNonce() uint64 {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.AccountNonce
|
return x.AccountNonce
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetGasPrice() []byte {
|
func (x *ProtoCompleteTransaction_TxType) GetGasPrice() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.GasPrice
|
return x.GasPrice
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetGasLimit() uint64 {
|
func (x *ProtoCompleteTransaction_TxType) GetGasLimit() uint64 {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.GasLimit
|
return x.GasLimit
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetValue() []byte {
|
func (x *ProtoCompleteTransaction_TxType) GetValue() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Value
|
return x.Value
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetPayload() []byte {
|
func (x *ProtoCompleteTransaction_TxType) GetPayload() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Payload
|
return x.Payload
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetHash() []byte {
|
func (x *ProtoCompleteTransaction_TxType) GetHash() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Hash
|
return x.Hash
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetTo() []byte {
|
func (x *ProtoCompleteTransaction_TxType) GetTo() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.To
|
return x.To
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetFrom() []byte {
|
func (x *ProtoCompleteTransaction_TxType) GetFrom() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.From
|
return x.From
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_TxType) GetTransactionIndex() uint32 {
|
func (x *ProtoCompleteTransaction_TxType) GetTransactionIndex() uint32 {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.TransactionIndex
|
return x.TransactionIndex
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProtoCompleteTransaction_ReceiptType struct {
|
type ProtoCompleteTransaction_ReceiptType struct {
|
||||||
GasUsed []byte `protobuf:"bytes,1,opt,name=GasUsed,proto3" json:"GasUsed,omitempty"`
|
state protoimpl.MessageState
|
||||||
Status []byte `protobuf:"bytes,2,opt,name=Status,proto3" json:"Status,omitempty"`
|
sizeCache protoimpl.SizeCache
|
||||||
Log []*ProtoCompleteTransaction_ReceiptType_LogType `protobuf:"bytes,3,rep,name=Log" json:"Log,omitempty"`
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
GasUsed []byte `protobuf:"bytes,1,opt,name=GasUsed,proto3" json:"GasUsed,omitempty"`
|
||||||
|
Status []byte `protobuf:"bytes,2,opt,name=Status,proto3" json:"Status,omitempty"`
|
||||||
|
Log []*ProtoCompleteTransaction_ReceiptType_LogType `protobuf:"bytes,3,rep,name=Log,proto3" json:"Log,omitempty"`
|
||||||
|
L1Fee []byte `protobuf:"bytes,4,opt,name=L1Fee,proto3,oneof" json:"L1Fee,omitempty"`
|
||||||
|
L1FeeScalar []byte `protobuf:"bytes,5,opt,name=L1FeeScalar,proto3,oneof" json:"L1FeeScalar,omitempty"`
|
||||||
|
L1GasPrice []byte `protobuf:"bytes,6,opt,name=L1GasPrice,proto3,oneof" json:"L1GasPrice,omitempty"`
|
||||||
|
L1GasUsed []byte `protobuf:"bytes,7,opt,name=L1GasUsed,proto3,oneof" json:"L1GasUsed,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType) Reset() { *m = ProtoCompleteTransaction_ReceiptType{} }
|
func (x *ProtoCompleteTransaction_ReceiptType) Reset() {
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType) String() string { return proto.CompactTextString(m) }
|
*x = ProtoCompleteTransaction_ReceiptType{}
|
||||||
func (*ProtoCompleteTransaction_ReceiptType) ProtoMessage() {}
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_ReceiptType) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*ProtoCompleteTransaction_ReceiptType) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_ReceiptType) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[2]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ProtoCompleteTransaction_ReceiptType.ProtoReflect.Descriptor instead.
|
||||||
func (*ProtoCompleteTransaction_ReceiptType) Descriptor() ([]byte, []int) {
|
func (*ProtoCompleteTransaction_ReceiptType) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor0, []int{0, 1}
|
return file_bchain_coins_eth_ethtx_proto_rawDescGZIP(), []int{0, 1}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType) GetGasUsed() []byte {
|
func (x *ProtoCompleteTransaction_ReceiptType) GetGasUsed() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.GasUsed
|
return x.GasUsed
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType) GetStatus() []byte {
|
func (x *ProtoCompleteTransaction_ReceiptType) GetStatus() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Status
|
return x.Status
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType) GetLog() []*ProtoCompleteTransaction_ReceiptType_LogType {
|
func (x *ProtoCompleteTransaction_ReceiptType) GetLog() []*ProtoCompleteTransaction_ReceiptType_LogType {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Log
|
return x.Log
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_ReceiptType) GetL1Fee() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.L1Fee
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_ReceiptType) GetL1FeeScalar() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.L1FeeScalar
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_ReceiptType) GetL1GasPrice() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.L1GasPrice
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_ReceiptType) GetL1GasUsed() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.L1GasUsed
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProtoCompleteTransaction_ReceiptType_LogType struct {
|
type ProtoCompleteTransaction_ReceiptType_LogType struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Address []byte `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address,omitempty"`
|
Address []byte `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address,omitempty"`
|
||||||
Data []byte `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"`
|
Data []byte `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"`
|
||||||
Topics [][]byte `protobuf:"bytes,3,rep,name=Topics,proto3" json:"Topics,omitempty"`
|
Topics [][]byte `protobuf:"bytes,3,rep,name=Topics,proto3" json:"Topics,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType_LogType) Reset() {
|
func (x *ProtoCompleteTransaction_ReceiptType_LogType) Reset() {
|
||||||
*m = ProtoCompleteTransaction_ReceiptType_LogType{}
|
*x = ProtoCompleteTransaction_ReceiptType_LogType{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[3]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType_LogType) String() string {
|
|
||||||
return proto.CompactTextString(m)
|
func (x *ProtoCompleteTransaction_ReceiptType_LogType) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*ProtoCompleteTransaction_ReceiptType_LogType) ProtoMessage() {}
|
func (*ProtoCompleteTransaction_ReceiptType_LogType) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ProtoCompleteTransaction_ReceiptType_LogType) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_bchain_coins_eth_ethtx_proto_msgTypes[3]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ProtoCompleteTransaction_ReceiptType_LogType.ProtoReflect.Descriptor instead.
|
||||||
func (*ProtoCompleteTransaction_ReceiptType_LogType) Descriptor() ([]byte, []int) {
|
func (*ProtoCompleteTransaction_ReceiptType_LogType) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor0, []int{0, 1, 0}
|
return file_bchain_coins_eth_ethtx_proto_rawDescGZIP(), []int{0, 1, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType_LogType) GetAddress() []byte {
|
func (x *ProtoCompleteTransaction_ReceiptType_LogType) GetAddress() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Address
|
return x.Address
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType_LogType) GetData() []byte {
|
func (x *ProtoCompleteTransaction_ReceiptType_LogType) GetData() []byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Data
|
return x.Data
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ProtoCompleteTransaction_ReceiptType_LogType) GetTopics() [][]byte {
|
func (x *ProtoCompleteTransaction_ReceiptType_LogType) GetTopics() [][]byte {
|
||||||
if m != nil {
|
if x != nil {
|
||||||
return m.Topics
|
return x.Topics
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
var File_bchain_coins_eth_ethtx_proto protoreflect.FileDescriptor
|
||||||
proto.RegisterType((*ProtoCompleteTransaction)(nil), "eth.ProtoCompleteTransaction")
|
|
||||||
proto.RegisterType((*ProtoCompleteTransaction_TxType)(nil), "eth.ProtoCompleteTransaction.TxType")
|
var file_bchain_coins_eth_ethtx_proto_rawDesc = []byte{
|
||||||
proto.RegisterType((*ProtoCompleteTransaction_ReceiptType)(nil), "eth.ProtoCompleteTransaction.ReceiptType")
|
0x0a, 0x1c, 0x62, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x2f, 0x65,
|
||||||
proto.RegisterType((*ProtoCompleteTransaction_ReceiptType_LogType)(nil), "eth.ProtoCompleteTransaction.ReceiptType.LogType")
|
0x74, 0x68, 0x2f, 0x65, 0x74, 0x68, 0x74, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdd,
|
||||||
|
0x06, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
|
||||||
|
0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42,
|
||||||
|
0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
|
||||||
|
0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a,
|
||||||
|
0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
|
||||||
|
0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x02, 0x54,
|
||||||
|
0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43,
|
||||||
|
0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
|
||||||
|
0x6f, 0x6e, 0x2e, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x54, 0x78, 0x12, 0x3f, 0x0a,
|
||||||
|
0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
|
||||||
|
0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72,
|
||||||
|
0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70,
|
||||||
|
0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x1a, 0xf8,
|
||||||
|
0x01, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x63,
|
||||||
|
0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
|
||||||
|
0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a,
|
||||||
|
0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
||||||
|
0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73,
|
||||||
|
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73,
|
||||||
|
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04,
|
||||||
|
0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x50,
|
||||||
|
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x50, 0x61,
|
||||||
|
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20,
|
||||||
|
0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x6f, 0x18,
|
||||||
|
0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x54, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x72, 0x6f,
|
||||||
|
0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x2a, 0x0a,
|
||||||
|
0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65,
|
||||||
|
0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
|
||||||
|
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x92, 0x03, 0x0a, 0x0b, 0x52, 0x65,
|
||||||
|
0x63, 0x65, 0x69, 0x70, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73,
|
||||||
|
0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55,
|
||||||
|
0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20,
|
||||||
|
0x01, 0x28, 0x0c, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x03, 0x4c,
|
||||||
|
0x6f, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
|
0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
|
||||||
|
0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e,
|
||||||
|
0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x19, 0x0a, 0x05,
|
||||||
|
0x4c, 0x31, 0x46, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x4c,
|
||||||
|
0x31, 0x46, 0x65, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x4c, 0x31, 0x46, 0x65, 0x65,
|
||||||
|
0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x0b,
|
||||||
|
0x4c, 0x31, 0x46, 0x65, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23,
|
||||||
|
0x0a, 0x0a, 0x4c, 0x31, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01,
|
||||||
|
0x28, 0x0c, 0x48, 0x02, 0x52, 0x0a, 0x4c, 0x31, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65,
|
||||||
|
0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x4c, 0x31, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64,
|
||||||
|
0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52, 0x09, 0x4c, 0x31, 0x47, 0x61, 0x73, 0x55,
|
||||||
|
0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70,
|
||||||
|
0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
|
||||||
|
0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44,
|
||||||
|
0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12,
|
||||||
|
0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52,
|
||||||
|
0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x4c, 0x31, 0x46, 0x65,
|
||||||
|
0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x4c, 0x31, 0x46, 0x65, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x61,
|
||||||
|
0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x4c, 0x31, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65,
|
||||||
|
0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x4c, 0x31, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x42, 0x12,
|
||||||
|
0x5a, 0x10, 0x62, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x2f, 0x65,
|
||||||
|
0x74, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { proto.RegisterFile("bchain/coins/eth/ethtx.proto", fileDescriptor0) }
|
var (
|
||||||
|
file_bchain_coins_eth_ethtx_proto_rawDescOnce sync.Once
|
||||||
|
file_bchain_coins_eth_ethtx_proto_rawDescData = file_bchain_coins_eth_ethtx_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
var fileDescriptor0 = []byte{
|
func file_bchain_coins_eth_ethtx_proto_rawDescGZIP() []byte {
|
||||||
// 409 bytes of a gzipped FileDescriptorProto
|
file_bchain_coins_eth_ethtx_proto_rawDescOnce.Do(func() {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xdf, 0x8a, 0xd4, 0x30,
|
file_bchain_coins_eth_ethtx_proto_rawDescData = protoimpl.X.CompressGZIP(file_bchain_coins_eth_ethtx_proto_rawDescData)
|
||||||
0x18, 0xc5, 0xe9, 0x9f, 0x99, 0xd9, 0xfd, 0xa6, 0x8a, 0x04, 0x91, 0x30, 0xec, 0x45, 0x59, 0xbc,
|
})
|
||||||
0x18, 0xbd, 0xe8, 0xe2, 0xea, 0x0b, 0xac, 0x23, 0xae, 0xc2, 0xb0, 0x0e, 0x31, 0x7a, 0x9f, 0x49,
|
return file_bchain_coins_eth_ethtx_proto_rawDescData
|
||||||
0xc3, 0x36, 0x38, 0x6d, 0x4a, 0x93, 0x42, 0xf7, 0x8d, 0x7c, 0x21, 0xdf, 0xc5, 0x4b, 0xc9, 0xd7,
|
}
|
||||||
0x74, 0x1d, 0x11, 0x65, 0x2f, 0x0a, 0xf9, 0x9d, 0x7e, 0xa7, 0x39, 0x27, 0x29, 0x9c, 0xed, 0x65,
|
|
||||||
0x25, 0x74, 0x73, 0x21, 0x8d, 0x6e, 0xec, 0x85, 0x72, 0x95, 0x7f, 0xdc, 0x50, 0xb4, 0x9d, 0x71,
|
var file_bchain_coins_eth_ethtx_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||||
0x86, 0x24, 0xca, 0x55, 0xe7, 0xdf, 0x67, 0x40, 0x77, 0x1e, 0x37, 0xa6, 0x6e, 0x0f, 0xca, 0x29,
|
var file_bchain_coins_eth_ethtx_proto_goTypes = []interface{}{
|
||||||
0xde, 0x89, 0xc6, 0x0a, 0xe9, 0xb4, 0x69, 0x48, 0x0e, 0xcb, 0xb7, 0x07, 0x23, 0xbf, 0xdd, 0xf4,
|
(*ProtoCompleteTransaction)(nil), // 0: ProtoCompleteTransaction
|
||||||
0xf5, 0x5e, 0x75, 0x34, 0xca, 0xa3, 0xf5, 0x23, 0x76, 0x2c, 0x91, 0x33, 0x38, 0x45, 0xe4, 0xba,
|
(*ProtoCompleteTransaction_TxType)(nil), // 1: ProtoCompleteTransaction.TxType
|
||||||
0x56, 0x34, 0xce, 0xa3, 0x75, 0xca, 0x7e, 0x0b, 0xe4, 0x0d, 0xc4, 0x7c, 0xa0, 0x49, 0x1e, 0xad,
|
(*ProtoCompleteTransaction_ReceiptType)(nil), // 2: ProtoCompleteTransaction.ReceiptType
|
||||||
0x97, 0x97, 0xcf, 0x0b, 0xe5, 0xaa, 0xe2, 0x5f, 0x5b, 0x15, 0x7c, 0xe0, 0x77, 0xad, 0x62, 0x31,
|
(*ProtoCompleteTransaction_ReceiptType_LogType)(nil), // 3: ProtoCompleteTransaction.ReceiptType.LogType
|
||||||
0x1f, 0xc8, 0x06, 0x16, 0x4c, 0x49, 0xa5, 0x5b, 0x47, 0x53, 0xb4, 0xbe, 0xf8, 0xbf, 0x35, 0x0c,
|
}
|
||||||
0xa3, 0x7f, 0x72, 0xae, 0x7e, 0x46, 0x30, 0x1f, 0xbf, 0x49, 0xce, 0x21, 0xbb, 0x92, 0xd2, 0xf4,
|
var file_bchain_coins_eth_ethtx_proto_depIdxs = []int32{
|
||||||
0x8d, 0xbb, 0x31, 0x8d, 0x54, 0x58, 0x23, 0x65, 0x7f, 0x68, 0x64, 0x05, 0x27, 0xd7, 0xc2, 0xee,
|
1, // 0: ProtoCompleteTransaction.Tx:type_name -> ProtoCompleteTransaction.TxType
|
||||||
0x3a, 0x2d, 0xc7, 0x1a, 0x19, 0xbb, 0xe7, 0xf0, 0x6e, 0xab, 0x6b, 0xed, 0xb0, 0x4b, 0xca, 0xee,
|
2, // 1: ProtoCompleteTransaction.Receipt:type_name -> ProtoCompleteTransaction.ReceiptType
|
||||||
0x99, 0x3c, 0x85, 0xd9, 0x57, 0x71, 0xe8, 0x15, 0x26, 0xcd, 0xd8, 0x08, 0x84, 0xc2, 0x62, 0x27,
|
3, // 2: ProtoCompleteTransaction.ReceiptType.Log:type_name -> ProtoCompleteTransaction.ReceiptType.LogType
|
||||||
0xee, 0x0e, 0x46, 0x94, 0x74, 0x86, 0xfa, 0x84, 0x84, 0x40, 0xfa, 0x41, 0xd8, 0x8a, 0xce, 0x51,
|
3, // [3:3] is the sub-list for method output_type
|
||||||
0xc6, 0x35, 0x79, 0x0c, 0x31, 0x37, 0x74, 0x81, 0x4a, 0xcc, 0x8d, 0x9f, 0x79, 0xdf, 0x99, 0x9a,
|
3, // [3:3] is the sub-list for method input_type
|
||||||
0x9e, 0x8c, 0x33, 0x7e, 0x4d, 0x5e, 0xc2, 0x93, 0xa3, 0xca, 0x1f, 0x9b, 0x52, 0x0d, 0xf4, 0x14,
|
3, // [3:3] is the sub-list for extension type_name
|
||||||
0xaf, 0xe3, 0x2f, 0x7d, 0xf5, 0x23, 0x82, 0xe5, 0xd1, 0x99, 0xf8, 0x34, 0xd7, 0xc2, 0x7e, 0xb1,
|
3, // [3:3] is the sub-list for extension extendee
|
||||||
0xaa, 0xc4, 0xea, 0x19, 0x9b, 0x90, 0x3c, 0x83, 0xf9, 0x67, 0x27, 0x5c, 0x6f, 0x43, 0xe7, 0x40,
|
0, // [0:3] is the sub-list for field type_name
|
||||||
0x64, 0x03, 0xc9, 0xd6, 0xdc, 0xd2, 0x24, 0x4f, 0xd6, 0xcb, 0xcb, 0x57, 0x0f, 0x3e, 0xfd, 0x62,
|
}
|
||||||
0x6b, 0x6e, 0xf1, 0x16, 0xbc, 0x7b, 0xf5, 0x09, 0x16, 0x81, 0x7d, 0x82, 0xab, 0xb2, 0xec, 0x94,
|
|
||||||
0xb5, 0x53, 0x82, 0x80, 0xbe, 0xeb, 0x3b, 0xe1, 0x44, 0xd8, 0x1f, 0xd7, 0x3e, 0x15, 0x37, 0xad,
|
func init() { file_bchain_coins_eth_ethtx_proto_init() }
|
||||||
0x96, 0x16, 0x03, 0x64, 0x2c, 0xd0, 0x7e, 0x8e, 0xbf, 0xed, 0xeb, 0x5f, 0x01, 0x00, 0x00, 0xff,
|
func file_bchain_coins_eth_ethtx_proto_init() {
|
||||||
0xff, 0xc2, 0x69, 0x8d, 0xdf, 0xd6, 0x02, 0x00, 0x00,
|
if File_bchain_coins_eth_ethtx_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_bchain_coins_eth_ethtx_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*ProtoCompleteTransaction); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_bchain_coins_eth_ethtx_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*ProtoCompleteTransaction_TxType); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_bchain_coins_eth_ethtx_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*ProtoCompleteTransaction_ReceiptType); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_bchain_coins_eth_ethtx_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*ProtoCompleteTransaction_ReceiptType_LogType); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_bchain_coins_eth_ethtx_proto_msgTypes[2].OneofWrappers = []interface{}{}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_bchain_coins_eth_ethtx_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 4,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_bchain_coins_eth_ethtx_proto_goTypes,
|
||||||
|
DependencyIndexes: file_bchain_coins_eth_ethtx_proto_depIdxs,
|
||||||
|
MessageInfos: file_bchain_coins_eth_ethtx_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_bchain_coins_eth_ethtx_proto = out.File
|
||||||
|
file_bchain_coins_eth_ethtx_proto_rawDesc = nil
|
||||||
|
file_bchain_coins_eth_ethtx_proto_goTypes = nil
|
||||||
|
file_bchain_coins_eth_ethtx_proto_depIdxs = nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,30 +1,34 @@
|
|||||||
syntax = "proto3";
|
syntax = "proto3";
|
||||||
package eth;
|
option go_package = "bchain/coins/eth";
|
||||||
|
|
||||||
message ProtoCompleteTransaction {
|
message ProtoCompleteTransaction {
|
||||||
message TxType {
|
message TxType {
|
||||||
uint64 AccountNonce = 1;
|
uint64 AccountNonce = 1;
|
||||||
bytes GasPrice = 2;
|
bytes GasPrice = 2;
|
||||||
uint64 GasLimit = 3;
|
uint64 GasLimit = 3;
|
||||||
bytes Value = 4;
|
bytes Value = 4;
|
||||||
bytes Payload = 5;
|
bytes Payload = 5;
|
||||||
bytes Hash = 6;
|
bytes Hash = 6;
|
||||||
bytes To = 7;
|
bytes To = 7;
|
||||||
bytes From = 8;
|
bytes From = 8;
|
||||||
uint32 TransactionIndex = 9;
|
uint32 TransactionIndex = 9;
|
||||||
}
|
}
|
||||||
message ReceiptType {
|
message ReceiptType {
|
||||||
message LogType {
|
message LogType {
|
||||||
bytes Address = 1;
|
bytes Address = 1;
|
||||||
bytes Data = 2;
|
bytes Data = 2;
|
||||||
repeated bytes Topics = 3;
|
repeated bytes Topics = 3;
|
||||||
}
|
}
|
||||||
bytes GasUsed = 1;
|
bytes GasUsed = 1;
|
||||||
bytes Status = 2;
|
bytes Status = 2;
|
||||||
repeated LogType Log = 3;
|
repeated LogType Log = 3;
|
||||||
}
|
optional bytes L1Fee = 4;
|
||||||
uint32 BlockNumber = 1;
|
optional bytes L1FeeScalar = 5;
|
||||||
uint64 BlockTime = 2;
|
optional bytes L1GasPrice = 6;
|
||||||
TxType Tx = 3;
|
optional bytes L1GasUsed = 7;
|
||||||
ReceiptType Receipt = 4;
|
}
|
||||||
}
|
uint32 BlockNumber = 1;
|
||||||
|
uint64 BlockTime = 2;
|
||||||
|
TxType Tx = 3;
|
||||||
|
ReceiptType Receipt = 4;
|
||||||
|
}
|
||||||
@ -11,9 +11,13 @@ import (
|
|||||||
"github.com/trezor/blockbook/bchain"
|
"github.com/trezor/blockbook/bchain"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (b *EthereumRPC) initStakingPools(coinShortcut string) error {
|
func (b *EthereumRPC) initStakingPools() error {
|
||||||
|
network := b.ChainConfig.Network
|
||||||
|
if network == "" {
|
||||||
|
network = b.ChainConfig.CoinShortcut
|
||||||
|
}
|
||||||
// for now only single staking pool
|
// for now only single staking pool
|
||||||
envVar := strings.ToUpper(coinShortcut) + "_STAKING_POOL_CONTRACT"
|
envVar := strings.ToUpper(network) + "_STAKING_POOL_CONTRACT"
|
||||||
envValue := os.Getenv(envVar)
|
envValue := os.Getenv(envVar)
|
||||||
if envValue != "" {
|
if envValue != "" {
|
||||||
parts := strings.Split(envValue, "/")
|
parts := strings.Split(envValue, "/")
|
||||||
@ -61,7 +65,7 @@ func isZeroBigInt(b *big.Int) bool {
|
|||||||
|
|
||||||
func (b *EthereumRPC) everstakeBalanceTypeContractCall(signature, addr, contract string) (string, error) {
|
func (b *EthereumRPC) everstakeBalanceTypeContractCall(signature, addr, contract string) (string, error) {
|
||||||
req := signature + "0000000000000000000000000000000000000000000000000000000000000000"[len(addr):] + addr
|
req := signature + "0000000000000000000000000000000000000000000000000000000000000000"[len(addr):] + addr
|
||||||
return b.ethCall(req, contract)
|
return b.EthereumTypeRpcCall(req, contract, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *EthereumRPC) everstakeContractCallSimpleNumeric(signature, addr, contract string) (*big.Int, error) {
|
func (b *EthereumRPC) everstakeContractCallSimpleNumeric(signature, addr, contract string) (*big.Int, error) {
|
||||||
|
|||||||
@ -14,13 +14,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
OpZeroCoinMint = 0xc1
|
OpZeroCoinMint = 0xc1
|
||||||
OpZeroCoinSpend = 0xc2
|
OpZeroCoinSpend = 0xc2
|
||||||
OpSigmaMint = 0xc3
|
OpSigmaMint = 0xc3
|
||||||
OpSigmaSpend = 0xc4
|
OpSigmaSpend = 0xc4
|
||||||
OpLelantusMint = 0xc5
|
OpLelantusMint = 0xc5
|
||||||
OpLelantusJMint = 0xc6
|
OpLelantusJMint = 0xc6
|
||||||
OpLelantusJoinSplit = 0xc7
|
OpLelantusJoinSplit = 0xc7
|
||||||
OpLelantusJoinSplitPayload = 0xc9
|
OpLelantusJoinSplitPayload = 0xc9
|
||||||
|
|
||||||
MainnetMagic wire.BitcoinNet = 0xe3d9fef1
|
MainnetMagic wire.BitcoinNet = 0xe3d9fef1
|
||||||
@ -194,7 +194,6 @@ func (p *FiroParser) ParseBlock(b []byte) (*bchain.Block, error) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if !isAllZero {
|
if !isAllZero {
|
||||||
// hash data
|
// hash data
|
||||||
@ -344,7 +343,7 @@ type MTPHashDataRoot struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type MTPHashData struct {
|
type MTPHashData struct {
|
||||||
BlockMTP [128][128]uint64
|
BlockMTP [128][128]uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type MTPBlockHeader struct {
|
type MTPBlockHeader struct {
|
||||||
|
|||||||
45
bchain/coins/optimism/evm.go
Normal file
45
bchain/coins/optimism/evm.go
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package optimism
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
|
"github.com/trezor/blockbook/bchain"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OptimismRPCClient wraps an rpc client to implement the EVMRPCClient interface
|
||||||
|
type OptimismRPCClient struct {
|
||||||
|
*rpc.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
// EthSubscribe subscribes to events and returns a client subscription that implements the EVMClientSubscription interface
|
||||||
|
func (c *OptimismRPCClient) EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (bchain.EVMClientSubscription, error) {
|
||||||
|
sub, err := c.Client.EthSubscribe(ctx, channel, args...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &OptimismClientSubscription{ClientSubscription: sub}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// CallContext performs a JSON-RPC call with the given arguments
|
||||||
|
func (c *OptimismRPCClient) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error {
|
||||||
|
if err := c.Client.CallContext(ctx, result, method, args...); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// special case to handle empty gas price for a valid rpc transaction
|
||||||
|
// (https://goerli-optimism.etherscan.io/tx/0x9b62094073147508471e3371920b68070979beea32100acdc49c721350b69cb9)
|
||||||
|
if r, ok := result.(*bchain.RpcTransaction); ok {
|
||||||
|
if *r != (bchain.RpcTransaction{}) && r.GasPrice == "" {
|
||||||
|
r.GasPrice = "0x0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// OptimismClientSubscription wraps a client subcription to implement the EVMClientSubscription interface
|
||||||
|
type OptimismClientSubscription struct {
|
||||||
|
*rpc.ClientSubscription
|
||||||
|
}
|
||||||
73
bchain/coins/optimism/optimismrpc.go
Normal file
73
bchain/coins/optimism/optimismrpc.go
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
package optimism
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/golang/glog"
|
||||||
|
"github.com/juju/errors"
|
||||||
|
"github.com/trezor/blockbook/bchain"
|
||||||
|
"github.com/trezor/blockbook/bchain/coins/eth"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// MainNet is production network
|
||||||
|
MainNet eth.Network = 10
|
||||||
|
)
|
||||||
|
|
||||||
|
// OptimismRPC is an interface to JSON-RPC optimism service.
|
||||||
|
type OptimismRPC struct {
|
||||||
|
*eth.EthereumRPC
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewOptimismRPC returns new OptimismRPC instance.
|
||||||
|
func NewOptimismRPC(config json.RawMessage, pushHandler func(bchain.NotificationType)) (bchain.BlockChain, error) {
|
||||||
|
c, err := eth.NewEthereumRPC(config, pushHandler)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
s := &OptimismRPC{
|
||||||
|
EthereumRPC: c.(*eth.EthereumRPC),
|
||||||
|
}
|
||||||
|
|
||||||
|
return s, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize bnb smart chain rpc interface
|
||||||
|
func (b *OptimismRPC) Initialize() error {
|
||||||
|
b.OpenRPC = eth.OpenRPC
|
||||||
|
|
||||||
|
rc, ec, err := b.OpenRPC(b.ChainConfig.RPCURL)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// set chain specific
|
||||||
|
b.Client = ec
|
||||||
|
b.RPC = rc
|
||||||
|
b.MainNetChainID = MainNet
|
||||||
|
b.NewBlock = eth.NewEthereumNewBlock()
|
||||||
|
b.NewTx = eth.NewEthereumNewTx()
|
||||||
|
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), b.Timeout)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
id, err := b.Client.NetworkID(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// parameters for getInfo request
|
||||||
|
switch eth.Network(id.Uint64()) {
|
||||||
|
case MainNet:
|
||||||
|
b.Testnet = false
|
||||||
|
b.Network = "livenet"
|
||||||
|
default:
|
||||||
|
return errors.Errorf("Unknown network id %v", id)
|
||||||
|
}
|
||||||
|
|
||||||
|
glog.Info("rpc: block chain ", b.Network)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@ -131,7 +131,8 @@ type TokenTypeName string
|
|||||||
|
|
||||||
// Token types
|
// Token types
|
||||||
const (
|
const (
|
||||||
UnknownTokenType TokenTypeName = ""
|
UnknownTokenType TokenTypeName = ""
|
||||||
|
UnhandledTokenType TokenTypeName = "-"
|
||||||
|
|
||||||
// XPUBAddressTokenType is address derived from xpub
|
// XPUBAddressTokenType is address derived from xpub
|
||||||
XPUBAddressTokenType TokenTypeName = "XPUBAddress"
|
XPUBAddressTokenType TokenTypeName = "XPUBAddress"
|
||||||
@ -335,6 +336,8 @@ type BlockChain interface {
|
|||||||
EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc AddressDescriptor) (*big.Int, error)
|
EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc AddressDescriptor) (*big.Int, error)
|
||||||
EthereumTypeGetSupportedStakingPools() []string
|
EthereumTypeGetSupportedStakingPools() []string
|
||||||
EthereumTypeGetStakingPoolsData(addrDesc AddressDescriptor) ([]StakingPoolData, error)
|
EthereumTypeGetStakingPoolsData(addrDesc AddressDescriptor) ([]StakingPoolData, error)
|
||||||
|
EthereumTypeRpcCall(data, to, from string) (string, error)
|
||||||
|
EthereumTypeGetRawTransaction(txid string) (string, error)
|
||||||
GetTokenURI(contractDesc AddressDescriptor, tokenID *big.Int) (string, error)
|
GetTokenURI(contractDesc AddressDescriptor, tokenID *big.Int) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -122,9 +122,13 @@ type RpcLog struct {
|
|||||||
|
|
||||||
// RpcLog is returned by eth_getTransactionReceipt
|
// RpcLog is returned by eth_getTransactionReceipt
|
||||||
type RpcReceipt struct {
|
type RpcReceipt struct {
|
||||||
GasUsed string `json:"gasUsed"`
|
GasUsed string `json:"gasUsed"`
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
Logs []*RpcLog `json:"logs"`
|
Logs []*RpcLog `json:"logs"`
|
||||||
|
L1Fee string `json:"l1Fee,omitempty"`
|
||||||
|
L1FeeScalar string `json:"l1FeeScalar,omitempty"`
|
||||||
|
L1GasPrice string `json:"l1GasPrice,omitempty"`
|
||||||
|
L1GasUsed string `json:"l1GasUsed,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// EthereumSpecificData contains data specific to Ethereum transactions
|
// EthereumSpecificData contains data specific to Ethereum transactions
|
||||||
|
|||||||
@ -33,6 +33,10 @@ export interface EthereumSpecific {
|
|||||||
gasLimit: number;
|
gasLimit: number;
|
||||||
gasUsed?: number;
|
gasUsed?: number;
|
||||||
gasPrice?: string;
|
gasPrice?: string;
|
||||||
|
l1Fee?: number;
|
||||||
|
l1FeeScalar?: string;
|
||||||
|
l1GasPrice?: string;
|
||||||
|
l1GasUsed?: number;
|
||||||
data?: string;
|
data?: string;
|
||||||
parsedData?: EthereumParsedInputData;
|
parsedData?: EthereumParsedInputData;
|
||||||
internalTransfers?: EthereumInternalTransfer[];
|
internalTransfers?: EthereumInternalTransfer[];
|
||||||
@ -257,6 +261,7 @@ export interface InternalStateColumn {
|
|||||||
}
|
}
|
||||||
export interface BlockbookInfo {
|
export interface BlockbookInfo {
|
||||||
coin: string;
|
coin: string;
|
||||||
|
network: string;
|
||||||
host: string;
|
host: string;
|
||||||
version: string;
|
version: string;
|
||||||
gitCommit: string;
|
gitCommit: string;
|
||||||
@ -351,6 +356,7 @@ export interface WsBackendInfo {
|
|||||||
export interface WsInfoRes {
|
export interface WsInfoRes {
|
||||||
name: string;
|
name: string;
|
||||||
shortcut: string;
|
shortcut: string;
|
||||||
|
network: string;
|
||||||
decimals: number;
|
decimals: number;
|
||||||
version: string;
|
version: string;
|
||||||
bestHeight: number;
|
bestHeight: number;
|
||||||
@ -442,6 +448,14 @@ export interface WsMempoolFiltersReq {
|
|||||||
fromTimestamp: number;
|
fromTimestamp: number;
|
||||||
M?: number;
|
M?: number;
|
||||||
}
|
}
|
||||||
|
export interface WsRpcCallReq {
|
||||||
|
from?: string;
|
||||||
|
to: string;
|
||||||
|
data: string;
|
||||||
|
}
|
||||||
|
export interface WsRpcCallRes {
|
||||||
|
data: string;
|
||||||
|
}
|
||||||
export interface MempoolTxidFilterEntries {
|
export interface MempoolTxidFilterEntries {
|
||||||
entries?: { [key: string]: string };
|
entries?: { [key: string]: string };
|
||||||
usedZeroedKey?: boolean;
|
usedZeroedKey?: boolean;
|
||||||
|
|||||||
@ -507,7 +507,7 @@ func newInternalState(config *common.Config, d *db.RocksDB, enableSubNewTx bool)
|
|||||||
is.Host = name
|
is.Host = name
|
||||||
}
|
}
|
||||||
|
|
||||||
is.WsGetAccountInfoLimit, _ = strconv.Atoi(os.Getenv(strings.ToUpper(is.CoinShortcut) + "_WS_GETACCOUNTINFO_LIMIT"))
|
is.WsGetAccountInfoLimit, _ = strconv.Atoi(os.Getenv(strings.ToUpper(is.GetNetwork()) + "_WS_GETACCOUNTINFO_LIMIT"))
|
||||||
if is.WsGetAccountInfoLimit > 0 {
|
if is.WsGetAccountInfoLimit > 0 {
|
||||||
glog.Info("WsGetAccountInfoLimit enabled with limit ", is.WsGetAccountInfoLimit)
|
glog.Info("WsGetAccountInfoLimit enabled with limit ", is.WsGetAccountInfoLimit)
|
||||||
is.WsLimitExceedingIPs = make(map[string]int)
|
is.WsLimitExceedingIPs = make(map[string]int)
|
||||||
|
|||||||
@ -6,9 +6,19 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get upgrade -y && \
|
apt-get upgrade -y && \
|
||||||
apt-get install -y devscripts debhelper make dh-exec && \
|
apt-get install -y devscripts debhelper make dh-exec zstd && \
|
||||||
apt-get clean
|
apt-get clean
|
||||||
|
|
||||||
|
# install docker cli
|
||||||
|
ARG DOCKER_VERSION
|
||||||
|
|
||||||
|
RUN if [ -z "$DOCKER_VERSION" ]; then echo "DOCKER_VERSION is a required build arg" && exit 1; fi
|
||||||
|
|
||||||
|
RUN wget -O docker.tgz "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz" && \
|
||||||
|
tar -xzf docker.tgz --strip 1 -C /usr/local/bin/ && \
|
||||||
|
rm docker.tgz && \
|
||||||
|
docker --version
|
||||||
|
|
||||||
ADD gpg-keys /tmp/gpg-keys
|
ADD gpg-keys /tmp/gpg-keys
|
||||||
RUN gpg --batch --import /tmp/gpg-keys/*
|
RUN gpg --batch --import /tmp/gpg-keys/*
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,16 @@
|
|||||||
ARCHIVE := $(shell basename {{.Backend.BinaryURL}})
|
ARCHIVE := $(shell basename {{.Backend.BinaryURL}})
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
mkdir backend
|
||||||
|
{{- if ne .Backend.DockerImage "" }}
|
||||||
|
docker container inspect extract > /dev/null 2>&1 && docker rm extract || true
|
||||||
|
docker create --name extract {{.Backend.DockerImage}}
|
||||||
|
{{- if eq .Backend.VerificationType "docker"}}
|
||||||
|
[ "$$(docker inspect --format='{{`{{index .RepoDigests 0}}`}}' {{.Backend.DockerImage}} | sed 's/.*@sha256://')" = "{{.Backend.VerificationSource}}" ]
|
||||||
|
{{- end}}
|
||||||
|
{{.Backend.ExtractCommand}}
|
||||||
|
docker rm extract
|
||||||
|
{{- else }}
|
||||||
wget {{.Backend.BinaryURL}}
|
wget {{.Backend.BinaryURL}}
|
||||||
{{- if eq .Backend.VerificationType "gpg"}}
|
{{- if eq .Backend.VerificationType "gpg"}}
|
||||||
wget {{.Backend.VerificationSource}} -O checksum
|
wget {{.Backend.VerificationSource}} -O checksum
|
||||||
@ -13,8 +23,8 @@ all:
|
|||||||
{{- else if eq .Backend.VerificationType "sha256"}}
|
{{- else if eq .Backend.VerificationType "sha256"}}
|
||||||
[ "$$(sha256sum ${ARCHIVE} | cut -d ' ' -f 1)" = "{{.Backend.VerificationSource}}" ]
|
[ "$$(sha256sum ${ARCHIVE} | cut -d ' ' -f 1)" = "{{.Backend.VerificationSource}}" ]
|
||||||
{{- end}}
|
{{- end}}
|
||||||
mkdir backend
|
|
||||||
{{.Backend.ExtractCommand}} ${ARCHIVE}
|
{{.Backend.ExtractCommand}} ${ARCHIVE}
|
||||||
|
{{- end}}
|
||||||
{{- if .Backend.ExcludeFiles}}
|
{{- if .Backend.ExcludeFiles}}
|
||||||
# generated from exclude_files
|
# generated from exclude_files
|
||||||
{{- range $index, $name := .Backend.ExcludeFiles}}
|
{{- range $index, $name := .Backend.ExcludeFiles}}
|
||||||
|
|||||||
@ -16,6 +16,8 @@ mempoolfullrbf=1
|
|||||||
|
|
||||||
dbcache=1000
|
dbcache=1000
|
||||||
|
|
||||||
|
deprecatedrpc=warnings
|
||||||
|
|
||||||
{{- if .Backend.AdditionalParams}}
|
{{- if .Backend.AdditionalParams}}
|
||||||
# generated from additional_params
|
# generated from additional_params
|
||||||
{{- range $name, $value := .Backend.AdditionalParams}}
|
{{- range $name, $value := .Backend.AdditionalParams}}
|
||||||
|
|||||||
@ -12,6 +12,8 @@ rpcworkqueue=1100
|
|||||||
maxmempool=2000
|
maxmempool=2000
|
||||||
dbcache=1000
|
dbcache=1000
|
||||||
|
|
||||||
|
deprecatedrpc=warnings
|
||||||
|
|
||||||
{{- if .Backend.AdditionalParams}}
|
{{- if .Backend.AdditionalParams}}
|
||||||
# generated from additional_params
|
# generated from additional_params
|
||||||
{{- range $name, $value := .Backend.AdditionalParams}}
|
{{- range $name, $value := .Backend.AdditionalParams}}
|
||||||
|
|||||||
@ -13,6 +13,8 @@ rpcworkqueue=1100
|
|||||||
maxmempool=2000
|
maxmempool=2000
|
||||||
dbcache=1000
|
dbcache=1000
|
||||||
|
|
||||||
|
deprecatedrpc=warnings
|
||||||
|
|
||||||
{{- if .Backend.AdditionalParams}}
|
{{- if .Backend.AdditionalParams}}
|
||||||
# generated from additional_params
|
# generated from additional_params
|
||||||
{{- range $name, $value := .Backend.AdditionalParams}}
|
{{- range $name, $value := .Backend.AdditionalParams}}
|
||||||
38
build/templates/backend/config/bitcoin_testnet4.conf
Normal file
38
build/templates/backend/config/bitcoin_testnet4.conf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{{define "main" -}}
|
||||||
|
daemon=1
|
||||||
|
server=1
|
||||||
|
{{if .Backend.Mainnet}}mainnet=1{{else}}testnet4=1{{end}}
|
||||||
|
nolisten=1
|
||||||
|
txindex=1
|
||||||
|
disablewallet=1
|
||||||
|
|
||||||
|
zmqpubhashtx={{template "IPC.MessageQueueBindingTemplate" .}}
|
||||||
|
zmqpubhashblock={{template "IPC.MessageQueueBindingTemplate" .}}
|
||||||
|
|
||||||
|
rpcworkqueue=1100
|
||||||
|
maxmempool=4096
|
||||||
|
mempoolexpiry=8760
|
||||||
|
mempoolfullrbf=1
|
||||||
|
|
||||||
|
dbcache=1000
|
||||||
|
|
||||||
|
deprecatedrpc=warnings
|
||||||
|
|
||||||
|
{{- if .Backend.AdditionalParams}}
|
||||||
|
# generated from additional_params
|
||||||
|
{{- range $name, $value := .Backend.AdditionalParams}}
|
||||||
|
{{- if eq $name "addnode"}}
|
||||||
|
{{- range $index, $node := $value}}
|
||||||
|
addnode={{$node}}
|
||||||
|
{{- end}}
|
||||||
|
{{- else}}
|
||||||
|
{{$name}}={{$value}}
|
||||||
|
{{- end}}
|
||||||
|
{{- end}}
|
||||||
|
{{- end}}
|
||||||
|
|
||||||
|
{{if .Backend.Mainnet}}[main]{{else}}[testnet4]{{end}}
|
||||||
|
{{generateRPCAuth .IPC.RPCUser .IPC.RPCPass -}}
|
||||||
|
rpcport={{.Ports.BackendRPC}}
|
||||||
|
|
||||||
|
{{end}}
|
||||||
34
build/templates/backend/scripts/arbitrum.sh
Executable file
34
build/templates/backend/scripts/arbitrum.sh
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||||
|
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
NITRO_BIN=$INSTALL_DIR/nitro
|
||||||
|
|
||||||
|
$NITRO_BIN \
|
||||||
|
--chain.name arb1 \
|
||||||
|
--init.latest pruned \
|
||||||
|
--init.download-path $DATA_DIR/tmp \
|
||||||
|
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||||
|
--persistent.chain $DATA_DIR \
|
||||||
|
--parent-chain.connection.url http://127.0.0.1:8136 \
|
||||||
|
--parent-chain.blob-client.beacon-url http://127.0.0.1:7536 \
|
||||||
|
--http.addr 127.0.0.1 \
|
||||||
|
--http.port {{.Ports.BackendHttp}} \
|
||||||
|
--http.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--http.vhosts '*' \
|
||||||
|
--http.corsdomain '*' \
|
||||||
|
--ws.addr 127.0.0.1 \
|
||||||
|
--ws.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--ws.port {{.Ports.BackendRPC}} \
|
||||||
|
--ws.origins '*' \
|
||||||
|
--file-logging.enable='false' \
|
||||||
|
--node.staker.enable='false' \
|
||||||
|
--execution.tx-lookup-limit 0 \
|
||||||
|
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||||
|
|
||||||
|
{{end}}
|
||||||
35
build/templates/backend/scripts/arbitrum_archive.sh
Executable file
35
build/templates/backend/scripts/arbitrum_archive.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||||
|
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
NITRO_BIN=$INSTALL_DIR/nitro
|
||||||
|
|
||||||
|
$NITRO_BIN \
|
||||||
|
--chain.name arb1 \
|
||||||
|
--init.latest archive \
|
||||||
|
--init.download-path $DATA_DIR/tmp \
|
||||||
|
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||||
|
--persistent.chain $DATA_DIR \
|
||||||
|
--parent-chain.connection.url http://127.0.0.1:8116 \
|
||||||
|
--parent-chain.blob-client.beacon-url http://127.0.0.1:7516 \
|
||||||
|
--http.addr 127.0.0.1 \
|
||||||
|
--http.port {{.Ports.BackendHttp}} \
|
||||||
|
--http.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--http.vhosts '*' \
|
||||||
|
--http.corsdomain '*' \
|
||||||
|
--ws.addr 127.0.0.1 \
|
||||||
|
--ws.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--ws.port {{.Ports.BackendRPC}} \
|
||||||
|
--ws.origins '*' \
|
||||||
|
--file-logging.enable='false' \
|
||||||
|
--node.staker.enable='false' \
|
||||||
|
--execution.caching.archive \
|
||||||
|
--execution.tx-lookup-limit 0 \
|
||||||
|
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||||
|
|
||||||
|
{{end}}
|
||||||
34
build/templates/backend/scripts/arbitrum_nova.sh
Executable file
34
build/templates/backend/scripts/arbitrum_nova.sh
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||||
|
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
NITRO_BIN=$INSTALL_DIR/nitro
|
||||||
|
|
||||||
|
$NITRO_BIN \
|
||||||
|
--chain.name nova \
|
||||||
|
--init.latest pruned \
|
||||||
|
--init.download-path $DATA_DIR/tmp \
|
||||||
|
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||||
|
--persistent.chain $DATA_DIR \
|
||||||
|
--parent-chain.connection.url http://127.0.0.1:8136 \
|
||||||
|
--parent-chain.blob-client.beacon-url http://127.0.0.1:7536 \
|
||||||
|
--http.addr 127.0.0.1 \
|
||||||
|
--http.port {{.Ports.BackendHttp}} \
|
||||||
|
--http.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--http.vhosts '*' \
|
||||||
|
--http.corsdomain '*' \
|
||||||
|
--ws.addr 127.0.0.1 \
|
||||||
|
--ws.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--ws.port {{.Ports.BackendRPC}} \
|
||||||
|
--ws.origins '*' \
|
||||||
|
--file-logging.enable='false' \
|
||||||
|
--node.staker.enable='false' \
|
||||||
|
--execution.tx-lookup-limit 0 \
|
||||||
|
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||||
|
|
||||||
|
{{end}}
|
||||||
35
build/templates/backend/scripts/arbitrum_nova_archive.sh
Executable file
35
build/templates/backend/scripts/arbitrum_nova_archive.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
INSTALL_DIR={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
|
||||||
|
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
NITRO_BIN=$INSTALL_DIR/nitro
|
||||||
|
|
||||||
|
$NITRO_BIN \
|
||||||
|
--chain.name nova \
|
||||||
|
--init.latest archive \
|
||||||
|
--init.download-path $DATA_DIR/tmp \
|
||||||
|
--auth.jwtsecret $DATA_DIR/jwtsecret \
|
||||||
|
--persistent.chain $DATA_DIR \
|
||||||
|
--parent-chain.connection.url http://127.0.0.1:8116 \
|
||||||
|
--parent-chain.blob-client.beacon-url http://127.0.0.1:7516 \
|
||||||
|
--http.addr 127.0.0.1 \
|
||||||
|
--http.port {{.Ports.BackendHttp}} \
|
||||||
|
--http.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--http.vhosts '*' \
|
||||||
|
--http.corsdomain '*' \
|
||||||
|
--ws.addr 127.0.0.1 \
|
||||||
|
--ws.api eth,net,web3,debug,txpool,arb \
|
||||||
|
--ws.port {{.Ports.BackendRPC}} \
|
||||||
|
--ws.origins '*' \
|
||||||
|
--file-logging.enable='false' \
|
||||||
|
--node.staker.enable='false' \
|
||||||
|
--execution.caching.archive \
|
||||||
|
--execution.tx-lookup-limit 0 \
|
||||||
|
--validation.wasm.allowed-wasm-module-roots "$INSTALL_DIR/nitro-legacy/machines,$INSTALL_DIR/target/machines"
|
||||||
|
|
||||||
|
{{end}}
|
||||||
44
build/templates/backend/scripts/optimism.sh
Normal file
44
build/templates/backend/scripts/optimism.sh
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
GETH_BIN={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/geth
|
||||||
|
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
CHAINDATA_DIR=$DATA_DIR/geth/chaindata
|
||||||
|
SNAPSHOT=https://r2-snapshots.fastnode.io/op/$(curl -s https://r2-snapshots.fastnode.io/op/latest-mainnet)
|
||||||
|
|
||||||
|
if [ ! -d "$CHAINDATA_DIR" ]; then
|
||||||
|
wget -c $SNAPSHOT -O - | lz4 -cd | tar xf - -C $DATA_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
$GETH_BIN \
|
||||||
|
--op-network op-mainnet \
|
||||||
|
--datadir $DATA_DIR \
|
||||||
|
--authrpc.jwtsecret $DATA_DIR/jwtsecret \
|
||||||
|
--authrpc.addr 127.0.0.1 \
|
||||||
|
--authrpc.port {{.Ports.BackendAuthRpc}} \
|
||||||
|
--authrpc.vhosts "*" \
|
||||||
|
--port {{.Ports.BackendP2P}} \
|
||||||
|
--http \
|
||||||
|
--http.port {{.Ports.BackendHttp}} \
|
||||||
|
--http.addr 127.0.0.1 \
|
||||||
|
--http.api eth,net,web3,debug,txpool,engine \
|
||||||
|
--http.vhosts "*" \
|
||||||
|
--http.corsdomain "*" \
|
||||||
|
--ws \
|
||||||
|
--ws.port {{.Ports.BackendRPC}} \
|
||||||
|
--ws.addr 127.0.0.1 \
|
||||||
|
--ws.api eth,net,web3,debug,txpool,engine \
|
||||||
|
--ws.origins "*" \
|
||||||
|
--rollup.disabletxpoolgossip=true \
|
||||||
|
--rollup.sequencerhttp https://mainnet-sequencer.optimism.io \
|
||||||
|
--txlookuplimit 0 \
|
||||||
|
--cache 4096 \
|
||||||
|
--syncmode full \
|
||||||
|
--maxpeers 0 \
|
||||||
|
--nodiscover
|
||||||
|
|
||||||
|
{{end}}
|
||||||
48
build/templates/backend/scripts/optimism_archive.sh
Normal file
48
build/templates/backend/scripts/optimism_archive.sh
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
GETH_BIN={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/geth
|
||||||
|
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
CHAINDATA_DIR=$DATA_DIR/geth/chaindata
|
||||||
|
SNAPSHOT=https://datadirs.optimism.io/latest
|
||||||
|
|
||||||
|
if [ ! -d "$CHAINDATA_DIR" ]; then
|
||||||
|
wget -c $(curl -sL $SNAPSHOT | grep -oP '(?<=url=)[^"]*') -O - | zstd -cd | tar xf - -C $DATA_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
$GETH_BIN \
|
||||||
|
--op-network op-mainnet \
|
||||||
|
--datadir $DATA_DIR \
|
||||||
|
--authrpc.jwtsecret $DATA_DIR/jwtsecret \
|
||||||
|
--authrpc.addr 127.0.0.1 \
|
||||||
|
--authrpc.port {{.Ports.BackendAuthRpc}} \
|
||||||
|
--authrpc.vhosts "*" \
|
||||||
|
--port {{.Ports.BackendP2P}} \
|
||||||
|
--http \
|
||||||
|
--http.port {{.Ports.BackendHttp}} \
|
||||||
|
--http.addr 127.0.0.1 \
|
||||||
|
--http.api eth,net,web3,debug,txpool,engine \
|
||||||
|
--http.vhosts "*" \
|
||||||
|
--http.corsdomain "*" \
|
||||||
|
--ws \
|
||||||
|
--ws.port {{.Ports.BackendRPC}} \
|
||||||
|
--ws.addr 127.0.0.1 \
|
||||||
|
--ws.api eth,net,web3,debug,txpool,engine \
|
||||||
|
--ws.origins "*" \
|
||||||
|
--rollup.disabletxpoolgossip=true \
|
||||||
|
--rollup.historicalrpc http://127.0.0.1:8304 \
|
||||||
|
--rollup.sequencerhttp https://mainnet.sequencer.optimism.io \
|
||||||
|
--cache 4096 \
|
||||||
|
--cache.gc 0 \
|
||||||
|
--cache.trie 30 \
|
||||||
|
--cache.snapshot 20 \
|
||||||
|
--syncmode full \
|
||||||
|
--gcmode archive \
|
||||||
|
--maxpeers 0 \
|
||||||
|
--nodiscover
|
||||||
|
|
||||||
|
{{end}}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
export USING_OVM=true
|
||||||
|
export ETH1_SYNC_SERVICE_ENABLE=false
|
||||||
|
|
||||||
|
GETH_BIN={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/geth
|
||||||
|
DATA_DIR={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
CHAINDATA_DIR=$DATA_DIR/geth/chaindata
|
||||||
|
SNAPSHOT=https://datadirs.optimism.io/mainnet-legacy-archival.tar.zst
|
||||||
|
|
||||||
|
if [ ! -d "$CHAINDATA_DIR" ]; then
|
||||||
|
wget -c $SNAPSHOT -O - | zstd -cd | tar xf - -C $DATA_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
$GETH_BIN \
|
||||||
|
--networkid 10 \
|
||||||
|
--datadir $DATA_DIR \
|
||||||
|
--port {{.Ports.BackendP2P}} \
|
||||||
|
--rpc \
|
||||||
|
--rpcport {{.Ports.BackendHttp}} \
|
||||||
|
--rpcaddr 127.0.0.1 \
|
||||||
|
--rpcapi eth,rollup,net,web3,debug \
|
||||||
|
--rpcvhosts "*" \
|
||||||
|
--rpccorsdomain "*" \
|
||||||
|
--ws \
|
||||||
|
--wsport {{.Ports.BackendRPC}} \
|
||||||
|
--wsaddr 0.0.0.0 \
|
||||||
|
--wsapi eth,rollup,net,web3,debug \
|
||||||
|
--wsorigins "*" \
|
||||||
|
--nousb \
|
||||||
|
--ipcdisable \
|
||||||
|
--nat=none \
|
||||||
|
--nodiscover
|
||||||
|
|
||||||
|
{{end}}
|
||||||
24
build/templates/backend/scripts/optimism_archive_op_node.sh
Normal file
24
build/templates/backend/scripts/optimism_archive_op_node.sh
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
BIN={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/op-node
|
||||||
|
PATH={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
$BIN \
|
||||||
|
--network op-mainnet \
|
||||||
|
--l1 http://127.0.0.1:8116 \
|
||||||
|
--l1.beacon http://127.0.0.1:7516 \
|
||||||
|
--l1.trustrpc \
|
||||||
|
--l1.rpckind=debug_geth \
|
||||||
|
--l2 http://127.0.0.1:8402 \
|
||||||
|
--rpc.addr 127.0.0.1 \
|
||||||
|
--rpc.port {{.Ports.BackendRPC}} \
|
||||||
|
--l2.jwt-secret {{.Env.BackendDataPath}}/optimism_archive/backend/jwtsecret \
|
||||||
|
--p2p.priv.path $PATH/opnode_p2p_priv.txt \
|
||||||
|
--p2p.peerstore.path $PATH/opnode_peerstore_db \
|
||||||
|
--p2p.discovery.path $PATH/opnode_discovery_db
|
||||||
|
|
||||||
|
{{end}}
|
||||||
24
build/templates/backend/scripts/optimism_op_node.sh
Normal file
24
build/templates/backend/scripts/optimism_op_node.sh
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
{{define "main" -}}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
BIN={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/op-node
|
||||||
|
PATH={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
|
||||||
|
|
||||||
|
$BIN \
|
||||||
|
--network op-mainnet \
|
||||||
|
--l1 http://127.0.0.1:8136 \
|
||||||
|
--l1.beacon http://127.0.0.1:7536 \
|
||||||
|
--l1.trustrpc \
|
||||||
|
--l1.rpckind=debug_geth \
|
||||||
|
--l2 http://127.0.0.1:8400 \
|
||||||
|
--rpc.addr 127.0.0.1 \
|
||||||
|
--rpc.port {{.Ports.BackendRPC}} \
|
||||||
|
--l2.jwt-secret {{.Env.BackendDataPath}}/optimism/backend/jwtsecret \
|
||||||
|
--p2p.priv.path $PATH/opnode_p2p_priv.txt \
|
||||||
|
--p2p.peerstore.path $PATH/opnode_peerstore_db \
|
||||||
|
--p2p.discovery.path $PATH/opnode_discovery_db
|
||||||
|
|
||||||
|
{{end}}
|
||||||
@ -7,6 +7,8 @@
|
|||||||
{{end}}
|
{{end}}
|
||||||
"coin_name": "{{.Coin.Name}}",
|
"coin_name": "{{.Coin.Name}}",
|
||||||
"coin_shortcut": "{{.Coin.Shortcut}}",
|
"coin_shortcut": "{{.Coin.Shortcut}}",
|
||||||
|
{{- if .Coin.Network}}
|
||||||
|
"network": "{{.Coin.Network}}",{{end}}
|
||||||
"coin_label": "{{.Coin.Label}}",
|
"coin_label": "{{.Coin.Label}}",
|
||||||
"rpc_url": "{{template "IPC.RPCURLTemplate" .}}",
|
"rpc_url": "{{template "IPC.RPCURLTemplate" .}}",
|
||||||
"rpc_user": "{{.IPC.RPCUser}}",
|
"rpc_user": "{{.IPC.RPCUser}}",
|
||||||
|
|||||||
@ -21,6 +21,7 @@ type Backend struct {
|
|||||||
SystemUser string `json:"system_user"`
|
SystemUser string `json:"system_user"`
|
||||||
Version string `json:"version"`
|
Version string `json:"version"`
|
||||||
BinaryURL string `json:"binary_url"`
|
BinaryURL string `json:"binary_url"`
|
||||||
|
DockerImage string `json:"docker_image"`
|
||||||
VerificationType string `json:"verification_type"`
|
VerificationType string `json:"verification_type"`
|
||||||
VerificationSource string `json:"verification_source"`
|
VerificationSource string `json:"verification_source"`
|
||||||
ExtractCommand string `json:"extract_command"`
|
ExtractCommand string `json:"extract_command"`
|
||||||
@ -44,6 +45,7 @@ type Config struct {
|
|||||||
Coin struct {
|
Coin struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Shortcut string `json:"shortcut"`
|
Shortcut string `json:"shortcut"`
|
||||||
|
Network string `json:"network,omitempty"`
|
||||||
Label string `json:"label"`
|
Label string `json:"label"`
|
||||||
Alias string `json:"alias"`
|
Alias string `json:"alias"`
|
||||||
} `json:"coin"`
|
} `json:"coin"`
|
||||||
@ -203,6 +205,7 @@ func LoadConfig(configsDir, coin string) (*Config, error) {
|
|||||||
case "gpg":
|
case "gpg":
|
||||||
case "sha256":
|
case "sha256":
|
||||||
case "gpg-sha256":
|
case "gpg-sha256":
|
||||||
|
case "docker":
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("Invalid verification type: %s", config.Backend.VerificationType)
|
return nil, fmt.Errorf("Invalid verification type: %s", config.Backend.VerificationType)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
//usr/bin/go run $0 $@ ; exit
|
// usr/bin/go run $0 $@ ; exit
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|||||||
@ -60,6 +60,8 @@ func main() {
|
|||||||
t.Add(server.WsFiatRatesForTimestampsReq{})
|
t.Add(server.WsFiatRatesForTimestampsReq{})
|
||||||
t.Add(server.WsFiatRatesTickersListReq{})
|
t.Add(server.WsFiatRatesTickersListReq{})
|
||||||
t.Add(server.WsMempoolFiltersReq{})
|
t.Add(server.WsMempoolFiltersReq{})
|
||||||
|
t.Add(server.WsRpcCallReq{})
|
||||||
|
t.Add(server.WsRpcCallRes{})
|
||||||
t.Add(bchain.MempoolTxidFilterEntries{})
|
t.Add(bchain.MempoolTxidFilterEntries{})
|
||||||
|
|
||||||
err := t.ConvertToFile("blockbook-api.ts")
|
err := t.ConvertToFile("blockbook-api.ts")
|
||||||
|
|||||||
@ -12,6 +12,7 @@ type Config struct {
|
|||||||
CoinName string `json:"coin_name"`
|
CoinName string `json:"coin_name"`
|
||||||
CoinShortcut string `json:"coin_shortcut"`
|
CoinShortcut string `json:"coin_shortcut"`
|
||||||
CoinLabel string `json:"coin_label"`
|
CoinLabel string `json:"coin_label"`
|
||||||
|
Network string `json:"network"`
|
||||||
FourByteSignatures string `json:"fourByteSignatures"`
|
FourByteSignatures string `json:"fourByteSignatures"`
|
||||||
FiatRates string `json:"fiat_rates"`
|
FiatRates string `json:"fiat_rates"`
|
||||||
FiatRatesParams string `json:"fiat_rates_params"`
|
FiatRatesParams string `json:"fiat_rates_params"`
|
||||||
|
|||||||
@ -57,6 +57,7 @@ type InternalState struct {
|
|||||||
CoinShortcut string `json:"coinShortcut"`
|
CoinShortcut string `json:"coinShortcut"`
|
||||||
CoinLabel string `json:"coinLabel"`
|
CoinLabel string `json:"coinLabel"`
|
||||||
Host string `json:"host"`
|
Host string `json:"host"`
|
||||||
|
Network string `json:"network,omitempty"`
|
||||||
|
|
||||||
DbState uint32 `json:"dbState"`
|
DbState uint32 `json:"dbState"`
|
||||||
ExtendedIndex bool `json:"extendedIndex"`
|
ExtendedIndex bool `json:"extendedIndex"`
|
||||||
@ -305,6 +306,15 @@ func (is *InternalState) computeAvgBlockPeriod() {
|
|||||||
is.AvgBlockPeriod = (is.BlockTimes[last] - is.BlockTimes[first]) / avgBlockPeriodSample
|
is.AvgBlockPeriod = (is.BlockTimes[last] - is.BlockTimes[first]) / avgBlockPeriodSample
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetNetwork returns network. If not set returns the same value as CoinShortcut
|
||||||
|
func (is *InternalState) GetNetwork() string {
|
||||||
|
network := is.Network
|
||||||
|
if network == "" {
|
||||||
|
return is.CoinShortcut
|
||||||
|
}
|
||||||
|
return network
|
||||||
|
}
|
||||||
|
|
||||||
// SetBackendInfo sets new BackendInfo
|
// SetBackendInfo sets new BackendInfo
|
||||||
func (is *InternalState) SetBackendInfo(bi *BackendInfo) {
|
func (is *InternalState) SetBackendInfo(bi *BackendInfo) {
|
||||||
is.mux.Lock()
|
is.mux.Lock()
|
||||||
|
|||||||
@ -6,7 +6,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// JSONNumber is used instead of json.Number after upgrade to go 1.14
|
// JSONNumber is used instead of json.Number after upgrade to go 1.14
|
||||||
// to handle data which can be numbers in double quotes or possibly not numbers at all
|
//
|
||||||
|
// to handle data which can be numbers in double quotes or possibly not numbers at all
|
||||||
|
//
|
||||||
// see https://github.com/golang/go/issues/37308
|
// see https://github.com/golang/go/issues/37308
|
||||||
type JSONNumber string
|
type JSONNumber string
|
||||||
|
|
||||||
|
|||||||
66
configs/coins/arbitrum.json
Normal file
66
configs/coins/arbitrum.json
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Arbitrum",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"network": "ARB",
|
||||||
|
"label": "Arbitrum",
|
||||||
|
"alias": "arbitrum"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8205,
|
||||||
|
"backend_p2p": 38405,
|
||||||
|
"backend_http": 8305,
|
||||||
|
"blockbook_internal": 9205,
|
||||||
|
"blockbook_public": 9305
|
||||||
|
},
|
||||||
|
"ipc": {
|
||||||
|
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||||
|
"rpc_timeout": 25
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-arbitrum",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "arbitrum",
|
||||||
|
"version": "3.2.1",
|
||||||
|
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||||
|
"verification_type": "docker",
|
||||||
|
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||||
|
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "arbitrum.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"blockbook": {
|
||||||
|
"package_name": "blockbook-arbitrum",
|
||||||
|
"system_user": "blockbook-arbitrum",
|
||||||
|
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||||
|
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||||
|
"explorer_url": "",
|
||||||
|
"additional_params": "",
|
||||||
|
"block_chain": {
|
||||||
|
"parse": true,
|
||||||
|
"mempool_workers": 8,
|
||||||
|
"mempool_sub_workers": 2,
|
||||||
|
"block_addresses_to_keep": 300,
|
||||||
|
"additional_params": {
|
||||||
|
"mempoolTxTimeoutHours": 48,
|
||||||
|
"queryBackendOnMempoolResync": false,
|
||||||
|
"fiat_rates": "coingecko",
|
||||||
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
|
"fiat_rates_params": "{\"coin\": \"ethereum\",\"platformIdentifier\": \"arbitrum-one\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
68
configs/coins/arbitrum_archive.json
Normal file
68
configs/coins/arbitrum_archive.json
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Arbitrum Archive",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"network": "ARB",
|
||||||
|
"label": "Arbitrum",
|
||||||
|
"alias": "arbitrum_archive"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8306,
|
||||||
|
"backend_p2p": 38406,
|
||||||
|
"blockbook_internal": 9206,
|
||||||
|
"blockbook_public": 9306
|
||||||
|
},
|
||||||
|
"ipc": {
|
||||||
|
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||||
|
"rpc_timeout": 25
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-arbitrum-archive",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "arbitrum",
|
||||||
|
"version": "3.2.1",
|
||||||
|
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||||
|
"verification_type": "docker",
|
||||||
|
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||||
|
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_archive_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "arbitrum_archive.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"blockbook": {
|
||||||
|
"package_name": "blockbook-arbitrum-archive",
|
||||||
|
"system_user": "blockbook-arbitrum",
|
||||||
|
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||||
|
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||||
|
"explorer_url": "",
|
||||||
|
"additional_params": "-workers=16",
|
||||||
|
"block_chain": {
|
||||||
|
"parse": true,
|
||||||
|
"mempool_workers": 8,
|
||||||
|
"mempool_sub_workers": 2,
|
||||||
|
"block_addresses_to_keep": 600,
|
||||||
|
"additional_params": {
|
||||||
|
"address_aliases": true,
|
||||||
|
"mempoolTxTimeoutHours": 48,
|
||||||
|
"processInternalTransactions": true,
|
||||||
|
"queryBackendOnMempoolResync": false,
|
||||||
|
"fiat_rates": "coingecko",
|
||||||
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
|
"fiat_rates_params": "{\"coin\": \"ethereum\",\"platformIdentifier\": \"arbitrum-one\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}",
|
||||||
|
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
65
configs/coins/arbitrum_nova.json
Normal file
65
configs/coins/arbitrum_nova.json
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Arbitrum Nova",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"label": "Arbitrum Nova",
|
||||||
|
"alias": "arbitrum_nova"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8207,
|
||||||
|
"backend_p2p": 38407,
|
||||||
|
"backend_http": 8307,
|
||||||
|
"blockbook_internal": 9207,
|
||||||
|
"blockbook_public": 9307
|
||||||
|
},
|
||||||
|
"ipc": {
|
||||||
|
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||||
|
"rpc_timeout": 25
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-arbitrum-nova",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "arbitrum",
|
||||||
|
"version": "3.2.1",
|
||||||
|
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||||
|
"verification_type": "docker",
|
||||||
|
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||||
|
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_nova_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "arbitrum_nova.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"blockbook": {
|
||||||
|
"package_name": "blockbook-arbitrum-nova",
|
||||||
|
"system_user": "blockbook-arbitrum",
|
||||||
|
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||||
|
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||||
|
"explorer_url": "",
|
||||||
|
"additional_params": "",
|
||||||
|
"block_chain": {
|
||||||
|
"parse": true,
|
||||||
|
"mempool_workers": 8,
|
||||||
|
"mempool_sub_workers": 2,
|
||||||
|
"block_addresses_to_keep": 300,
|
||||||
|
"additional_params": {
|
||||||
|
"mempoolTxTimeoutHours": 48,
|
||||||
|
"queryBackendOnMempoolResync": false,
|
||||||
|
"fiat_rates": "coingecko",
|
||||||
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
|
"fiat_rates_params": "{\"coin\": \"ethereum\",\"platformIdentifier\": \"ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
67
configs/coins/arbitrum_nova_archive.json
Normal file
67
configs/coins/arbitrum_nova_archive.json
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Arbitrum Nova Archive",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"label": "Arbitrum Nova",
|
||||||
|
"alias": "arbitrum_nova_archive"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8308,
|
||||||
|
"backend_p2p": 38408,
|
||||||
|
"blockbook_internal": 9208,
|
||||||
|
"blockbook_public": 9308
|
||||||
|
},
|
||||||
|
"ipc": {
|
||||||
|
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||||
|
"rpc_timeout": 25
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-arbitrum-nova-archive",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "arbitrum",
|
||||||
|
"version": "3.2.1",
|
||||||
|
"docker_image": "offchainlabs/nitro-node:v3.2.1-d81324d",
|
||||||
|
"verification_type": "docker",
|
||||||
|
"verification_source": "724ebdcca39cd0c28ffd025ecea8d1622a376f41344201b729afb60352cbc306",
|
||||||
|
"extract_command": "docker cp extract:/home/user/target backend/target; docker cp extract:/home/user/nitro-legacy backend/nitro-legacy; docker cp extract:/usr/local/bin/nitro backend/nitro",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/arbitrum_nova_archive_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "arbitrum_nova_archive.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"blockbook": {
|
||||||
|
"package_name": "blockbook-arbitrum-nova-archive",
|
||||||
|
"system_user": "blockbook-arbitrum",
|
||||||
|
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||||
|
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||||
|
"explorer_url": "",
|
||||||
|
"additional_params": "-workers=16",
|
||||||
|
"block_chain": {
|
||||||
|
"parse": true,
|
||||||
|
"mempool_workers": 8,
|
||||||
|
"mempool_sub_workers": 2,
|
||||||
|
"block_addresses_to_keep": 600,
|
||||||
|
"additional_params": {
|
||||||
|
"address_aliases": true,
|
||||||
|
"mempoolTxTimeoutHours": 48,
|
||||||
|
"processInternalTransactions": true,
|
||||||
|
"queryBackendOnMempoolResync": false,
|
||||||
|
"fiat_rates": "coingecko",
|
||||||
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
|
"fiat_rates_params": "{\"coin\": \"ethereum\",\"platformIdentifier\": \"ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}",
|
||||||
|
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-bcash",
|
"package_name": "backend-bcash",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "bcash",
|
"system_user": "bcash",
|
||||||
"version": "27.0.0",
|
"version": "28.0.1",
|
||||||
"binary_url": "https://github.com/bitcoin-cash-node/bitcoin-cash-node/releases/download/v27.0.0/bitcoin-cash-node-27.0.0-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/bitcoin-cash-node/bitcoin-cash-node/releases/download/v28.0.1/bitcoin-cash-node-28.0.1-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "2ab81515a763162435f7ea28bb1f10f69b6143f469278fc52c0b8cbaec6cf238",
|
"verification_source": "d69ee632147f886ca540cecdff5b1b85512612b4c005e86b09083a63c35b64fa",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/bitcoin-qt"],
|
"exclude_files": ["bin/bitcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-bcash-testnet",
|
"package_name": "backend-bcash-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "bcash",
|
"system_user": "bcash",
|
||||||
"version": "27.0.0",
|
"version": "28.0.1",
|
||||||
"binary_url": "https://github.com/bitcoin-cash-node/bitcoin-cash-node/releases/download/v27.0.0/bitcoin-cash-node-27.0.0-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/bitcoin-cash-node/bitcoin-cash-node/releases/download/v28.0.1/bitcoin-cash-node-28.0.1-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "2ab81515a763162435f7ea28bb1f10f69b6143f469278fc52c0b8cbaec6cf238",
|
"verification_source": "d69ee632147f886ca540cecdff5b1b85512612b4c005e86b09083a63c35b64fa",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/bitcoin-qt"],
|
"exclude_files": ["bin/bitcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-bitcoin",
|
"package_name": "backend-bitcoin",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "bitcoin",
|
"system_user": "bitcoin",
|
||||||
"version": "27.1",
|
"version": "28.0",
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "c9840607d230d65f6938b81deaec0b98fe9cb14c3a41a5b13b2c05d044a48422",
|
"verification_source": "7fe294b02b25b51acb8e8e0a0eb5af6bbafa7cd0c5b0e5fcbb61263104a82fbc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/bitcoin-qt"],
|
"exclude_files": ["bin/bitcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -43,8 +43,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee"
|
"verification_source": "7fa582d99a25c354d23e371a5848bd9e6a79702870f9cbbf1292b86e647d0f4e"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-bitcoin-regtest",
|
"package_name": "backend-bitcoin-regtest",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "bitcoin",
|
"system_user": "bitcoin",
|
||||||
"version": "27.1",
|
"version": "28.0",
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "c9840607d230d65f6938b81deaec0b98fe9cb14c3a41a5b13b2c05d044a48422",
|
"verification_source": "7fe294b02b25b51acb8e8e0a0eb5af6bbafa7cd0c5b0e5fcbb61263104a82fbc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/bitcoin-qt"],
|
"exclude_files": ["bin/bitcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -42,8 +42,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee"
|
"verification_source": "7fa582d99a25c354d23e371a5848bd9e6a79702870f9cbbf1292b86e647d0f4e"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-bitcoin-signet",
|
"package_name": "backend-bitcoin-signet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "bitcoin",
|
"system_user": "bitcoin",
|
||||||
"version": "27.1",
|
"version": "28.0",
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "c9840607d230d65f6938b81deaec0b98fe9cb14c3a41a5b13b2c05d044a48422",
|
"verification_source": "7fe294b02b25b51acb8e8e0a0eb5af6bbafa7cd0c5b0e5fcbb61263104a82fbc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/bitcoin-qt"],
|
"exclude_files": ["bin/bitcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -35,15 +35,15 @@
|
|||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
"mainnet": false,
|
"mainnet": false,
|
||||||
"server_config_file": "bitcoin-signet.conf",
|
"server_config_file": "bitcoin_signet.conf",
|
||||||
"client_config_file": "bitcoin_client.conf",
|
"client_config_file": "bitcoin_client.conf",
|
||||||
"additional_params": {
|
"additional_params": {
|
||||||
"deprecatedrpc": "estimatefee"
|
"deprecatedrpc": "estimatefee"
|
||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee"
|
"verification_source": "7fa582d99a25c354d23e371a5848bd9e6a79702870f9cbbf1292b86e647d0f4e"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-bitcoin-testnet",
|
"package_name": "backend-bitcoin-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "bitcoin",
|
"system_user": "bitcoin",
|
||||||
"version": "27.1",
|
"version": "28.0",
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "c9840607d230d65f6938b81deaec0b98fe9cb14c3a41a5b13b2c05d044a48422",
|
"verification_source": "7fe294b02b25b51acb8e8e0a0eb5af6bbafa7cd0c5b0e5fcbb61263104a82fbc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/bitcoin-qt"],
|
"exclude_files": ["bin/bitcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -42,8 +42,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee"
|
"verification_source": "7fa582d99a25c354d23e371a5848bd9e6a79702870f9cbbf1292b86e647d0f4e"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
80
configs/coins/bitcoin_testnet4.json
Normal file
80
configs/coins/bitcoin_testnet4.json
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Testnet4",
|
||||||
|
"shortcut": "TEST",
|
||||||
|
"label": "Bitcoin Testnet4",
|
||||||
|
"alias": "bitcoin_testnet4"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 18029,
|
||||||
|
"backend_message_queue": 48329,
|
||||||
|
"blockbook_internal": 19029,
|
||||||
|
"blockbook_public": 19129
|
||||||
|
},
|
||||||
|
"ipc": {
|
||||||
|
"rpc_url_template": "http://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||||
|
"rpc_user": "rpc",
|
||||||
|
"rpc_pass": "rpc",
|
||||||
|
"rpc_timeout": 25,
|
||||||
|
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}"
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-bitcoin-testnet4",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "bitcoin",
|
||||||
|
"version": "28.0",
|
||||||
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
|
"verification_type": "sha256",
|
||||||
|
"verification_source": "7fe294b02b25b51acb8e8e0a0eb5af6bbafa7cd0c5b0e5fcbb61263104a82fbc",
|
||||||
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
|
"exclude_files": ["bin/bitcoin-qt"],
|
||||||
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/testnet4/*.log",
|
||||||
|
"postinst_script_template": "",
|
||||||
|
"service_type": "forking",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": false,
|
||||||
|
"server_config_file": "bitcoin_testnet4.conf",
|
||||||
|
"client_config_file": "bitcoin_client.conf",
|
||||||
|
"additional_params": {
|
||||||
|
"deprecatedrpc": "estimatefee"
|
||||||
|
},
|
||||||
|
"platforms": {
|
||||||
|
"arm64": {
|
||||||
|
"binary_url": "https://bitcoincore.org/bin/bitcoin-core-28.0/bitcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
|
"verification_source": "7fa582d99a25c354d23e371a5848bd9e6a79702870f9cbbf1292b86e647d0f4e"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"blockbook": {
|
||||||
|
"package_name": "blockbook-bitcoin-testnet4",
|
||||||
|
"system_user": "blockbook-bitcoin",
|
||||||
|
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||||
|
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||||
|
"explorer_url": "",
|
||||||
|
"additional_params": "-enablesubnewtx -extendedindex",
|
||||||
|
"block_chain": {
|
||||||
|
"parse": true,
|
||||||
|
"mempool_workers": 8,
|
||||||
|
"mempool_sub_workers": 2,
|
||||||
|
"block_addresses_to_keep": 10000,
|
||||||
|
"xpub_magic": 70617039,
|
||||||
|
"xpub_magic_segwit_p2sh": 71979618,
|
||||||
|
"xpub_magic_segwit_native": 73342198,
|
||||||
|
"slip44": 1,
|
||||||
|
"additional_params": {
|
||||||
|
"block_golomb_filter_p": 20,
|
||||||
|
"block_filter_scripts": "taproot-noordinals",
|
||||||
|
"block_filter_use_zeroed_key": true,
|
||||||
|
"mempool_golomb_filter_p": 20,
|
||||||
|
"mempool_filter_scripts": "taproot",
|
||||||
|
"mempool_filter_use_zeroed_key": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@
|
|||||||
"coin": {
|
"coin": {
|
||||||
"name": "BNB Smart Chain",
|
"name": "BNB Smart Chain",
|
||||||
"shortcut": "BNB",
|
"shortcut": "BNB",
|
||||||
|
"network": "BSC",
|
||||||
"label": "BNB Smart Chain",
|
"label": "BNB Smart Chain",
|
||||||
"alias": "bsc"
|
"alias": "bsc"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
"coin": {
|
"coin": {
|
||||||
"name": "BNB Smart Chain Archive",
|
"name": "BNB Smart Chain Archive",
|
||||||
"shortcut": "BNB",
|
"shortcut": "BNB",
|
||||||
|
"network": "BSC",
|
||||||
"label": "BNB Smart Chain",
|
"label": "BNB Smart Chain",
|
||||||
"alias": "bsc_archive"
|
"alias": "bsc_archive"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-dash",
|
"package_name": "backend-dash",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "dash",
|
"system_user": "dash",
|
||||||
"version": "20.1.1",
|
"version": "22.0.0",
|
||||||
"binary_url": "https://github.com/dashpay/dash/releases/download/v20.1.1/dashcore-20.1.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/dashpay/dash/releases/download/v22.0.0/dashcore-22.0.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "gpg-sha256",
|
"verification_type": "gpg-sha256",
|
||||||
"verification_source": "https://github.com/dashpay/dash/releases/download/v20.1.1/SHA256SUMS.asc",
|
"verification_source": "https://github.com/dashpay/dash/releases/download/v22.0.0/SHA256SUMS.asc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/dash-qt"],
|
"exclude_files": ["bin/dash-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/dashd -deprecatedrpc=estimatefee -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/dashd -deprecatedrpc=estimatefee -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-dash-testnet",
|
"package_name": "backend-dash-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "dash",
|
"system_user": "dash",
|
||||||
"version": "20.1.1",
|
"version": "22.0.0",
|
||||||
"binary_url": "https://github.com/dashpay/dash/releases/download/v20.1.1/dashcore-20.1.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/dashpay/dash/releases/download/v22.0.0/dashcore-22.0.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "gpg-sha256",
|
"verification_type": "gpg-sha256",
|
||||||
"verification_source": "https://github.com/dashpay/dash/releases/download/v20.1.1/SHA256SUMS.asc",
|
"verification_source": "https://github.com/dashpay/dash/releases/download/v22.0.0/SHA256SUMS.asc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [
|
"exclude_files": [
|
||||||
"bin/dash-qt"
|
"bin/dash-qt"
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-dogecoin",
|
"package_name": "backend-dogecoin",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "dogecoin",
|
"system_user": "dogecoin",
|
||||||
"version": "1.14.7",
|
"version": "1.14.9",
|
||||||
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.7/dogecoin-1.14.7-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "9cd22fb3ebba4d407c2947f4241b9e78c759f29cdf32de8863aea6aeed21cf8b",
|
"verification_source": "4f227117b411a7c98622c970986e27bcfc3f547a72bef65e7d9e82989175d4f8",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/dogecoin-qt"],
|
"exclude_files": ["bin/dogecoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/dogecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/dogecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -45,8 +45,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.7/dogecoin-1.14.7-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "b8fb8050b19283d1ab3c261aaca96d84f2a17f93b52fcff9e252f390b0564f31",
|
"verification_source": "6928c895a20d0bcb6d5c7dcec753d35c884a471aaf8ad4242a89a96acb4f2985",
|
||||||
"exclude_files": []
|
"exclude_files": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-dogecoin-testnet",
|
"package_name": "backend-dogecoin-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "dogecoin",
|
"system_user": "dogecoin",
|
||||||
"version": "1.14.7",
|
"version": "1.14.9",
|
||||||
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.7/dogecoin-1.14.7-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "9cd22fb3ebba4d407c2947f4241b9e78c759f29cdf32de8863aea6aeed21cf8b",
|
"verification_source": "4f227117b411a7c98622c970986e27bcfc3f547a72bef65e7d9e82989175d4f8",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [
|
"exclude_files": [
|
||||||
"bin/dogecoin-qt"
|
"bin/dogecoin-qt"
|
||||||
@ -47,8 +47,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.7/dogecoin-1.14.7-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "b8fb8050b19283d1ab3c261aaca96d84f2a17f93b52fcff9e252f390b0564f31",
|
"verification_source": "6928c895a20d0bcb6d5c7dcec753d35c884a471aaf8ad4242a89a96acb4f2985",
|
||||||
"exclude_files": []
|
"exclude_files": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,11 +22,11 @@
|
|||||||
"package_name": "backend-ethereum",
|
"package_name": "backend-ethereum",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "2.59.1",
|
"version": "2.60.10",
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_amd64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_amd64.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5800f0da3ec52f8abc414860f4b3c9ac8c46d07c5044b5458820c71fd4b95b38",
|
"verification_source": "e22dc039846f2aee3d180b1dfb7d1b8282377d76ab4654137ed4abfec5d8e2af",
|
||||||
"extract_command": "tar -C backend -xf",
|
"extract_command": "tar -C backend --strip-components=1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain mainnet --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain mainnet --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
@ -39,8 +39,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_arm64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_arm64.tar.gz",
|
||||||
"verification_source": "9d29e04f600111971c56a9c48aa5c7c9e81cd61ad8bb042c240505e4bd93bf88"
|
"verification_source": "68cb9baf937d19446de91bc1efccf389b4a2452233b3a5ef1cf5cd8a91b9ce95"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,11 +22,11 @@
|
|||||||
"package_name": "backend-ethereum-archive",
|
"package_name": "backend-ethereum-archive",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "2.59.1",
|
"version": "2.60.10",
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_amd64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_amd64.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5800f0da3ec52f8abc414860f4b3c9ac8c46d07c5044b5458820c71fd4b95b38",
|
"verification_source": "e22dc039846f2aee3d180b1dfb7d1b8282377d76ab4654137ed4abfec5d8e2af",
|
||||||
"extract_command": "tar -C backend -xf",
|
"extract_command": "tar -C backend --strip-components=1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain mainnet --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain mainnet --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
@ -39,8 +39,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_arm64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_arm64.tar.gz",
|
||||||
"verification_source": "9d29e04f600111971c56a9c48aa5c7c9e81cd61ad8bb042c240505e4bd93bf88"
|
"verification_source": "68cb9baf937d19446de91bc1efccf389b4a2452233b3a5ef1cf5cd8a91b9ce95"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -19,10 +19,10 @@
|
|||||||
"package_name": "backend-ethereum-archive-consensus",
|
"package_name": "backend-ethereum-archive-consensus",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "5.0.2",
|
"version": "5.2.0",
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-amd64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-amd64",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "f3515bdd216a34e54b178d03ced311e4c86cee1a1d0f84fb8bffa682244916b4",
|
"verification_source": "bd8c8756943a75f4b6d120b5a9b215a56d071a4fc986ff91af2a4b01e1ac6aea",
|
||||||
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --mainnet --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=7516 --rpc-port=7517 --monitoring-port=7518 --p2p-tcp-port=3516 --p2p-udp-port=2516 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_archive/backend/erigon/jwt.hex 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --mainnet --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=7516 --rpc-port=7517 --monitoring-port=7518 --p2p-tcp-port=3516 --p2p-udp-port=2516 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_archive/backend/erigon/jwt.hex 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
@ -36,8 +36,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-arm64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-arm64",
|
||||||
"verification_source": "dcabf9ecd9e6835f04d81d8317d640fdb3a223cb462c8764f0ea167a3ff3230e"
|
"verification_source": "fb5b46749abe8ebfd8cd074215b350a8db305bceda624e70d7ee9e432e480dac"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -19,10 +19,10 @@
|
|||||||
"package_name": "backend-ethereum-consensus",
|
"package_name": "backend-ethereum-consensus",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "5.0.2",
|
"version": "5.2.0",
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-amd64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-amd64",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "f3515bdd216a34e54b178d03ced311e4c86cee1a1d0f84fb8bffa682244916b4",
|
"verification_source": "bd8c8756943a75f4b6d120b5a9b215a56d071a4fc986ff91af2a4b01e1ac6aea",
|
||||||
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --mainnet --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=7536 --rpc-port=7537 --monitoring-port=7538 --p2p-tcp-port=3536 --p2p-udp-port=2536 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum/backend/erigon/jwt.hex 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --mainnet --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=7536 --rpc-port=7537 --monitoring-port=7538 --p2p-tcp-port=3536 --p2p-udp-port=2536 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum/backend/erigon/jwt.hex 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
@ -36,8 +36,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-arm64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-arm64",
|
||||||
"verification_source": "dcabf9ecd9e6835f04d81d8317d640fdb3a223cb462c8764f0ea167a3ff3230e"
|
"verification_source": "fb5b46749abe8ebfd8cd074215b350a8db305bceda624e70d7ee9e432e480dac"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,11 +22,11 @@
|
|||||||
"package_name": "backend-ethereum-testnet-holesky",
|
"package_name": "backend-ethereum-testnet-holesky",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "2.59.1",
|
"version": "2.60.10",
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_amd64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_amd64.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5800f0da3ec52f8abc414860f4b3c9ac8c46d07c5044b5458820c71fd4b95b38",
|
"verification_source": "e22dc039846f2aee3d180b1dfb7d1b8282377d76ab4654137ed4abfec5d8e2af",
|
||||||
"extract_command": "tar -C backend -xf",
|
"extract_command": "tar -C backend --strip-components=1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain holesky --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain holesky --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
@ -39,8 +39,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_arm64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_arm64.tar.gz",
|
||||||
"verification_source": "9d29e04f600111971c56a9c48aa5c7c9e81cd61ad8bb042c240505e4bd93bf88"
|
"verification_source": "68cb9baf937d19446de91bc1efccf389b4a2452233b3a5ef1cf5cd8a91b9ce95"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -23,11 +23,11 @@
|
|||||||
"package_name": "backend-ethereum-testnet-holesky-archive",
|
"package_name": "backend-ethereum-testnet-holesky-archive",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "2.59.1",
|
"version": "2.60.10",
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_amd64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_amd64.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5800f0da3ec52f8abc414860f4b3c9ac8c46d07c5044b5458820c71fd4b95b38",
|
"verification_source": "e22dc039846f2aee3d180b1dfb7d1b8282377d76ab4654137ed4abfec5d8e2af",
|
||||||
"extract_command": "tar -C backend -xf",
|
"extract_command": "tar -C backend --strip-components=1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain holesky --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain holesky --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
@ -40,8 +40,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_arm64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_arm64.tar.gz",
|
||||||
"verification_source": "9d29e04f600111971c56a9c48aa5c7c9e81cd61ad8bb042c240505e4bd93bf88"
|
"verification_source": "68cb9baf937d19446de91bc1efccf389b4a2452233b3a5ef1cf5cd8a91b9ce95"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -23,15 +23,15 @@
|
|||||||
"package_name": "backend-ethereum-testnet-holesky-archive-consensus",
|
"package_name": "backend-ethereum-testnet-holesky-archive-consensus",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "5.0.2",
|
"version": "5.2.0",
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-amd64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-amd64",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "f3515bdd216a34e54b178d03ced311e4c86cee1a1d0f84fb8bffa682244916b4",
|
"verification_source": "bd8c8756943a75f4b6d120b5a9b215a56d071a4fc986ff91af2a4b01e1ac6aea",
|
||||||
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --holesky --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17536 --rpc-port=17537 --monitoring-port=17538 --p2p-tcp-port=13636 --p2p-udp-port=12636 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_holesky_archive/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --holesky --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17536 --rpc-port=17537 --monitoring-port=17538 --p2p-tcp-port=13636 --p2p-udp-port=12636 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_holesky_archive/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://github.com/eth-clients/holesky/raw/main/custom_config_data/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
"postinst_script_template": "wget https://github.com/eth-clients/holesky/raw/main/metadata/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
@ -40,8 +40,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-arm64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-arm64",
|
||||||
"verification_source": "dcabf9ecd9e6835f04d81d8317d640fdb3a223cb462c8764f0ea167a3ff3230e"
|
"verification_source": "fb5b46749abe8ebfd8cd074215b350a8db305bceda624e70d7ee9e432e480dac"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -23,15 +23,15 @@
|
|||||||
"package_name": "backend-ethereum-testnet-holesky-consensus",
|
"package_name": "backend-ethereum-testnet-holesky-consensus",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "5.0.2",
|
"version": "5.2.0",
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-amd64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-amd64",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "f3515bdd216a34e54b178d03ced311e4c86cee1a1d0f84fb8bffa682244916b4",
|
"verification_source": "bd8c8756943a75f4b6d120b5a9b215a56d071a4fc986ff91af2a4b01e1ac6aea",
|
||||||
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --holesky --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17516 --rpc-port=17517 --monitoring-port=17518 --p2p-tcp-port=13516 --p2p-udp-port=12516 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_holesky/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --holesky --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17516 --rpc-port=17517 --monitoring-port=17518 --p2p-tcp-port=13516 --p2p-udp-port=12516 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_holesky/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://github.com/eth-clients/holesky/raw/main/custom_config_data/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
"postinst_script_template": "wget https://github.com/eth-clients/holesky/raw/main/metadata/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
@ -40,8 +40,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-arm64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-arm64",
|
||||||
"verification_source": "dcabf9ecd9e6835f04d81d8317d640fdb3a223cb462c8764f0ea167a3ff3230e"
|
"verification_source": "fb5b46749abe8ebfd8cd074215b350a8db305bceda624e70d7ee9e432e480dac"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,11 +22,11 @@
|
|||||||
"package_name": "backend-ethereum-testnet-sepolia",
|
"package_name": "backend-ethereum-testnet-sepolia",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "2.59.1",
|
"version": "2.60.10",
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_amd64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_amd64.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5800f0da3ec52f8abc414860f4b3c9ac8c46d07c5044b5458820c71fd4b95b38",
|
"verification_source": "e22dc039846f2aee3d180b1dfb7d1b8282377d76ab4654137ed4abfec5d8e2af",
|
||||||
"extract_command": "tar -C backend -xf",
|
"extract_command": "tar -C backend --strip-components=1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain sepolia --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain sepolia --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
@ -39,8 +39,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_arm64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_arm64.tar.gz",
|
||||||
"verification_source": "9d29e04f600111971c56a9c48aa5c7c9e81cd61ad8bb042c240505e4bd93bf88"
|
"verification_source": "68cb9baf937d19446de91bc1efccf389b4a2452233b3a5ef1cf5cd8a91b9ce95"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -23,11 +23,11 @@
|
|||||||
"package_name": "backend-ethereum-testnet-sepolia-archive",
|
"package_name": "backend-ethereum-testnet-sepolia-archive",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "2.59.1",
|
"version": "2.60.10",
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_amd64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_amd64.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5800f0da3ec52f8abc414860f4b3c9ac8c46d07c5044b5458820c71fd4b95b38",
|
"verification_source": "e22dc039846f2aee3d180b1dfb7d1b8282377d76ab4654137ed4abfec5d8e2af",
|
||||||
"extract_command": "tar -C backend -xf",
|
"extract_command": "tar -C backend --strip-components=1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain sepolia --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain sepolia --snap.keepblocks --db.size.limit 15TB --prune c --prune.c.older 1000000 -torrent.download.rate 32mb --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
@ -40,8 +40,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.59.1/erigon_2.59.1_linux_arm64.tar.gz",
|
"binary_url": "https://github.com/ledgerwatch/erigon/releases/download/v2.60.10/erigon_v2.60.10_linux_arm64.tar.gz",
|
||||||
"verification_source": "9d29e04f600111971c56a9c48aa5c7c9e81cd61ad8bb042c240505e4bd93bf88"
|
"verification_source": "68cb9baf937d19446de91bc1efccf389b4a2452233b3a5ef1cf5cd8a91b9ce95"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -23,15 +23,15 @@
|
|||||||
"package_name": "backend-ethereum-testnet-sepolia-archive-consensus",
|
"package_name": "backend-ethereum-testnet-sepolia-archive-consensus",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "5.0.2",
|
"version": "5.2.0",
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-amd64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-amd64",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "f3515bdd216a34e54b178d03ced311e4c86cee1a1d0f84fb8bffa682244916b4",
|
"verification_source": "bd8c8756943a75f4b6d120b5a9b215a56d071a4fc986ff91af2a4b01e1ac6aea",
|
||||||
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --sepolia --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17586 --rpc-port=17587 --monitoring-port=17548 --p2p-tcp-port=13676 --p2p-udp-port=12676 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_sepolia_archive/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --sepolia --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17586 --rpc-port=17587 --monitoring-port=17548 --p2p-tcp-port=13676 --p2p-udp-port=12676 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_sepolia_archive/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://github.com/eth-clients/merge-testnets/raw/302fe27afdc7a9d15b1766a0c0a9d64319140255/sepolia/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
"postinst_script_template": "wget https://github.com/eth-clients/sepolia/raw/main/metadata/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
@ -40,8 +40,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-arm64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-arm64",
|
||||||
"verification_source": "dcabf9ecd9e6835f04d81d8317d640fdb3a223cb462c8764f0ea167a3ff3230e"
|
"verification_source": "fb5b46749abe8ebfd8cd074215b350a8db305bceda624e70d7ee9e432e480dac"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -23,15 +23,15 @@
|
|||||||
"package_name": "backend-ethereum-testnet-sepolia-consensus",
|
"package_name": "backend-ethereum-testnet-sepolia-consensus",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "ethereum",
|
"system_user": "ethereum",
|
||||||
"version": "5.0.2",
|
"version": "5.2.0",
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-amd64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-amd64",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "f3515bdd216a34e54b178d03ced311e4c86cee1a1d0f84fb8bffa682244916b4",
|
"verification_source": "bd8c8756943a75f4b6d120b5a9b215a56d071a4fc986ff91af2a4b01e1ac6aea",
|
||||||
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --sepolia --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17576 --rpc-port=17577 --monitoring-port=17578 --p2p-tcp-port=13576 --p2p-udp-port=12576 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_sepolia/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --sepolia --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17576 --rpc-port=17577 --monitoring-port=17578 --p2p-tcp-port=13576 --p2p-udp-port=12576 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_sepolia/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://github.com/eth-clients/merge-testnets/raw/302fe27afdc7a9d15b1766a0c0a9d64319140255/sepolia/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
"postinst_script_template": "wget https://github.com/eth-clients/holesky/raw/main/metadata/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
@ -40,8 +40,8 @@
|
|||||||
"client_config_file": "",
|
"client_config_file": "",
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.0.2/beacon-chain-v5.0.2-linux-arm64",
|
"binary_url": "https://github.com/prysmaticlabs/prysm/releases/download/v5.2.0/beacon-chain-v5.2.0-linux-arm64",
|
||||||
"verification_source": "dcabf9ecd9e6835f04d81d8317d640fdb3a223cb462c8764f0ea167a3ff3230e"
|
"verification_source": "fb5b46749abe8ebfd8cd074215b350a8db305bceda624e70d7ee9e432e480dac"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-firo",
|
"package_name": "backend-firo",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "firo",
|
"system_user": "firo",
|
||||||
"version": "0.14.13.3",
|
"version": "0.14.14.0",
|
||||||
"binary_url": "https://github.com/firoorg/firo/releases/download/v0.14.13.3/firo-0.14.13.3-linux64.tar.gz",
|
"binary_url": "https://github.com/firoorg/firo/releases/download/v0.14.14.0/firo-0.14.14.0-linux64.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "39a4729fe9ab95cf3a236b95aadd53c3a18ac8737b7bfdd8934dd5524e19d2e8",
|
"verification_source": "0f8c914286031830d8c9eb1ab86b3e21f349917aea7bc2ab12229ab4c638cbe8",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [
|
"exclude_files": [
|
||||||
"bin/firo-qt",
|
"bin/firo-qt",
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-flux",
|
"package_name": "backend-flux",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "flux",
|
"system_user": "flux",
|
||||||
"version": "7.1.0",
|
"version": "7.2.0",
|
||||||
"binary_url": "https://github.com/RunOnFlux/fluxd/releases/download/v7.1.0/Flux-amd64-v7.1.0.tar.gz",
|
"binary_url": "https://github.com/RunOnFlux/fluxd/releases/download/v7.2.0/Flux-amd64-v7.2.0.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "832fe0d7700cf74430f4b464f07706a78ec39b2ec309d3d8230b0dffe9993296",
|
"verification_source": "aac3a9581fb8e8f3215ddd3de9721fdb6e9d90ef65d3fa73a495d7451dd480ef",
|
||||||
"extract_command": "tar -C backend -xf",
|
"extract_command": "tar -C backend -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/fluxd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/fluxd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-groestlcoin",
|
"package_name": "backend-groestlcoin",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "groestlcoin",
|
"system_user": "groestlcoin",
|
||||||
"version": "27.0",
|
"version": "28.0",
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5189f036913e2033b5fe95ba8f3fc027e9c5bd286d2150e9133cd4a2fd69a7a0",
|
"verification_source": "540d5d7c6bb0449763567ea7c2559e124d61b82a6b2798701d5759458d9c21d7",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/groestlcoin-qt"],
|
"exclude_files": ["bin/groestlcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -42,8 +42,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "95e1a4c4f4d50709df40e2d86c4b578db053d1cb475a3384862192c1298f9de6"
|
"verification_source": "092c6ff333a3defe2603b91c55aea6415e554a2bbc6abb3ad43ac712fa9b63b1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-groestlcoin-regtest",
|
"package_name": "backend-groestlcoin-regtest",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "groestlcoin",
|
"system_user": "groestlcoin",
|
||||||
"version": "27.0",
|
"version": "28.0",
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5189f036913e2033b5fe95ba8f3fc027e9c5bd286d2150e9133cd4a2fd69a7a0",
|
"verification_source": "540d5d7c6bb0449763567ea7c2559e124d61b82a6b2798701d5759458d9c21d7",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/groestlcoin-qt"],
|
"exclude_files": ["bin/groestlcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -42,8 +42,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "95e1a4c4f4d50709df40e2d86c4b578db053d1cb475a3384862192c1298f9de6"
|
"verification_source": "092c6ff333a3defe2603b91c55aea6415e554a2bbc6abb3ad43ac712fa9b63b1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-groestlcoin-signet",
|
"package_name": "backend-groestlcoin-signet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "groestlcoin",
|
"system_user": "groestlcoin",
|
||||||
"version": "27.0",
|
"version": "28.0",
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5189f036913e2033b5fe95ba8f3fc027e9c5bd286d2150e9133cd4a2fd69a7a0",
|
"verification_source": "540d5d7c6bb0449763567ea7c2559e124d61b82a6b2798701d5759458d9c21d7",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/groestlcoin-qt"],
|
"exclude_files": ["bin/groestlcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -35,16 +35,16 @@
|
|||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
"mainnet": false,
|
"mainnet": false,
|
||||||
"server_config_file": "bitcoin-signet.conf",
|
"server_config_file": "bitcoin_signet.conf",
|
||||||
"client_config_file": "bitcoin_client.conf",
|
"client_config_file": "bitcoin_client.conf",
|
||||||
"additional_params": {
|
"additional_params": {
|
||||||
"deprecatedrpc": "estimatefee"
|
"deprecatedrpc": "estimatefee"
|
||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "95e1a4c4f4d50709df40e2d86c4b578db053d1cb475a3384862192c1298f9de6"
|
"verification_source": "092c6ff333a3defe2603b91c55aea6415e554a2bbc6abb3ad43ac712fa9b63b1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"blockbook": {
|
"blockbook": {
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-groestlcoin-testnet",
|
"package_name": "backend-groestlcoin-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "groestlcoin",
|
"system_user": "groestlcoin",
|
||||||
"version": "27.0",
|
"version": "28.0",
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "5189f036913e2033b5fe95ba8f3fc027e9c5bd286d2150e9133cd4a2fd69a7a0",
|
"verification_source": "540d5d7c6bb0449763567ea7c2559e124d61b82a6b2798701d5759458d9c21d7",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/groestlcoin-qt"],
|
"exclude_files": ["bin/groestlcoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/groestlcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -42,8 +42,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v27.0/groestlcoin-27.0-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/Groestlcoin/groestlcoin/releases/download/v28.0/groestlcoin-28.0-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "95e1a4c4f4d50709df40e2d86c4b578db053d1cb475a3384862192c1298f9de6"
|
"verification_source": "092c6ff333a3defe2603b91c55aea6415e554a2bbc6abb3ad43ac712fa9b63b1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-litecoin",
|
"package_name": "backend-litecoin",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "litecoin",
|
"system_user": "litecoin",
|
||||||
"version": "0.21.3",
|
"version": "0.21.4",
|
||||||
"binary_url": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "gpg",
|
"verification_type": "gpg",
|
||||||
"verification_source": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-x86_64-linux-gnu.tar.gz.asc",
|
"verification_source": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-x86_64-linux-gnu.tar.gz.asc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": ["bin/litecoin-qt"],
|
"exclude_files": ["bin/litecoin-qt"],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/litecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/litecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
@ -42,8 +42,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-aarch64-linux-gnu.tar.gz.asc"
|
"verification_source": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-aarch64-linux-gnu.tar.gz.asc"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-litecoin-testnet",
|
"package_name": "backend-litecoin-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "litecoin",
|
"system_user": "litecoin",
|
||||||
"version": "0.21.3",
|
"version": "0.21.4",
|
||||||
"binary_url": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "gpg",
|
"verification_type": "gpg",
|
||||||
"verification_source": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-x86_64-linux-gnu.tar.gz.asc",
|
"verification_source": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-x86_64-linux-gnu.tar.gz.asc",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [
|
"exclude_files": [
|
||||||
"bin/litecoin-qt"
|
"bin/litecoin-qt"
|
||||||
@ -44,8 +44,8 @@
|
|||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"arm64": {
|
"arm64": {
|
||||||
"binary_url": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-aarch64-linux-gnu.tar.gz",
|
"binary_url": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-aarch64-linux-gnu.tar.gz",
|
||||||
"verification_source": "https://download.litecoin.org/litecoin-0.21.3/linux/litecoin-0.21.3-aarch64-linux-gnu.tar.gz.asc"
|
"verification_source": "https://download.litecoin.org/litecoin-0.21.4/linux/litecoin-0.21.4-aarch64-linux-gnu.tar.gz.asc"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
67
configs/coins/optimism.json
Normal file
67
configs/coins/optimism.json
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Optimism",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"network": "OP",
|
||||||
|
"label": "Optimism",
|
||||||
|
"alias": "optimism"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8200,
|
||||||
|
"backend_p2p": 38400,
|
||||||
|
"backend_http": 8300,
|
||||||
|
"backend_authrpc": 8400,
|
||||||
|
"blockbook_internal": 9200,
|
||||||
|
"blockbook_public": 9300
|
||||||
|
},
|
||||||
|
"ipc": {
|
||||||
|
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||||
|
"rpc_timeout": 25
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-optimism",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "optimism",
|
||||||
|
"version": "1.101315.1",
|
||||||
|
"binary_url": "https://github.com/ethereum-optimism/op-geth/archive/refs/tags/v1.101315.1.tar.gz",
|
||||||
|
"verification_type": "sha256",
|
||||||
|
"verification_source": "f0f31ef2982f87f9e3eb90f2b603f5fcd9d680e487d35f5bdcf5aeba290b153f",
|
||||||
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.101315.1.tar.gz && cd backend/source && make geth && mv build/bin/geth ../ && rm -rf ../source && echo",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/optimism_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "optimism.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"blockbook": {
|
||||||
|
"package_name": "blockbook-optimism",
|
||||||
|
"system_user": "blockbook-optimism",
|
||||||
|
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||||
|
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||||
|
"explorer_url": "",
|
||||||
|
"additional_params": "",
|
||||||
|
"block_chain": {
|
||||||
|
"parse": true,
|
||||||
|
"mempool_workers": 8,
|
||||||
|
"mempool_sub_workers": 2,
|
||||||
|
"block_addresses_to_keep": 300,
|
||||||
|
"additional_params": {
|
||||||
|
"mempoolTxTimeoutHours": 48,
|
||||||
|
"queryBackendOnMempoolResync": false,
|
||||||
|
"fiat_rates": "coingecko",
|
||||||
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
|
"fiat_rates_params": "{\"coin\": \"ethereum\",\"platformIdentifier\": \"optimistic-ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
70
configs/coins/optimism_archive.json
Normal file
70
configs/coins/optimism_archive.json
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Optimism Archive",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"network": "OP",
|
||||||
|
"label": "Optimism",
|
||||||
|
"alias": "optimism_archive"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8202,
|
||||||
|
"backend_p2p": 38402,
|
||||||
|
"backend_http": 8302,
|
||||||
|
"backend_authrpc": 8402,
|
||||||
|
"blockbook_internal": 9202,
|
||||||
|
"blockbook_public": 9302
|
||||||
|
},
|
||||||
|
"ipc": {
|
||||||
|
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
|
||||||
|
"rpc_timeout": 25
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-optimism-archive",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "optimism",
|
||||||
|
"version": "1.101315.1",
|
||||||
|
"binary_url": "https://github.com/ethereum-optimism/op-geth/archive/refs/tags/v1.101315.1.tar.gz",
|
||||||
|
"verification_type": "sha256",
|
||||||
|
"verification_source": "f0f31ef2982f87f9e3eb90f2b603f5fcd9d680e487d35f5bdcf5aeba290b153f",
|
||||||
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.101315.1.tar.gz && cd backend/source && make geth && mv build/bin/geth ../ && rm -rf ../source && echo",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/optimism_archive_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "optimism_archive.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "openssl rand -hex 32 > {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/jwtsecret",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"blockbook": {
|
||||||
|
"package_name": "blockbook-optimism-archive",
|
||||||
|
"system_user": "blockbook-optimism",
|
||||||
|
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
|
||||||
|
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
|
||||||
|
"explorer_url": "",
|
||||||
|
"additional_params": "-workers=16",
|
||||||
|
"block_chain": {
|
||||||
|
"parse": true,
|
||||||
|
"mempool_workers": 8,
|
||||||
|
"mempool_sub_workers": 2,
|
||||||
|
"block_addresses_to_keep": 600,
|
||||||
|
"additional_params": {
|
||||||
|
"address_aliases": true,
|
||||||
|
"mempoolTxTimeoutHours": 48,
|
||||||
|
"processInternalTransactions": true,
|
||||||
|
"queryBackendOnMempoolResync": false,
|
||||||
|
"fiat_rates": "coingecko",
|
||||||
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
|
"fiat_rates_params": "{\"coin\": \"ethereum\",\"platformIdentifier\": \"optimistic-ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}",
|
||||||
|
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
40
configs/coins/optimism_archive_legacy_geth.json
Normal file
40
configs/coins/optimism_archive_legacy_geth.json
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Optimism Archive Legacy Geth",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"label": "Optimism",
|
||||||
|
"alias": "optimism_archive_legacy_geth"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8204,
|
||||||
|
"backend_http": 8304,
|
||||||
|
"backend_p2p": 38404,
|
||||||
|
"blockbook_internal": 9204,
|
||||||
|
"blockbook_public": 9304
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-optimism-archive-legacy-geth",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "optimism",
|
||||||
|
"version": "0.5.31",
|
||||||
|
"binary_url": "https://github.com/ethereum-optimism/optimism-legacy/archive/refs/heads/develop.zip",
|
||||||
|
"verification_type": "sha256",
|
||||||
|
"verification_source": "367b32b3f4c1450a57fa57650a0abdfb74ae58c09123d94b161aaec90fd6b883",
|
||||||
|
"extract_command": "mkdir backend/source && unzip -d backend/source",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/optimism_archive_legacy_geth_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "optimism_archive_legacy_geth.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "cd {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/source/optimism-legacy-devlop/l2geth && make geth && mv build/bin/geth {{.Env.BackendInstallPath}}/{{.Coin.Alias}} && rm -rf {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/source",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
38
configs/coins/optimism_archive_op_node.json
Normal file
38
configs/coins/optimism_archive_op_node.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Optimism Archive Op-Node",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"label": "Optimism",
|
||||||
|
"alias": "optimism_archive_op_node"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8203,
|
||||||
|
"blockbook_internal": 9203,
|
||||||
|
"blockbook_public": 9303
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-optimism-archive-op-node",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "optimism",
|
||||||
|
"version": "1.7.6",
|
||||||
|
"binary_url": "https://github.com/ethereum-optimism/optimism/archive/refs/tags/op-node/v1.7.6.tar.gz",
|
||||||
|
"verification_type": "sha256",
|
||||||
|
"verification_source": "91384e4834f0d0776d1c3e19613b5c50a904f6e5814349e444d42d9e8be5a7ab",
|
||||||
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.7.6.tar.gz && cd backend/source/op-node && go build -o ../../op-node ./cmd && rm -rf ../../source && echo",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/optimism_archive_op_node_exec.sh 2>&1 >> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "optimism_archive_op_node.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
38
configs/coins/optimism_op_node.json
Normal file
38
configs/coins/optimism_op_node.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"coin": {
|
||||||
|
"name": "Optimism Op-Node",
|
||||||
|
"shortcut": "ETH",
|
||||||
|
"label": "Optimism",
|
||||||
|
"alias": "optimism_op_node"
|
||||||
|
},
|
||||||
|
"ports": {
|
||||||
|
"backend_rpc": 8201,
|
||||||
|
"blockbook_internal": 9201,
|
||||||
|
"blockbook_public": 9301
|
||||||
|
},
|
||||||
|
"backend": {
|
||||||
|
"package_name": "backend-optimism-op-node",
|
||||||
|
"package_revision": "satoshilabs-1",
|
||||||
|
"system_user": "optimism",
|
||||||
|
"version": "1.7.6",
|
||||||
|
"binary_url": "https://github.com/ethereum-optimism/optimism/archive/refs/tags/op-node/v1.7.6.tar.gz",
|
||||||
|
"verification_type": "sha256",
|
||||||
|
"verification_source": "91384e4834f0d0776d1c3e19613b5c50a904f6e5814349e444d42d9e8be5a7ab",
|
||||||
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.7.6.tar.gz && cd backend/source/op-node && go build -o ../../op-node ./cmd && rm -rf ../../source && echo",
|
||||||
|
"exclude_files": [],
|
||||||
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/optimism_op_node_exec.sh 2>&1 >> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
|
"exec_script": "optimism_op_node.sh",
|
||||||
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
|
"postinst_script_template": "",
|
||||||
|
"service_type": "simple",
|
||||||
|
"service_additional_params_template": "",
|
||||||
|
"protect_memory": true,
|
||||||
|
"mainnet": true,
|
||||||
|
"server_config_file": "",
|
||||||
|
"client_config_file": ""
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"package_maintainer": "IT",
|
||||||
|
"package_maintainer_email": "it@satoshilabs.com"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"coin": {
|
"coin": {
|
||||||
"name": "Polygon",
|
"name": "Polygon",
|
||||||
"shortcut": "MATIC",
|
"shortcut": "POL",
|
||||||
|
"network": "POL",
|
||||||
"label": "Polygon",
|
"label": "Polygon",
|
||||||
"alias": "polygon_bor"
|
"alias": "polygon_bor"
|
||||||
},
|
},
|
||||||
@ -20,16 +21,16 @@
|
|||||||
"package_name": "backend-polygon-bor",
|
"package_name": "backend-polygon-bor",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "polygon",
|
"system_user": "polygon",
|
||||||
"version": "1.3.2",
|
"version": "1.5.3",
|
||||||
"binary_url": "https://github.com/maticnetwork/bor/archive/refs/tags/v1.3.2.tar.gz",
|
"binary_url": "https://github.com/maticnetwork/bor/archive/refs/tags/v1.5.3.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "bcd662d003a3aaa704b0226afcf0dac040de5f054de09e3ef1f5a0c494cdbc0f",
|
"verification_source": "6dabc3306aa628f86232e96e5ec1a970bbebe38ace09447a0d2e5421dd77e4bd",
|
||||||
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.3.2.tar.gz && cd backend/source && make bor && mv build/bin/bor ../ && rm -rf ../source && echo",
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.5.3.tar.gz && cd backend/source && make bor && mv build/bin/bor ../ && rm -rf ../source && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_bor_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_bor_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"exec_script": "polygon_bor.sh",
|
"exec_script": "polygon_bor.sh",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/bor/v1.3.2/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/bor/v1.5.3/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
@ -54,7 +55,7 @@
|
|||||||
"queryBackendOnMempoolResync": false,
|
"queryBackendOnMempoolResync": false,
|
||||||
"fiat_rates": "coingecko",
|
"fiat_rates": "coingecko",
|
||||||
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
"fiat_rates_params": "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"matic-network\",\"platformIdentifier\": \"polygon-pos\",\"platformVsCurrency\": \"usd\",\"periodSeconds\": 900}"
|
"fiat_rates_params": "{\"coin\": \"matic-network\",\"platformIdentifier\": \"polygon-pos\",\"platformVsCurrency\": \"usd\",\"periodSeconds\": 900}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"coin": {
|
"coin": {
|
||||||
"name": "Polygon Archive",
|
"name": "Polygon Archive",
|
||||||
"shortcut": "MATIC",
|
"shortcut": "POL",
|
||||||
|
"network": "POL",
|
||||||
"label": "Polygon",
|
"label": "Polygon",
|
||||||
"alias": "polygon_archive_bor"
|
"alias": "polygon_archive_bor"
|
||||||
},
|
},
|
||||||
@ -20,16 +21,16 @@
|
|||||||
"package_name": "backend-polygon-archive-bor",
|
"package_name": "backend-polygon-archive-bor",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "polygon",
|
"system_user": "polygon",
|
||||||
"version": "1.3.2",
|
"version": "1.5.3",
|
||||||
"binary_url": "https://github.com/maticnetwork/bor/archive/refs/tags/v1.3.2.tar.gz",
|
"binary_url": "https://github.com/maticnetwork/bor/archive/refs/tags/v1.5.3.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "bcd662d003a3aaa704b0226afcf0dac040de5f054de09e3ef1f5a0c494cdbc0f",
|
"verification_source": "6dabc3306aa628f86232e96e5ec1a970bbebe38ace09447a0d2e5421dd77e4bd",
|
||||||
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.3.2.tar.gz && cd backend/source && make bor && mv build/bin/bor ../ && rm -rf ../source && echo",
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.5.3.tar.gz && cd backend/source && make bor && mv build/bin/bor ../ && rm -rf ../source && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_archive_bor_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_archive_bor_exec.sh 2>> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"exec_script": "polygon_archive_bor.sh",
|
"exec_script": "polygon_archive_bor.sh",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/bor/v1.3.2/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/bor/v1.5.3/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
@ -56,7 +57,7 @@
|
|||||||
"queryBackendOnMempoolResync": false,
|
"queryBackendOnMempoolResync": false,
|
||||||
"fiat_rates": "coingecko",
|
"fiat_rates": "coingecko",
|
||||||
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
"fiat_rates_vs_currencies": "AED,ARS,AUD,BDT,BHD,BMD,BRL,CAD,CHF,CLP,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,JPY,KRW,KWD,LKR,MMK,MXN,MYR,NGN,NOK,NZD,PHP,PKR,PLN,RUB,SAR,SEK,SGD,THB,TRY,TWD,UAH,USD,VEF,VND,ZAR,BTC,ETH",
|
||||||
"fiat_rates_params": "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"matic-network\",\"platformIdentifier\": \"polygon-pos\",\"platformVsCurrency\": \"usd\",\"periodSeconds\": 900}",
|
"fiat_rates_params": "{\"coin\": \"matic-network\",\"platformIdentifier\": \"polygon-pos\",\"platformVsCurrency\": \"usd\",\"periodSeconds\": 900}",
|
||||||
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
|
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,16 +16,16 @@
|
|||||||
"package_name": "backend-polygon-heimdall",
|
"package_name": "backend-polygon-heimdall",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "polygon",
|
"system_user": "polygon",
|
||||||
"version": "1.0.5",
|
"version": "1.0.10",
|
||||||
"binary_url": "https://github.com/maticnetwork/heimdall/archive/refs/tags/v1.0.5.tar.gz",
|
"binary_url": "https://github.com/maticnetwork/heimdall/archive/refs/tags/v1.0.10.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "59727263cb3927dd47e5c00dc3c5754f0cd7680af6e1ae019b4b540b3442197c",
|
"verification_source": "9058e054de2a0090e0a8400aa23d6144d7432ac31c6b4e4b6cff684a834e612f",
|
||||||
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.0.5.tar.gz && cd backend/source && make build && mv build/heimdalld ../ && rm -rf ../source && echo",
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.0.10.tar.gz && cd backend/source && make build && mv build/heimdalld ../ && rm -rf ../source && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_heimdall_exec.sh 2>&1 >> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_heimdall_exec.sh 2>&1 >> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"exec_script": "polygon_heimdall.sh",
|
"exec_script": "polygon_heimdall.sh",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/heimdall/v1.0.5/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/heimdall/v1.0.10/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
|
|||||||
@ -16,16 +16,16 @@
|
|||||||
"package_name": "backend-polygon-archive-heimdall",
|
"package_name": "backend-polygon-archive-heimdall",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "polygon",
|
"system_user": "polygon",
|
||||||
"version": "1.0.5",
|
"version": "1.0.10",
|
||||||
"binary_url": "https://github.com/maticnetwork/heimdall/archive/refs/tags/v1.0.5.tar.gz",
|
"binary_url": "https://github.com/maticnetwork/heimdall/archive/refs/tags/v1.0.10.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "59727263cb3927dd47e5c00dc3c5754f0cd7680af6e1ae019b4b540b3442197c",
|
"verification_source": "9058e054de2a0090e0a8400aa23d6144d7432ac31c6b4e4b6cff684a834e612f",
|
||||||
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.0.5.tar.gz && cd backend/source && make build && mv build/heimdalld ../ && rm -rf ../source && echo",
|
"extract_command": "mkdir backend/source && tar -C backend/source --strip 1 -xf v1.0.10.tar.gz && cd backend/source && make build && mv build/heimdalld ../ && rm -rf ../source && echo",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_archive_heimdall_exec.sh 2>&1 >> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/polygon_archive_heimdall_exec.sh 2>&1 >> {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
|
||||||
"exec_script": "polygon_archive_heimdall.sh",
|
"exec_script": "polygon_archive_heimdall.sh",
|
||||||
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
|
||||||
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/heimdall/v1.0.5/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
"postinst_script_template": "wget https://raw.githubusercontent.com/maticnetwork/heimdall/v1.0.10/builder/files/genesis-mainnet-v1.json -O {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/genesis.json",
|
||||||
"service_type": "simple",
|
"service_type": "simple",
|
||||||
"service_additional_params_template": "",
|
"service_additional_params_template": "",
|
||||||
"protect_memory": true,
|
"protect_memory": true,
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-qtum",
|
"package_name": "backend-qtum",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "qtum",
|
"system_user": "qtum",
|
||||||
"version": "24.1",
|
"version": "27.1",
|
||||||
"binary_url": "https://github.com/qtumproject/qtum/releases/download/v24.1/qtum-24.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/qtumproject/qtum/releases/download/v27.1/qtum-27.1-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "13f7ca5c352732772e924bd07db0e8327e0a850edd9c89e7d191e0734990621c",
|
"verification_source": "0b1f612f0762184240c785c66b548f2dab8eed5e25481c635806ddf81807aa86",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [
|
"exclude_files": [
|
||||||
"bin/qtum-qt"
|
"bin/qtum-qt"
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-qtum-testnet",
|
"package_name": "backend-qtum-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "qtum",
|
"system_user": "qtum",
|
||||||
"version": "24.1",
|
"version": "27.1",
|
||||||
"binary_url": "https://github.com/qtumproject/qtum/releases/download/v24.1/qtum-24.1-x86_64-linux-gnu.tar.gz",
|
"binary_url": "https://github.com/qtumproject/qtum/releases/download/v27.1/qtum-27.1-x86_64-linux-gnu.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "13f7ca5c352732772e924bd07db0e8327e0a850edd9c89e7d191e0734990621c",
|
"verification_source": "0b1f612f0762184240c785c66b548f2dab8eed5e25481c635806ddf81807aa86",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [
|
"exclude_files": [
|
||||||
"bin/qtum-qt"
|
"bin/qtum-qt"
|
||||||
|
|||||||
@ -22,10 +22,10 @@
|
|||||||
"package_name": "backend-zcash",
|
"package_name": "backend-zcash",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"system_user": "zcash",
|
"system_user": "zcash",
|
||||||
"version": "5.9.1",
|
"version": "6.1.0",
|
||||||
"binary_url": "https://github.com/zcash/artifacts/raw/master/v5.9.1/bullseye/zcash-5.9.1-linux64-debian-bullseye.tar.gz",
|
"binary_url": "https://download.z.cash/downloads/zcash-6.1.0-linux64-debian-bullseye.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "1911d4da83781dfe9d50fb4e0e5bab14fddca6e648f861563a629583182f478e",
|
"verification_source": "1d17ceacb265599bb4ee690baaf2b335cfe9825df5198359c771ee1834fd4358",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
|
|||||||
@ -21,10 +21,10 @@
|
|||||||
"backend": {
|
"backend": {
|
||||||
"package_name": "backend-zcash-testnet",
|
"package_name": "backend-zcash-testnet",
|
||||||
"package_revision": "satoshilabs-1",
|
"package_revision": "satoshilabs-1",
|
||||||
"version": "5.9.1",
|
"version": "6.1.0",
|
||||||
"binary_url": "https://github.com/zcash/artifacts/raw/master/v5.9.1/bullseye/zcash-5.9.1-linux64-debian-bullseye.tar.gz",
|
"binary_url": "https://download.z.cash/downloads/zcash-6.1.0-linux64-debian-bullseye.tar.gz",
|
||||||
"verification_type": "sha256",
|
"verification_type": "sha256",
|
||||||
"verification_source": "1911d4da83781dfe9d50fb4e0e5bab14fddca6e648f861563a629583182f478e",
|
"verification_source": "1d17ceacb265599bb4ee690baaf2b335cfe9825df5198359c771ee1834fd4358",
|
||||||
"extract_command": "tar -C backend --strip 1 -xf",
|
"extract_command": "tar -C backend --strip 1 -xf",
|
||||||
"exclude_files": [],
|
"exclude_files": [],
|
||||||
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
|
||||||
|
|||||||
1
configs/contract-fix/ethereum.json
Normal file
1
configs/contract-fix/ethereum.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
[{"type":"ERC20","contract":"0xC19B6A4Ac7C7Cc24459F08984Bbd09664af17bD1","name":"Sensorium","symbol":"SENSO","decimals":0,"createdInBlock":11098997}]
|
||||||
@ -438,6 +438,11 @@ func (b *BulkConnect) Close() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if err := b.d.SetInconsistentState(false); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
glog.Info("rocksdb: bulk connect closed, db set to open state")
|
||||||
|
|
||||||
bt, err := b.d.loadBlockTimes()
|
bt, err := b.d.loadBlockTimes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -446,11 +451,7 @@ func (b *BulkConnect) Close() error {
|
|||||||
if b.d.metrics != nil {
|
if b.d.metrics != nil {
|
||||||
b.d.metrics.AvgBlockPeriod.Set(float64(avg))
|
b.d.metrics.AvgBlockPeriod.Set(float64(avg))
|
||||||
}
|
}
|
||||||
|
glog.Info("rocksdb: processed block times")
|
||||||
if err := b.d.SetInconsistentState(false); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
glog.Info("rocksdb: bulk connect closed, db set to open state")
|
|
||||||
b.d = nil
|
b.d = nil
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1962,6 +1962,7 @@ func (d *RocksDB) LoadInternalState(config *common.Config) (*common.InternalStat
|
|||||||
} else {
|
} else {
|
||||||
is.CoinLabel = config.CoinLabel
|
is.CoinLabel = config.CoinLabel
|
||||||
}
|
}
|
||||||
|
is.Network = config.Network
|
||||||
|
|
||||||
return is, nil
|
return is, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user