diff --git a/.github/workflows/elrond-build-skip.yml b/.github/workflows/elrond-build-skip.yml deleted file mode 100644 index 79584cc7..00000000 --- a/.github/workflows/elrond-build-skip.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: elrond-build - -on: - push: - branches: - - "main" - pull_request: - branches: - - "main" - - "develop" - -jobs: - bsp-agent-elrond: - runs-on: ubuntu-latest - env: - BLOCKCHAIN: elrond - steps: - - run: 'echo "No build required"' \ No newline at end of file diff --git a/.github/workflows/elrond-build.yml b/.github/workflows/elrond-build.yml deleted file mode 100644 index bb2e2d7d..00000000 --- a/.github/workflows/elrond-build.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: elrond-build - -on: - push: - branches: - - "main" - pull_request: - branches: - - "main" - - "develop" - -jobs: - bsp-agent-elrond: - runs-on: ubuntu-latest - env: - BLOCKCHAIN: elrond - steps: - - name: Login to GitHub Container Registry - if: ${{ !env.ACT }} - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ secrets.CR_USER }} - password: ${{ secrets.CR_PAT }} - - - uses: actions/checkout@v2 - - name: Build & Publish the Docker image - if: ${{ !env.ACT }} - run: | - docker build . --file Dockerfile --tag ghcr.io/covalenthq/bsp-agent:latest - docker push ghcr.io/covalenthq/bsp-agent:latest - - - name: Create .env file - run: | - touch .env - echo PRIVATE_KEY=${{ secrets.PRIVATE_KEY }} >> .env - echo RPC_URL=${{ secrets.RPC_URL }} >> .env - cat .env - - - name: Load .env file - uses: xom9ikk/dotenv@v1.0.2 - - - name: Start containers - run: docker-compose -f "docker-compose-ci.yml" up --build --remove-orphans --exit-code-from agent - - - name: Check running agent - run: docker inspect bsp-agent - - - name: Check running containers - run: docker ps - - - name: Delete .env file & bin files - run: | - rm -rf .env && rm -rf ./bin/block-elrond - - - name: Stop containers - if: always() - run: docker-compose -f "docker-compose-ci.yml" down diff --git a/.gitignore b/.gitignore index 3307a25d..346b7307 100644 --- a/.gitignore +++ b/.gitignore @@ -95,4 +95,5 @@ artifacts ganache_data temp -out \ No newline at end of file +out +.editorconfig \ No newline at end of file diff --git a/.golangci.yml b/.golangci.yml index 48e2dc00..94c43f97 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -6,6 +6,7 @@ run: modules-download-mode: readonly skip-files: - "internal/config/utils_test.go" + - "internal/config/env_config_test.go" skip-dirs: - internal/metrics - bin/ diff --git a/Dockerfile b/Dockerfile index 720b40f4..c4508f9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,11 +9,11 @@ RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags="-s -w" -o bsp-agent ./cmd/bsp RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags="-s -w" -o bsp-extractor ./scripts/extractor.go RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags="-s -w" -o bsp-extractor-2 ./scripts/replica/extractor2.go # Runtime/test - second phase. -FROM alpine:3.20 +FROM alpine:3.21 RUN mkdir /app WORKDIR /app RUN apk update && apk add --no-cache bash -RUN mkdir -p bin/block-ethereum bin/block-elrond +RUN mkdir -p bin/block-ethereum COPY --from=builder /build/bsp-agent /app COPY --from=builder /build/entry.sh /app COPY --from=builder /build/data /app/data diff --git a/Makefile b/Makefile index cdc1cdec..f5b896e7 100644 --- a/Makefile +++ b/Makefile @@ -25,17 +25,6 @@ run-agent-eth: --log-folder ./logs/ \ --ipfs-pinner-server="http://127.0.0.1:3000/" -run-agent-elrond: - @echo "---- Running Agent from cmd/bspagent ----" - @go run ./cmd/bspagent/*.go \ - --redis-url="redis://username:@localhost:6379/0?topic=replication#replicate" \ - --avro-codec-path="./codec/block-elrond.avsc" \ - --binary-file-path="./bin/block-elrond/" \ - --proof-chain-address=0xbFCa723A2661350f86f397CEdF807D6e596d7874 \ - --websocket-urls="34.69.250.147:20000 34.69.250.147:20001 34.69.250.147:20002 34.69.250.147:20003" \ - --consumer-timeout=8000 \ - --ipfs-pinner-server="http://127.0.0.1:3000/" - test: @echo "---- Testing Agent from cmd/bspagent ----" @go test ./... -coverprofile=coverage.out diff --git a/cmd/bspagent/main.go b/cmd/bspagent/main.go index ee7b1f3a..5b0ef1dc 100644 --- a/cmd/bspagent/main.go +++ b/cmd/bspagent/main.go @@ -65,7 +65,7 @@ func init() { func main() { log.Info("bsp-agent command line config: ", utils.GetConfig(flag.CommandLine)) - chainType := getChainFromConfig(agconfig) + chainType := getChainFromConfig() agentNode = node.NewAgentNode(chainType, agconfig) setupMetrics() @@ -96,11 +96,6 @@ func setupMetrics() { } } -func getChainFromConfig(agconfig *config.AgentConfig) node.ChainType { - webSockUrls := agconfig.ChainConfig.WebsocketURLs - if webSockUrls != "" { - return node.Elrond - } - +func getChainFromConfig() node.ChainType { return node.Ethereum } diff --git a/data/redis/dump.rdb b/data/redis/dump.rdb index 75b274b2..90545e2c 100644 Binary files a/data/redis/dump.rdb and b/data/redis/dump.rdb differ diff --git a/entry.sh b/entry.sh index 67e5b3ff..0cb44689 100755 --- a/entry.sh +++ b/entry.sh @@ -1,21 +1,11 @@ #!/bin/bash -if [ "$BLOCKCHAIN" == "elrond" ] -then - timeout 120s ./bsp-agent --redis-url=redis://username:@redis:6379/0?topic=replication-2#replicate \ - --avro-codec-path=./codec/block-elrond.avsc \ - --binary-file-path=./bin/block-elrond/ \ - --proof-chain-address=0xEa2ff902dbeEECcc828757B881b343F9316752e5\ - --consumer-timeout=15 \ - --websocket-urls="34.69.250.147:20000 34.69.250.147:20001 34.69.250.147:20002 34.69.250.147:20003" -else - ./bsp-agent --redis-url=redis://username:@redis:6379/0?topic=replication#replicate \ - --avro-codec-path=./codec/block-ethereum.avsc \ - --binary-file-path=./bin/block-ethereum/ \ - --block-divisor=3 \ - --log-folder ./logs/ \ - --proof-chain-address=0xEa2ff902dbeEECcc828757B881b343F9316752e5 \ - --metrics --metrics.port 6063 --metrics.addr 0.0.0.0 \ - --consumer-timeout=15 \ - --ipfs-pinner-server="http://ipfs-pinner:3001/" -fi +./bsp-agent --redis-url=redis://username:@redis:6379/0?topic=replication#replicate \ +--avro-codec-path=./codec/block-ethereum.avsc \ +--binary-file-path=./bin/block-ethereum/ \ +--block-divisor=3 \ +--log-folder ./logs/ \ +--proof-chain-address=0xEa2ff902dbeEECcc828757B881b343F9316752e5 \ +--metrics --metrics.port 6063 --metrics.addr 0.0.0.0 \ +--consumer-timeout=15 \ +--ipfs-pinner-server="http://ipfs-pinner:3001/" \ No newline at end of file diff --git a/go.mod b/go.mod index a00c0e0e..51ca333e 100644 --- a/go.mod +++ b/go.mod @@ -11,14 +11,14 @@ require ( github.com/ethereum/go-ethereum v1.14.12 github.com/go-redis/redis/v7 v7.4.1 github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb - github.com/gorilla/websocket v1.5.3 + github.com/gorilla/websocket v1.5.3 // indirect github.com/ipfs/go-cid v0.1.0 github.com/kelseyhightower/envconfig v1.4.0 - github.com/linkedin/goavro/v2 v2.13.0 + github.com/linkedin/goavro/v2 v2.13.1 github.com/satori/go.uuid v1.2.0 github.com/sirupsen/logrus v1.9.3 github.com/ubiq/go-ubiq v3.0.1+incompatible - golang.org/x/sys v0.28.0 + golang.org/x/sys v0.29.0 google.golang.org/api v0.122.0 // indirect gopkg.in/avro.v0 v0.0.0-20171217001914-a730b5802183 ) diff --git a/go.sum b/go.sum index 7bb7fc7a..6fe24e2e 100644 --- a/go.sum +++ b/go.sum @@ -463,8 +463,8 @@ github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linkedin/goavro/v2 v2.13.0 h1:L8eI8GcuciwUkt41Ej62joSZS4kKaYIUdze+6for9NU= -github.com/linkedin/goavro/v2 v2.13.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= +github.com/linkedin/goavro/v2 v2.13.1 h1:4qZ5M0QzQFDRqccsroJlgOJznqAS/TpdvXg55h429+I= +github.com/linkedin/goavro/v2 v2.13.1/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -762,8 +762,6 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -889,8 +887,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -898,8 +896,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= diff --git a/go.work b/go.work new file mode 100644 index 00000000..063d99e7 --- /dev/null +++ b/go.work @@ -0,0 +1,3 @@ +go 1.22.5 + +use . diff --git a/go.work.sum b/go.work.sum new file mode 100644 index 00000000..793c0fed --- /dev/null +++ b/go.work.sum @@ -0,0 +1,139 @@ +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0/go.mod h1:+6KLcKIVgxoBDMqMO/Nvy7bZ9a0nbU3I1DtFQK3YvB4= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet/v6 v6.2.0/go.mod h1:d3ypHeIRNo2+XyqnGA8s+aphtcVpjP5hPwP/Lzo7Ro4= +github.com/Joker/jade v1.1.3/go.mod h1:T+2WLyt7VH6Lp0TRxQrUYEs64nRc83wkMQrfeIQKduM= +github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/sprig v2.16.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06/go.mod h1:7erjKLwalezA0k99cWs5L11HWOAPNjdUZ6RxH1BXbbM= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= +github.com/aws/aws-sdk-go-v2/config v1.18.45/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/service/route53 v1.30.2/go.mod h1:TQZBt/WaQy+zTHoW++rnl8JBrmZ0VO6EUbVua1+foCA= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= +github.com/benbjohnson/tmpl v1.0.0/go.mod h1:igT620JFIi44B6awvU9IsDhR77IXWtFigTLil/RPdps= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/bytedance/sonic v1.10.0-rc3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= +github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA= +github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= +github.com/cloudflare/cloudflare-go v0.79.0/go.mod h1:gkHQf9xEubaQPEuerBuoinR9P8bf8a05Lq0X6WKy1Oc= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= +github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= +github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/donovanhide/eventsource v0.0.0-20210830082556-c59027999da0/go.mod h1:56wL82FO0bfMU5RvfXoIwSOP2ggqqxT+tAfNEIyxuHw= +github.com/dop251/goja v0.0.0-20230605162241-28ee0ee714f3/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/ferranbt/fastssz v0.1.2/go.mod h1:X5UPrE2u1UJjxHA8X54u04SBwdAQjG2sFtWs39YxyWs= +github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= +github.com/flosch/pongo2/v4 v4.0.2/go.mod h1:B5ObFANs/36VwxxlgKpdchIJHMvHB562PW+BWPhwZD8= +github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/go-chi/chi v4.1.0+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/gomarkdown/markdown v0.0.0-20230716120725-531d2d74bc12/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= +github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= +github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= +github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/influxdata/httprouter v1.3.1-0.20191122104820-ee83e2772f69/go.mod h1:pwymjR6SrP3gD3pRj9RJwdl1j5s3doEEV8gS4X9qSzA= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/pkg-config v0.2.11/go.mod h1:EMS7Ll0S4qkzDk53XS3Z72/egBsPInt+BeRxb0WeSwk= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= +github.com/iris-contrib/schema v0.0.6/go.mod h1:iYszG0IOsuIsfzjymw1kMzTL8YQcCWlm65f3wX8J5iA= +github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267/go.mod h1:h1nSAbGFqGVzn6Jyl1R/iCcBUHN4g+gW1u9CoBTrb9E= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= +github.com/karalabe/hid v1.0.1-0.20240306101548-573246063e52/go.mod h1:qk1sX/IBgppQNcGCRoj90u6EGC056EBoIc1oEjCWla8= +github.com/kataras/blocks v0.0.7/go.mod h1:UJIU97CluDo0f+zEjbnbkeMRlvYORtmc1304EeyXf4I= +github.com/kataras/golog v0.1.9/go.mod h1:jlpk/bOaYCyqDqH18pgDHdaJab72yBE6i0O3s30hpWY= +github.com/kataras/iris/v12 v12.2.5/go.mod h1:bf3oblPF8tQmRgyPCzPZr0mLazvEDFgImdaGZYuN4hw= +github.com/kataras/pio v0.0.12/go.mod h1:ODK/8XBhhQ5WqrAhKy+9lTPS7sBf6O3KcLhc9klfRcY= +github.com/kataras/sitemap v0.0.6/go.mod h1:dW4dOCNs896OR1HmG+dMLdT7JjDk7mYBzoIRwuj5jA4= +github.com/kataras/tunnel v0.0.4/go.mod h1:9FkU4LaeifdMWqZu7o20ojmW4B7hdhv2CMLwfnHGpYw= +github.com/kilic/bls12-381 v0.1.0/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/labstack/echo/v4 v4.11.1/go.mod h1:YuYRTSM3CHs2ybfrL8Px48bO6BAnYIN4l8wSTMP6BDQ= +github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/mailgun/raymond/v2 v2.0.48/go.mod h1:lsgvL50kgt1ylcFJYZiULi5fjPBkkhNfj4KA0W54Z18= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/microcosm-cc/bluemonday v1.0.25/go.mod h1:ZIOjCQp1OrzBBPIJmfX4qDYFuhU02nx4bn030ixfHLE= +github.com/mileusna/useragent v0.0.0-20190129205925-3e331f0949a5/go.mod h1:JWhYAp2EXqUtsxTKdeGlY8Wp44M7VxThC9FEoNGi2IE= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= +github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/prometheus/prometheus v0.0.0-20200609090129-a6600f564e3c/go.mod h1:S5n0C6tSgdnwWshBUceRx5G1OsjLv/EeZ9t3wIfEtsY= +github.com/protolambda/bls12-381-util v0.1.0/go.mod h1:cdkysJTRpeFeuUVx/TXGDQNMTiRAalk1vQw3TYTHcE4= +github.com/protolambda/zrnt v0.32.2/go.mod h1:A0fezkp9Tt3GBLATSPIbuY4ywYESyAuc/FFmPKg8Lqs= +github.com/protolambda/ztyp v0.2.2/go.mod h1:9bYgKGqg3wJqT9ac1gI2hnVb0STQq7p/1lapqrqY1dU= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= +github.com/tdewolff/minify/v2 v2.12.8/go.mod h1:YRgk7CC21LZnbuke2fmYnCTq+zhCgpb0yJACOTUNJ1E= +github.com/tdewolff/parse/v2 v2.6.7/go.mod h1:XHDhaU6IBgsryfdnpzUXBlT6leW/l25yrFBTEb4eIyM= +github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= +golang.org/x/arch v0.4.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= diff --git a/internal/config/config.go b/internal/config/config.go index 120b80e6..f509de20 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -44,9 +44,6 @@ type ChainConfig struct { PrivateKey string KeystorePath string KeyStorePwd string - - // for elrond - WebsocketURLs string } // MetricsConfig contains config for collecting performance metrics @@ -113,7 +110,6 @@ func (ac *AgentConfig) getConfigFromFlags() { // proof-chain flag.StringVar(&ac.ProofchainConfig.ProofChainAddr, "proof-chain-address", LookupEnvOrString("ProofChain", ""), "hex string address for deployed proof-chain contract") - flag.StringVar(&ac.ChainConfig.WebsocketURLs, "websocket-urls", LookupEnvOrString("WebsocketURLs", ""), "url to websockets clients separated by space") // logs flag.StringVar(&ac.LogFolder, "log-folder", LookupEnvOrString("LogFolder", logFolderDefault), "Location where the log files should be placed") diff --git a/internal/config/env_config_test.go b/internal/config/env_config_test.go new file mode 100644 index 00000000..c3caa77e --- /dev/null +++ b/internal/config/env_config_test.go @@ -0,0 +1,68 @@ +package config + +import ( + "os" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestLoadEnvConfig(t *testing.T) { + t.Run("successful config loading with defaults", func(t *testing.T) { + // Clear any existing env vars that might interfere + os.Clearenv() + + cfg, err := loadEnvConfig() + assert.NoError(t, err) + assert.NotNil(t, cfg) + + // Check default values + assert.Equal(t, "", cfg.RedisConfig.Password) + assert.Equal(t, "http://127.0.0.1:3000", cfg.IpfsConfig.IpfsPinnerServer) + }) + + t.Run("successful config loading with custom values", func(t *testing.T) { + // Clear any existing env vars + os.Clearenv() + + // Set test environment variables + envVars := map[string]string{ + "REDIS_PWD": "testpassword", + "MB_RPC_URL": "https://test.rpc.url", + "MB_PRIVATE_KEY": "testkey123", + "MB_KEYSTORE_PATH": "/test/path", + "MB_KEYSTORE_PWD": "keystorepass", + "IFPS_PINNER_SERVER": "https://custom.ipfs.server", + } + + for k, v := range envVars { + os.Setenv(k, v) + } + + cfg, err := loadEnvConfig() + assert.NoError(t, err) + assert.NotNil(t, cfg) + + // Verify all values were loaded correctly + assert.Equal(t, "testpassword", cfg.RedisConfig.Password) + assert.Equal(t, "https://test.rpc.url", cfg.EthConfig.RPCURL) + assert.Equal(t, "testkey123", cfg.EthConfig.PrivateKey) + assert.Equal(t, "/test/path", cfg.EthConfig.KeystorePath) + assert.Equal(t, "keystorepass", cfg.EthConfig.KeyStorePwd) + assert.Equal(t, "https://custom.ipfs.server", cfg.IpfsConfig.IpfsPinnerServer) + }) + + t.Run("invalid environment variable type", func(t *testing.T) { + // Clear any existing env vars + os.Clearenv() + + // Set an invalid environment variable (if we had any integer fields) + // This test is included as an example, but with the current config + // structure it's hard to trigger a real parsing error since all fields + // are strings + + cfg, err := loadEnvConfig() + assert.NoError(t, err) // Should still succeed as we have no non-string fields + assert.NotNil(t, cfg) + }) +} diff --git a/internal/node/elrond_node.go b/internal/node/elrond_node.go deleted file mode 100644 index f3688a56..00000000 --- a/internal/node/elrond_node.go +++ /dev/null @@ -1,140 +0,0 @@ -package node - -import ( - "context" - "encoding/hex" - "fmt" - "net/url" - "os" - "os/signal" - "strings" - "time" - - "github.com/covalenthq/bsp-agent/internal/types" - "github.com/covalenthq/bsp-agent/internal/utils" - "github.com/gorilla/websocket" - log "github.com/sirupsen/logrus" -) - -type elrondAgentNode struct { - *agentNode -} - -func newElrondAgentNode(anode *agentNode) *elrondAgentNode { - return &elrondAgentNode{anode} -} - -func (node *elrondAgentNode) NodeChainType() ChainType { - return Elrond -} - -func (node *elrondAgentNode) Start(_ context.Context) { - websocketUrls := node.AgentConfig.ChainConfig.WebsocketURLs - if websocketUrls != "" { - urlArr := strings.Split(websocketUrls, " ") - for _, url := range urlArr { - go node.consumeWebsocketsEvents(url) - } - } -} - -// consumeWebsocketsEvents is the primary consumer of websocket events from an websocket endpoint -func (node *elrondAgentNode) consumeWebsocketsEvents(websocketURL string) { - ctx := context.Background() - interrupt := make(chan os.Signal, 1) - signal.Notify(interrupt, os.Interrupt) - - urlReceiveData := url.URL{Scheme: "ws", Host: websocketURL, Path: "/block"} - log.Info("Connecting to websocket: ", urlReceiveData.String()) - connectionReceiveData, _, err := websocket.DefaultDialer.Dial(urlReceiveData.String(), nil) - if err != nil { - log.Error("error in connecting to websocket /block dial: ", err) - } - defer func() { - if cerr := connectionReceiveData.Close(); cerr != nil && err == nil { - err = cerr - } - }() - - urlAcknowledgeData := url.URL{Scheme: "ws", Host: websocketURL, Path: "/acknowledge"} - log.Info("Connecting to websocket: ", urlAcknowledgeData.String()) - connectionAcknowledgeData, _, err := websocket.DefaultDialer.Dial(urlAcknowledgeData.String(), nil) - if err != nil { - log.Error("error in connecting to websocket /ack dial: ", err) - } - defer func() { - if cerr := connectionAcknowledgeData.Close(); cerr != nil && err == nil { - err = cerr - } - }() - - done := make(chan struct{}) - - go func() { - defer close(done) - for { - _, message, err := connectionReceiveData.ReadMessage() - if err != nil { - log.Error("error in websocket received message: ", err) - } - res := &types.ElrondBlockReplica{} - errDecode := utils.DecodeAvro(res, message) - if errDecode != nil { - log.Error("error in decoding block from avro: ", errDecode) - } - - segmentName := fmt.Sprint(res.Block.ShardID) + "-" + fmt.Sprint(res.Block.Nonce) + "-" + "segment" - fmt.Printf("\n---> Processing %v <---\n", segmentName) - log.Info("Sending acknowledged hash: ", hex.EncodeToString(res.Block.Hash), " nonce: ", res.Block.Nonce) - - errAcknowledgeData := connectionAcknowledgeData.WriteMessage(websocket.BinaryMessage, res.Block.Hash) - if errAcknowledgeData != nil { - log.Error("error in sending acknowledged hash: ", errAcknowledgeData) - } - - replicaURL, ccid := node.StorageManager.GenerateLocation(segmentName, message) - log.Info("elrond binary file should be available: ", replicaURL) - - proofTxHash := make(chan string, 1) - go node.proofchi.SendBlockReplicaProofTx(ctx, uint64(res.Block.Nonce), &types.BlockReplica{}, message, replicaURL, proofTxHash) - pTxHash := <-proofTxHash - - if pTxHash == "" { - log.Error("failed to prove & upload block-replica segment from websocket event: ", segmentName) - } - - log.Info("Proof-chain tx hash: ", pTxHash, " for block-replica segment: ", segmentName) - filename := objectFileName(segmentName, pTxHash) - err = node.StorageManager.Store(ccid, filename, message) - - if err != nil { - log.Error("error in storing object: ", err) - } - } - }() - - ticker := time.NewTicker(time.Second) - defer ticker.Stop() - - for { - select { - case <-done: - - return - case <-ticker.C: - case <-interrupt: - log.Info("interrupt recevied") - // Cleanly close the connection by sending a close message and then - // waiting (with timeout) for the server to close the connection. - err := connectionReceiveData.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")) - _ = connectionAcknowledgeData.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")) - if err != nil { - log.Error("error in closing websocket message: ", err) - - return - } - - return - } - } -} diff --git a/internal/node/node.go b/internal/node/node.go index 69a7bf4a..d401e30d 100644 --- a/internal/node/node.go +++ b/internal/node/node.go @@ -30,14 +30,12 @@ type AgentNode interface { } // ChainType ChainType is the blockchain on which the agent is configured to run. -// Current allowed values are "ethereum" and "elrond" +// Current allowed values are "ethereum" type ChainType string const ( // Ethereum ChainType Ethereum ChainType = "ethereum" - // Elrond ChainType - Elrond ChainType = "elrond" ) type agentNode struct { @@ -87,8 +85,6 @@ func NewAgentNode(chainType ChainType, aconfig *config.AgentConfig) AgentNode { switch chainType { case Ethereum: return newEthAgentNode(anode) - case Elrond: - return newElrondAgentNode(anode) default: log.Fatalf("unknown chainType requested: %s", chainType) } diff --git a/internal/utils/utils.go b/internal/utils/utils.go index 70e6f5a3..abd78375 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -34,7 +34,7 @@ const ( // BspAgentVersionMinor is Minor version component of the current release BspAgentVersionMinor = 8 // BspAgentVersionPatch is Patch version component of the current release - BspAgentVersionPatch = 0 + BspAgentVersionPatch = 1 ) // BspAgentVersion holds the textual version string.