diff --git a/.golangci.yml b/.golangci.yml index 6859b66..f25ace5 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,5 @@ run: - deadline: 5m + timeout: 5m linters: enable-all: true @@ -33,7 +33,7 @@ linters: - perfsprint - revive - gochecknoglobals - + linters-settings: funlen: # Checks the number of lines in a function. @@ -55,3 +55,15 @@ linters-settings: # Should ignore tests. # Default: false skip-tests: true + +issues: + exclude-rules: + - linters: + - funlen + - lll + - gocognit + path: _test\.go # disable for test file + - linters: + - lll + - funlen + source: "^// " # disable for comments diff --git a/go.mod b/go.mod index 1a26efb..6c04666 100644 --- a/go.mod +++ b/go.mod @@ -8,9 +8,10 @@ replace ( ) require ( + github.com/KyberNetwork/aggregator-encoding v0.37.6 github.com/KyberNetwork/cclog v1.1.2 github.com/KyberNetwork/kyber-trace-go v0.1.2 - github.com/KyberNetwork/kyberswap-dex-lib v0.89.1 + github.com/KyberNetwork/kyberswap-dex-lib v0.90.8 github.com/TheZeroSlave/zapsentry v1.23.0 github.com/duoxehyon/mev-share-go v0.3.0 github.com/ethereum/go-ethereum v1.15.0 @@ -37,7 +38,6 @@ require ( github.com/KyberNetwork/int256 v0.1.4 // indirect github.com/KyberNetwork/kutils v0.3.8 // indirect github.com/KyberNetwork/logger v1.0.0 // indirect - github.com/KyberNetwork/pancake-v3-sdk v0.2.2 // indirect github.com/KyberNetwork/uniswapv3-sdk-uint256 v0.5.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/VictoriaMetrics/fastcache v1.12.2 // indirect @@ -55,7 +55,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect github.com/daoleno/uniswap-sdk-core v0.1.7 // indirect github.com/daoleno/uniswapv3-sdk v0.4.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.7.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -98,14 +98,14 @@ require ( github.com/pion/transport/v2 v2.2.10 // indirect github.com/pion/transport/v3 v3.0.7 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/redis/go-redis/v9 v9.7.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/samber/lo v1.49.1 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/supranational/blst v0.3.13 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tinylib/msgp v1.2.5 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.9.0 // indirect @@ -127,9 +127,9 @@ require ( go.uber.org/mock v0.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.14.0 // indirect - golang.org/x/crypto v0.32.0 // indirect + golang.org/x/crypto v0.33.0 // indirect golang.org/x/exp v0.0.0-20250207012021-f9890c6ad9f3 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.22.0 // indirect diff --git a/go.sum b/go.sum index db08035..a14b671 100644 --- a/go.sum +++ b/go.sum @@ -11,6 +11,8 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= +github.com/KyberNetwork/aggregator-encoding v0.37.6 h1:fyvaDFVX9cevAeiGBAduxFsXLT9vywseBkVE/YTnGio= +github.com/KyberNetwork/aggregator-encoding v0.37.6/go.mod h1:hvsRBfS+Lsl4p/DTSQF3zxF4z2vgRvHt6HJjDSqA4C0= github.com/KyberNetwork/blockchain-toolkit v0.8.2-0.20241123202223-0b77d465adc4 h1:GkA8Z6jTUxAdQfPgQkAN80mqgYk8scUK3Iqbe6UPmv4= github.com/KyberNetwork/blockchain-toolkit v0.8.2-0.20241123202223-0b77d465adc4/go.mod h1:fFA9FNutpB9JJA3jM5mEUcBRaYC5UrFZos6jd6EfONs= github.com/KyberNetwork/cclog v1.1.2 h1:srt9DBs0+wmTjexYxqf0fVRodH9c07QdVaZKICdOfuc= @@ -27,10 +29,12 @@ github.com/KyberNetwork/kutils v0.3.8 h1:FMU3ux4yYRcXfT3EWk8PY0Is4vm0R6lBe9KiAXA github.com/KyberNetwork/kutils v0.3.8/go.mod h1:n8qRo+TkBkqspGRKu52h/UP5GvIxoSxWueTpgvHMuvo= github.com/KyberNetwork/kyber-trace-go v0.1.2 h1:x82SuCYTj4naoGNQ02DoSQgl7f07grl8RL8cKGAFNLw= github.com/KyberNetwork/kyber-trace-go v0.1.2/go.mod h1:X6hVacmKMeOEOlFh4TyfEHaEVRerFQ5YLuQ4keRV3hw= -github.com/KyberNetwork/kyberswap-dex-lib v0.89.1 h1:fGT6z9XZo2RzDQPKIBrcNSKJygc0WuLvKBpafper7O4= -github.com/KyberNetwork/kyberswap-dex-lib v0.89.1/go.mod h1:3FJQ9j4GvhY48lb8Eqfny7Gf8N3VeWqf/23HAooOjMA= +github.com/KyberNetwork/kyberswap-dex-lib v0.90.8 h1:68UkiLc5rvY6tj9LYkSKpaEToAnNJLDXmIB+OtzBkus= +github.com/KyberNetwork/kyberswap-dex-lib v0.90.8/go.mod h1:95ifalBBBwUzBXcFomEgevmEWt2oSzmmiXVIHytVSg8= github.com/KyberNetwork/logger v1.0.0 h1:C6miBkSOhRduRxDzP+fzWMtLy+wV+90HjHw2DioGC0I= github.com/KyberNetwork/logger v1.0.0/go.mod h1:zBqHbtJ3nJn6HQnp6UW8pbQkR+U6tSRFd5CzfiKL3Kw= +github.com/KyberNetwork/msgpack/v5 v5.4.2 h1:1RBX5AriCTNnXheBzV3/upOPr8QxjdGDSY1RQBPtnvM= +github.com/KyberNetwork/msgpack/v5 v5.4.2/go.mod h1:91PLIDmaoFsGuwQHhXDU8hv7JKubN2seUhUMbj9kXmM= github.com/KyberNetwork/pancake-v3-sdk v0.2.2 h1:45P7nv11pKHiQQcad2IA6RerjTyVZJmwAvZiFljA/hs= github.com/KyberNetwork/pancake-v3-sdk v0.2.2/go.mod h1:AhHu1v2KZAXKFZ9AnjwYPPx1+dDFHBqmSpSeg4fnvzg= github.com/KyberNetwork/uniswapv3-sdk v0.5.0 h1:Akl6KR27K+gVMOf9x9u9dV32j9YTIEnY99R9z+WlVGI= @@ -74,6 +78,9 @@ github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= @@ -109,8 +116,9 @@ github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlX github.com/daoleno/uniswap-sdk-core v0.1.7 h1:PdZypLSzM5Mu2rFBjXK9XrHDppSt62GkxXjWLpuMAN4= github.com/daoleno/uniswap-sdk-core v0.1.7/go.mod h1:DPzL8zNicstPzvX74ZeeHsiIUquZRpwviceDHQ8+UQ4= 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/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.7.0 h1:gIloKvD7yH2oip4VLhsv3JyLLFnC0Y2mlusgcvJYW5k= github.com/deckarep/golang-set/v2 v2.7.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= @@ -158,6 +166,7 @@ github.com/frankban/quicktest v1.4.0 h1:rCSCih1FnSWJEel/eub9wclBSqpF2F/PuvxUWGWn github.com/frankban/quicktest v1.4.0/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -183,6 +192,7 @@ github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptd github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= @@ -204,6 +214,8 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -213,12 +225,14 @@ github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85q github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -253,6 +267,7 @@ github.com/holiman/uint256 v1.3.2/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXei github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= @@ -280,8 +295,8 @@ github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiD github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= -github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= @@ -354,22 +369,25 @@ github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOA github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.15.0 h1:WjP/FQ/sk43MRmnEcT+MlDw2TFvkrXlprrPST/IudjU= -github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -404,8 +422,9 @@ github.com/pion/transport/v3 v3.0.7/go.mod h1:YleKiTZ4vqNxVwh77Z0zytYi7rXHl7j6uP github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= @@ -458,9 +477,11 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -469,8 +490,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/supranational/blst v0.3.13 h1:AYeSxdOMacwu7FBmpfloBz5pbFXDmJL33RuwnKtmTjk= github.com/supranational/blst v0.3.13/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/test-go/testify v1.1.4 h1:Tf9lntrKUMHiXQ07qBScBTSA0dhYQlu83hswqelv1iE= github.com/test-go/testify v1.1.4/go.mod h1:rH7cfJo/47vWGdi4GPj16x3/t1xGOj2YxzmNQzk2ghU= github.com/tidwall/gjson v1.8.1 h1:8j5EE9Hrh3l9Od1OIEDAb7IpezNA20UdRngNAj5N0WU= @@ -493,8 +514,8 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljT github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/urfave/cli v1.22.4 h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA= github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= -github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.3 h1:/POWahRmdh7uztQ3CYnaDddk0Rm90PyOgIxgW2rr41M= +github.com/urfave/cli/v2 v2.27.3/go.mod h1:m4QzxcD2qpra4z7WhzEGn74WZLViBnMpb1ToCAKdGRQ= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= @@ -504,6 +525,8 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ= github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= github.com/wlynxg/anet v0.0.5 h1:J3VJGi1gvo0JwZ/P1/Yc/8p63SoW98B5dHkYDmpgvvU= github.com/wlynxg/anet v0.0.5/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= @@ -519,6 +542,7 @@ github.com/ybbus/jsonrpc/v3 v3.1.6/go.mod h1:U1QbyNfL5Pvi2roT0OpRbJeyvGxfWYSgKJH github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= @@ -563,17 +587,19 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20250207012021-f9890c6ad9f3 h1:qNgPs5exUA+G0C96DrPwNrvLSj7GT/9D+3WMWUcUg34= golang.org/x/exp v0.0.0-20250207012021-f9890c6ad9f3/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -585,18 +611,22 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -613,11 +643,15 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -638,8 +672,8 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= @@ -658,11 +692,14 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/genproto/googleapis/api v0.0.0-20250204164813-702378808489 h1:fCuMM4fowGzigT89NCIsW57Pk9k2D12MMi2ODn+Nk+o= google.golang.org/genproto/googleapis/api v0.0.0-20250204164813-702378808489/go.mod h1:iYONQfRdizDB8JJBybql13nArx91jcUk7zCXEsOofM4= google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489 h1:5bKytslY8ViY0Cj/ewmRtrWHW64bNF03cAatUUFCdFI= @@ -675,6 +712,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/oneinch/encode/lo1inch.go b/pkg/oneinch/encode/lo1inch.go new file mode 100644 index 0000000..6a33968 --- /dev/null +++ b/pkg/oneinch/encode/lo1inch.go @@ -0,0 +1,131 @@ +package encode + +import ( + "encoding/json" + "fmt" + "math/big" + + "github.com/KyberNetwork/aggregator-encoding/pkg/types" + "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/lo1inch" + helper1inch "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/lo1inch/helper" + "github.com/KyberNetwork/kyberswap-dex-lib/pkg/util/bignumber" + "github.com/KyberNetwork/kyberswap-dex-lib/pkg/valueobject" + "github.com/ethereum/go-ethereum/common" +) + +// https://github.com/KyberNetwork/aggregator-encoding/blob/v0.37.6/pkg/encode/l1encode/executor/swapdata/lo1inch.go#L19 +func PackLO1inch(_ valueobject.ChainID, encodingSwap types.EncodingSwap) ([][]byte, error) { //nolint:funlen,cyclop + // get contract address for LO. + if encodingSwap.PoolExtra == nil { + return nil, fmt.Errorf("[PackLO1inch] PoolExtra is nil") + } + + byteData, err := json.Marshal(encodingSwap.Extra) + if err != nil { + return nil, fmt.Errorf("[buildLO1inch] ErrMarshalFailed err :[%w]", err) + } + + var swapInfo lo1inch.SwapInfo + if err = json.Unmarshal(byteData, &swapInfo); err != nil { + return nil, fmt.Errorf("[buildLO1inch] ErrUnmarshalFailed err :[%w]", err) + } + + if len(swapInfo.FilledOrders) == 0 { + return nil, fmt.Errorf("[buildLO1inch] cause by filledOrders is empty") + } + + encodeds := make([][]byte, 0, len(swapInfo.FilledOrders)) + + amountIn := new(big.Int).Set(encodingSwap.SwapAmount) + for _, filledOrder := range swapInfo.FilledOrders { + if amountIn.Sign() <= 0 { + break + } + + takingAmount := filledOrder.TakingAmount.ToBig() + switch amountIn.Cmp(takingAmount) { + case -1: + takingAmount.Set(amountIn) + amountIn.SetInt64(0) + + case 0: + amountIn.SetInt64(0) + + case 1: + amountIn.Sub(amountIn, takingAmount) + } + + extension, err := helper1inch.DecodeExtension(filledOrder.Extension) + if err != nil { + return nil, fmt.Errorf("decode extension: %w", err) + } + + receiver := helper1inch.NewAddress(encodingSwap.Recipient) + + // In the orders response of 1inch limit order API, there is no interaction + // so we only encode receiver + extension into takerTraits + takerTraitsEncoded := helper1inch.NewTakerTraits(&receiver, extension, nil).Encode() + + order := OneInchV6Order{ + Salt: bignumber.NewBig(filledOrder.Salt), + Maker: bignumber.NewBig(filledOrder.Maker), + Receiver: bignumber.NewBig(filledOrder.Receiver), + MakerAsset: bignumber.NewBig(filledOrder.MakerAsset), + TakerAsset: bignumber.NewBig(filledOrder.TakerAsset), + MakingAmount: filledOrder.MakingAmount.ToBig(), + TakingAmount: filledOrder.TakingAmount.ToBig(), + MakerTraits: bignumber.NewBig(filledOrder.MakerTraits), + } + + switch filledOrder.IsMakerContract { + case true: + signature := common.FromHex(filledOrder.Signature) + + /* + function fillContractOrderArgs( + Order calldata order, + bytes calldata signature, + uint256 amount, + TakerTraits takerTraits, + bytes calldata args + ) external returns(uint256 makingAmount, uint256 takingAmount, bytes32 orderHash); + */ + packed, err := OneInchAggregationRouterV6ABI.Pack("fillContractOrderArgs", + order, signature, filledOrder, takingAmount, takerTraitsEncoded.TakerTraits, takerTraitsEncoded.Args, + ) + if err != nil { + return nil, fmt.Errorf("pack fillContractOrderArgs error: %w", err) + } + encodeds = append(encodeds, packed) + + case false: + bytesSignature, err := helper1inch.LO1inchParseSignature(filledOrder.Signature) + if err != nil { + return nil, fmt.Errorf("parse lo1inch sig: %w", err) + } + r := bytesSignature.R + vs := bytesSignature.GetCompactedSignatureBytes()[len(r):] + + /* + function fillOrderArgs( + Order calldata order, + bytes32 r, + bytes32 vs, + uint256 amount, + uint256 takerTraits, + bytes calldata args + ) + external payable returns (uint256 makingAmount, uint256 takingAmount, bytes32 orderHash); + */ + packed, err := OneInchAggregationRouterV6ABI.Pack("fillOrderArgs", + order, r, vs, takingAmount, takerTraitsEncoded.TakerTraits, takerTraitsEncoded.Args, + ) + if err != nil { + return nil, fmt.Errorf("pack fillOrderArgs error: %w", err) + } + encodeds = append(encodeds, packed) + } + } + + return encodeds, nil +} diff --git a/pkg/oneinch/encode/lo1inch_types.go b/pkg/oneinch/encode/lo1inch_types.go new file mode 100644 index 0000000..6fe78a1 --- /dev/null +++ b/pkg/oneinch/encode/lo1inch_types.go @@ -0,0 +1,28 @@ +package encode + +import ( + "math/big" +) + +/* + struct Order { + uint256 salt; + uint256 maker; + uint256 receiver; + uint256 makerAsset; + uint256 takerAsset; + uint256 makingAmount; + uint256 takingAmount; + uint256 makerTraits; + } +*/ +type OneInchV6Order struct { + Salt *big.Int + Maker *big.Int + Receiver *big.Int + MakerAsset *big.Int + TakerAsset *big.Int + MakingAmount *big.Int + TakingAmount *big.Int + MakerTraits *big.Int +} diff --git a/pkg/poolsimulators/poolsimulators.go b/pkg/poolsimulators/poolsimulators.go index 26dc6e6..3545244 100644 --- a/pkg/poolsimulators/poolsimulators.go +++ b/pkg/poolsimulators/poolsimulators.go @@ -2,403 +2,30 @@ package poolsimulators import ( "errors" - "fmt" "math/big" ksent "github.com/KyberNetwork/kyberswap-dex-lib/pkg/entity" - algebraintegral "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/algebra/integral" - balancerv1 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/balancer-v1" - balancerv2composablestable "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/balancer-v2/composable-stable" - balancerv2stable "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/balancer-v2/stable" - balancerv2weighted "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/balancer-v2/weighted" - balancerv3stable "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/balancer-v3/stable" - balancerv3weighted "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/balancer-v3/weighted" - bancorv21 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/bancor-v21" - bancorv3 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/bancor-v3" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/bebop" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/bedrock/unieth" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/clipper" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/curve/plain" - stableng "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/curve/stable-ng" - tricryptong "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/curve/tricrypto-ng" - twocryptong "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/curve/twocrypto-ng" - daiusds "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/dai-usds" - deltaswapv1 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/deltaswap-v1" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/dexalot" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/dodo/classical" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/dodo/dpp" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/dodo/dsp" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/dodo/dvm" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/ethena/susde" - ethervista "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/ether-vista" - etherfieeth "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/etherfi/eeth" - etherfivampire "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/etherfi/vampire" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/etherfi/weeth" - dexT1 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/fluid/dex-t1" - vaultT1 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/fluid/vault-t1" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/frax/sfrxeth" - sfrxeth_convertor "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/frax/sfrxeth-convertor" - generic_simple_rate "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/generic-simple-rate" - gyro2clp "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/gyroscope/2clp" - gyro3clp "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/gyroscope/3clp" - gyroeclp "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/gyroscope/eclp" - hashflowv3 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/hashflow-v3" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/integral" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/kelp/rseth" - kyberpmm "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/kyber-pmm" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/litepsm" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/lo1inch" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/maker/savingsdai" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/mantle/meth" - mkrsky "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/mkr-sky" - mxtrading "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/mx-trading" - nativev1 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/native-v1" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/nomiswap/nomiswapstable" - ondo_usdy "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/ondo-usdy" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/primeeth" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/puffer/pufeth" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/renzo/ezeth" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/ringswap" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/rocketpool/reth" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/staderethx" - swaapv2 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/swaap-v2" - swellrsweth "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/swell/rsweth" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/swell/sweth" - uniswapv1 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/uniswap-v1" - uniswapv2 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/uniswap-v2" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/usd0pp" - velocorev2cpmm "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/velocore-v2/cpmm" - velocorev2wombatstable "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/velocore-v2/wombat-stable" - velodromev1 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/velodrome-v1" - velodromev2 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/velodrome-v2" - virtualfun "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/virtual-fun" - woofiv21 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/liquidity-source/woofi-v21" "github.com/KyberNetwork/kyberswap-dex-lib/pkg/pooltypes" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/algebrav1" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/balancer" - balancercomposablestable "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/balancer-composable-stable" - balancerstable "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/balancer/stable" - balancerweighted "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/balancer/weighted" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/camelot" - curveaave "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/curve/aave" - curvebase "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/curve/base" - curvecompound "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/curve/compound" - curveplainoracle "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/curve/plain-oracle" - curvetricrypto "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/curve/tricrypto" - curvetwo "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/curve/two" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/dmm" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/elastic" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/equalizer" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/fraxswap" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/fulcrom" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/fxdx" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/gmx" - gmxglp "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/gmx-glp" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/iziswap" - kokonutcrypto "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/kokonut-crypto" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/lido" - lidosteth "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/lido-steth" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/limitorder" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/liquiditybookv20" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/liquiditybookv21" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/madmex" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/makerpsm" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/mantisswap" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/maverickv1" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/metavault" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/nuriv2" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/pancakev3" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/platypus" - polmatic "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/pol-matic" pkgpool "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/pool" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/quickperps" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/ramsesv2" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/saddle" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/slipstream" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/smardex" - solidlyv3 "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/solidly-v3" - swapbasedperp "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/swapbased-perp" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/syncswap/syncswapclassic" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/syncswap/syncswapstable" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/synthetix" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/uniswap" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/uniswapv3" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/usdfi" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/velocimeter" - velodromelegacy "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/velodrome" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/vooi" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/wombat/wombatlsd" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/wombat/wombatmain" - "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/woofiv2" - zkera "github.com/KyberNetwork/kyberswap-dex-lib/pkg/source/zkera-finance" "github.com/KyberNetwork/kyberswap-dex-lib/pkg/swaplimit" "github.com/KyberNetwork/kyberswap-dex-lib/pkg/valueobject" ) var ErrPoolTypeNotSupported = errors.New("pool type is not supported") -// PoolSimulatorFromPool init pool sim -// nolint: funlen, gocyclo, cyclop, maintidx +// PoolSimulatorFromPool init pool sim. func PoolSimulatorFromPool(pool ksent.Pool, chainID uint) (pkgpool.IPoolSimulator, error) { - var ( - pSim pkgpool.IPoolSimulator - err error - ) - - switch pool.Type { - case pooltypes.PoolTypes.Uni, pooltypes.PoolTypes.Firebird, - pooltypes.PoolTypes.Biswap, pooltypes.PoolTypes.Polydex: - pSim, err = uniswap.NewPoolSimulator(pool) - case pooltypes.PoolTypes.UniswapV2: - pSim, err = uniswapv2.NewPoolSimulator(pool) - case pooltypes.PoolTypes.UniswapV3: - pSim, err = uniswapv3.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.Dmm: - pSim, err = dmm.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Elastic: - pSim, err = elastic.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.BalancerV1: - pSim, err = balancerv1.NewPoolSimulator(pool) - case string(balancer.DexTypeBalancerStable): - pSim, err = balancerstable.NewPoolSimulator(pool) - case pooltypes.PoolTypes.BalancerV2Stable: - pSim, err = balancerv2stable.NewPoolSimulator(pool) - case pooltypes.PoolTypes.LegacyBalancerWeighted: - pSim, err = balancerweighted.NewPoolSimulator(pool) - case pooltypes.PoolTypes.BalancerV2Weighted: - pSim, err = balancerv2weighted.NewPoolSimulator(pool) - case pooltypes.PoolTypes.LegacyBalancerComposableStable: - pSim, err = balancercomposablestable.NewPoolSimulator(pool) - case pooltypes.PoolTypes.BalancerV2ComposableStable: - pSim, err = balancerv2composablestable.NewPoolSimulator(pool) - case pooltypes.PoolTypes.DodoClassical: - pSim, err = classical.NewPoolSimulator(pool) - case pooltypes.PoolTypes.DodoVendingMachine: - pSim, err = dvm.NewPoolSimulator(pool) - case pooltypes.PoolTypes.DodoStablePool: - pSim, err = dsp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.DodoPrivatePool: - pSim, err = dpp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveStablePlain: - pSim, err = plain.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveStableNg: - pSim, err = stableng.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveBase: - pSim, err = curvebase.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveTwo: - pSim, err = curvetwo.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveTwoCryptoNg: - pSim, err = twocryptong.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveAave: - pSim, err = curveaave.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveCompound: - pSim, err = curvecompound.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveTricrypto: - pSim, err = curvetricrypto.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurveTriCryptoNg: - pSim, err = tricryptong.NewPoolSimulator(pool) - case pooltypes.PoolTypes.CurvePlainOracle: - pSim, err = curveplainoracle.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Saddle, pooltypes.PoolTypes.Nerve, - pooltypes.PoolTypes.OneSwap, pooltypes.PoolTypes.IronStable: - pSim, err = saddle.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Velodrome: - pSim, err = velodromev1.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Ramses, pooltypes.PoolTypes.MuteSwitch, - pooltypes.PoolTypes.Dystopia, pooltypes.PoolTypes.Pearl: - pSim, err = velodromelegacy.NewPoolSimulator(pool) - case pooltypes.PoolTypes.VelodromeV2: - pSim, err = velodromev2.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Velocimeter: - pSim, err = velocimeter.NewPool(pool) - case pooltypes.PoolTypes.PlatypusBase, pooltypes.PoolTypes.PlatypusPure, pooltypes.PoolTypes.PlatypusAvax: - pSim, err = platypus.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.GMX: - pSim, err = gmx.NewPoolSimulator(pool) - case pooltypes.PoolTypes.MakerPSM: - pSim, err = makerpsm.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Synthetix: - pSim, err = synthetix.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.MadMex: - pSim, err = madmex.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Metavault: - pSim, err = metavault.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Lido: - pSim, err = lido.NewPoolSimulator(pool) - case pooltypes.PoolTypes.LidoStEth: - pSim, err = lidosteth.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.Fraxswap: - pSim, err = fraxswap.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Camelot: - pSim, err = camelot.NewPoolSimulator(pool) - case pooltypes.PoolTypes.LimitOrder: - pSim, err = limitorder.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SyncSwapClassic: - pSim, err = syncswapclassic.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SyncSwapStable: - pSim, err = syncswapstable.NewPoolSimulator(pool) - case pooltypes.PoolTypes.PancakeV3: - pSim, err = pancakev3.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.MaverickV1: - pSim, err = maverickv1.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SolidlyV3: - pSim, err = solidlyv3.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.WombatMain: - pSim, err = wombatmain.NewPoolSimulator(pool) - case pooltypes.PoolTypes.WombatLsd: - pSim, err = wombatlsd.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Smardex: - pSim, err = smardex.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SwapBasedPerp: - pSim, err = swapbasedperp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.AlgebraV1: - pSim, err = algebrav1.NewPoolSimulator(pool, DefaultGasAlgebra[valueobject.Exchange(pool.Exchange)]) - case pooltypes.PoolTypes.IZiSwap: - pSim, err = iziswap.NewPoolSimulator(pool) - case pooltypes.PoolTypes.GMXGLP: - pSim, err = gmxglp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.RamsesV2: - pSim, err = ramsesv2.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.USDFi: - pSim, err = usdfi.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Equalizer: - pSim, err = equalizer.NewPoolSimulator(pool) - case pooltypes.PoolTypes.MantisSwap: - pSim, err = mantisswap.NewPoolSimulator(pool) - case pooltypes.PoolTypes.KokonutCrypto: - pSim, err = kokonutcrypto.NewPoolSimulator(pool) - case pooltypes.PoolTypes.PolMatic: - pSim, err = polmatic.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Fxdx: - pSim, err = fxdx.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Vooi: - pSim, err = vooi.NewPoolSimulator(pool) - case pooltypes.PoolTypes.QuickPerps: - pSim, err = quickperps.NewPoolSimulator(pool) - case pooltypes.PoolTypes.VelocoreV2CPMM: - pSim, err = velocorev2cpmm.NewPoolSimulator(pool) - case pooltypes.PoolTypes.VelocoreV2WombatStable: - pSim, err = velocorev2wombatstable.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Fulcrom: - pSim, err = fulcrom.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Gyroscope2CLP: - pSim, err = gyro2clp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Gyroscope3CLP: - pSim, err = gyro3clp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.GyroscopeECLP: - pSim, err = gyroeclp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.ZkEraFinance: - pSim, err = zkera.NewPoolSimulator(pool) - case pooltypes.PoolTypes.BancorV3: - pSim, err = bancorv3.NewPoolSimulator(pool) - case pooltypes.PoolTypes.EtherfiWEETH: - pSim, err = weeth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.EtherfiEETH: - pSim, err = etherfieeth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.KelpRSETH: - pSim, err = rseth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.RocketPoolRETH: - pSim, err = reth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.EthenaSusde: - pSim, err = susde.NewPoolSimulator(pool) - case pooltypes.PoolTypes.MakerSavingsDai: - pSim, err = savingsdai.NewPoolSimulator(pool) - case pooltypes.PoolTypes.HashflowV3: - pSim, err = hashflowv3.NewPoolSimulator(pool) - case pooltypes.PoolTypes.KyberPMM: - pSim, err = kyberpmm.NewPoolSimulator(pool) - case pooltypes.PoolTypes.NativeV1: - pSim, err = nativev1.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SwaapV2: - pSim, err = swaapv2.NewPoolSimulator(pool) - case pooltypes.PoolTypes.EtherVista: - pSim, err = ethervista.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.LitePSM: - pSim, err = litepsm.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Integral: - pSim, err = integral.NewPoolSimulator(pool) - case bancorv21.DexType: - pSim, err = bancorv21.NewPoolSimulator(pool) - case pooltypes.PoolTypes.RenzoEZETH: - pSim, err = ezeth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.BedrockUniETH: - pSim, err = unieth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.PufferPufETH: - pSim, err = pufeth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SwellSWETH: - pSim, err = sweth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SwellRSWETH: - pSim, err = swellrsweth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Slipstream: - pSim, err = slipstream.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.NuriV2: - pSim, err = nuriv2.NewPoolSimulator(pool, valueobject.ChainID(chainID)) - case pooltypes.PoolTypes.Usd0PP: - pSim, err = usd0pp.NewPoolSimulator(pool) - case pooltypes.PoolTypes.FluidVaultT1: - pSim, err = vaultT1.NewPoolSimulator(pool) - case pooltypes.PoolTypes.MkrSky: - pSim, err = mkrsky.NewPoolSimulator(pool) - case pooltypes.PoolTypes.DaiUsds: - pSim, err = daiusds.NewPoolSimulator(pool) - case pooltypes.PoolTypes.LiquidityBookV20: - pSim, err = liquiditybookv20.NewPoolSimulator(pool) - case pooltypes.PoolTypes.LiquidityBookV21: - pSim, err = liquiditybookv21.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Bebop: - pSim, err = bebop.NewPoolSimulator(pool) - case pooltypes.PoolTypes.UniswapV1: - pSim, err = uniswapv1.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Dexalot: - pSim, err = dexalot.NewPoolSimulator(pool) - case pooltypes.PoolTypes.FluidDexT1: - pSim, err = dexT1.NewPoolSimulator(pool) - case pooltypes.PoolTypes.GenericSimpleRate: - pSim, err = generic_simple_rate.NewPoolSimulator(pool) - case pooltypes.PoolTypes.PrimeETH: - pSim, err = primeeth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.StaderETHx: - pSim, err = staderethx.NewPoolSimulator(pool) - case pooltypes.PoolTypes.MantleETH: - pSim, err = meth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.WooFiV2: - pSim, err = woofiv2.NewPoolSimulator(pool) - case pooltypes.PoolTypes.WooFiV21: - pSim, err = woofiv21.NewPoolSimulator(pool) - case pooltypes.PoolTypes.DeltaSwapV1: - pSim, err = deltaswapv1.NewPoolSimulator(pool) - case pooltypes.PoolTypes.NomiSwapStable: - pSim, err = nomiswapstable.NewPoolSimulator(pool) - case pooltypes.PoolTypes.RingSwap: - pSim, err = ringswap.NewPoolSimulator(pool) - case pooltypes.PoolTypes.OndoUSDY: - pSim, err = ondo_usdy.NewPoolSimulator(pool) - case pooltypes.PoolTypes.Clipper: - pSim, err = clipper.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SfrxETH: - pSim, err = sfrxeth.NewPoolSimulator(pool) - case pooltypes.PoolTypes.SfrxETHConvertor: - pSim, err = sfrxeth_convertor.NewPoolSimulator(pool) - case pooltypes.PoolTypes.EtherfiVampire: - pSim, err = etherfivampire.NewPoolSimulator(pool) - case pooltypes.PoolTypes.AlgebraIntegral: - defaultGas := DefaultGasAlgebraIntegral[valueobject.Exchange(pool.Exchange)] - pSim, err = algebraintegral.NewPoolSimulator(pool, defaultGas) - case pooltypes.PoolTypes.MxTrading: - pSim, err = mxtrading.NewPoolSimulator(pool) - case pooltypes.PoolTypes.LO1inch: - pSim, err = lo1inch.NewPoolSimulator(pool) - case pooltypes.PoolTypes.VirtualFun: - pSim, err = virtualfun.NewPoolSimulator(pool) - case pooltypes.PoolTypes.BalancerV3Weighted: - pSim, err = balancerv3weighted.NewPoolSimulator(pool) - case pooltypes.PoolTypes.BalancerV3Stable: - pSim, err = balancerv3stable.NewPoolSimulator(pool) - default: - err = fmt.Errorf("%w: %s %s", ErrPoolTypeNotSupported, pool.Type, pool.Address) + factoryFn := pkgpool.Factory(pool.Type) + if factoryFn == nil { + return nil, ErrPoolTypeNotSupported } - return pSim, err + return factoryFn(pkgpool.FactoryParams{ + EntityPool: pool, + ChainID: valueobject.ChainID(chainID), + BasePoolMap: nil, + EthClient: nil, + }) } func newSwapLimit(dex string, limit map[string]*big.Int) pkgpool.SwapLimit {