diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..75a1f53 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +*.log diff --git a/klog/klog.go b/klog/klog.go index d4ad487..7b51f0d 100644 --- a/klog/klog.go +++ b/klog/klog.go @@ -2,8 +2,6 @@ package klog import ( "context" - "sync" - "github.com/KyberNetwork/logger" ) @@ -14,8 +12,7 @@ func DefaultLogger() Logger { type Logger = logger.Logger var ( - log Logger - once sync.Once + log Logger ) type Configuration struct { @@ -39,26 +36,22 @@ const ( func InitLogger(config Configuration, backend LoggerBackend) (Logger, error) { var err error - once.Do(func() { - log, err = logger.InitLogger(logger.Configuration{ - EnableConsole: config.EnableConsole, - EnableJSONFormat: config.EnableJSONFormat, - ConsoleLevel: config.ConsoleLevel, - EnableFile: config.EnableFile, - FileJSONFormat: config.FileJSONFormat, - FileLevel: config.FileLevel, - FileLocation: config.FileLocation, - }, backend) - }) + log, err = logger.InitLogger(logger.Configuration{ + EnableConsole: config.EnableConsole, + EnableJSONFormat: config.EnableJSONFormat, + ConsoleLevel: config.ConsoleLevel, + EnableFile: config.EnableFile, + FileJSONFormat: config.FileJSONFormat, + FileLevel: config.FileLevel, + FileLocation: config.FileLocation, + }, backend) return log, err } func Log() Logger { - once.Do(func() { - if log == nil { - log = DefaultLogger() - } - }) + if log == nil { + log = DefaultLogger() + } return log } diff --git a/token/correlated_token.go b/token/correlated_token.go index e1c2c58..e7be7a2 100644 --- a/token/correlated_token.go +++ b/token/correlated_token.go @@ -37,6 +37,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "wbETH": "0xa2E3356610840701BDf5611a53974510Ae27E2e1", "rETH": "0xae78736Cd615f374D3085123A210448E74Fc6393", "eETH": "0x35fA164735182de50811E8e2E824cFb9B6118ac2", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, "btc": { "WBTC": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", @@ -58,6 +59,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "MATICX": "0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6", "stMATIC": "0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4", "rMatic": "0x9f28e2455f9FFcFac9EBD6084853417362bc5dBb", + "POL": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, "eth": { "WETH": "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619", @@ -93,6 +95,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "avax": { "WAVAX": "0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7", "sAVAX": "0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE", + "AVAX": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, }, "arbitrum": { @@ -143,6 +146,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "sETH": "0xe405de8f52ba7559f9df3c368500b6e6ae6cee49", "cbETH": "0xaddb6a0412de1ba0f936dcaeb8aaa24578dcf3b2", "frxETH": "0x6806411765af15bddd26f8f544a34cc40cb9838b", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, "btc": { "sBTC": "0x298b9b95708152ff6968aafd889c6586e9169f1d", @@ -163,6 +167,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "WETH": "0x4200000000000000000000000000000000000006", "wstETH": "0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452", "cbETH": "0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, }, "linea": { @@ -178,6 +183,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "ezETH": "0x2416092f143378750bb29b79ed961ab195cceea5", "inETH": "0x5a7a183b6b44dc4ec2e3d2ef43f98c5152b1d76d", "uniETH": "0x15eefe5b297136b8712291b632404b66a8ef4d25", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, }, "scroll": { @@ -194,6 +200,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "pufETH": "0xc4d46E8402F476F269c379677C99F18E22Ea030e", "weETH": "0x01f0a31698c4d065659b9bdc21b3610292a1c506", "wstETH": "0xf610a9dfb7c89644979b4a0f27063e9e7d7cda32", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, }, "blast": { @@ -206,6 +213,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "ezETH": "0x2416092f143378750bb29b79ed961ab195cceea5", "nETH": "0xce971282fAAc9faBcF121944956da7142cccC855", "weETH": "0x04c0599ae5a44757c0af6f9ec3b93da8976c150a", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, }, "mantle": {}, @@ -225,6 +233,7 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "WETH": "0x5aea5775959fbc2557cc8789bc1bf90a239d9a91", "rETH": "0x32Fd44bB869620C0EF993754c8a00Be67C464806", "cbETH": "0x75Af292c1c9a37b3EA2E6041168B4E48875b9ED5", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", }, }, "fantom": {}, @@ -233,6 +242,35 @@ var MapCorrelatedTokens = map[string]map[string]map[string]string{ "WETH": "0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9", "rETH": "0xb23c20efce6e24acca0cef9b7b7aa196b84ec942", "frxETH": "0xCf7eceE185f19e2E970a301eE37F93536ed66179", + "ETH": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", + }, + }, + "sonic": { + "usd": { + "USDC": "0x29219dd400f2Bf60E5a23d13Be72B486D4038894", + "USDT": "0x6047828dc181963ba44974801ff68e538da5eaf9", + "USD+": "0x53e24706D6642CA495498557415b1af7A025D8Da", + }, + }, + "berachain": { + "usd": { + "USDC": "0x549943e04f40284185054145c6E4e9568C1D3241", + "byUSD": "0x688e72142674041f8f6Af4c808a4045cA1D6aC82", + "USDT": "0x779Ded0c9e1022225f8E0630b35a9b54bE713736", + }, + "eth": { + "WETH": "0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9", + "rETH": "0xb23c20efce6e24acca0cef9b7b7aa196b84ec942", + "frxETH": "0xCf7eceE185f19e2E970a301eE37F93536ed66179", + }, + }, + "ronin": {}, + "unichain": { + "usd": { + "USDC": "0x078D782b760474a361dDA0AF3839290b0EF57AD6", + "USDT0": "0x9151434b16b9763660705744891fA906F660EcC5", + "USDT": "0x588CE4F028D8e7B53B687865d6A67b3A54C75518", + "DAI": "0x20CAb320A855b39F724131C69424240519573f81", }, }, } diff --git a/token/correlated_token_test.go b/token/correlated_token_test.go index f06fb49..35617b4 100644 --- a/token/correlated_token_test.go +++ b/token/correlated_token_test.go @@ -13,7 +13,7 @@ func TestGetTokensByGroup(t *testing.T) { results = token.GetTokensByGroup(1) require.Len(t, results, 3) require.Len(t, results["usd"], 8) - require.Len(t, results["eth"], 19) + require.Len(t, results["eth"], 20) require.Len(t, results["btc"], 2) allTokens := token.GetAllTokenByGroup() diff --git a/token/stable_token.go b/token/stable_token.go index a94558f..15713ba 100644 --- a/token/stable_token.go +++ b/token/stable_token.go @@ -2,6 +2,7 @@ package token import ( "github.com/KyberNetwork/kyberswap-dex-lib/pkg/valueobject" + "strings" ) var MapStableTokens = map[string]map[string]string{ @@ -12,7 +13,7 @@ var MapStableTokens = map[string]map[string]string{ }, "polygon": { "0xc2132d05d31c914a87c6611c10748aeb04b58e8f": "USDT", - "0x2791bca1f2de4661ed88a30c99a7a9449aa84174": "USDC", + "0x2791bca1f2de4661ed88a30c99a7a9449aa84174": "USDC.e", "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359": "USDC", "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063": "DAI", }, @@ -37,8 +38,8 @@ var MapStableTokens = map[string]map[string]string{ }, "optimism": { "0x94b008aa00579c1307b0ef2c499ad98a8ce58e58": "USDT", - "0x7f5c764cbc14f9669b88837ca1490cca17c31607": "USDC", "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1": "DAI", + "0x7f5c764cbc14f9669b88837ca1490cca17c31607": "USDC.e", }, "base": { "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": "USDC", @@ -65,11 +66,13 @@ var MapStableTokens = map[string]map[string]string{ "0x493257fd37edb34451f62edf8d2a0c418852ba4c": "USDT", "0x3355df6d4c9c3035724fd0e3914de96a5a83aaf4": "USDC.e", "0x1d17cbcf0d6d143135ae902365d2e5e2a16538d4": "USDC", + "0x4B9eb6c0b6ea15176BBF62841C6B2A8a398cb656": "DAI", }, "fantom": { "0x049d68029688eabf473097a2fc38ef61633a3c7a": "fUSDT", "0x04068da6c83afcfa0e13ba15a6696662335d5b75": "USDC", "0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e": "DAI", + "0xcc1b99dDAc1a33c201a742A1851662E87BC7f22C": "USDT", }, "polygon-zkevm": { "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035": "USDC", @@ -77,6 +80,24 @@ var MapStableTokens = map[string]map[string]string{ "0xc5015b9d9161dca7e18e32f6f25c4ad850731fd4": "DAI", "0x37eaa0ef3549a5bb7d431be78a3d99bd360d19e5": "USDC.e", }, + "sonic": { + "0x29219dd400f2Bf60E5a23d13Be72B486D4038894": "USDC", + "0x6047828dc181963ba44974801ff68e538da5eaf9": "USDT", + }, + "berachain": { + "0x549943e04f40284185054145c6E4e9568C1D3241": "USDC", + "0x688e72142674041f8f6Af4c808a4045cA1D6aC82": "byUSD", + "0x779Ded0c9e1022225f8E0630b35a9b54bE713736": "USDT", + }, + "ronin": { + "0x0b7007c13325c48911f73a2dad5fa5dcbf808adc": "USDC", + }, + "unichain": { + "0x078D782b760474a361dDA0AF3839290b0EF57AD6": "USDC", + "0x9151434b16b9763660705744891fA906F660EcC5": "USDT0", + "0x588CE4F028D8e7B53B687865d6A67b3A54C75518": "USDT", + "0x20CAb320A855b39F724131C69424240519573f81": "DAI", + }, } func GetStableTokensByChainID(chainId uint) []string { @@ -91,7 +112,7 @@ func GetStableTokensByChainID(chainId uint) []string { } listToken := make([]string, 0, len(mapTokens)) for key := range mapTokens { - listToken = append(listToken, key) + listToken = append(listToken, strings.ToLower(key)) } return listToken } diff --git a/verify_signature.go b/verify_signature.go index 8a0cbbd..a43893a 100644 --- a/verify_signature.go +++ b/verify_signature.go @@ -16,7 +16,7 @@ import ( ) var ( - DefaultAuthRegexp = regexp.MustCompile(`Click sign to add favorite (\w+) at Kyberswap.com without logging in. + DefaultAuthRegexp = regexp.MustCompile(`Click sign to (.+?) at Kyberswap.com without logging in. This request won’t trigger any blockchain transaction or cost any gas fee. Expires in 7 days. Issued at: (.+)`) diff --git a/verify_signature_test.go b/verify_signature_test.go index 009a0a9..366549a 100644 --- a/verify_signature_test.go +++ b/verify_signature_test.go @@ -10,10 +10,6 @@ import ( func TestVerifySignature(t *testing.T) { // Common test regexp and duration - authRegexp := regexp.MustCompile(`Click sign to add favorite tokens at Kyberswap.com without logging in. -This request won’t trigger any blockchain transaction or cost any gas fee. Expires in 7 days. - -Issued at: (.+)`) tenMinutes := 10 * time.Minute type args struct { @@ -35,7 +31,8 @@ Issued at: (.+)`) Msg: "Click sign to add favorite tokens at Kyberswap.com without logging in.\nThis request won’t trigger any blockchain transaction or cost any gas fee. Expires in 7 days. \n\nIssued at: 2024-11-13T07:22:42.790Z", Address: "0x63FaC9201494f0bd17B9892B9fae4d52fe3BD377", }, - authMessageRegexp: nil, + authMessageRegexp: kutils.DefaultAuthRegexp, + authExpiry: 10000 * time.Hour, }, wantErr: false, }, @@ -47,7 +44,7 @@ Issued at: (.+)`) Msg: "Signing this message at: 2024-03-20T10:00:00Z", Address: "0xabcd...", }, - authMessageRegexp: authRegexp, + authMessageRegexp: kutils.DefaultAuthRegexp, authExpiry: tenMinutes, }, wantErr: true, @@ -61,7 +58,7 @@ Issued at: (.+)`) Msg: "Signing this message at: 2024-03-20T10:00:00Z", Address: "0xabcd...", }, - authMessageRegexp: authRegexp, + authMessageRegexp: kutils.DefaultAuthRegexp, authExpiry: tenMinutes, }, wantErr: true, @@ -74,7 +71,7 @@ Issued at: (.+)`) Msg: "Signing this message at: 2024-03-20T10:00:00Z", Address: "0xdifferentAddress...", }, - authMessageRegexp: authRegexp, + authMessageRegexp: kutils.DefaultAuthRegexp, authExpiry: tenMinutes, }, wantErr: true, @@ -87,7 +84,7 @@ Issued at: (.+)`) Msg: "Click sign to add favorite tokens at Kyberswap.com without logging in.\nThis request won’t trigger any blockchain transaction or cost any gas fee. Expires in 7 days. \n\nIssued at: 2024-11-01T07:22:42.790Z", Address: "0x63FaC9201494f0bd17B9892B9fae4d52fe3BD377", }, - authMessageRegexp: authRegexp, + authMessageRegexp: kutils.DefaultAuthRegexp, authExpiry: tenMinutes, }, wantErr: true, @@ -100,7 +97,7 @@ Issued at: (.+)`) Msg: "Invalid message format", Address: "0xabcd...", }, - authMessageRegexp: authRegexp, + authMessageRegexp: kutils.DefaultAuthRegexp, authExpiry: tenMinutes, }, wantErr: true, @@ -109,9 +106,7 @@ Issued at: (.+)`) for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var err error - if tt.name == "Valid signature and message" { - err = kutils.VerifyEIP191Signature(&tt.args.eip191, nil, 10000*time.Hour) - } else if tt.name == "Expired message" { + if tt.name == "Expired message" { err = kutils.VerifyEIP191SignatureWithDefaults(&tt.args.eip191) } else { err = kutils.VerifyEIP191Signature(&tt.args.eip191, tt.args.authMessageRegexp, tt.args.authExpiry)