Skip to content

Commit

Permalink
Trailing slash (#12606)
Browse files Browse the repository at this point in the history
* remove trailing slash in mercury credentials' URLs

* remove trailing slash and make it threadsafe

* trim slashes once in NewMercuryConfig

* nil protection

---------

Co-authored-by: amirylm <[email protected]>
  • Loading branch information
shileiwill and amirylm authored Mar 27, 2024
1 parent 6e36a84 commit 90ea24b
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 10 deletions.
5 changes: 5 additions & 0 deletions .changeset/strange-swans-compare.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

remove trailing slash
19 changes: 11 additions & 8 deletions core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"fmt"
"math/big"
"net/http"
"strings"
"sync"
"time"

Expand Down Expand Up @@ -90,12 +91,7 @@ func NewEvmRegistry(
blockSub *BlockSubscriber,
finalityDepth uint32,
) *EvmRegistry {
mercuryConfig := &MercuryConfig{
cred: mc,
Abi: core.StreamsCompatibleABI,
AllowListCache: cache.New(defaultAllowListExpiration, cleanupInterval),
pluginRetryCache: cache.New(defaultPluginRetryExpiration, cleanupInterval),
}
mercuryConfig := NewMercuryConfig(mc, core.StreamsCompatibleABI)
hc := http.DefaultClient

return &EvmRegistry{
Expand Down Expand Up @@ -138,9 +134,16 @@ type MercuryConfig struct {
pluginRetryCache *cache.Cache
}

func NewMercuryConfig(credentials *types.MercuryCredentials, abi abi.ABI) *MercuryConfig {
func NewMercuryConfig(cred *types.MercuryCredentials, abi abi.ABI) *MercuryConfig {
c := &types.MercuryCredentials{}
if cred != nil {
c.Password = cred.Password
c.Username = cred.Username
c.URL = strings.TrimRight(cred.URL, "/")
c.LegacyURL = strings.TrimRight(cred.LegacyURL, "/")
}
return &MercuryConfig{
cred: credentials,
cred: c,
Abi: abi,
AllowListCache: cache.New(defaultPluginRetryExpiration, cleanupInterval),
pluginRetryCache: cache.New(defaultPluginRetryExpiration, cleanupInterval),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ import (
"testing"
"time"

types2 "github.com/smartcontractkit/chainlink-automation/pkg/v3/types"

"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
coreTypes "github.com/ethereum/go-ethereum/core/types"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"

types2 "github.com/smartcontractkit/chainlink-automation/pkg/v3/types"
"github.com/smartcontractkit/chainlink-common/pkg/types"

types3 "github.com/smartcontractkit/chainlink/v2/core/chains/evm/headtracker/types"
"github.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller"
"github.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller/mocks"
Expand All @@ -29,6 +30,49 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/logprovider"
)

func TestMercuryConfig_RemoveTrailingSlash(t *testing.T) {
tests := []struct {
Name string
URL string
LegacyURL string
}{
{
Name: "Both have trailing slashes",
URL: "http://example.com/",
LegacyURL: "http://legacy.example.com/",
},
{
Name: "One has trailing slashes",
URL: "http://example.com",
LegacyURL: "http://legacy.example.com/",
},
{
Name: "Neither has trailing slashes",
URL: "http://example.com",
LegacyURL: "http://legacy.example.com",
},
}

for _, test := range tests {
t.Run(test.Name, func(t *testing.T) {
mockConfig := NewMercuryConfig(&types.MercuryCredentials{
URL: test.URL,
LegacyURL: test.LegacyURL,
Username: "user",
Password: "pass",
}, core.StreamsCompatibleABI)

result := mockConfig.Credentials()

// Assert that trailing slashes are removed
assert.Equal(t, "http://example.com", result.URL)
assert.Equal(t, "http://legacy.example.com", result.LegacyURL)
assert.Equal(t, "user", result.Username)
assert.Equal(t, "pass", result.Password)
})
}
}

func TestPollLogs(t *testing.T) {
tests := []struct {
Name string
Expand Down

0 comments on commit 90ea24b

Please sign in to comment.