Skip to content

Commit

Permalink
modify evm listener server
Browse files Browse the repository at this point in the history
  • Loading branch information
robertcc committed Dec 18, 2023
1 parent 657d0f7 commit eef3d6d
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 19 deletions.
33 changes: 33 additions & 0 deletions .env.bitcoin
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
BITCOIN_NETWORK_NAME="testnet"
BITCOIN_RPC_HOST="127.0.0.1"
BITCOIN_RPC_PORT="8888"
BITCOIN_RPC_USER="test"
BITCOIN_RPC_PASS="123456"
BITCOIN_WALLET_NAME="test"
BITCOIN_DESTINATION="tb1qfhhxljfajcppfhwa09uxwty5dz4xwfptnqmvtv"
BITCOIN_ENABLE_INDEXER="false"
BITCOIN_INDEXER_LISTEN_ADDRESS="tb1qgm39cu009lyvq93afx47pp4h9wxq5x92lxxgnz"
BITCOIN_BRIDGE_ETH_RPC_URL="127.0.0.1:8545"
BITCOIN_BRIDGE_CONTRACT_ADDRESS="0xB457BF68D71a17Fa5030269Fb895e29e6cD2DF22"
BITCOIN_BRIDGE_ETH_PRIV_KEY="0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
BITCOIN_BRIDGE_ABI="aaa.abi"
BITCOIN_BRIDGE_GAS_LIMIT="23333"
BITCOIN_ENABLE_COMMITTER=false
BITCOIN_STATE_HOST="localhost"
BITCOIN_STATE_PORT="5432"
BITCOIN_STATE_USER="user"
BITCOIN_STATE_PASS="password"
BITCOIN_STATE_DB_NAME="db"
BITCOIN_BRIDGE_AA_SCA_REGISTRY="0xB457BF68D71a17Fa5030269Fb895e29e6cD2DF24"
BITCOIN_BRIDGE_AA_KERNEL_FACTORY="0xB457BF68D71a17Fa5030269Fb895e29e6cD2DF25"
BITCOIN_EVM_ENABLE_LISTENER=false
BITCOIN_EVM_RPC_HOST="http://127.0.0.1"
BITCOIN_EVM_RPC_PORT=8123
BITCOIN_EVM_CONTRACT_ADDRESS="0x3c950C4D15311dB39F85441316983b3845396C6e"
BITCOIN_EVM_START_HEIGHT=0
BITCOIN_EVM_DEPOSIT="0x01bee1bfa4116bd0440a1108ef6cb6a2f6eb9b611d8f53260aec20d39e84ee89"
BITCOIN_EVM_WITHDRAW="0xda335c6ae73006d1145bdcf9a98bc76d789b653b13fe6200e6fc4c5dd54add86"




