297 contract watchertx trackeranalyticfly change access to use iam role (#306)

* Use aws role to access sqs

Co-authored-by: walker-16 <agpazos85@gmail.com>

* Add ServiceAccount in deployment

Co-authored-by: walker-16 <agpazos85@gmail.com>

---------

Co-authored-by: walker-16 <agpazos85@gmail.com>
This commit is contained in:
ftocal 2023-05-10 15:49:40 -03:00 committed by GitHub
parent 4ecf5983e6
commit 7fb3857a97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
47 changed files with 273 additions and 297 deletions

View File

@ -119,25 +119,29 @@ func newSQSConsumer(appCtx context.Context, config *config.Configuration) (*sqs_
func newAwsConfig(appCtx context.Context, cfg *config.Configuration) (aws.Config, error) { func newAwsConfig(appCtx context.Context, cfg *config.Configuration) (aws.Config, error) {
region := cfg.AwsRegion region := cfg.AwsRegion
credentials := credentials.NewStaticCredentialsProvider(cfg.AwsAccessKeyID, cfg.AwsSecretAccessKey, "")
customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
if cfg.AwsEndpoint != "" {
return aws.Endpoint{
PartitionID: "aws",
URL: cfg.AwsEndpoint,
SigningRegion: region,
}, nil
}
return aws.Endpoint{}, &aws.EndpointNotFoundError{} if cfg.AwsAccessKeyID != "" && cfg.AwsSecretAccessKey != "" {
}) credentials := credentials.NewStaticCredentialsProvider(cfg.AwsAccessKeyID, cfg.AwsSecretAccessKey, "")
customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
if cfg.AwsEndpoint != "" {
return aws.Endpoint{
PartitionID: "aws",
URL: cfg.AwsEndpoint,
SigningRegion: region,
}, nil
}
awsCfg, err := awsconfig.LoadDefaultConfig(appCtx, return aws.Endpoint{}, &aws.EndpointNotFoundError{}
awsconfig.WithRegion(region), })
awsconfig.WithEndpointResolver(customResolver),
awsconfig.WithCredentialsProvider(credentials), awsCfg, err := awsconfig.LoadDefaultConfig(appCtx,
) awsconfig.WithRegion(region),
return awsCfg, err awsconfig.WithEndpointResolver(customResolver),
awsconfig.WithCredentialsProvider(credentials),
)
return awsCfg, err
}
return awsconfig.LoadDefaultConfig(appCtx, awsconfig.WithRegion(region))
} }
func newFilterFunc(cfg *config.Configuration) queue.FilterConsumeFunc { func newFilterFunc(cfg *config.Configuration) queue.FilterConsumeFunc {

View File

@ -6,12 +6,13 @@ require (
github.com/aws/aws-sdk-go-v2 v1.17.4 github.com/aws/aws-sdk-go-v2 v1.17.4
github.com/aws/aws-sdk-go-v2/config v1.1.1 github.com/aws/aws-sdk-go-v2/config v1.1.1
github.com/aws/aws-sdk-go-v2/credentials v1.1.1 github.com/aws/aws-sdk-go-v2/credentials v1.1.1
github.com/go-redis/redis/v8 v8.11.5
github.com/gofiber/fiber/v2 v2.42.0 github.com/gofiber/fiber/v2 v2.42.0
github.com/influxdata/influxdb-client-go/v2 v2.12.2 github.com/influxdata/influxdb-client-go/v2 v2.12.2
github.com/joho/godotenv v1.5.1 github.com/joho/godotenv v1.5.1
github.com/sethvargo/go-envconfig v0.9.0 github.com/sethvargo/go-envconfig v0.9.0
github.com/wormhole-foundation/wormhole-explorer/common v0.0.0-00010101000000-000000000000 github.com/wormhole-foundation/wormhole-explorer/common v0.0.0-00010101000000-000000000000
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230216153609-bd7406afbfb2 github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8
go.uber.org/zap v1.24.0 go.uber.org/zap v1.24.0
) )
@ -28,8 +29,10 @@ require (
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 // indirect
github.com/aws/smithy-go v1.13.5 // indirect github.com/aws/smithy-go v1.13.5 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/ethereum/go-ethereum v1.10.21 // indirect github.com/ethereum/go-ethereum v1.10.21 // indirect
github.com/golang/snappy v0.0.4 // indirect github.com/golang/snappy v0.0.4 // indirect
github.com/google/uuid v1.3.0 // indirect github.com/google/uuid v1.3.0 // indirect

View File

@ -32,6 +32,8 @@ github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLj
github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k=
github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU=
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@ -43,13 +45,18 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeC
github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU=
github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/ethereum/go-ethereum v1.10.21 h1:5lqsEx92ZaZzRyOqBEXux4/UR06m296RGzN3ol3teJY= github.com/ethereum/go-ethereum v1.10.21 h1:5lqsEx92ZaZzRyOqBEXux4/UR06m296RGzN3ol3teJY=
github.com/ethereum/go-ethereum v1.10.21/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= github.com/ethereum/go-ethereum v1.10.21/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8= github.com/gofiber/fiber/v2 v2.42.0 h1:Fnp7ybWvS+sjNQsFvkhf4G8OhXswvB6Vee8hM/LyS+8=
github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc= github.com/gofiber/fiber/v2 v2.42.0/go.mod h1:3+SGNjqMh5VQH5Vz2Wdi43zTIV16ktlFd3x3R6O1Zlc=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
@ -102,6 +109,9 @@ github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWV
github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ=
github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@ -135,8 +145,8 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230216153609-bd7406afbfb2 h1:yTXJ30BamZT4vPTL55TqNn+s64Fk0WdcrXviEjELY8Q= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8 h1:rrOyHd+H9a6Op1iUyZNCaI5v9D1syq8jDAYyX/2Q4L8=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230216153609-bd7406afbfb2/go.mod h1:dE12DOucCq23gjGGGhtbyx41FBxuHxjpPvG+ArO+8t0= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8/go.mod h1:dE12DOucCq23gjGGGhtbyx41FBxuHxjpPvG+ArO+8t0=
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
@ -214,9 +224,11 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

View File

@ -1,4 +1,3 @@
---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
@ -16,6 +15,7 @@ spec:
spec: spec:
restartPolicy: Always restartPolicy: Always
terminationGracePeriodSeconds: 40 terminationGracePeriodSeconds: 40
serviceAccountName: analytic
containers: containers:
- name: {{ .NAME }} - name: {{ .NAME }}
image: {{ .IMAGE_NAME }} image: {{ .IMAGE_NAME }}
@ -47,16 +47,6 @@ spec:
value: {{ .SQS_URL }} value: {{ .SQS_URL }}
- name: AWS_REGION - name: AWS_REGION
value: {{ .SQS_AWS_REGION }} value: {{ .SQS_AWS_REGION }}
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: analytic-sqs
key: aws-access-key-id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: analytic-sqs
key: aws-secret-access-key
- name: PPROF_ENABLED - name: PPROF_ENABLED
value: "{{ .PPROF_ENABLED }}" value: "{{ .PPROF_ENABLED }}"
- name: P2P_NETWORK - name: P2P_NETWORK

View File

@ -9,7 +9,6 @@ RESOURCES_REQUESTS_MEMORY=128Mi
RESOURCES_REQUESTS_CPU=250m RESOURCES_REQUESTS_CPU=250m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
P2P_NETWORK=mainnet P2P_NETWORK=mainnet
PPROF_ENABLED=false PPROF_ENABLED=false
AWS_IAM_ROLE=

View File

@ -9,7 +9,6 @@ RESOURCES_REQUESTS_MEMORY=15Mi
RESOURCES_REQUESTS_CPU=10m RESOURCES_REQUESTS_CPU=10m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
P2P_NETWORK=mainnet P2P_NETWORK=mainnet
PPROF_ENABLED=true PPROF_ENABLED=true
AWS_IAM_ROLE=

View File

@ -9,7 +9,6 @@ RESOURCES_REQUESTS_MEMORY=64Mi
RESOURCES_REQUESTS_CPU=100m RESOURCES_REQUESTS_CPU=100m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
P2P_NETWORK=testnet P2P_NETWORK=testnet
PPROF_ENABLED=false PPROF_ENABLED=false
AWS_IAM_ROLE=

7
deploy/analytic/sa.yaml Normal file
View File

@ -0,0 +1,7 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: analytic
namespace: {{ .NAMESPACE }}
annotations:
eks.amazonaws.com/role-arn: {{ .AWS_IAM_ROLE }}

View File

@ -1,11 +0,0 @@
---
kind: Secret
apiVersion: v1
metadata:
name: analytic-sqs
namespace: {{ .NAMESPACE }}
data:
aws-access-key-id: {{ .SQS_ACCESS_KEY_ID }}
aws-secret-access-key: {{ .SQS_SECRET_ACCESS_KEY }}
type: Opaque

View File

@ -9,8 +9,7 @@ RESOURCES_REQUESTS_MEMORY=384Mi
RESOURCES_REQUESTS_CPU=250m RESOURCES_REQUESTS_CPU=250m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
P2P_NETWORK=mainnet P2P_NETWORK=mainnet
PPROF_ENABLED=false PPROF_ENABLED=false
MAX_HEALTH_TIME_SECONDS=90 MAX_HEALTH_TIME_SECONDS=90
AWS_IAM_ROLE=

View File

@ -9,8 +9,7 @@ RESOURCES_REQUESTS_MEMORY=384Mi
RESOURCES_REQUESTS_CPU=500m RESOURCES_REQUESTS_CPU=500m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
P2P_NETWORK=mainnet P2P_NETWORK=mainnet
PPROF_ENABLED=true PPROF_ENABLED=true
MAX_HEALTH_TIME_SECONDS=90 MAX_HEALTH_TIME_SECONDS=90
AWS_IAM_ROLE=

View File

@ -9,8 +9,7 @@ RESOURCES_REQUESTS_MEMORY=128Mi
RESOURCES_REQUESTS_CPU=250m RESOURCES_REQUESTS_CPU=250m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
P2P_NETWORK=testnet P2P_NETWORK=testnet
PPROF_ENABLED=false PPROF_ENABLED=false
MAX_HEALTH_TIME_SECONDS=300 MAX_HEALTH_TIME_SECONDS=300
AWS_IAM_ROLE=

View File

@ -1,4 +1,3 @@
---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
@ -16,6 +15,7 @@ spec:
spec: spec:
restartPolicy: Always restartPolicy: Always
terminationGracePeriodSeconds: 40 terminationGracePeriodSeconds: 40
serviceAccountName: fly
containers: containers:
- name: {{ .NAME }} - name: {{ .NAME }}
image: {{ .IMAGE_NAME }} image: {{ .IMAGE_NAME }}
@ -57,16 +57,6 @@ spec:
value: {{ .SQS_URL }} value: {{ .SQS_URL }}
- name: AWS_REGION - name: AWS_REGION
value: {{ .SQS_AWS_REGION }} value: {{ .SQS_AWS_REGION }}
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: fly-sqs
key: aws-access-key-id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: fly-sqs
key: aws-secret-access-key
- name: REDIS_URI - name: REDIS_URI
valueFrom: valueFrom:
configMapKeyRef: configMapKeyRef:

7
deploy/fly/sa.yaml Normal file
View File

@ -0,0 +1,7 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: fly
namespace: {{ .NAMESPACE }}
annotations:
eks.amazonaws.com/role-arn: {{ .AWS_IAM_ROLE }}

View File

@ -1,11 +0,0 @@
---
kind: Secret
apiVersion: v1
metadata:
name: fly-sqs
namespace: {{ .NAMESPACE }}
data:
aws-access-key-id: {{ .SQS_ACCESS_KEY_ID }}
aws-secret-access-key: {{ .SQS_SECRET_ACCESS_KEY }}
type: Opaque

View File

@ -9,9 +9,8 @@ RESOURCES_REQUESTS_MEMORY=128Mi
RESOURCES_REQUESTS_CPU=250m RESOURCES_REQUESTS_CPU=250m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan
VAA_PAYLOAD_PARSER_TIMEOUT=10 VAA_PAYLOAD_PARSER_TIMEOUT=10
P2P_NETWORK=mainnet P2P_NETWORK=mainnet
PPROF_ENABLED=false PPROF_ENABLED=false
AWS_IAM_ROLE=

View File

@ -9,9 +9,8 @@ RESOURCES_REQUESTS_MEMORY=15Mi
RESOURCES_REQUESTS_CPU=10m RESOURCES_REQUESTS_CPU=10m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan
VAA_PAYLOAD_PARSER_TIMEOUT=10 VAA_PAYLOAD_PARSER_TIMEOUT=10
P2P_NETWORK=mainnet P2P_NETWORK=mainnet
PPROF_ENABLED=true PPROF_ENABLED=true
AWS_IAM_ROLE=

View File

@ -9,9 +9,8 @@ RESOURCES_REQUESTS_MEMORY=15Mi
RESOURCES_REQUESTS_CPU=10m RESOURCES_REQUESTS_CPU=10m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan-testnet VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan-testnet
VAA_PAYLOAD_PARSER_TIMEOUT=10 VAA_PAYLOAD_PARSER_TIMEOUT=10
P2P_NETWORK=testnet P2P_NETWORK=testnet
PPROF_ENABLED=false PPROF_ENABLED=false
AWS_IAM_ROLE=

View File

@ -1,4 +1,3 @@
---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
@ -16,6 +15,7 @@ spec:
spec: spec:
restartPolicy: Always restartPolicy: Always
terminationGracePeriodSeconds: 40 terminationGracePeriodSeconds: 40
serviceAccountName: parser
containers: containers:
- name: {{ .NAME }} - name: {{ .NAME }}
image: {{ .IMAGE_NAME }} image: {{ .IMAGE_NAME }}
@ -57,16 +57,6 @@ spec:
value: {{ .SQS_URL }} value: {{ .SQS_URL }}
- name: AWS_REGION - name: AWS_REGION
value: {{ .SQS_AWS_REGION }} value: {{ .SQS_AWS_REGION }}
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: parser-sqs
key: aws-access-key-id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: parser-sqs
key: aws-secret-access-key
- name: VAA_PAYLOAD_PARSER_URL - name: VAA_PAYLOAD_PARSER_URL
value: {{ .VAA_PAYLOAD_PARSER_URL }} value: {{ .VAA_PAYLOAD_PARSER_URL }}
- name: VAA_PAYLOAD_PARSER_TIMEOUT - name: VAA_PAYLOAD_PARSER_TIMEOUT
@ -75,26 +65,6 @@ spec:
value: "{{ .PPROF_ENABLED }}" value: "{{ .PPROF_ENABLED }}"
- name: P2P_NETWORK - name: P2P_NETWORK
value: {{ .P2P_NETWORK }} value: {{ .P2P_NETWORK }}
- name: INFLUX_URL
valueFrom:
configMapKeyRef:
name: config
key: influxdb-url
- name: INFLUX_TOKEN
valueFrom:
secretKeyRef:
name: influxdb
key: token
- name: INFLUX_ORGANIZATION
valueFrom:
configMapKeyRef:
name: config
key: influxdb-organization
- name: INFLUX_BUCKET
valueFrom:
configMapKeyRef:
name: config
key: influxdb-bucket
resources: resources:
limits: limits:
memory: {{ .RESOURCES_LIMITS_MEMORY }} memory: {{ .RESOURCES_LIMITS_MEMORY }}

7
deploy/parser/sa.yaml Normal file
View File

@ -0,0 +1,7 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: parser
namespace: {{ .NAMESPACE }}
annotations:
eks.amazonaws.com/role-arn: {{ .AWS_IAM_ROLE }}

View File

@ -1,11 +0,0 @@
---
kind: Secret
apiVersion: v1
metadata:
name: parser-sqs
namespace: {{ .NAMESPACE }}
data:
aws-access-key-id: {{ .SQS_ACCESS_KEY_ID }}
aws-secret-access-key: {{ .SQS_SECRET_ACCESS_KEY }}
type: Opaque

View File

@ -1,11 +1,3 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: pipeline
namespace: {{ .NAMESPACE }}
annotations:
eks.amazonaws.com/role-arn: {{ .AWS_IAM_ROLE }}
---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:

7
deploy/pipeline/sa.yaml Normal file
View File

@ -0,0 +1,7 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: pipeline
namespace: {{ .NAMESPACE }}
annotations:
eks.amazonaws.com/role-arn: {{ .AWS_IAM_ROLE }}

View File

@ -9,9 +9,8 @@ RESOURCES_REQUESTS_MEMORY=128Mi
RESOURCES_REQUESTS_CPU=250m RESOURCES_REQUESTS_CPU=250m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan
VAA_PAYLOAD_PARSER_TIMEOUT=10 VAA_PAYLOAD_PARSER_TIMEOUT=10
SOLANA_BASE_URL=https://api.mainnet-beta.solana.com SOLANA_BASE_URL=https://api.mainnet-beta.solana.com
SOLANA_REQUESTS_PER_MINUTE=6 SOLANA_REQUESTS_PER_MINUTE=6
AWS_IAM_ROLE=

View File

@ -9,11 +9,10 @@ RESOURCES_REQUESTS_MEMORY=15Mi
RESOURCES_REQUESTS_CPU=40m RESOURCES_REQUESTS_CPU=40m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan
VAA_PAYLOAD_PARSER_TIMEOUT=10 VAA_PAYLOAD_PARSER_TIMEOUT=10
SOLANA_BASE_URL=https://api.mainnet-beta.solana.com SOLANA_BASE_URL=https://api.mainnet-beta.solana.com
SOLANA_REQUESTS_PER_MINUTE=6 SOLANA_REQUESTS_PER_MINUTE=6
AWS_IAM_ROLE=

View File

@ -9,9 +9,8 @@ RESOURCES_REQUESTS_MEMORY=15Mi
RESOURCES_REQUESTS_CPU=10m RESOURCES_REQUESTS_CPU=10m
SQS_URL= SQS_URL=
SQS_AWS_REGION= SQS_AWS_REGION=
SQS_ACCESS_KEY_ID=
SQS_SECRET_ACCESS_KEY=
VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan-testnet VAA_PAYLOAD_PARSER_URL=http://wormscan-vaa-payload-parser.wormscan-testnet
VAA_PAYLOAD_PARSER_TIMEOUT=10 VAA_PAYLOAD_PARSER_TIMEOUT=10
SOLANA_BASE_URL=https://api.devnet.solana.com SOLANA_BASE_URL=https://api.devnet.solana.com
SOLANA_REQUESTS_PER_MINUTE=6 SOLANA_REQUESTS_PER_MINUTE=6
AWS_IAM_ROLE=

View File

@ -0,0 +1,7 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: tx-tracker
namespace: {{ .NAMESPACE }}
annotations:
eks.amazonaws.com/role-arn: {{ .AWS_IAM_ROLE }}

View File

@ -1,11 +0,0 @@
---
kind: Secret
apiVersion: v1
metadata:
name: tx-tracker-sqs
namespace: {{ .NAMESPACE }}
data:
aws-access-key-id: {{ .SQS_ACCESS_KEY_ID }}
aws-secret-access-key: {{ .SQS_SECRET_ACCESS_KEY }}
type: Opaque

View File

@ -1,4 +1,3 @@
---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
@ -16,6 +15,7 @@ spec:
spec: spec:
restartPolicy: Always restartPolicy: Always
terminationGracePeriodSeconds: 40 terminationGracePeriodSeconds: 40
serviceAccountName: tx-tracker
containers: containers:
- name: {{ .NAME }} - name: {{ .NAME }}
image: {{ .IMAGE_NAME }} image: {{ .IMAGE_NAME }}
@ -57,16 +57,6 @@ spec:
value: {{ .SQS_URL }} value: {{ .SQS_URL }}
- name: AWS_REGION - name: AWS_REGION
value: {{ .SQS_AWS_REGION }} value: {{ .SQS_AWS_REGION }}
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: tx-tracker-sqs
key: aws-access-key-id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: tx-tracker-sqs
key: aws-secret-access-key
- name: VAA_PAYLOAD_PARSER_URL - name: VAA_PAYLOAD_PARSER_URL
value: {{ .VAA_PAYLOAD_PARSER_URL }} value: {{ .VAA_PAYLOAD_PARSER_URL }}
- name: VAA_PAYLOAD_PARSER_TIMEOUT - name: VAA_PAYLOAD_PARSER_TIMEOUT

View File

@ -3,7 +3,10 @@ module github.com/wormhole-foundation/wormhole-explorer/fly
go 1.19 go 1.19
require ( require (
github.com/aws/aws-sdk-go v1.44.133 github.com/aws/aws-sdk-go-v2 v1.18.0
github.com/aws/aws-sdk-go-v2/config v1.1.1
github.com/aws/aws-sdk-go-v2/credentials v1.1.1
github.com/aws/aws-sdk-go-v2/service/sqs v1.20.2
github.com/certusone/wormhole/node v0.0.0-20230315165931-62bef9ffb441 github.com/certusone/wormhole/node v0.0.0-20230315165931-62bef9ffb441
github.com/dgraph-io/ristretto v0.1.1 github.com/dgraph-io/ristretto v0.1.1
github.com/eko/gocache/v3 v3.1.2 github.com/eko/gocache/v3 v3.1.2
@ -14,13 +17,21 @@ require (
github.com/libp2p/go-libp2p-core v0.20.0 github.com/libp2p/go-libp2p-core v0.20.0
github.com/patrickmn/go-cache v2.1.0+incompatible github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/stretchr/testify v1.8.1 github.com/stretchr/testify v1.8.1
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230315165931-62bef9ffb441 github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8
go.mongodb.org/mongo-driver v1.11.2 go.mongodb.org/mongo-driver v1.11.2
go.uber.org/zap v1.24.0 go.uber.org/zap v1.24.0
google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8
) )
require ( require (
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 // indirect
github.com/aws/smithy-go v1.13.5 // indirect
github.com/cosmos/cosmos-proto v1.0.0-alpha8 // indirect github.com/cosmos/cosmos-proto v1.0.0-alpha8 // indirect
github.com/cosmos/gogoproto v1.4.3 // indirect github.com/cosmos/gogoproto v1.4.3 // indirect
github.com/cosmos/ibc-go/v4 v4.2.0 // indirect github.com/cosmos/ibc-go/v4 v4.2.0 // indirect
@ -127,7 +138,6 @@ require (
github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
github.com/jbenet/goprocess v0.1.4 // indirect github.com/jbenet/goprocess v0.1.4 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jmhodges/levigo v1.0.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect
github.com/klauspost/compress v1.15.11 // indirect github.com/klauspost/compress v1.15.11 // indirect
github.com/klauspost/cpuid/v2 v2.1.0 // indirect github.com/klauspost/cpuid/v2 v2.1.0 // indirect

View File

@ -647,21 +647,38 @@ github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN
github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
github.com/aws/aws-sdk-go v1.44.133 h1:+pWxt9nyKc0jf33rORBaQ93KPjYpmIIy3ozVXdJ82Oo=
github.com/aws/aws-sdk-go v1.44.133/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo=
github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
github.com/aws/aws-sdk-go-v2 v1.17.4/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY=
github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
github.com/aws/aws-sdk-go-v2/config v1.1.1 h1:ZAoq32boMzcaTW9bcUacBswAmHTbvlvDJICgHFZuECo=
github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y=
github.com/aws/aws-sdk-go-v2/credentials v1.1.1 h1:NbvWIM1Mx6sNPTxowHgS2ewXCRp+NGTzUYb/96FZJbY=
github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 h1:EtEU7WRaWliitZh2nmuxEXrN0Cb8EgPUFGIoTMeqbzI=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28 h1:r+XwaCLpIvCKjBIYy/HVZujQS9tsz5ohHG3ZIe0wKoE=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28/go.mod h1:3lwChorpIM/BhImY/hy+Z6jekmN92cXGPI1QJasVPYY=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22 h1:7AwGYXDdqRQYsluvKFmWoqpcOQJ4bH634SkYf3FNj/A=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22/go.mod h1:EqK7gVrIGAHyZItrD1D8B0ilgwMD1GiWAmbU4u/JHNk=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 h1:gGLG7yKaXG02/jBlg210R7VgQIotiQntNhsCFejawx8=
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc=
github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 h1:4AH9fFjUlVktQMznF+YN33aWNXaR4VgDXyP28qokJC0=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8=
github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4=
github.com/aws/aws-sdk-go-v2/service/sqs v1.20.2 h1:CSNIo1jiw7KrkdgZjCOnotu6yuB3IybhKLuSQrTLNfo=
github.com/aws/aws-sdk-go-v2/service/sqs v1.20.2/go.mod h1:1ttxGjUHZliCQMpPss1sU5+Ph/5NvdMFRzr96bv8gm0=
github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 h1:37QubsarExl5ZuCBlnRP+7l1tNwZPBSTqpTBrPH98RU=
github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0=
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 h1:TJoIfnIFubCX0ACVeJ0w46HEH5MwjwYN4iFhuYIhfIY=
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM=
github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@ -1845,9 +1862,7 @@ github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht
github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U=
github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ=
@ -3006,8 +3021,8 @@ github.com/wormhole-foundation/cosmos-sdk v0.45.9-wormhole/go.mod h1:Z5M4TX7PsHN
github.com/wormhole-foundation/wasmd v0.30.0-wormchain-1 h1:1+u753gKU44slOOLNdk7LiE5QtZU+3joVuQuU2xW1Bg= github.com/wormhole-foundation/wasmd v0.30.0-wormchain-1 h1:1+u753gKU44slOOLNdk7LiE5QtZU+3joVuQuU2xW1Bg=
github.com/wormhole-foundation/wasmd v0.30.0-wormchain-1/go.mod h1:BcwmiI8b2fR2MGioz3HeVvON5QjSDfrnUbGu0gKRk5U= github.com/wormhole-foundation/wasmd v0.30.0-wormchain-1/go.mod h1:BcwmiI8b2fR2MGioz3HeVvON5QjSDfrnUbGu0gKRk5U=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20220926172624-4b38dc650bb0/go.mod h1:Vg7Cbb370S+JihB+of1rWm9Aaxzf0GPPvKszPeSb7AE= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20220926172624-4b38dc650bb0/go.mod h1:Vg7Cbb370S+JihB+of1rWm9Aaxzf0GPPvKszPeSb7AE=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230315165931-62bef9ffb441 h1:ZSB93rvaWarOv/TTJp1wicIygQLNx6fZhgsmxDBAnO0= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8 h1:rrOyHd+H9a6Op1iUyZNCaI5v9D1syq8jDAYyX/2Q4L8=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230315165931-62bef9ffb441/go.mod h1:dE12DOucCq23gjGGGhtbyx41FBxuHxjpPvG+ArO+8t0= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8/go.mod h1:dE12DOucCq23gjGGGhtbyx41FBxuHxjpPvG+ArO+8t0=
github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees=
github.com/xanzy/go-gitlab v0.31.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= github.com/xanzy/go-gitlab v0.31.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug=
github.com/xanzy/go-gitlab v0.32.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= github.com/xanzy/go-gitlab v0.32.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug=

View File

@ -1,12 +1,12 @@
package sqs package sqs
import ( import (
"context"
"time" "time"
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go/aws/session" aws_sqs "github.com/aws/aws-sdk-go-v2/service/sqs"
aws_sqs "github.com/aws/aws-sdk-go/service/sqs" aws_sqs_types "github.com/aws/aws-sdk-go-v2/service/sqs/types"
"github.com/aws/aws-sdk-go/service/sqs/sqsiface"
) )
// ConsumerOption represents a consumer option function. // ConsumerOption represents a consumer option function.
@ -14,21 +14,21 @@ type ConsumerOption func(*Consumer)
// Consumer represents SQS consumer. // Consumer represents SQS consumer.
type Consumer struct { type Consumer struct {
api sqsiface.SQSAPI api *aws_sqs.Client
url string url string
maxMessages *int64 maxMessages int32
visibilityTimeout *int64 visibilityTimeout int32
waitTimeSeconds *int64 waitTimeSeconds int32
} }
// New instances of a Consumer to consume SQS messages. // New instances of a Consumer to consume SQS messages.
func NewConsumer(sess *session.Session, url string, opts ...ConsumerOption) (*Consumer, error) { func NewConsumer(cfg aws.Config, url string, opts ...ConsumerOption) (*Consumer, error) {
consumer := &Consumer{ consumer := &Consumer{
api: aws_sqs.New(sess), api: aws_sqs.NewFromConfig(cfg),
url: url, url: url,
maxMessages: aws.Int64(10), maxMessages: *aws.Int32(10),
visibilityTimeout: aws.Int64(60), visibilityTimeout: *aws.Int32(60),
waitTimeSeconds: aws.Int64(20), waitTimeSeconds: *aws.Int32(20),
} }
for _, opt := range opts { for _, opt := range opts {
@ -39,42 +39,42 @@ func NewConsumer(sess *session.Session, url string, opts ...ConsumerOption) (*Co
} }
// WithMaxMessages allows to specify an maximum number of messages to return when setting a value. // WithMaxMessages allows to specify an maximum number of messages to return when setting a value.
func WithMaxMessages(v int64) ConsumerOption { func WithMaxMessages(v int32) ConsumerOption {
return func(c *Consumer) { return func(c *Consumer) {
c.maxMessages = aws.Int64(v) c.maxMessages = *aws.Int32(v)
} }
} }
// WithVisibilityTimeout allows to specify a visibility timeout when setting a value. // WithVisibilityTimeout allows to specify a visibility timeout when setting a value.
func WithVisibilityTimeout(v int64) ConsumerOption { func WithVisibilityTimeout(v int32) ConsumerOption {
return func(c *Consumer) { return func(c *Consumer) {
c.visibilityTimeout = aws.Int64(v) c.visibilityTimeout = *aws.Int32(v)
} }
} }
// WithWaitTimeSeconds allows to specify a wait time when setting a value. // WithWaitTimeSeconds allows to specify a wait time when setting a value.
func WithWaitTimeSeconds(v int64) ConsumerOption { func WithWaitTimeSeconds(v int32) ConsumerOption {
return func(c *Consumer) { return func(c *Consumer) {
c.waitTimeSeconds = aws.Int64(v) c.waitTimeSeconds = *aws.Int32(v)
} }
} }
// GetMessages retrieves messages from SQS. // GetMessages retrieves messages from SQS.
func (c *Consumer) GetMessages() ([]*aws_sqs.Message, error) { func (c *Consumer) GetMessages(ctx context.Context) ([]aws_sqs_types.Message, error) {
params := &aws_sqs.ReceiveMessageInput{ params := &aws_sqs.ReceiveMessageInput{
QueueUrl: aws.String(c.url), QueueUrl: aws.String(c.url),
MaxNumberOfMessages: c.maxMessages, MaxNumberOfMessages: c.maxMessages,
AttributeNames: []*string{ AttributeNames: []aws_sqs_types.QueueAttributeName{
aws.String("All"), aws_sqs_types.QueueAttributeNameAll,
}, },
MessageAttributeNames: []*string{ MessageAttributeNames: []string{
aws.String("All"), string(aws_sqs_types.QueueAttributeNameAll),
}, },
WaitTimeSeconds: c.waitTimeSeconds, WaitTimeSeconds: c.waitTimeSeconds,
VisibilityTimeout: c.visibilityTimeout, VisibilityTimeout: c.visibilityTimeout,
} }
res, err := c.api.ReceiveMessage(params) res, err := c.api.ReceiveMessage(ctx, params)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -83,28 +83,28 @@ func (c *Consumer) GetMessages() ([]*aws_sqs.Message, error) {
} }
// DeleteMessage deletes messages from SQS. // DeleteMessage deletes messages from SQS.
func (c *Consumer) DeleteMessage(id *string) error { func (c *Consumer) DeleteMessage(ctx context.Context, id *string) error {
params := &aws_sqs.DeleteMessageInput{ params := &aws_sqs.DeleteMessageInput{
QueueUrl: aws.String(c.url), QueueUrl: aws.String(c.url),
ReceiptHandle: id, ReceiptHandle: id,
} }
_, err := c.api.DeleteMessage(params) _, err := c.api.DeleteMessage(ctx, params)
return err return err
} }
// GetVisibilityTimeout returns visibility timeout. // GetVisibilityTimeout returns visibility timeout.
func (c *Consumer) GetVisibilityTimeout() time.Duration { func (c *Consumer) GetVisibilityTimeout() time.Duration {
return time.Duration(*c.visibilityTimeout * int64(time.Second)) return time.Duration(int64(c.visibilityTimeout) * int64(time.Second))
} }
// GetQueueAttributes get queue attributes. // GetQueueAttributes get queue attributes.
func (c *Consumer) GetQueueAttributes() (*aws_sqs.GetQueueAttributesOutput, error) { func (c *Consumer) GetQueueAttributes(ctx context.Context) (*aws_sqs.GetQueueAttributesOutput, error) {
params := &aws_sqs.GetQueueAttributesInput{ params := &aws_sqs.GetQueueAttributesInput{
QueueUrl: aws.String(c.url), QueueUrl: aws.String(c.url),
AttributeNames: []*string{ AttributeNames: []aws_sqs_types.QueueAttributeName{
aws.String("CreatedTimestamp"), aws_sqs_types.QueueAttributeNameCreatedTimestamp,
}, },
} }
return c.api.GetQueueAttributes(params) return c.api.GetQueueAttributes(ctx, params)
} }

View File

@ -1,28 +1,29 @@
package sqs package sqs
import ( import (
"github.com/aws/aws-sdk-go/aws" "context"
"github.com/aws/aws-sdk-go/aws/session"
aws_sqs "github.com/aws/aws-sdk-go/service/sqs" "github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go/service/sqs/sqsiface" aws_sqs "github.com/aws/aws-sdk-go-v2/service/sqs"
) )
type Producer struct { type Producer struct {
api sqsiface.SQSAPI api *aws_sqs.Client
url string url string
} }
// New instances of a client to connect SQS. // New instances of a client to connect SQS.
func NewProducer(sess *session.Session, url string) (*Producer, error) { func NewProducer(cfg aws.Config, url string) (*Producer, error) {
return &Producer{ return &Producer{
api: aws_sqs.New(sess), api: aws_sqs.NewFromConfig(cfg),
url: url, url: url,
}, nil }, nil
} }
// SendMessage sends messages to SQS. // SendMessage sends messages to SQS.
func (p *Producer) SendMessage(groupID, deduplicationID, body string) error { func (p *Producer) SendMessage(ctx context.Context, groupID, deduplicationID, body string) error {
_, err := p.api.SendMessage( _, err := p.api.SendMessage(
ctx,
&aws_sqs.SendMessageInput{ &aws_sqs.SendMessageInput{
MessageGroupId: aws.String(groupID), MessageGroupId: aws.String(groupID),
MessageDeduplicationId: aws.String(deduplicationID), MessageDeduplicationId: aws.String(deduplicationID),

View File

@ -8,9 +8,9 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go/aws/credentials" awsconfig "github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go-v2/credentials"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"github.com/wormhole-foundation/wormhole-explorer/common/domain" "github.com/wormhole-foundation/wormhole-explorer/common/domain"
"github.com/wormhole-foundation/wormhole-explorer/common/logger" "github.com/wormhole-foundation/wormhole-explorer/common/logger"
@ -61,52 +61,67 @@ func getenv(key string) (string, error) {
} }
// TODO refactor to another file/package // TODO refactor to another file/package
func newAwsSession() (*session.Session, error) { func newAwsConfig(ctx context.Context) (aws.Config, error) {
region, err := getenv("AWS_REGION") region, err := getenv("AWS_REGION")
if err != nil { if err != nil {
return nil, err return *aws.NewConfig(), err
} }
config := aws.NewConfig().WithRegion(region)
awsSecretId, _ := getenv("AWS_ACCESS_KEY_ID") awsSecretId, _ := getenv("AWS_ACCESS_KEY_ID")
awsSecretKey, _ := getenv("AWS_SECRET_ACCESS_KEY") awsSecretKey, _ := getenv("AWS_SECRET_ACCESS_KEY")
if awsSecretId != "" && awsSecretKey != "" { if awsSecretId != "" && awsSecretKey != "" {
config.WithCredentials(credentials.NewStaticCredentials(awsSecretId, awsSecretKey, "")) credentials := credentials.NewStaticCredentialsProvider(awsSecretId, awsSecretKey, "")
} customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
if awsEndpoint, err := getenv("AWS_ENDPOINT"); err == nil { awsEndpoint, _ := getenv("AWS_ENDPOINT")
config.WithEndpoint(awsEndpoint) if awsEndpoint != "" {
return aws.Endpoint{
PartitionID: "aws",
URL: awsEndpoint,
SigningRegion: region,
}, nil
}
return aws.Endpoint{}, &aws.EndpointNotFoundError{}
})
awsCfg, err := awsconfig.LoadDefaultConfig(ctx,
awsconfig.WithRegion(region),
awsconfig.WithEndpointResolver(customResolver),
awsconfig.WithCredentialsProvider(credentials),
)
return awsCfg, err
} }
return session.NewSession(config) return awsconfig.LoadDefaultConfig(ctx, awsconfig.WithRegion(region))
} }
// TODO refactor to another file/package // TODO refactor to another file/package
func newSQSProducer() (*sqs.Producer, error) { func newSQSProducer(ctx context.Context) (*sqs.Producer, error) {
sqsURL, err := getenv("SQS_URL") sqsURL, err := getenv("SQS_URL")
if err != nil { if err != nil {
return nil, err return nil, err
} }
session, err := newAwsSession() awsConfig, err := newAwsConfig(ctx)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return sqs.NewProducer(session, sqsURL) return sqs.NewProducer(awsConfig, sqsURL)
} }
// TODO refactor to another file/package // TODO refactor to another file/package
func newSQSConsumer() (*sqs.Consumer, error) { func newSQSConsumer(ctx context.Context) (*sqs.Consumer, error) {
sqsURL, err := getenv("SQS_URL") sqsURL, err := getenv("SQS_URL")
if err != nil { if err != nil {
return nil, err return nil, err
} }
session, err := newAwsSession() awsConfig, err := newAwsConfig(ctx)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return sqs.NewConsumer(session, sqsURL, return sqs.NewConsumer(awsConfig, sqsURL,
sqs.WithMaxMessages(10), sqs.WithMaxMessages(10),
sqs.WithVisibilityTimeout(120)) sqs.WithVisibilityTimeout(120))
} }
@ -128,17 +143,17 @@ func newCache() (cache.CacheInterface[bool], error) {
// Creates two callbacks depending on whether the execution is local (memory queue) or not (SQS queue) // Creates two callbacks depending on whether the execution is local (memory queue) or not (SQS queue)
// callback to obtain queue messages from a queue // callback to obtain queue messages from a queue
// callback to publish vaa non pyth messages to a sink // callback to publish vaa non pyth messages to a sink
func newVAAConsumePublish(isLocal bool, logger *zap.Logger) (*sqs.Consumer, processor.VAAQueueConsumeFunc, processor.VAAPushFunc) { func newVAAConsumePublish(ctx context.Context, isLocal bool, logger *zap.Logger) (*sqs.Consumer, processor.VAAQueueConsumeFunc, processor.VAAPushFunc) {
if isLocal { if isLocal {
vaaQueue := queue.NewVAAInMemory() vaaQueue := queue.NewVAAInMemory()
return nil, vaaQueue.Consume, vaaQueue.Publish return nil, vaaQueue.Consume, vaaQueue.Publish
} }
sqsProducer, err := newSQSProducer() sqsProducer, err := newSQSProducer(ctx)
if err != nil { if err != nil {
logger.Fatal("could not create sqs producer", zap.Error(err)) logger.Fatal("could not create sqs producer", zap.Error(err))
} }
sqsConsumer, err := newSQSConsumer() sqsConsumer, err := newSQSConsumer(ctx)
if err != nil { if err != nil {
logger.Fatal("could not create sqs consumer", zap.Error(err)) logger.Fatal("could not create sqs consumer", zap.Error(err))
} }
@ -291,7 +306,7 @@ func main() {
// Creates a deduplicator to discard VAA messages that were processed previously // Creates a deduplicator to discard VAA messages that were processed previously
deduplicator := deduplicator.New(cache, logger) deduplicator := deduplicator.New(cache, logger)
// Creates two callbacks // Creates two callbacks
sqsConsumer, vaaQueueConsume, nonPythVaaPublish := newVAAConsumePublish(isLocalFlag, logger) sqsConsumer, vaaQueueConsume, nonPythVaaPublish := newVAAConsumePublish(rootCtx, isLocalFlag, logger)
// Create a vaa notifier // Create a vaa notifier
notifierFunc := newVAANotifierFunc(isLocalFlag, logger) notifierFunc := newVAANotifierFunc(isLocalFlag, logger)
// Creates a instance to consume VAA messages from Gossip network and handle the messages // Creates a instance to consume VAA messages from Gossip network and handle the messages

View File

@ -70,7 +70,7 @@ func (c *VAAQueueConsumer) Start(ctx context.Context) {
continue continue
} }
msg.Done() msg.Done(ctx)
c.logger.Info("Vaa save in repository", zap.String("id", v.MessageID())) c.logger.Info("Vaa save in repository", zap.String("id", v.MessageID()))
} }
}() }()

View File

@ -1,9 +1,11 @@
package queue package queue
import "context"
// Message represents a message from a queue. // Message represents a message from a queue.
type Message interface { type Message interface {
Data() []byte Data() []byte
Done() Done(context.Context)
Failed() Failed()
IsExpired() bool IsExpired() bool
} }

View File

@ -53,7 +53,7 @@ func (m *memoryConsumerMessage) Data() []byte {
return m.data return m.data
} }
func (m *memoryConsumerMessage) Done() {} func (m *memoryConsumerMessage) Done(_ context.Context) {}
func (m *memoryConsumerMessage) Failed() {} func (m *memoryConsumerMessage) Failed() {}

View File

@ -48,17 +48,17 @@ func WithChannelSize(size int) SQSOption {
} }
// Publish sends the message to a SQS queue. // Publish sends the message to a SQS queue.
func (q *SQS) Publish(_ context.Context, v *vaa.VAA, data []byte) error { func (q *SQS) Publish(ctx context.Context, v *vaa.VAA, data []byte) error {
body := base64.StdEncoding.EncodeToString(data) body := base64.StdEncoding.EncodeToString(data)
groupID := fmt.Sprintf("%d/%s", v.EmitterChain, v.EmitterAddress) groupID := fmt.Sprintf("%d/%s", v.EmitterChain, v.EmitterAddress)
return q.producer.SendMessage(groupID, v.MessageID(), body) return q.producer.SendMessage(ctx, groupID, v.MessageID(), body)
} }
// Consume returns the channel with the received messages from SQS queue. // Consume returns the channel with the received messages from SQS queue.
func (q *SQS) Consume(ctx context.Context) <-chan Message { func (q *SQS) Consume(ctx context.Context) <-chan Message {
go func() { go func() {
for { for {
messages, err := q.consumer.GetMessages() messages, err := q.consumer.GetMessages(ctx)
if err != nil { if err != nil {
q.logger.Error("Error getting messages from SQS", zap.Error(err)) q.logger.Error("Error getting messages from SQS", zap.Error(err))
continue continue
@ -108,8 +108,8 @@ func (m *sqsConsumerMessage) Data() []byte {
return m.data return m.data
} }
func (m *sqsConsumerMessage) Done() { func (m *sqsConsumerMessage) Done(ctx context.Context) {
if err := m.consumer.DeleteMessage(m.id); err != nil { if err := m.consumer.DeleteMessage(ctx, m.id); err != nil {
m.logger.Error("Error deleting message from SQS", zap.Error(err)) m.logger.Error("Error deleting message from SQS", zap.Error(err))
} }
m.wg.Done() m.wg.Done()

View File

@ -92,7 +92,7 @@ func (c *Controller) checkQueueStatus(ctx context.Context) error {
return nil return nil
} }
// get queue attributes // get queue attributes
queueAttributes, err := c.consumer.GetQueueAttributes() queueAttributes, err := c.consumer.GetQueueAttributes(ctx)
if err != nil { if err != nil {
return err return err
} }
@ -102,7 +102,7 @@ func (c *Controller) checkQueueStatus(ctx context.Context) error {
// check queue created // check queue created
createdTimestamp := queueAttributes.Attributes["CreatedTimestamp"] createdTimestamp := queueAttributes.Attributes["CreatedTimestamp"]
if createdTimestamp == nil || *createdTimestamp == "" { if createdTimestamp == "" {
return errors.New("sqs queue hasn't been created") return errors.New("sqs queue hasn't been created")
} }
return nil return nil

View File

@ -98,25 +98,28 @@ func main() {
func newAwsConfig(appCtx context.Context, cfg *config.Configuration) (aws.Config, error) { func newAwsConfig(appCtx context.Context, cfg *config.Configuration) (aws.Config, error) {
region := cfg.AwsRegion region := cfg.AwsRegion
credentials := credentials.NewStaticCredentialsProvider(cfg.AwsAccessKeyID, cfg.AwsSecretAccessKey, "") if cfg.AwsAccessKeyID != "" && cfg.AwsSecretAccessKey != "" {
customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) { credentials := credentials.NewStaticCredentialsProvider(cfg.AwsAccessKeyID, cfg.AwsSecretAccessKey, "")
if cfg.AwsEndpoint != "" { customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
return aws.Endpoint{ if cfg.AwsEndpoint != "" {
PartitionID: "aws", return aws.Endpoint{
URL: cfg.AwsEndpoint, PartitionID: "aws",
SigningRegion: region, URL: cfg.AwsEndpoint,
}, nil SigningRegion: region,
} }, nil
}
return aws.Endpoint{}, &aws.EndpointNotFoundError{} return aws.Endpoint{}, &aws.EndpointNotFoundError{}
}) })
awsCfg, err := awsconfig.LoadDefaultConfig(appCtx, awsCfg, err := awsconfig.LoadDefaultConfig(appCtx,
awsconfig.WithRegion(region), awsconfig.WithRegion(region),
awsconfig.WithEndpointResolver(customResolver), awsconfig.WithEndpointResolver(customResolver),
awsconfig.WithCredentialsProvider(credentials), awsconfig.WithCredentialsProvider(credentials),
) )
return awsCfg, err return awsCfg, err
}
return awsconfig.LoadDefaultConfig(appCtx, awsconfig.WithRegion(region))
} }
// Creates a callbacks depending on whether the execution is local (memory queue) or not (SQS queue) // Creates a callbacks depending on whether the execution is local (memory queue) or not (SQS queue)

View File

@ -31,10 +31,6 @@ type Configuration struct {
VaaPayloadParserTimeout int64 `env:"VAA_PAYLOAD_PARSER_TIMEOUT, required"` VaaPayloadParserTimeout int64 `env:"VAA_PAYLOAD_PARSER_TIMEOUT, required"`
PprofEnabled bool `env:"PPROF_ENABLED,default=false"` PprofEnabled bool `env:"PPROF_ENABLED,default=false"`
P2pNetwork string `env:"P2P_NETWORK,required"` P2pNetwork string `env:"P2P_NETWORK,required"`
InfluxUrl string `env:"INFLUX_URL,required"`
InfluxToken string `env:"INFLUX_TOKEN,required"`
InfluxOrg string `env:"INFLUX_ORGANIZATION,required"`
InfluxBucket string `env:"INFLUX_BUCKET,required"`
} }
// New creates a configuration with the values from .env file and environment variables. // New creates a configuration with the values from .env file and environment variables.

View File

@ -8,7 +8,7 @@ require (
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
github.com/sethvargo/go-envconfig v0.6.0 // Configuration environment github.com/sethvargo/go-envconfig v0.6.0 // Configuration environment
github.com/stretchr/testify v1.8.1 // indirect; Testing github.com/stretchr/testify v1.8.1 // indirect; Testing
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230123141139-45b3d18d80b2 github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8
go.mongodb.org/mongo-driver v1.11.2 go.mongodb.org/mongo-driver v1.11.2
go.uber.org/zap v1.24.0 go.uber.org/zap v1.24.0
) )
@ -19,7 +19,6 @@ require (
github.com/aws/aws-sdk-go-v2/credentials v1.1.1 github.com/aws/aws-sdk-go-v2/credentials v1.1.1
github.com/aws/aws-sdk-go-v2/service/sqs v1.20.2 github.com/aws/aws-sdk-go-v2/service/sqs v1.20.2
github.com/influxdata/influxdb-client-go/v2 v2.12.2 github.com/influxdata/influxdb-client-go/v2 v2.12.2
github.com/mitchellh/mapstructure v1.5.0
github.com/wormhole-foundation/wormhole-explorer/common v0.0.0-00010101000000-000000000000 github.com/wormhole-foundation/wormhole-explorer/common v0.0.0-00010101000000-000000000000
) )
@ -40,6 +39,7 @@ require (
github.com/ethereum/go-ethereum v1.10.21 // indirect github.com/ethereum/go-ethereum v1.10.21 // indirect
github.com/golang/snappy v0.0.4 // indirect github.com/golang/snappy v0.0.4 // indirect
github.com/google/go-cmp v0.5.9 // indirect github.com/google/go-cmp v0.5.9 // indirect
github.com/holiman/uint256 v1.2.1 // indirect
github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect
github.com/klauspost/compress v1.15.11 // indirect github.com/klauspost/compress v1.15.11 // indirect
github.com/kr/pretty v0.3.0 // indirect github.com/kr/pretty v0.3.0 // indirect

View File

@ -63,6 +63,8 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/holiman/uint256 v1.2.1 h1:XRtyuda/zw2l+Bq/38n5XUoEF72aSOu/77Thd9pPp2o=
github.com/holiman/uint256 v1.2.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
github.com/influxdata/influxdb-client-go/v2 v2.12.2 h1:uYABKdrEKlYm+++qfKdbgaHKBPmoWR5wpbmj6MBB/2g= github.com/influxdata/influxdb-client-go/v2 v2.12.2 h1:uYABKdrEKlYm+++qfKdbgaHKBPmoWR5wpbmj6MBB/2g=
github.com/influxdata/influxdb-client-go/v2 v2.12.2/go.mod h1:YteV91FiQxRdccyJ2cHvj2f/5sq4y4Njqu1fQzsQCOU= github.com/influxdata/influxdb-client-go/v2 v2.12.2/go.mod h1:YteV91FiQxRdccyJ2cHvj2f/5sq4y4Njqu1fQzsQCOU=
github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM= github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM=
@ -99,8 +101,6 @@ github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peK
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@ -137,8 +137,8 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230123141139-45b3d18d80b2 h1:we8iat9DdKt8V6aopxFe+2PkKol9cDPYwH8xZue0R60= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8 h1:rrOyHd+H9a6Op1iUyZNCaI5v9D1syq8jDAYyX/2Q4L8=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230123141139-45b3d18d80b2/go.mod h1:9KomdyKDfd0O0A64dfapTbTp6I9LGkudkK8Q7s72RyI= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8/go.mod h1:dE12DOucCq23gjGGGhtbyx41FBxuHxjpPvG+ArO+8t0=
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=

View File

@ -126,27 +126,31 @@ func newAwsConfig(ctx context.Context, cfg *config.ServiceSettings) (aws.Config,
region := cfg.AwsRegion region := cfg.AwsRegion
credentials := credentials.NewStaticCredentialsProvider(cfg.AwsAccessKeyID, cfg.AwsSecretAccessKey, "") if cfg.AwsAccessKeyID != "" && cfg.AwsSecretAccessKey != "" {
customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) { credentials := credentials.NewStaticCredentialsProvider(cfg.AwsAccessKeyID, cfg.AwsSecretAccessKey, "")
if cfg.AwsEndpoint != "" {
return aws.Endpoint{
PartitionID: "aws",
URL: cfg.AwsEndpoint,
SigningRegion: region,
}, nil
}
return aws.Endpoint{}, &aws.EndpointNotFoundError{} customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
}) if cfg.AwsEndpoint != "" {
return aws.Endpoint{
PartitionID: "aws",
URL: cfg.AwsEndpoint,
SigningRegion: region,
}, nil
}
awsCfg, err := awsconfig.LoadDefaultConfig( return aws.Endpoint{}, &aws.EndpointNotFoundError{}
ctx, })
awsconfig.WithRegion(region),
awsconfig.WithEndpointResolver(customResolver), awsCfg, err := awsconfig.LoadDefaultConfig(
awsconfig.WithCredentialsProvider(credentials), ctx,
) awsconfig.WithRegion(region),
return awsCfg, err awsconfig.WithEndpointResolver(customResolver),
awsconfig.WithCredentialsProvider(credentials),
)
return awsCfg, err
}
return awsconfig.LoadDefaultConfig(ctx, awsconfig.WithRegion(region))
} }
func makeHealthChecks( func makeHealthChecks(

View File

@ -54,8 +54,8 @@ type VaaPayloadParserSettings struct {
type AwsSettings struct { type AwsSettings struct {
AwsEndpoint string `split_words:"true" required:"false"` AwsEndpoint string `split_words:"true" required:"false"`
AwsAccessKeyID string `split_words:"true" required:"true"` AwsAccessKeyID string `split_words:"true" required:"false"`
AwsSecretAccessKey string `split_words:"true" required:"true"` AwsSecretAccessKey string `split_words:"true" required:"false"`
AwsRegion string `split_words:"true" required:"true"` AwsRegion string `split_words:"true" required:"true"`
SqsUrl string `split_words:"true" required:"true"` SqsUrl string `split_words:"true" required:"true"`
} }

View File

@ -90,7 +90,7 @@ require (
github.com/tklauser/numcpus v0.2.2 // indirect github.com/tklauser/numcpus v0.2.2 // indirect
github.com/wormhole-foundation/wormhole-explorer/common v0.0.0-20230301134427-b3ec0bcc9eda github.com/wormhole-foundation/wormhole-explorer/common v0.0.0-20230301134427-b3ec0bcc9eda
github.com/wormhole-foundation/wormhole-explorer/parser v0.0.0-20230307192542-867f1c29626a github.com/wormhole-foundation/wormhole-explorer/parser v0.0.0-20230307192542-867f1c29626a
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230315165931-62bef9ffb441 github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8
go.uber.org/zap v1.24.0 go.uber.org/zap v1.24.0
golang.org/x/crypto v0.2.0 // indirect golang.org/x/crypto v0.2.0 // indirect
golang.org/x/sys v0.5.0 // indirect golang.org/x/sys v0.5.0 // indirect

View File

@ -325,8 +325,8 @@ github.com/wormhole-foundation/wormhole-explorer/api v0.0.0-20230316184234-db3a5
github.com/wormhole-foundation/wormhole-explorer/api v0.0.0-20230316184234-db3a54270a77/go.mod h1:SX//TXHIIc+QMHco3wxphC5Jk6wO/lk3r9J+SZnYip8= github.com/wormhole-foundation/wormhole-explorer/api v0.0.0-20230316184234-db3a54270a77/go.mod h1:SX//TXHIIc+QMHco3wxphC5Jk6wO/lk3r9J+SZnYip8=
github.com/wormhole-foundation/wormhole-explorer/parser v0.0.0-20230307192542-867f1c29626a h1:v/QDra5nOCyqSrwYIxJpNEjZqVJlCpqdN5mykcR1WOg= github.com/wormhole-foundation/wormhole-explorer/parser v0.0.0-20230307192542-867f1c29626a h1:v/QDra5nOCyqSrwYIxJpNEjZqVJlCpqdN5mykcR1WOg=
github.com/wormhole-foundation/wormhole-explorer/parser v0.0.0-20230307192542-867f1c29626a/go.mod h1:rFM/Krfaz8gP63CrAwQxZ9Lzk+nSsD76fW1w/e1y6L4= github.com/wormhole-foundation/wormhole-explorer/parser v0.0.0-20230307192542-867f1c29626a/go.mod h1:rFM/Krfaz8gP63CrAwQxZ9Lzk+nSsD76fW1w/e1y6L4=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230315165931-62bef9ffb441 h1:ZSB93rvaWarOv/TTJp1wicIygQLNx6fZhgsmxDBAnO0= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8 h1:rrOyHd+H9a6Op1iUyZNCaI5v9D1syq8jDAYyX/2Q4L8=
github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230315165931-62bef9ffb441/go.mod h1:dE12DOucCq23gjGGGhtbyx41FBxuHxjpPvG+ArO+8t0= github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230426150516-e695fad0bed8/go.mod h1:dE12DOucCq23gjGGGhtbyx41FBxuHxjpPvG+ArO+8t0=
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=