Skip to content

Commit

Permalink
support aptos in node view (#15354)
Browse files Browse the repository at this point in the history
* support aptos in node view

* rm redundant code
  • Loading branch information
krehermann authored Nov 21, 2024
1 parent a3d5328 commit f3ae328
Show file tree
Hide file tree
Showing 15 changed files with 162 additions and 48 deletions.
2 changes: 1 addition & 1 deletion core/scripts/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ require (
github.com/shirou/gopsutil v3.21.11+incompatible // indirect
github.com/shirou/gopsutil/v3 v3.24.3 // indirect
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 // indirect
github.com/smartcontractkit/chain-selectors v1.0.29 // indirect
github.com/smartcontractkit/chain-selectors v1.0.30 // indirect
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec // indirect
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241114154055-8d29ea018b57 // indirect
Expand Down
4 changes: 2 additions & 2 deletions core/scripts/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1088,8 +1088,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 h1:qQH6fZZe31nBAG6INHph3z5ysDTPptyu0TR9uoJ1+ok=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86/go.mod h1:WtWOoVQQEHxRHL2hNmuRrvDfYfQG/CioFNoa9Rr2mBE=
github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR7JONfDqTHX3MHYIUIE=
github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chain-selectors v1.0.30 h1:jk+xVRocgQ/uvKLSd1JzeHJ/v+EKu1BjrreaSGqKzjo=
github.com/smartcontractkit/chain-selectors v1.0.30/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU=
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY=
Expand Down
5 changes: 4 additions & 1 deletion deployment/ccip/changeset/internal/deploy_home_chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,10 @@ func BuildOCR3ConfigForCCIPHome(
var oracles []confighelper.OracleIdentityExtra
for _, node := range nodes {
schedule = append(schedule, 1)
cfg := node.SelToOCRConfig[dest.Selector]
cfg, exists := node.OCRConfigForChainSelector(dest.Selector)
if !exists {
return nil, fmt.Errorf("no OCR config for chain %d", dest.Selector)
}
oracles = append(oracles, confighelper.OracleIdentityExtra{
OracleIdentity: confighelper.OracleIdentity{
OnchainPublicKey: cfg.OnchainPublicKey,
Expand Down
14 changes: 2 additions & 12 deletions deployment/common/view/nops.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ import (
"context"
"fmt"

chainsel "github.com/smartcontractkit/chain-selectors"

nodev1 "github.com/smartcontractkit/chainlink-protos/job-distributor/v1/node"
"github.com/smartcontractkit/chainlink/deployment"
)
Expand Down Expand Up @@ -58,16 +56,8 @@ func GenerateNopsView(nodeIds []string, oc deployment.OffchainClient) (map[strin
IsConnected: nodeDetails.Node.IsConnected,
IsEnabled: nodeDetails.Node.IsEnabled,
}
for sel, ocrConfig := range node.SelToOCRConfig {
chainid, err := chainsel.ChainIdFromSelector(sel)
if err != nil {
return nv, err
}
chainName, err := chainsel.NameFromChainId(chainid)
if err != nil {
return nv, err
}
nop.OCRKeys[chainName] = OCRKeyView{
for details, ocrConfig := range node.SelToOCRConfig {
nop.OCRKeys[details.ChainName] = OCRKeyView{
OffchainPublicKey: fmt.Sprintf("%x", ocrConfig.OffchainPublicKey[:]),
OnchainPublicKey: fmt.Sprintf("%x", ocrConfig.OnchainPublicKey[:]),
PeerID: ocrConfig.PeerID.String(),
Expand Down
61 changes: 45 additions & 16 deletions deployment/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"fmt"
"math/big"
"sort"
"strconv"

"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
Expand Down Expand Up @@ -223,13 +222,37 @@ func (n Nodes) BootstrapLocators() []string {

type Node struct {
NodeID string
SelToOCRConfig map[uint64]OCRConfig
SelToOCRConfig map[chain_selectors.ChainDetails]OCRConfig
PeerID p2pkey.PeerID
IsBootstrap bool
MultiAddr string
AdminAddr string
}

func (n Node) OCRConfigForChainDetails(details chain_selectors.ChainDetails) (OCRConfig, bool) {
c, ok := n.SelToOCRConfig[details]
return c, ok
}

func (n Node) OCRConfigForChainSelector(chainSel uint64) (OCRConfig, bool) {
fam, err := chain_selectors.GetSelectorFamily(chainSel)
if err != nil {
return OCRConfig{}, false
}

id, err := chain_selectors.GetChainIDFromSelector(chainSel)
if err != nil {
return OCRConfig{}, false
}

want, err := chain_selectors.GetChainDetailsByChainIDAndFamily(id, fam)
if err != nil {
return OCRConfig{}, false
}
c, ok := n.SelToOCRConfig[want]
return c, ok
}

func (n Node) FirstOCRKeybundle() OCRConfig {
for _, ocrConfig := range n.SelToOCRConfig {
return ocrConfig
Expand Down Expand Up @@ -261,16 +284,12 @@ func NodeInfo(nodeIDs []string, oc NodeChainConfigsLister) (Nodes, error) {
if err != nil {
return nil, err
}
selToOCRConfig := make(map[uint64]OCRConfig)
selToOCRConfig := make(map[chain_selectors.ChainDetails]OCRConfig)
bootstrap := false
var peerID p2pkey.PeerID
var multiAddr string
var adminAddr string
for _, chainConfig := range nodeChainConfigs.ChainConfigs {
if chainConfig.Chain.Type == nodev1.ChainType_CHAIN_TYPE_SOLANA {
// Note supported for CCIP yet.
continue
}
// NOTE: Assume same peerID/multiAddr for all chains.
// Might make sense to change proto as peerID/multiAddr is 1-1 with nodeID?
peerID = MustPeerIDFromString(chainConfig.Ocr2Config.P2PKeyBundle.PeerId)
Expand All @@ -282,14 +301,6 @@ func NodeInfo(nodeIDs []string, oc NodeChainConfigsLister) (Nodes, error) {
bootstrap = true
break
}
evmChainID, err := strconv.Atoi(chainConfig.Chain.Id)
if err != nil {
return nil, err
}
sel, err := chain_selectors.SelectorFromChainId(uint64(evmChainID))
if err != nil {
return nil, err
}
b := common.Hex2Bytes(chainConfig.Ocr2Config.OcrKeyBundle.OffchainPublicKey)
var opk types2.OffchainPublicKey
copy(opk[:], b)
Expand All @@ -298,14 +309,32 @@ func NodeInfo(nodeIDs []string, oc NodeChainConfigsLister) (Nodes, error) {
var cpk types3.ConfigEncryptionPublicKey
copy(cpk[:], b)

selToOCRConfig[sel] = OCRConfig{
ocrConfig := OCRConfig{
OffchainPublicKey: opk,
OnchainPublicKey: common.HexToAddress(chainConfig.Ocr2Config.OcrKeyBundle.OnchainSigningAddress).Bytes(),
PeerID: MustPeerIDFromString(chainConfig.Ocr2Config.P2PKeyBundle.PeerId),
TransmitAccount: types2.Account(chainConfig.AccountAddress),
ConfigEncryptionPublicKey: cpk,
KeyBundleID: chainConfig.Ocr2Config.OcrKeyBundle.BundleId,
}

var details chain_selectors.ChainDetails
switch chainConfig.Chain.Type {
case nodev1.ChainType_CHAIN_TYPE_APTOS:
details, err = chain_selectors.GetChainDetailsByChainIDAndFamily(chainConfig.Chain.Id, chain_selectors.FamilyAptos)
if err != nil {
return nil, err
}
case nodev1.ChainType_CHAIN_TYPE_EVM:
details, err = chain_selectors.GetChainDetailsByChainIDAndFamily(chainConfig.Chain.Id, chain_selectors.FamilyEVM)
if err != nil {
return nil, err
}
default:
return nil, fmt.Errorf("unsupported chain type %s", chainConfig.Chain.Type)
}

selToOCRConfig[details] = ocrConfig
}
nodes = append(nodes, Node{
NodeID: nodeID,
Expand Down
91 changes: 91 additions & 0 deletions deployment/environment_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package deployment

import (
"reflect"
"testing"

chain_selectors "github.com/smartcontractkit/chain-selectors"
)

func TestNode_OCRConfigForChainSelector(t *testing.T) {
var m = map[chain_selectors.ChainDetails]OCRConfig{
chain_selectors.ChainDetails{
ChainSelector: chain_selectors.APTOS_TESTNET.Selector,
ChainName: chain_selectors.APTOS_TESTNET.Name,
}: OCRConfig{
KeyBundleID: "aptos bundle 1",
},
chain_selectors.ChainDetails{
ChainSelector: chain_selectors.ETHEREUM_MAINNET_ARBITRUM_1.Selector,
ChainName: chain_selectors.ETHEREUM_MAINNET_ARBITRUM_1.Name,
}: OCRConfig{
KeyBundleID: "arb bundle 1",
},
}

type fields struct {
SelToOCRConfig map[chain_selectors.ChainDetails]OCRConfig
}
type args struct {
chainSel uint64
}
tests := []struct {
name string
fields fields
args args
want OCRConfig
exist bool
}{
{
name: "aptos ok",
fields: fields{
SelToOCRConfig: m,
},
args: args{
chainSel: chain_selectors.APTOS_TESTNET.Selector,
},
want: OCRConfig{
KeyBundleID: "aptos bundle 1",
},
exist: true,
},
{
name: "arb ok",
fields: fields{
SelToOCRConfig: m,
},
args: args{
chainSel: chain_selectors.ETHEREUM_MAINNET_ARBITRUM_1.Selector,
},
want: OCRConfig{
KeyBundleID: "arb bundle 1",
},
exist: true,
},
{
name: "no exist",
fields: fields{
SelToOCRConfig: m,
},
args: args{
chainSel: chain_selectors.WEMIX_MAINNET.Selector, // not in test data
},
want: OCRConfig{},
exist: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
n := Node{
SelToOCRConfig: tt.fields.SelToOCRConfig,
}
got, got1 := n.OCRConfigForChainSelector(tt.args.chainSel)
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("Node.OCRConfigForChainSelector() got = %v, want %v", got, tt.want)
}
if got1 != tt.exist {
t.Errorf("Node.OCRConfigForChainSelector() got1 = %v, want %v", got1, tt.exist)
}
})
}
}
2 changes: 1 addition & 1 deletion deployment/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ require (
github.com/rs/zerolog v1.33.0
github.com/sethvargo/go-retry v0.2.4
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86
github.com/smartcontractkit/chain-selectors v1.0.29
github.com/smartcontractkit/chain-selectors v1.0.30
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241120111740-a6a70ec7692b
github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0
Expand Down
4 changes: 2 additions & 2 deletions deployment/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1378,8 +1378,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 h1:qQH6fZZe31nBAG6INHph3z5ysDTPptyu0TR9uoJ1+ok=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86/go.mod h1:WtWOoVQQEHxRHL2hNmuRrvDfYfQG/CioFNoa9Rr2mBE=
github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR7JONfDqTHX3MHYIUIE=
github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chain-selectors v1.0.30 h1:jk+xVRocgQ/uvKLSd1JzeHJ/v+EKu1BjrreaSGqKzjo=
github.com/smartcontractkit/chain-selectors v1.0.30/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU=
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY=
Expand Down
9 changes: 5 additions & 4 deletions deployment/keystone/changeset/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package changeset

import (
"encoding/json"
"fmt"

chainsel "github.com/smartcontractkit/chain-selectors"

Expand All @@ -25,22 +26,22 @@ func ViewKeystone(e deployment.Environment) (json.Marshaler, error) {
for chainSel, contracts := range state.ContractSets {
chainid, err := chainsel.ChainIdFromSelector(chainSel)
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to resolve chain id for selector %d: %w", chainSel, err)
}
chainName, err := chainsel.NameFromChainId(chainid)
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to get name for chainid %d selector %d:%w", chainid, chainSel, err)
}
v, err := contracts.View()
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to view contract set: %w", err)
}
chainViews[chainName] = v

}
nopsView, err := commonview.GenerateNopsView(e.NodeIDs, e.Offchain)
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to view nops: %w", err)
}
return &view.KeystoneView{
Chains: chainViews,
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ require (
github.com/scylladb/go-reflectx v1.0.1
github.com/shirou/gopsutil/v3 v3.24.3
github.com/shopspring/decimal v1.4.0
github.com/smartcontractkit/chain-selectors v1.0.29
github.com/smartcontractkit/chain-selectors v1.0.30
github.com/smartcontractkit/chainlink-automation v0.8.1
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241120111740-a6a70ec7692b
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1072,8 +1072,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR7JONfDqTHX3MHYIUIE=
github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chain-selectors v1.0.30 h1:jk+xVRocgQ/uvKLSd1JzeHJ/v+EKu1BjrreaSGqKzjo=
github.com/smartcontractkit/chain-selectors v1.0.30/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU=
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY=
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ require (
github.com/segmentio/ksuid v1.0.4
github.com/shopspring/decimal v1.4.0
github.com/slack-go/slack v0.15.0
github.com/smartcontractkit/chain-selectors v1.0.29
github.com/smartcontractkit/chain-selectors v1.0.30
github.com/smartcontractkit/chainlink-automation v0.8.1
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241120111740-a6a70ec7692b
github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0
Expand Down
4 changes: 2 additions & 2 deletions integration-tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1399,8 +1399,8 @@ github.com/slack-go/slack v0.15.0 h1:LE2lj2y9vqqiOf+qIIy0GvEoxgF1N5yLGZffmEZykt0
github.com/slack-go/slack v0.15.0/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 h1:qQH6fZZe31nBAG6INHph3z5ysDTPptyu0TR9uoJ1+ok=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86/go.mod h1:WtWOoVQQEHxRHL2hNmuRrvDfYfQG/CioFNoa9Rr2mBE=
github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR7JONfDqTHX3MHYIUIE=
github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chain-selectors v1.0.30 h1:jk+xVRocgQ/uvKLSd1JzeHJ/v+EKu1BjrreaSGqKzjo=
github.com/smartcontractkit/chain-selectors v1.0.30/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU=
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY=
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/load/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ require (
github.com/shoenig/test v0.6.6 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/smartcontractkit/chain-selectors v1.0.29 // indirect
github.com/smartcontractkit/chain-selectors v1.0.30 // indirect
github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec // indirect
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect
Expand Down
4 changes: 2 additions & 2 deletions integration-tests/load/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1388,8 +1388,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/slack-go/slack v0.15.0 h1:LE2lj2y9vqqiOf+qIIy0GvEoxgF1N5yLGZffmEZykt0=
github.com/slack-go/slack v0.15.0/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw=
github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR7JONfDqTHX3MHYIUIE=
github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chain-selectors v1.0.30 h1:jk+xVRocgQ/uvKLSd1JzeHJ/v+EKu1BjrreaSGqKzjo=
github.com/smartcontractkit/chain-selectors v1.0.30/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8=
github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU=
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY=
Expand Down

0 comments on commit f3ae328

Please sign in to comment.