65 changes: 50 additions & 15 deletions bitcoin/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,36 +110,71 @@ func LoadBitcoinConfig(homePath string) (*BitconConfig, error) {
if err != nil {
// if file not exist use default config
// TODO: add gen config command after, The default configuration may not be required
if os.IsNotExist(err) {
config.NetworkName = "signet"
config.RPCHost = "localhost"
config.RPCPort = "8332"
config.RPCUser = "user"
config.RPCPass = "password"
config.WalletName = "walletname"
config.Destination = "tb1qgm39cu009lyvq93afx47pp4h9wxq5x92lxxgnz"
config.IndexerListenAddress = "tb1qsja4hvx66jr9grgmt8452letmz37gmludcrnup"
config.EnableIndexer = false
config.EnableCommitter = false
return &config, nil
if !os.IsNotExist(err) {
return nil, err
}
return nil, err
//config.NetworkName = "signet"
//config.RPCHost = "localhost"
//config.RPCPort = "8332"
//config.RPCUser = "user"
//config.RPCPass = "password"
//config.WalletName = "walletname"
//config.Destination = "tb1qgm39cu009lyvq93afx47pp4h9wxq5x92lxxgnz"
//config.IndexerListenAddress = "tb1qsja4hvx66jr9grgmt8452letmz37gmludcrnup"
//config.EnableIndexer = false
//config.EnableCommitter = false
//return &config, nil
}

v := viper.New()
v.SetConfigFile(configFile)
v.AutomaticEnv()
v.SetEnvPrefix("BITCOIN")
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_", "-", "_"))
v.AutomaticEnv()

if err := v.ReadInConfig(); err != nil {
return nil, err
if !os.IsNotExist(err) {
return nil, err
}
// Load from environment variables if not found in the config file
v.BindEnv("network-name", "BITCOIN_NETWORK_NAME")

Check failure on line 140 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("rpc-host", "BITCOIN_RPC_HOST")

Check failure on line 141 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("rpc-port", "BITCOIN_RPC_PORT")

Check failure on line 142 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("rpc-user", "BITCOIN_RPC_USER")

Check failure on line 143 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("rpc-pass", "BITCOIN_RPC_PASS")

Check failure on line 144 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("wallet-name", "BITCOIN_WALLET_NAME")

Check failure on line 145 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("destination", "BITCOIN_DESTINATION")

Check failure on line 146 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("enable-indexer", "BITCOIN_ENABLE_INDEXER")

Check failure on line 147 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("enable-committer", "BITCOIN_ENABLE_COMMITTER")

Check failure on line 148 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("indexer-listen-address", "BITCOIN_INDEXER_LISTEN_ADDRESS")

Check failure on line 149 in bitcoin/config.go

View workflow job for this annotation

GitHub Actions / Run golangci-lint

Error return value of `v.BindEnv` is not checked (errcheck)

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("bridge.eth-rpc-url", "BITCOIN_BRIDGE_ETH_RPC_URL")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("bridge.eth-priv-key", "BITCOIN_BRIDGE_ETH_PRIV_KEY")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("bridge.contract-address", "BITCOIN_BRIDGE_CONTRACT_ADDRESS")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("bridge.abi", "BITCOIN_BRIDGE_ABI")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("bridge.gas-limit", "BITCOIN_BRIDGE_GAS_LIMIT")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("bridge.aa-sca-registry", "BITCOIN_BRIDGE_AA_SCA_REGISTRY")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("bridge.aa-kernel-factory", "BITCOIN_BRIDGE_AA_KERNEL_FACTORY")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("state.host", "BITCOIN_STATE_HOST")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("state.port", "BITCOIN_STATE_PORT")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("state.user", "BITCOIN_STATE_USER")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("state.pass", "BITCOIN_STATE_PASS")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("state.db-name", "BITCOIN_STATE_DB_NAME")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("source-address", "BITCOIN_SOURCE_ADDRESS")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("fee", "BITCOIN_FEE")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("evm.enable-listener", "BITCOIN_EVM_ENABLE_LISTENER")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("evm.rpc-host", "BITCOIN_EVM_RPC_HOST")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("evm.rpc-port", "BITCOIN_EVM_RPC_PORT")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("evm.contract-address", "BITCOIN_EVM_CONTRACT_ADDRESS")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("evm.start-height", "BITCOIN_EVM_START_HEIGHT")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("evm.deposit", "BITCOIN_EVM_DEPOSIT")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
v.BindEnv("evm.withdraw", "BITCOIN_EVM_WITHDRAW")

Check warning

Code scanning / gosec

Errors unhandled. Warning

Errors unhandled.
}

err = v.Unmarshal(&config)
if err != nil {
return nil, err
}

return &config, nil
}

Expand Down
13 changes: 11 additions & 2 deletions bitcoin/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func TestConfig(t *testing.T) {
require.Equal(t, "b2node", config.RPCPass)
require.Equal(t, "b2node", config.WalletName)
require.Equal(t, "tb1qgm39cu009lyvq93afx47pp4h9wxq5x92lxxgnz", config.Destination)
require.Equal(t, false, config.EnableIndexer)
require.Equal(t, true, config.EnableIndexer)
require.Equal(t, "tb1qfhhxljfajcppfhwa09uxwty5dz4xwfptnqmvtv", config.IndexerListenAddress)
require.Equal(t, "localhost:8545", config.Bridge.EthRPCURL)
require.Equal(t, "0xB457BF68D71a17Fa5030269Fb895e29e6cD2DFF2", config.Bridge.ContractAddress)
Expand Down Expand Up @@ -68,9 +68,18 @@ func TestConfigEnv(t *testing.T) {
os.Setenv("BITCOIN_STATE_USER", "user")
os.Setenv("BITCOIN_STATE_PASS", "password")
os.Setenv("BITCOIN_STATE_DB_NAME", "db")
os.Setenv("BITCOIN_ENABLE_COMMITTER", "false")
os.Setenv("BITCOIN_BRIDGE_AA_SCA_REGISTRY", "0xB457BF68D71a17Fa5030269Fb895e29e6cD2DF23")
os.Setenv("BITCOIN_BRIDGE_AA_KERNEL_FACTORY", "0xB457BF68D71a17Fa5030269Fb895e29e6cD2DF24")
config, err := bitcoin.LoadBitcoinConfig("./testdata")
os.Setenv("BITCOIN_EVM_ENABLE_LISTENER", "false")
os.Setenv("BITCOIN_EVM_RPC_HOST", "http://127.0.0.1")
os.Setenv("BITCOIN_EVM_RPC_PORT", "8123")
os.Setenv("BITCOIN_EVM_CONTRACT_ADDRESS", "0x3c950C4D15311dB39F85441316983b3845396C6d")
os.Setenv("BITCOIN_EVM_START_HEIGHT", "0")
os.Setenv("BITCOIN_EVM_DEPOSIT", "0x01bee1bfa4116bd0440a1108ef6cb6a2f6eb9b611d8f53260aec20d39e84ee88")
os.Setenv("BITCOIN_EVM_WITHDRAW", "0xda335c6ae73006d1145bdcf9a98bc76d789b653b13fe6200e6fc4c5dd54add85")

config, err := bitcoin.LoadBitcoinConfig("./")
require.NoError(t, err)
require.Equal(t, "testnet", config.NetworkName)
require.Equal(t, "127.0.0.1", config.RPCHost)
Expand Down
4 changes: 2 additions & 2 deletions bitcoin/testdata/bitcoin.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ rpc-user = "b2node"
rpc-pass = "b2node"
wallet-name = "b2node"
destination = "tb1qgm39cu009lyvq93afx47pp4h9wxq5x92lxxgnz"
enable-indexer = false
enable-indexer = true
indexer-listen-address = "tb1qfhhxljfajcppfhwa09uxwty5dz4xwfptnqmvtv"
source-address = "tb1qr2ssscefkjeehv5kl0alhwj976v6cpxqlskn7n"
fee = 200000
Expand All @@ -20,7 +20,7 @@ aa-sca-registry = "0xB457BF68D71a17Fa5030269Fb895e29e6cD2DFF3"
aa-kernel-factory = "0xB457BF68D71a17Fa5030269Fb895e29e6cD2DFF4"

[evm]
enable-listener = false
enable-listener = true
rpc-host = "http://127.0.0.1"
rpc-port = 8545
contract-address = "0x47549F0f902F8E0DB96aBb16E06Da60751516F54"
Expand Down

0 comments on commit eef3d6d

Please sign in to comment.