From 71b06dcd7f112f33319f21a16d291b9f1a0701d4 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 19 Nov 2024 16:48:47 -0600 Subject: [PATCH 001/232] add solana commit codec, need to add test --- .../AcceptAdminRoleTokenAdminRegistry.go | 146 ++ .../AcceptAdminRoleTokenAdminRegistry_test.go | 32 + .../ccipsolana/ccip_router/AcceptOwnership.go | 117 ++ .../ccip_router/AcceptOwnership_test.go | 32 + .../ccip_router/AddChainSelector.go | 207 ++ .../ccip_router/AddChainSelector_test.go | 32 + .../ccip/ccipsolana/ccip_router/CcipSend.go | 250 +++ .../ccipsolana/ccip_router/CcipSend_test.go | 32 + .../ccip/ccipsolana/ccip_router/Commit.go | 279 +++ .../ccipsolana/ccip_router/Commit_test.go | 32 + .../ccip_router/DisableChainSelector.go | 184 ++ .../ccip_router/DisableChainSelector_test.go | 32 + .../ccip_router/EnableChainSelector.go | 184 ++ .../ccip_router/EnableChainSelector_test.go | 32 + .../ccip/ccipsolana/ccip_router/Execute.go | 293 +++ .../ccipsolana/ccip_router/Execute_test.go | 32 + .../ccip/ccipsolana/ccip_router/Initialize.go | 310 +++ .../ccipsolana/ccip_router/Initialize_test.go | 32 + .../ccipsolana/ccip_router/ManuallyExecute.go | 261 +++ .../ccip_router/ManuallyExecute_test.go | 32 + ...gisterTokenAdminRegistryViaGetCcipAdmin.go | 207 ++ ...rTokenAdminRegistryViaGetCcipAdmin_test.go | 32 + .../RegisterTokenAdminRegistryViaOwner.go | 155 ++ ...RegisterTokenAdminRegistryViaOwner_test.go | 32 + .../ccipsolana/ccip_router/SetOcrConfig.go | 215 ++ .../ccip_router/SetOcrConfig_test.go | 32 + .../ccip/ccipsolana/ccip_router/SetPool.go | 169 ++ .../ccipsolana/ccip_router/SetPool_test.go | 32 + .../ccipsolana/ccip_router/SetTokenBilling.go | 230 +++ .../ccip_router/SetTokenBilling_test.go | 32 + .../TransferAdminRoleTokenAdminRegistry.go | 169 ++ ...ransferAdminRoleTokenAdminRegistry_test.go | 32 + .../ccip_router/TransferOwnership.go | 146 ++ .../ccip_router/TransferOwnership_test.go | 32 + .../UpdateDefaultAllowOutOfOrderExecution.go | 165 ++ ...ateDefaultAllowOutOfOrderExecution_test.go | 32 + .../ccip_router/UpdateDefaultGasLimit.go | 165 ++ .../ccip_router/UpdateDefaultGasLimit_test.go | 32 + .../UpdateEnableManualExecutionAfter.go | 165 ++ .../UpdateEnableManualExecutionAfter_test.go | 32 + .../ccip_router/UpdateSolanaChainSelector.go | 165 ++ .../UpdateSolanaChainSelector_test.go | 32 + .../ccip/ccipsolana/ccip_router/accounts.go | 661 ++++++ .../ccipsolana/ccip_router/instructions.go | 304 +++ .../ccipsolana/ccip_router/testing_utils.go | 20 + .../ccip/ccipsolana/ccip_router/types.go | 1817 +++++++++++++++++ .../ccip/ccipsolana/commitcodec.go | 144 ++ 47 files changed, 7800 insertions(+) create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Commit.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Execute.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/accounts.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/instructions.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go create mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/types.go create mode 100644 core/capabilities/ccip/ccipsolana/commitcodec.go diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go new file mode 100644 index 00000000000..6afa27007fe --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go @@ -0,0 +1,146 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Pending Admin can accept the Admin Role of the Token Admin Registry +type AcceptAdminRoleTokenAdminRegistry struct { + Mint *ag_solanago.PublicKey + + // [0] = [WRITE] tokenAdminRegistry + // + // [1] = [WRITE, SIGNER] authority + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewAcceptAdminRoleTokenAdminRegistryInstructionBuilder creates a new `AcceptAdminRoleTokenAdminRegistry` instruction builder. +func NewAcceptAdminRoleTokenAdminRegistryInstructionBuilder() *AcceptAdminRoleTokenAdminRegistry { + nd := &AcceptAdminRoleTokenAdminRegistry{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), + } + return nd +} + +// SetMint sets the "mint" parameter. +func (inst *AcceptAdminRoleTokenAdminRegistry) SetMint(mint ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { + inst.Mint = &mint + return inst +} + +// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. +func (inst *AcceptAdminRoleTokenAdminRegistry) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { + inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() + return inst +} + +// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. +func (inst *AcceptAdminRoleTokenAdminRegistry) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *AcceptAdminRoleTokenAdminRegistry) SetAuthorityAccount(authority ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *AcceptAdminRoleTokenAdminRegistry) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +func (inst AcceptAdminRoleTokenAdminRegistry) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_AcceptAdminRoleTokenAdminRegistry, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst AcceptAdminRoleTokenAdminRegistry) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *AcceptAdminRoleTokenAdminRegistry) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.Mint == nil { + return errors.New("Mint parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.TokenAdminRegistry is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + } + return nil +} + +func (inst *AcceptAdminRoleTokenAdminRegistry) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("AcceptAdminRoleTokenAdminRegistry")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("Mint", *inst.Mint)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + }) + }) + }) +} + +func (obj AcceptAdminRoleTokenAdminRegistry) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Mint` param: + err = encoder.Encode(obj.Mint) + if err != nil { + return err + } + return nil +} +func (obj *AcceptAdminRoleTokenAdminRegistry) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Mint`: + err = decoder.Decode(&obj.Mint) + if err != nil { + return err + } + return nil +} + +// NewAcceptAdminRoleTokenAdminRegistryInstruction declares a new AcceptAdminRoleTokenAdminRegistry instruction with the provided parameters and accounts. +func NewAcceptAdminRoleTokenAdminRegistryInstruction( + // Parameters: + mint ag_solanago.PublicKey, + // Accounts: + tokenAdminRegistry ag_solanago.PublicKey, + authority ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { + return NewAcceptAdminRoleTokenAdminRegistryInstructionBuilder(). + SetMint(mint). + SetTokenAdminRegistryAccount(tokenAdminRegistry). + SetAuthorityAccount(authority) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go new file mode 100644 index 00000000000..44baeb8e004 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_AcceptAdminRoleTokenAdminRegistry(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("AcceptAdminRoleTokenAdminRegistry"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(AcceptAdminRoleTokenAdminRegistry) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(AcceptAdminRoleTokenAdminRegistry) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go new file mode 100644 index 00000000000..9354db59224 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go @@ -0,0 +1,117 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// AcceptOwnership is the `acceptOwnership` instruction. +type AcceptOwnership struct { + + // [0] = [WRITE] config + // + // [1] = [SIGNER] authority + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewAcceptOwnershipInstructionBuilder creates a new `AcceptOwnership` instruction builder. +func NewAcceptOwnershipInstructionBuilder() *AcceptOwnership { + nd := &AcceptOwnership{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), + } + return nd +} + +// SetConfigAccount sets the "config" account. +func (inst *AcceptOwnership) SetConfigAccount(config ag_solanago.PublicKey) *AcceptOwnership { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *AcceptOwnership) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *AcceptOwnership) SetAuthorityAccount(authority ag_solanago.PublicKey) *AcceptOwnership { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *AcceptOwnership) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +func (inst AcceptOwnership) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_AcceptOwnership, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst AcceptOwnership) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *AcceptOwnership) Validate() error { + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + } + return nil +} + +func (inst *AcceptOwnership) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("AcceptOwnership")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=0]").ParentFunc(func(paramsBranch ag_treeout.Branches) {}) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1])) + }) + }) + }) +} + +func (obj AcceptOwnership) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + return nil +} +func (obj *AcceptOwnership) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + return nil +} + +// NewAcceptOwnershipInstruction declares a new AcceptOwnership instruction with the provided parameters and accounts. +func NewAcceptOwnershipInstruction( + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey) *AcceptOwnership { + return NewAcceptOwnershipInstructionBuilder(). + SetConfigAccount(config). + SetAuthorityAccount(authority) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go new file mode 100644 index 00000000000..da475cd5d24 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_AcceptOwnership(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("AcceptOwnership"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(AcceptOwnership) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(AcceptOwnership) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go new file mode 100644 index 00000000000..743d44c41e1 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go @@ -0,0 +1,207 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin needs to add any new chain supported (this means both OnRamp and OffRamp). +type AddChainSelector struct { + NewChainSelector *uint64 + OnRampAddress *[]byte + + // [0] = [WRITE] chainState + // + // [1] = [] config + // + // [2] = [WRITE, SIGNER] authority + // + // [3] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewAddChainSelectorInstructionBuilder creates a new `AddChainSelector` instruction builder. +func NewAddChainSelectorInstructionBuilder() *AddChainSelector { + nd := &AddChainSelector{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), + } + return nd +} + +// SetNewChainSelector sets the "newChainSelector" parameter. +func (inst *AddChainSelector) SetNewChainSelector(newChainSelector uint64) *AddChainSelector { + inst.NewChainSelector = &newChainSelector + return inst +} + +// SetOnRampAddress sets the "onRampAddress" parameter. +func (inst *AddChainSelector) SetOnRampAddress(onRampAddress []byte) *AddChainSelector { + inst.OnRampAddress = &onRampAddress + return inst +} + +// SetChainStateAccount sets the "chainState" account. +func (inst *AddChainSelector) SetChainStateAccount(chainState ag_solanago.PublicKey) *AddChainSelector { + inst.AccountMetaSlice[0] = ag_solanago.Meta(chainState).WRITE() + return inst +} + +// GetChainStateAccount gets the "chainState" account. +func (inst *AddChainSelector) GetChainStateAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetConfigAccount sets the "config" account. +func (inst *AddChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *AddChainSelector { + inst.AccountMetaSlice[1] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *AddChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *AddChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *AddChainSelector { + inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *AddChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *AddChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *AddChainSelector { + inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *AddChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +func (inst AddChainSelector) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_AddChainSelector, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst AddChainSelector) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *AddChainSelector) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.NewChainSelector == nil { + return errors.New("NewChainSelector parameter is not set") + } + if inst.OnRampAddress == nil { + return errors.New("OnRampAddress parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.ChainState is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *AddChainSelector) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("AddChainSelector")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) + paramsBranch.Child(ag_format.Param(" OnRampAddress", *inst.OnRampAddress)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[3])) + }) + }) + }) +} + +func (obj AddChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `NewChainSelector` param: + err = encoder.Encode(obj.NewChainSelector) + if err != nil { + return err + } + // Serialize `OnRampAddress` param: + err = encoder.Encode(obj.OnRampAddress) + if err != nil { + return err + } + return nil +} +func (obj *AddChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `NewChainSelector`: + err = decoder.Decode(&obj.NewChainSelector) + if err != nil { + return err + } + // Deserialize `OnRampAddress`: + err = decoder.Decode(&obj.OnRampAddress) + if err != nil { + return err + } + return nil +} + +// NewAddChainSelectorInstruction declares a new AddChainSelector instruction with the provided parameters and accounts. +func NewAddChainSelectorInstruction( + // Parameters: + newChainSelector uint64, + onRampAddress []byte, + // Accounts: + chainState ag_solanago.PublicKey, + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *AddChainSelector { + return NewAddChainSelectorInstructionBuilder(). + SetNewChainSelector(newChainSelector). + SetOnRampAddress(onRampAddress). + SetChainStateAccount(chainState). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go new file mode 100644 index 00000000000..8398360f7f6 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_AddChainSelector(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("AddChainSelector"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(AddChainSelector) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(AddChainSelector) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go b/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go new file mode 100644 index 00000000000..61cd343e929 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go @@ -0,0 +1,250 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// ON RAMP FLOW +// The method name needs to be ccip_send with Anchor encoding. +// This function is called by the CCIP Sender Contract (or final user) to send a message to the CCIP Router. +// The size limit of data is 256 bytes. +// The message is sent to the receiver on the destination chain selector. +// This message emits the event CCIPSendRequested with all the necessary data to be retrieved by the OffChain Code +type CcipSend struct { + DestChainSelector *uint64 + Message *Solana2AnyMessage + + // [0] = [] config + // + // [1] = [WRITE] chainState + // + // [2] = [WRITE] nonce + // + // [3] = [WRITE, SIGNER] authority + // + // [4] = [] systemProgram + // + // [5] = [WRITE] tokenPoolsSigner + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewCcipSendInstructionBuilder creates a new `CcipSend` instruction builder. +func NewCcipSendInstructionBuilder() *CcipSend { + nd := &CcipSend{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 6), + } + return nd +} + +// SetDestChainSelector sets the "destChainSelector" parameter. +func (inst *CcipSend) SetDestChainSelector(destChainSelector uint64) *CcipSend { + inst.DestChainSelector = &destChainSelector + return inst +} + +// SetMessage sets the "message" parameter. +func (inst *CcipSend) SetMessage(message Solana2AnyMessage) *CcipSend { + inst.Message = &message + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *CcipSend) SetConfigAccount(config ag_solanago.PublicKey) *CcipSend { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *CcipSend) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetChainStateAccount sets the "chainState" account. +func (inst *CcipSend) SetChainStateAccount(chainState ag_solanago.PublicKey) *CcipSend { + inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState).WRITE() + return inst +} + +// GetChainStateAccount gets the "chainState" account. +func (inst *CcipSend) GetChainStateAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetNonceAccount sets the "nonce" account. +func (inst *CcipSend) SetNonceAccount(nonce ag_solanago.PublicKey) *CcipSend { + inst.AccountMetaSlice[2] = ag_solanago.Meta(nonce).WRITE() + return inst +} + +// GetNonceAccount gets the "nonce" account. +func (inst *CcipSend) GetNonceAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *CcipSend) SetAuthorityAccount(authority ag_solanago.PublicKey) *CcipSend { + inst.AccountMetaSlice[3] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *CcipSend) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *CcipSend) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *CcipSend { + inst.AccountMetaSlice[4] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *CcipSend) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[4] +} + +// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. +func (inst *CcipSend) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *CcipSend { + inst.AccountMetaSlice[5] = ag_solanago.Meta(tokenPoolsSigner).WRITE() + return inst +} + +// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. +func (inst *CcipSend) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[5] +} + +func (inst CcipSend) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_CcipSend, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst CcipSend) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *CcipSend) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.DestChainSelector == nil { + return errors.New("DestChainSelector parameter is not set") + } + if inst.Message == nil { + return errors.New("Message parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.ChainState is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.Nonce is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[4] == nil { + return errors.New("accounts.SystemProgram is not set") + } + if inst.AccountMetaSlice[5] == nil { + return errors.New("accounts.TokenPoolsSigner is not set") + } + } + return nil +} + +func (inst *CcipSend) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("CcipSend")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("DestChainSelector", *inst.DestChainSelector)) + paramsBranch.Child(ag_format.Param(" Message", *inst.Message)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=6]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" nonce", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[3])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[4])) + accountsBranch.Child(ag_format.Meta("tokenPoolsSigner", inst.AccountMetaSlice[5])) + }) + }) + }) +} + +func (obj CcipSend) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `DestChainSelector` param: + err = encoder.Encode(obj.DestChainSelector) + if err != nil { + return err + } + // Serialize `Message` param: + err = encoder.Encode(obj.Message) + if err != nil { + return err + } + return nil +} +func (obj *CcipSend) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `DestChainSelector`: + err = decoder.Decode(&obj.DestChainSelector) + if err != nil { + return err + } + // Deserialize `Message`: + err = decoder.Decode(&obj.Message) + if err != nil { + return err + } + return nil +} + +// NewCcipSendInstruction declares a new CcipSend instruction with the provided parameters and accounts. +func NewCcipSendInstruction( + // Parameters: + destChainSelector uint64, + message Solana2AnyMessage, + // Accounts: + config ag_solanago.PublicKey, + chainState ag_solanago.PublicKey, + nonce ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey, + tokenPoolsSigner ag_solanago.PublicKey) *CcipSend { + return NewCcipSendInstructionBuilder(). + SetDestChainSelector(destChainSelector). + SetMessage(message). + SetConfigAccount(config). + SetChainStateAccount(chainState). + SetNonceAccount(nonce). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram). + SetTokenPoolsSignerAccount(tokenPoolsSigner) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go new file mode 100644 index 00000000000..a9f819342cb --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_CcipSend(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("CcipSend"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(CcipSend) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(CcipSend) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Commit.go b/core/capabilities/ccip/ccipsolana/ccip_router/Commit.go new file mode 100644 index 00000000000..898c086029b --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/Commit.go @@ -0,0 +1,279 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// OFF RAMP FLOW +// +// The method name needs to be commit with Anchor encoding. +// +// This function is called by the OffChain when committing one Report to the Solana Router. +// In this Flow only one report is sent, the Commit Report. This is different as EVM does, +// this is because here all the chain state is stored in one account per Merkle Tree Root. +// So, to avoid having to send a dynamic size array of accounts, in this message only one Commit Report Account is sent. +// This message validates the signatures of the report and stores the Merkle Root in the Commit Report Account. +// The Report must contain an interval of messages, and the min of them must be the next sequence number expected. +// The max size of the interval is 64. +// This message emits two events: CommitReportAccepted and Transmitted. +type Commit struct { + ReportContext *[3][32]uint8 + Report *CommitInput + Signatures *[][65]uint8 + + // [0] = [] config + // + // [1] = [WRITE] chainState + // + // [2] = [WRITE] commitReport + // + // [3] = [WRITE, SIGNER] authority + // + // [4] = [] systemProgram + // + // [5] = [] sysvarInstructions + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewCommitInstructionBuilder creates a new `Commit` instruction builder. +func NewCommitInstructionBuilder() *Commit { + nd := &Commit{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 6), + } + return nd +} + +// SetReportContext sets the "reportContext" parameter. +func (inst *Commit) SetReportContext(reportContext [3][32]uint8) *Commit { + inst.ReportContext = &reportContext + return inst +} + +// SetReport sets the "report" parameter. +func (inst *Commit) SetReport(report CommitInput) *Commit { + inst.Report = &report + return inst +} + +// SetSignatures sets the "signatures" parameter. +func (inst *Commit) SetSignatures(signatures [][65]uint8) *Commit { + inst.Signatures = &signatures + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *Commit) SetConfigAccount(config ag_solanago.PublicKey) *Commit { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *Commit) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetChainStateAccount sets the "chainState" account. +func (inst *Commit) SetChainStateAccount(chainState ag_solanago.PublicKey) *Commit { + inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState).WRITE() + return inst +} + +// GetChainStateAccount gets the "chainState" account. +func (inst *Commit) GetChainStateAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetCommitReportAccount sets the "commitReport" account. +func (inst *Commit) SetCommitReportAccount(commitReport ag_solanago.PublicKey) *Commit { + inst.AccountMetaSlice[2] = ag_solanago.Meta(commitReport).WRITE() + return inst +} + +// GetCommitReportAccount gets the "commitReport" account. +func (inst *Commit) GetCommitReportAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *Commit) SetAuthorityAccount(authority ag_solanago.PublicKey) *Commit { + inst.AccountMetaSlice[3] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *Commit) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *Commit) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *Commit { + inst.AccountMetaSlice[4] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *Commit) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[4] +} + +// SetSysvarInstructionsAccount sets the "sysvarInstructions" account. +func (inst *Commit) SetSysvarInstructionsAccount(sysvarInstructions ag_solanago.PublicKey) *Commit { + inst.AccountMetaSlice[5] = ag_solanago.Meta(sysvarInstructions) + return inst +} + +// GetSysvarInstructionsAccount gets the "sysvarInstructions" account. +func (inst *Commit) GetSysvarInstructionsAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[5] +} + +func (inst Commit) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_Commit, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst Commit) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *Commit) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.ReportContext == nil { + return errors.New("ReportContext parameter is not set") + } + if inst.Report == nil { + return errors.New("Report parameter is not set") + } + if inst.Signatures == nil { + return errors.New("Signatures parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.ChainState is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.CommitReport is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[4] == nil { + return errors.New("accounts.SystemProgram is not set") + } + if inst.AccountMetaSlice[5] == nil { + return errors.New("accounts.SysvarInstructions is not set") + } + } + return nil +} + +func (inst *Commit) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("Commit")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=3]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("ReportContext", *inst.ReportContext)) + paramsBranch.Child(ag_format.Param(" Report", *inst.Report)) + paramsBranch.Child(ag_format.Param(" Signatures", *inst.Signatures)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=6]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" commitReport", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[3])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[4])) + accountsBranch.Child(ag_format.Meta("sysvarInstructions", inst.AccountMetaSlice[5])) + }) + }) + }) +} + +func (obj Commit) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `ReportContext` param: + err = encoder.Encode(obj.ReportContext) + if err != nil { + return err + } + // Serialize `Report` param: + err = encoder.Encode(obj.Report) + if err != nil { + return err + } + // Serialize `Signatures` param: + err = encoder.Encode(obj.Signatures) + if err != nil { + return err + } + return nil +} +func (obj *Commit) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `ReportContext`: + err = decoder.Decode(&obj.ReportContext) + if err != nil { + return err + } + // Deserialize `Report`: + err = decoder.Decode(&obj.Report) + if err != nil { + return err + } + // Deserialize `Signatures`: + err = decoder.Decode(&obj.Signatures) + if err != nil { + return err + } + return nil +} + +// NewCommitInstruction declares a new Commit instruction with the provided parameters and accounts. +func NewCommitInstruction( + // Parameters: + reportContext [3][32]uint8, + report CommitInput, + signatures [][65]uint8, + // Accounts: + config ag_solanago.PublicKey, + chainState ag_solanago.PublicKey, + commitReport ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey, + sysvarInstructions ag_solanago.PublicKey) *Commit { + return NewCommitInstructionBuilder(). + SetReportContext(reportContext). + SetReport(report). + SetSignatures(signatures). + SetConfigAccount(config). + SetChainStateAccount(chainState). + SetCommitReportAccount(commitReport). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram). + SetSysvarInstructionsAccount(sysvarInstructions) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go new file mode 100644 index 00000000000..fcaf33cc942 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_Commit(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("Commit"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(Commit) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(Commit) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go new file mode 100644 index 00000000000..772c3391061 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go @@ -0,0 +1,184 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin is the only one able to enable or disable the chain selector +type DisableChainSelector struct { + NewChainSelector *uint64 + + // [0] = [WRITE] chainState + // + // [1] = [] config + // + // [2] = [WRITE, SIGNER] authority + // + // [3] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewDisableChainSelectorInstructionBuilder creates a new `DisableChainSelector` instruction builder. +func NewDisableChainSelectorInstructionBuilder() *DisableChainSelector { + nd := &DisableChainSelector{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), + } + return nd +} + +// SetNewChainSelector sets the "newChainSelector" parameter. +func (inst *DisableChainSelector) SetNewChainSelector(newChainSelector uint64) *DisableChainSelector { + inst.NewChainSelector = &newChainSelector + return inst +} + +// SetChainStateAccount sets the "chainState" account. +func (inst *DisableChainSelector) SetChainStateAccount(chainState ag_solanago.PublicKey) *DisableChainSelector { + inst.AccountMetaSlice[0] = ag_solanago.Meta(chainState).WRITE() + return inst +} + +// GetChainStateAccount gets the "chainState" account. +func (inst *DisableChainSelector) GetChainStateAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetConfigAccount sets the "config" account. +func (inst *DisableChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *DisableChainSelector { + inst.AccountMetaSlice[1] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *DisableChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *DisableChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *DisableChainSelector { + inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *DisableChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *DisableChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *DisableChainSelector { + inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *DisableChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +func (inst DisableChainSelector) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_DisableChainSelector, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst DisableChainSelector) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *DisableChainSelector) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.NewChainSelector == nil { + return errors.New("NewChainSelector parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.ChainState is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *DisableChainSelector) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("DisableChainSelector")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[3])) + }) + }) + }) +} + +func (obj DisableChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `NewChainSelector` param: + err = encoder.Encode(obj.NewChainSelector) + if err != nil { + return err + } + return nil +} +func (obj *DisableChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `NewChainSelector`: + err = decoder.Decode(&obj.NewChainSelector) + if err != nil { + return err + } + return nil +} + +// NewDisableChainSelectorInstruction declares a new DisableChainSelector instruction with the provided parameters and accounts. +func NewDisableChainSelectorInstruction( + // Parameters: + newChainSelector uint64, + // Accounts: + chainState ag_solanago.PublicKey, + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *DisableChainSelector { + return NewDisableChainSelectorInstructionBuilder(). + SetNewChainSelector(newChainSelector). + SetChainStateAccount(chainState). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go new file mode 100644 index 00000000000..6d4d01c9feb --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_DisableChainSelector(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("DisableChainSelector"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(DisableChainSelector) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(DisableChainSelector) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go new file mode 100644 index 00000000000..b3b45bb7f91 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go @@ -0,0 +1,184 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin is the only one able to enable or disable the chain selector +type EnableChainSelector struct { + NewChainSelector *uint64 + + // [0] = [WRITE] chainState + // + // [1] = [] config + // + // [2] = [WRITE, SIGNER] authority + // + // [3] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewEnableChainSelectorInstructionBuilder creates a new `EnableChainSelector` instruction builder. +func NewEnableChainSelectorInstructionBuilder() *EnableChainSelector { + nd := &EnableChainSelector{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), + } + return nd +} + +// SetNewChainSelector sets the "newChainSelector" parameter. +func (inst *EnableChainSelector) SetNewChainSelector(newChainSelector uint64) *EnableChainSelector { + inst.NewChainSelector = &newChainSelector + return inst +} + +// SetChainStateAccount sets the "chainState" account. +func (inst *EnableChainSelector) SetChainStateAccount(chainState ag_solanago.PublicKey) *EnableChainSelector { + inst.AccountMetaSlice[0] = ag_solanago.Meta(chainState).WRITE() + return inst +} + +// GetChainStateAccount gets the "chainState" account. +func (inst *EnableChainSelector) GetChainStateAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetConfigAccount sets the "config" account. +func (inst *EnableChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *EnableChainSelector { + inst.AccountMetaSlice[1] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *EnableChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *EnableChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *EnableChainSelector { + inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *EnableChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *EnableChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *EnableChainSelector { + inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *EnableChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +func (inst EnableChainSelector) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_EnableChainSelector, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst EnableChainSelector) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *EnableChainSelector) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.NewChainSelector == nil { + return errors.New("NewChainSelector parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.ChainState is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *EnableChainSelector) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("EnableChainSelector")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[3])) + }) + }) + }) +} + +func (obj EnableChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `NewChainSelector` param: + err = encoder.Encode(obj.NewChainSelector) + if err != nil { + return err + } + return nil +} +func (obj *EnableChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `NewChainSelector`: + err = decoder.Decode(&obj.NewChainSelector) + if err != nil { + return err + } + return nil +} + +// NewEnableChainSelectorInstruction declares a new EnableChainSelector instruction with the provided parameters and accounts. +func NewEnableChainSelectorInstruction( + // Parameters: + newChainSelector uint64, + // Accounts: + chainState ag_solanago.PublicKey, + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *EnableChainSelector { + return NewEnableChainSelectorInstructionBuilder(). + SetNewChainSelector(newChainSelector). + SetChainStateAccount(chainState). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go new file mode 100644 index 00000000000..f14c09f534a --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_EnableChainSelector(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("EnableChainSelector"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(EnableChainSelector) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(EnableChainSelector) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Execute.go b/core/capabilities/ccip/ccipsolana/ccip_router/Execute.go new file mode 100644 index 00000000000..5ed3628dd1f --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/Execute.go @@ -0,0 +1,293 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// OFF RAMP FLOW +// +// The method name needs to be execute with Anchor encoding. +// +// This function is called by the OffChain when executing one Report to the Solana Router. +// In this Flow only one message is sent, the Execution Report. This is different as EVM does, +// this is because there is no try/catch mechanism to allow batch execution. +// This message validates that the Merkle Tree Proof of the given message is correct and is stored in the Commit Report Account. +// The message must be untouched to be executed. +// This message emits the event ExecutionStateChanged with the new state of the message. +// Finally, executes the CPI instruction to the receiver program in the ccip_receive message. +type Execute struct { + ExecutionReport *ExecutionReportSingleChain + ReportContext *[3][32]uint8 + + // [0] = [] config + // + // [1] = [] chainState + // + // [2] = [WRITE] commitReport + // + // [3] = [] externalExecutionConfig + // + // [4] = [WRITE, SIGNER] authority + // + // [5] = [] systemProgram + // + // [6] = [] sysvarInstructions + // + // [7] = [] tokenPoolsSigner + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewExecuteInstructionBuilder creates a new `Execute` instruction builder. +func NewExecuteInstructionBuilder() *Execute { + nd := &Execute{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 8), + } + return nd +} + +// SetExecutionReport sets the "executionReport" parameter. +func (inst *Execute) SetExecutionReport(executionReport ExecutionReportSingleChain) *Execute { + inst.ExecutionReport = &executionReport + return inst +} + +// SetReportContext sets the "reportContext" parameter. +func (inst *Execute) SetReportContext(reportContext [3][32]uint8) *Execute { + inst.ReportContext = &reportContext + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *Execute) SetConfigAccount(config ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *Execute) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetChainStateAccount sets the "chainState" account. +func (inst *Execute) SetChainStateAccount(chainState ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState) + return inst +} + +// GetChainStateAccount gets the "chainState" account. +func (inst *Execute) GetChainStateAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetCommitReportAccount sets the "commitReport" account. +func (inst *Execute) SetCommitReportAccount(commitReport ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[2] = ag_solanago.Meta(commitReport).WRITE() + return inst +} + +// GetCommitReportAccount gets the "commitReport" account. +func (inst *Execute) GetCommitReportAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetExternalExecutionConfigAccount sets the "externalExecutionConfig" account. +func (inst *Execute) SetExternalExecutionConfigAccount(externalExecutionConfig ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[3] = ag_solanago.Meta(externalExecutionConfig) + return inst +} + +// GetExternalExecutionConfigAccount gets the "externalExecutionConfig" account. +func (inst *Execute) GetExternalExecutionConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *Execute) SetAuthorityAccount(authority ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[4] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *Execute) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[4] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *Execute) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[5] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *Execute) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[5] +} + +// SetSysvarInstructionsAccount sets the "sysvarInstructions" account. +func (inst *Execute) SetSysvarInstructionsAccount(sysvarInstructions ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[6] = ag_solanago.Meta(sysvarInstructions) + return inst +} + +// GetSysvarInstructionsAccount gets the "sysvarInstructions" account. +func (inst *Execute) GetSysvarInstructionsAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[6] +} + +// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. +func (inst *Execute) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *Execute { + inst.AccountMetaSlice[7] = ag_solanago.Meta(tokenPoolsSigner) + return inst +} + +// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. +func (inst *Execute) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[7] +} + +func (inst Execute) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_Execute, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst Execute) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *Execute) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.ExecutionReport == nil { + return errors.New("ExecutionReport parameter is not set") + } + if inst.ReportContext == nil { + return errors.New("ReportContext parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.ChainState is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.CommitReport is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.ExternalExecutionConfig is not set") + } + if inst.AccountMetaSlice[4] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[5] == nil { + return errors.New("accounts.SystemProgram is not set") + } + if inst.AccountMetaSlice[6] == nil { + return errors.New("accounts.SysvarInstructions is not set") + } + if inst.AccountMetaSlice[7] == nil { + return errors.New("accounts.TokenPoolsSigner is not set") + } + } + return nil +} + +func (inst *Execute) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("Execute")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("ExecutionReport", *inst.ExecutionReport)) + paramsBranch.Child(ag_format.Param(" ReportContext", *inst.ReportContext)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=8]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" commitReport", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta("externalExecutionConfig", inst.AccountMetaSlice[3])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[4])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[5])) + accountsBranch.Child(ag_format.Meta(" sysvarInstructions", inst.AccountMetaSlice[6])) + accountsBranch.Child(ag_format.Meta(" tokenPoolsSigner", inst.AccountMetaSlice[7])) + }) + }) + }) +} + +func (obj Execute) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `ExecutionReport` param: + err = encoder.Encode(obj.ExecutionReport) + if err != nil { + return err + } + // Serialize `ReportContext` param: + err = encoder.Encode(obj.ReportContext) + if err != nil { + return err + } + return nil +} +func (obj *Execute) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `ExecutionReport`: + err = decoder.Decode(&obj.ExecutionReport) + if err != nil { + return err + } + // Deserialize `ReportContext`: + err = decoder.Decode(&obj.ReportContext) + if err != nil { + return err + } + return nil +} + +// NewExecuteInstruction declares a new Execute instruction with the provided parameters and accounts. +func NewExecuteInstruction( + // Parameters: + executionReport ExecutionReportSingleChain, + reportContext [3][32]uint8, + // Accounts: + config ag_solanago.PublicKey, + chainState ag_solanago.PublicKey, + commitReport ag_solanago.PublicKey, + externalExecutionConfig ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey, + sysvarInstructions ag_solanago.PublicKey, + tokenPoolsSigner ag_solanago.PublicKey) *Execute { + return NewExecuteInstructionBuilder(). + SetExecutionReport(executionReport). + SetReportContext(reportContext). + SetConfigAccount(config). + SetChainStateAccount(chainState). + SetCommitReportAccount(commitReport). + SetExternalExecutionConfigAccount(externalExecutionConfig). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram). + SetSysvarInstructionsAccount(sysvarInstructions). + SetTokenPoolsSignerAccount(tokenPoolsSigner) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go new file mode 100644 index 00000000000..5c0f4d7b7ff --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_Execute(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("Execute"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(Execute) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(Execute) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go b/core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go new file mode 100644 index 00000000000..ed65234f3e7 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go @@ -0,0 +1,310 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The initialization is responsibility of Admin, nothing more than calling this method should be done first. +type Initialize struct { + SolanaChainSelector *uint64 + DefaultGasLimit *ag_binary.Uint128 + DefaultAllowOutOfOrderExecution *bool + EnableExecutionAfter *int64 + + // [0] = [WRITE] config + // + // [1] = [WRITE, SIGNER] authority + // + // [2] = [] systemProgram + // + // [3] = [] program + // + // [4] = [] programData + // + // [5] = [WRITE] externalExecutionConfig + // + // [6] = [WRITE] tokenPoolsSigner + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewInitializeInstructionBuilder creates a new `Initialize` instruction builder. +func NewInitializeInstructionBuilder() *Initialize { + nd := &Initialize{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 7), + } + return nd +} + +// SetSolanaChainSelector sets the "solanaChainSelector" parameter. +func (inst *Initialize) SetSolanaChainSelector(solanaChainSelector uint64) *Initialize { + inst.SolanaChainSelector = &solanaChainSelector + return inst +} + +// SetDefaultGasLimit sets the "defaultGasLimit" parameter. +func (inst *Initialize) SetDefaultGasLimit(defaultGasLimit ag_binary.Uint128) *Initialize { + inst.DefaultGasLimit = &defaultGasLimit + return inst +} + +// SetDefaultAllowOutOfOrderExecution sets the "defaultAllowOutOfOrderExecution" parameter. +func (inst *Initialize) SetDefaultAllowOutOfOrderExecution(defaultAllowOutOfOrderExecution bool) *Initialize { + inst.DefaultAllowOutOfOrderExecution = &defaultAllowOutOfOrderExecution + return inst +} + +// SetEnableExecutionAfter sets the "enableExecutionAfter" parameter. +func (inst *Initialize) SetEnableExecutionAfter(enableExecutionAfter int64) *Initialize { + inst.EnableExecutionAfter = &enableExecutionAfter + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *Initialize) SetConfigAccount(config ag_solanago.PublicKey) *Initialize { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *Initialize) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *Initialize) SetAuthorityAccount(authority ag_solanago.PublicKey) *Initialize { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *Initialize) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *Initialize) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *Initialize { + inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *Initialize) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetProgramAccount sets the "program" account. +func (inst *Initialize) SetProgramAccount(program ag_solanago.PublicKey) *Initialize { + inst.AccountMetaSlice[3] = ag_solanago.Meta(program) + return inst +} + +// GetProgramAccount gets the "program" account. +func (inst *Initialize) GetProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +// SetProgramDataAccount sets the "programData" account. +func (inst *Initialize) SetProgramDataAccount(programData ag_solanago.PublicKey) *Initialize { + inst.AccountMetaSlice[4] = ag_solanago.Meta(programData) + return inst +} + +// GetProgramDataAccount gets the "programData" account. +func (inst *Initialize) GetProgramDataAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[4] +} + +// SetExternalExecutionConfigAccount sets the "externalExecutionConfig" account. +func (inst *Initialize) SetExternalExecutionConfigAccount(externalExecutionConfig ag_solanago.PublicKey) *Initialize { + inst.AccountMetaSlice[5] = ag_solanago.Meta(externalExecutionConfig).WRITE() + return inst +} + +// GetExternalExecutionConfigAccount gets the "externalExecutionConfig" account. +func (inst *Initialize) GetExternalExecutionConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[5] +} + +// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. +func (inst *Initialize) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *Initialize { + inst.AccountMetaSlice[6] = ag_solanago.Meta(tokenPoolsSigner).WRITE() + return inst +} + +// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. +func (inst *Initialize) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[6] +} + +func (inst Initialize) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_Initialize, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst Initialize) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *Initialize) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.SolanaChainSelector == nil { + return errors.New("SolanaChainSelector parameter is not set") + } + if inst.DefaultGasLimit == nil { + return errors.New("DefaultGasLimit parameter is not set") + } + if inst.DefaultAllowOutOfOrderExecution == nil { + return errors.New("DefaultAllowOutOfOrderExecution parameter is not set") + } + if inst.EnableExecutionAfter == nil { + return errors.New("EnableExecutionAfter parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.SystemProgram is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.Program is not set") + } + if inst.AccountMetaSlice[4] == nil { + return errors.New("accounts.ProgramData is not set") + } + if inst.AccountMetaSlice[5] == nil { + return errors.New("accounts.ExternalExecutionConfig is not set") + } + if inst.AccountMetaSlice[6] == nil { + return errors.New("accounts.TokenPoolsSigner is not set") + } + } + return nil +} + +func (inst *Initialize) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("Initialize")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=4]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param(" SolanaChainSelector", *inst.SolanaChainSelector)) + paramsBranch.Child(ag_format.Param(" DefaultGasLimit", *inst.DefaultGasLimit)) + paramsBranch.Child(ag_format.Param("DefaultAllowOutOfOrderExecution", *inst.DefaultAllowOutOfOrderExecution)) + paramsBranch.Child(ag_format.Param(" EnableExecutionAfter", *inst.EnableExecutionAfter)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=7]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta(" program", inst.AccountMetaSlice[3])) + accountsBranch.Child(ag_format.Meta(" programData", inst.AccountMetaSlice[4])) + accountsBranch.Child(ag_format.Meta("externalExecutionConfig", inst.AccountMetaSlice[5])) + accountsBranch.Child(ag_format.Meta(" tokenPoolsSigner", inst.AccountMetaSlice[6])) + }) + }) + }) +} + +func (obj Initialize) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `SolanaChainSelector` param: + err = encoder.Encode(obj.SolanaChainSelector) + if err != nil { + return err + } + // Serialize `DefaultGasLimit` param: + err = encoder.Encode(obj.DefaultGasLimit) + if err != nil { + return err + } + // Serialize `DefaultAllowOutOfOrderExecution` param: + err = encoder.Encode(obj.DefaultAllowOutOfOrderExecution) + if err != nil { + return err + } + // Serialize `EnableExecutionAfter` param: + err = encoder.Encode(obj.EnableExecutionAfter) + if err != nil { + return err + } + return nil +} +func (obj *Initialize) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `SolanaChainSelector`: + err = decoder.Decode(&obj.SolanaChainSelector) + if err != nil { + return err + } + // Deserialize `DefaultGasLimit`: + err = decoder.Decode(&obj.DefaultGasLimit) + if err != nil { + return err + } + // Deserialize `DefaultAllowOutOfOrderExecution`: + err = decoder.Decode(&obj.DefaultAllowOutOfOrderExecution) + if err != nil { + return err + } + // Deserialize `EnableExecutionAfter`: + err = decoder.Decode(&obj.EnableExecutionAfter) + if err != nil { + return err + } + return nil +} + +// NewInitializeInstruction declares a new Initialize instruction with the provided parameters and accounts. +func NewInitializeInstruction( + // Parameters: + solanaChainSelector uint64, + defaultGasLimit ag_binary.Uint128, + defaultAllowOutOfOrderExecution bool, + enableExecutionAfter int64, + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey, + program ag_solanago.PublicKey, + programData ag_solanago.PublicKey, + externalExecutionConfig ag_solanago.PublicKey, + tokenPoolsSigner ag_solanago.PublicKey) *Initialize { + return NewInitializeInstructionBuilder(). + SetSolanaChainSelector(solanaChainSelector). + SetDefaultGasLimit(defaultGasLimit). + SetDefaultAllowOutOfOrderExecution(defaultAllowOutOfOrderExecution). + SetEnableExecutionAfter(enableExecutionAfter). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram). + SetProgramAccount(program). + SetProgramDataAccount(programData). + SetExternalExecutionConfigAccount(externalExecutionConfig). + SetTokenPoolsSignerAccount(tokenPoolsSigner) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go new file mode 100644 index 00000000000..51eed3384b8 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_Initialize(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("Initialize"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(Initialize) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(Initialize) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go b/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go new file mode 100644 index 00000000000..7ec00306a8f --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go @@ -0,0 +1,261 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// When a message is not being executed, then the user can trigger the execution manually. +// No verification over the transmitter, but the message needs to be in some commit report. +type ManuallyExecute struct { + ExecutionReport *ExecutionReportSingleChain + + // [0] = [] config + // + // [1] = [] chainState + // + // [2] = [WRITE] commitReport + // + // [3] = [] externalExecutionConfig + // + // [4] = [WRITE, SIGNER] authority + // + // [5] = [] systemProgram + // + // [6] = [] sysvarInstructions + // + // [7] = [] tokenPoolsSigner + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewManuallyExecuteInstructionBuilder creates a new `ManuallyExecute` instruction builder. +func NewManuallyExecuteInstructionBuilder() *ManuallyExecute { + nd := &ManuallyExecute{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 8), + } + return nd +} + +// SetExecutionReport sets the "executionReport" parameter. +func (inst *ManuallyExecute) SetExecutionReport(executionReport ExecutionReportSingleChain) *ManuallyExecute { + inst.ExecutionReport = &executionReport + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *ManuallyExecute) SetConfigAccount(config ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *ManuallyExecute) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetChainStateAccount sets the "chainState" account. +func (inst *ManuallyExecute) SetChainStateAccount(chainState ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState) + return inst +} + +// GetChainStateAccount gets the "chainState" account. +func (inst *ManuallyExecute) GetChainStateAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetCommitReportAccount sets the "commitReport" account. +func (inst *ManuallyExecute) SetCommitReportAccount(commitReport ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[2] = ag_solanago.Meta(commitReport).WRITE() + return inst +} + +// GetCommitReportAccount gets the "commitReport" account. +func (inst *ManuallyExecute) GetCommitReportAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetExternalExecutionConfigAccount sets the "externalExecutionConfig" account. +func (inst *ManuallyExecute) SetExternalExecutionConfigAccount(externalExecutionConfig ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[3] = ag_solanago.Meta(externalExecutionConfig) + return inst +} + +// GetExternalExecutionConfigAccount gets the "externalExecutionConfig" account. +func (inst *ManuallyExecute) GetExternalExecutionConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *ManuallyExecute) SetAuthorityAccount(authority ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[4] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *ManuallyExecute) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[4] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *ManuallyExecute) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[5] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *ManuallyExecute) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[5] +} + +// SetSysvarInstructionsAccount sets the "sysvarInstructions" account. +func (inst *ManuallyExecute) SetSysvarInstructionsAccount(sysvarInstructions ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[6] = ag_solanago.Meta(sysvarInstructions) + return inst +} + +// GetSysvarInstructionsAccount gets the "sysvarInstructions" account. +func (inst *ManuallyExecute) GetSysvarInstructionsAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[6] +} + +// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. +func (inst *ManuallyExecute) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *ManuallyExecute { + inst.AccountMetaSlice[7] = ag_solanago.Meta(tokenPoolsSigner) + return inst +} + +// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. +func (inst *ManuallyExecute) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[7] +} + +func (inst ManuallyExecute) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_ManuallyExecute, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst ManuallyExecute) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *ManuallyExecute) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.ExecutionReport == nil { + return errors.New("ExecutionReport parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.ChainState is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.CommitReport is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.ExternalExecutionConfig is not set") + } + if inst.AccountMetaSlice[4] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[5] == nil { + return errors.New("accounts.SystemProgram is not set") + } + if inst.AccountMetaSlice[6] == nil { + return errors.New("accounts.SysvarInstructions is not set") + } + if inst.AccountMetaSlice[7] == nil { + return errors.New("accounts.TokenPoolsSigner is not set") + } + } + return nil +} + +func (inst *ManuallyExecute) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("ManuallyExecute")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("ExecutionReport", *inst.ExecutionReport)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=8]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" commitReport", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta("externalExecutionConfig", inst.AccountMetaSlice[3])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[4])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[5])) + accountsBranch.Child(ag_format.Meta(" sysvarInstructions", inst.AccountMetaSlice[6])) + accountsBranch.Child(ag_format.Meta(" tokenPoolsSigner", inst.AccountMetaSlice[7])) + }) + }) + }) +} + +func (obj ManuallyExecute) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `ExecutionReport` param: + err = encoder.Encode(obj.ExecutionReport) + if err != nil { + return err + } + return nil +} +func (obj *ManuallyExecute) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `ExecutionReport`: + err = decoder.Decode(&obj.ExecutionReport) + if err != nil { + return err + } + return nil +} + +// NewManuallyExecuteInstruction declares a new ManuallyExecute instruction with the provided parameters and accounts. +func NewManuallyExecuteInstruction( + // Parameters: + executionReport ExecutionReportSingleChain, + // Accounts: + config ag_solanago.PublicKey, + chainState ag_solanago.PublicKey, + commitReport ag_solanago.PublicKey, + externalExecutionConfig ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey, + sysvarInstructions ag_solanago.PublicKey, + tokenPoolsSigner ag_solanago.PublicKey) *ManuallyExecute { + return NewManuallyExecuteInstructionBuilder(). + SetExecutionReport(executionReport). + SetConfigAccount(config). + SetChainStateAccount(chainState). + SetCommitReportAccount(commitReport). + SetExternalExecutionConfigAccount(externalExecutionConfig). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram). + SetSysvarInstructionsAccount(sysvarInstructions). + SetTokenPoolsSignerAccount(tokenPoolsSigner) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go new file mode 100644 index 00000000000..38f8fe33c61 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_ManuallyExecute(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("ManuallyExecute"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(ManuallyExecute) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(ManuallyExecute) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go new file mode 100644 index 00000000000..20ed495cdb4 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go @@ -0,0 +1,207 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The CCIP Admin or the Mint Authority of the Token can register the Token Admin Registry +type RegisterTokenAdminRegistryViaGetCcipAdmin struct { + Mint *ag_solanago.PublicKey + TokenAdminRegistryAdmin *ag_solanago.PublicKey + + // [0] = [] config + // + // [1] = [WRITE] tokenAdminRegistry + // + // [2] = [WRITE, SIGNER] authority + // + // [3] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewRegisterTokenAdminRegistryViaGetCcipAdminInstructionBuilder creates a new `RegisterTokenAdminRegistryViaGetCcipAdmin` instruction builder. +func NewRegisterTokenAdminRegistryViaGetCcipAdminInstructionBuilder() *RegisterTokenAdminRegistryViaGetCcipAdmin { + nd := &RegisterTokenAdminRegistryViaGetCcipAdmin{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), + } + return nd +} + +// SetMint sets the "mint" parameter. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetMint(mint ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { + inst.Mint = &mint + return inst +} + +// SetTokenAdminRegistryAdmin sets the "tokenAdminRegistryAdmin" parameter. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetTokenAdminRegistryAdmin(tokenAdminRegistryAdmin ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { + inst.TokenAdminRegistryAdmin = &tokenAdminRegistryAdmin + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetConfigAccount(config ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { + inst.AccountMetaSlice[1] = ag_solanago.Meta(tokenAdminRegistry).WRITE() + return inst +} + +// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetAuthorityAccount(authority ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { + inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { + inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +func (inst RegisterTokenAdminRegistryViaGetCcipAdmin) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_RegisterTokenAdminRegistryViaGetCcipAdmin, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst RegisterTokenAdminRegistryViaGetCcipAdmin) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.Mint == nil { + return errors.New("Mint parameter is not set") + } + if inst.TokenAdminRegistryAdmin == nil { + return errors.New("TokenAdminRegistryAdmin parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.TokenAdminRegistry is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("RegisterTokenAdminRegistryViaGetCcipAdmin")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) + paramsBranch.Child(ag_format.Param("TokenAdminRegistryAdmin", *inst.TokenAdminRegistryAdmin)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[3])) + }) + }) + }) +} + +func (obj RegisterTokenAdminRegistryViaGetCcipAdmin) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Mint` param: + err = encoder.Encode(obj.Mint) + if err != nil { + return err + } + // Serialize `TokenAdminRegistryAdmin` param: + err = encoder.Encode(obj.TokenAdminRegistryAdmin) + if err != nil { + return err + } + return nil +} +func (obj *RegisterTokenAdminRegistryViaGetCcipAdmin) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Mint`: + err = decoder.Decode(&obj.Mint) + if err != nil { + return err + } + // Deserialize `TokenAdminRegistryAdmin`: + err = decoder.Decode(&obj.TokenAdminRegistryAdmin) + if err != nil { + return err + } + return nil +} + +// NewRegisterTokenAdminRegistryViaGetCcipAdminInstruction declares a new RegisterTokenAdminRegistryViaGetCcipAdmin instruction with the provided parameters and accounts. +func NewRegisterTokenAdminRegistryViaGetCcipAdminInstruction( + // Parameters: + mint ag_solanago.PublicKey, + tokenAdminRegistryAdmin ag_solanago.PublicKey, + // Accounts: + config ag_solanago.PublicKey, + tokenAdminRegistry ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { + return NewRegisterTokenAdminRegistryViaGetCcipAdminInstructionBuilder(). + SetMint(mint). + SetTokenAdminRegistryAdmin(tokenAdminRegistryAdmin). + SetConfigAccount(config). + SetTokenAdminRegistryAccount(tokenAdminRegistry). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go new file mode 100644 index 00000000000..29a2c212a49 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_RegisterTokenAdminRegistryViaGetCcipAdmin(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("RegisterTokenAdminRegistryViaGetCcipAdmin"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(RegisterTokenAdminRegistryViaGetCcipAdmin) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(RegisterTokenAdminRegistryViaGetCcipAdmin) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go new file mode 100644 index 00000000000..eb79b822606 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go @@ -0,0 +1,155 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Token's mint_authority can register themselves to the Token Admin Registry +type RegisterTokenAdminRegistryViaOwner struct { + + // [0] = [WRITE] tokenAdminRegistry + // + // [1] = [WRITE] mint + // + // [2] = [WRITE, SIGNER] authority + // + // [3] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewRegisterTokenAdminRegistryViaOwnerInstructionBuilder creates a new `RegisterTokenAdminRegistryViaOwner` instruction builder. +func NewRegisterTokenAdminRegistryViaOwnerInstructionBuilder() *RegisterTokenAdminRegistryViaOwner { + nd := &RegisterTokenAdminRegistryViaOwner{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), + } + return nd +} + +// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. +func (inst *RegisterTokenAdminRegistryViaOwner) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { + inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() + return inst +} + +// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. +func (inst *RegisterTokenAdminRegistryViaOwner) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetMintAccount sets the "mint" account. +func (inst *RegisterTokenAdminRegistryViaOwner) SetMintAccount(mint ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { + inst.AccountMetaSlice[1] = ag_solanago.Meta(mint).WRITE() + return inst +} + +// GetMintAccount gets the "mint" account. +func (inst *RegisterTokenAdminRegistryViaOwner) GetMintAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *RegisterTokenAdminRegistryViaOwner) SetAuthorityAccount(authority ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { + inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *RegisterTokenAdminRegistryViaOwner) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *RegisterTokenAdminRegistryViaOwner) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { + inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *RegisterTokenAdminRegistryViaOwner) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +func (inst RegisterTokenAdminRegistryViaOwner) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_RegisterTokenAdminRegistryViaOwner, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst RegisterTokenAdminRegistryViaOwner) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *RegisterTokenAdminRegistryViaOwner) Validate() error { + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.TokenAdminRegistry is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Mint is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *RegisterTokenAdminRegistryViaOwner) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("RegisterTokenAdminRegistryViaOwner")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=0]").ParentFunc(func(paramsBranch ag_treeout.Branches) {}) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" mint", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[3])) + }) + }) + }) +} + +func (obj RegisterTokenAdminRegistryViaOwner) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + return nil +} +func (obj *RegisterTokenAdminRegistryViaOwner) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + return nil +} + +// NewRegisterTokenAdminRegistryViaOwnerInstruction declares a new RegisterTokenAdminRegistryViaOwner instruction with the provided parameters and accounts. +func NewRegisterTokenAdminRegistryViaOwnerInstruction( + // Accounts: + tokenAdminRegistry ag_solanago.PublicKey, + mint ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { + return NewRegisterTokenAdminRegistryViaOwnerInstructionBuilder(). + SetTokenAdminRegistryAccount(tokenAdminRegistry). + SetMintAccount(mint). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go new file mode 100644 index 00000000000..ea293f88b2e --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_RegisterTokenAdminRegistryViaOwner(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("RegisterTokenAdminRegistryViaOwner"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(RegisterTokenAdminRegistryViaOwner) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(RegisterTokenAdminRegistryViaOwner) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go new file mode 100644 index 00000000000..3a6420a6980 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go @@ -0,0 +1,215 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// SetOcrConfig is the `setOcrConfig` instruction. +type SetOcrConfig struct { + PluginType *uint8 + ConfigInfo *Ocr3ConfigInfo + Signers *[][20]uint8 + Transmitters *[]ag_solanago.PublicKey + + // [0] = [WRITE] config + // + // [1] = [SIGNER] authority + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewSetOcrConfigInstructionBuilder creates a new `SetOcrConfig` instruction builder. +func NewSetOcrConfigInstructionBuilder() *SetOcrConfig { + nd := &SetOcrConfig{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), + } + return nd +} + +// SetPluginType sets the "pluginType" parameter. +func (inst *SetOcrConfig) SetPluginType(pluginType uint8) *SetOcrConfig { + inst.PluginType = &pluginType + return inst +} + +// SetConfigInfo sets the "configInfo" parameter. +func (inst *SetOcrConfig) SetConfigInfo(configInfo Ocr3ConfigInfo) *SetOcrConfig { + inst.ConfigInfo = &configInfo + return inst +} + +// SetSigners sets the "signers" parameter. +func (inst *SetOcrConfig) SetSigners(signers [][20]uint8) *SetOcrConfig { + inst.Signers = &signers + return inst +} + +// SetTransmitters sets the "transmitters" parameter. +func (inst *SetOcrConfig) SetTransmitters(transmitters []ag_solanago.PublicKey) *SetOcrConfig { + inst.Transmitters = &transmitters + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *SetOcrConfig) SetConfigAccount(config ag_solanago.PublicKey) *SetOcrConfig { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *SetOcrConfig) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *SetOcrConfig) SetAuthorityAccount(authority ag_solanago.PublicKey) *SetOcrConfig { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *SetOcrConfig) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +func (inst SetOcrConfig) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_SetOcrConfig, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst SetOcrConfig) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *SetOcrConfig) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.PluginType == nil { + return errors.New("PluginType parameter is not set") + } + if inst.ConfigInfo == nil { + return errors.New("ConfigInfo parameter is not set") + } + if inst.Signers == nil { + return errors.New("Signers parameter is not set") + } + if inst.Transmitters == nil { + return errors.New("Transmitters parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + } + return nil +} + +func (inst *SetOcrConfig) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("SetOcrConfig")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=4]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param(" PluginType", *inst.PluginType)) + paramsBranch.Child(ag_format.Param(" ConfigInfo", *inst.ConfigInfo)) + paramsBranch.Child(ag_format.Param(" Signers", *inst.Signers)) + paramsBranch.Child(ag_format.Param("Transmitters", *inst.Transmitters)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1])) + }) + }) + }) +} + +func (obj SetOcrConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `PluginType` param: + err = encoder.Encode(obj.PluginType) + if err != nil { + return err + } + // Serialize `ConfigInfo` param: + err = encoder.Encode(obj.ConfigInfo) + if err != nil { + return err + } + // Serialize `Signers` param: + err = encoder.Encode(obj.Signers) + if err != nil { + return err + } + // Serialize `Transmitters` param: + err = encoder.Encode(obj.Transmitters) + if err != nil { + return err + } + return nil +} +func (obj *SetOcrConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `PluginType`: + err = decoder.Decode(&obj.PluginType) + if err != nil { + return err + } + // Deserialize `ConfigInfo`: + err = decoder.Decode(&obj.ConfigInfo) + if err != nil { + return err + } + // Deserialize `Signers`: + err = decoder.Decode(&obj.Signers) + if err != nil { + return err + } + // Deserialize `Transmitters`: + err = decoder.Decode(&obj.Transmitters) + if err != nil { + return err + } + return nil +} + +// NewSetOcrConfigInstruction declares a new SetOcrConfig instruction with the provided parameters and accounts. +func NewSetOcrConfigInstruction( + // Parameters: + pluginType uint8, + configInfo Ocr3ConfigInfo, + signers [][20]uint8, + transmitters []ag_solanago.PublicKey, + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey) *SetOcrConfig { + return NewSetOcrConfigInstructionBuilder(). + SetPluginType(pluginType). + SetConfigInfo(configInfo). + SetSigners(signers). + SetTransmitters(transmitters). + SetConfigAccount(config). + SetAuthorityAccount(authority) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go new file mode 100644 index 00000000000..88528fc48ea --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_SetOcrConfig(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("SetOcrConfig"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(SetOcrConfig) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(SetOcrConfig) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go new file mode 100644 index 00000000000..69cdc9ba5e1 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go @@ -0,0 +1,169 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The administrator of the token can setup the token pool +type SetPool struct { + Mint *ag_solanago.PublicKey + PoolLookupTable *ag_solanago.PublicKey + + // [0] = [WRITE] tokenAdminRegistry + // + // [1] = [WRITE, SIGNER] authority + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewSetPoolInstructionBuilder creates a new `SetPool` instruction builder. +func NewSetPoolInstructionBuilder() *SetPool { + nd := &SetPool{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), + } + return nd +} + +// SetMint sets the "mint" parameter. +func (inst *SetPool) SetMint(mint ag_solanago.PublicKey) *SetPool { + inst.Mint = &mint + return inst +} + +// SetPoolLookupTable sets the "poolLookupTable" parameter. +func (inst *SetPool) SetPoolLookupTable(poolLookupTable ag_solanago.PublicKey) *SetPool { + inst.PoolLookupTable = &poolLookupTable + return inst +} + +// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. +func (inst *SetPool) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *SetPool { + inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() + return inst +} + +// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. +func (inst *SetPool) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *SetPool) SetAuthorityAccount(authority ag_solanago.PublicKey) *SetPool { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *SetPool) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +func (inst SetPool) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_SetPool, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst SetPool) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *SetPool) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.Mint == nil { + return errors.New("Mint parameter is not set") + } + if inst.PoolLookupTable == nil { + return errors.New("PoolLookupTable parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.TokenAdminRegistry is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + } + return nil +} + +func (inst *SetPool) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("SetPool")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) + paramsBranch.Child(ag_format.Param("PoolLookupTable", *inst.PoolLookupTable)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + }) + }) + }) +} + +func (obj SetPool) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Mint` param: + err = encoder.Encode(obj.Mint) + if err != nil { + return err + } + // Serialize `PoolLookupTable` param: + err = encoder.Encode(obj.PoolLookupTable) + if err != nil { + return err + } + return nil +} +func (obj *SetPool) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Mint`: + err = decoder.Decode(&obj.Mint) + if err != nil { + return err + } + // Deserialize `PoolLookupTable`: + err = decoder.Decode(&obj.PoolLookupTable) + if err != nil { + return err + } + return nil +} + +// NewSetPoolInstruction declares a new SetPool instruction with the provided parameters and accounts. +func NewSetPoolInstruction( + // Parameters: + mint ag_solanago.PublicKey, + poolLookupTable ag_solanago.PublicKey, + // Accounts: + tokenAdminRegistry ag_solanago.PublicKey, + authority ag_solanago.PublicKey) *SetPool { + return NewSetPoolInstructionBuilder(). + SetMint(mint). + SetPoolLookupTable(poolLookupTable). + SetTokenAdminRegistryAccount(tokenAdminRegistry). + SetAuthorityAccount(authority) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go new file mode 100644 index 00000000000..249513a25ba --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_SetPool(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("SetPool"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(SetPool) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(SetPool) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go new file mode 100644 index 00000000000..41f1bcd34a5 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go @@ -0,0 +1,230 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// SetTokenBilling is the `setTokenBilling` instruction. +type SetTokenBilling struct { + ChainSelector *uint64 + Mint *ag_solanago.PublicKey + Cfg *TokenBilling + + // [0] = [] config + // + // [1] = [WRITE] perChainPerTokenConfig + // + // [2] = [WRITE, SIGNER] authority + // + // [3] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewSetTokenBillingInstructionBuilder creates a new `SetTokenBilling` instruction builder. +func NewSetTokenBillingInstructionBuilder() *SetTokenBilling { + nd := &SetTokenBilling{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), + } + return nd +} + +// SetChainSelector sets the "chainSelector" parameter. +func (inst *SetTokenBilling) SetChainSelector(chainSelector uint64) *SetTokenBilling { + inst.ChainSelector = &chainSelector + return inst +} + +// SetMint sets the "mint" parameter. +func (inst *SetTokenBilling) SetMint(mint ag_solanago.PublicKey) *SetTokenBilling { + inst.Mint = &mint + return inst +} + +// SetCfg sets the "cfg" parameter. +func (inst *SetTokenBilling) SetCfg(cfg TokenBilling) *SetTokenBilling { + inst.Cfg = &cfg + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *SetTokenBilling) SetConfigAccount(config ag_solanago.PublicKey) *SetTokenBilling { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config) + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *SetTokenBilling) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetPerChainPerTokenConfigAccount sets the "perChainPerTokenConfig" account. +func (inst *SetTokenBilling) SetPerChainPerTokenConfigAccount(perChainPerTokenConfig ag_solanago.PublicKey) *SetTokenBilling { + inst.AccountMetaSlice[1] = ag_solanago.Meta(perChainPerTokenConfig).WRITE() + return inst +} + +// GetPerChainPerTokenConfigAccount gets the "perChainPerTokenConfig" account. +func (inst *SetTokenBilling) GetPerChainPerTokenConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *SetTokenBilling) SetAuthorityAccount(authority ag_solanago.PublicKey) *SetTokenBilling { + inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *SetTokenBilling) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *SetTokenBilling) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *SetTokenBilling { + inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *SetTokenBilling) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[3] +} + +func (inst SetTokenBilling) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_SetTokenBilling, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst SetTokenBilling) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *SetTokenBilling) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.ChainSelector == nil { + return errors.New("ChainSelector parameter is not set") + } + if inst.Mint == nil { + return errors.New("Mint parameter is not set") + } + if inst.Cfg == nil { + return errors.New("Cfg parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.PerChainPerTokenConfig is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[3] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *SetTokenBilling) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("SetTokenBilling")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=3]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("ChainSelector", *inst.ChainSelector)) + paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) + paramsBranch.Child(ag_format.Param(" Cfg", *inst.Cfg)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta("perChainPerTokenConfig", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) + accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[3])) + }) + }) + }) +} + +func (obj SetTokenBilling) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `ChainSelector` param: + err = encoder.Encode(obj.ChainSelector) + if err != nil { + return err + } + // Serialize `Mint` param: + err = encoder.Encode(obj.Mint) + if err != nil { + return err + } + // Serialize `Cfg` param: + err = encoder.Encode(obj.Cfg) + if err != nil { + return err + } + return nil +} +func (obj *SetTokenBilling) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `ChainSelector`: + err = decoder.Decode(&obj.ChainSelector) + if err != nil { + return err + } + // Deserialize `Mint`: + err = decoder.Decode(&obj.Mint) + if err != nil { + return err + } + // Deserialize `Cfg`: + err = decoder.Decode(&obj.Cfg) + if err != nil { + return err + } + return nil +} + +// NewSetTokenBillingInstruction declares a new SetTokenBilling instruction with the provided parameters and accounts. +func NewSetTokenBillingInstruction( + // Parameters: + chainSelector uint64, + mint ag_solanago.PublicKey, + cfg TokenBilling, + // Accounts: + config ag_solanago.PublicKey, + perChainPerTokenConfig ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *SetTokenBilling { + return NewSetTokenBillingInstructionBuilder(). + SetChainSelector(chainSelector). + SetMint(mint). + SetCfg(cfg). + SetConfigAccount(config). + SetPerChainPerTokenConfigAccount(perChainPerTokenConfig). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go new file mode 100644 index 00000000000..aff9d60f3d3 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_SetTokenBilling(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("SetTokenBilling"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(SetTokenBilling) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(SetTokenBilling) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go new file mode 100644 index 00000000000..269a086456d --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go @@ -0,0 +1,169 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin can transfer the Admin Role of the Token Admin Registry +type TransferAdminRoleTokenAdminRegistry struct { + Mint *ag_solanago.PublicKey + NewAdmin *ag_solanago.PublicKey + + // [0] = [WRITE] tokenAdminRegistry + // + // [1] = [WRITE, SIGNER] authority + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewTransferAdminRoleTokenAdminRegistryInstructionBuilder creates a new `TransferAdminRoleTokenAdminRegistry` instruction builder. +func NewTransferAdminRoleTokenAdminRegistryInstructionBuilder() *TransferAdminRoleTokenAdminRegistry { + nd := &TransferAdminRoleTokenAdminRegistry{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), + } + return nd +} + +// SetMint sets the "mint" parameter. +func (inst *TransferAdminRoleTokenAdminRegistry) SetMint(mint ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { + inst.Mint = &mint + return inst +} + +// SetNewAdmin sets the "newAdmin" parameter. +func (inst *TransferAdminRoleTokenAdminRegistry) SetNewAdmin(newAdmin ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { + inst.NewAdmin = &newAdmin + return inst +} + +// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. +func (inst *TransferAdminRoleTokenAdminRegistry) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { + inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() + return inst +} + +// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. +func (inst *TransferAdminRoleTokenAdminRegistry) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *TransferAdminRoleTokenAdminRegistry) SetAuthorityAccount(authority ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *TransferAdminRoleTokenAdminRegistry) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +func (inst TransferAdminRoleTokenAdminRegistry) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_TransferAdminRoleTokenAdminRegistry, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst TransferAdminRoleTokenAdminRegistry) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *TransferAdminRoleTokenAdminRegistry) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.Mint == nil { + return errors.New("Mint parameter is not set") + } + if inst.NewAdmin == nil { + return errors.New("NewAdmin parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.TokenAdminRegistry is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + } + return nil +} + +func (inst *TransferAdminRoleTokenAdminRegistry) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("TransferAdminRoleTokenAdminRegistry")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) + paramsBranch.Child(ag_format.Param("NewAdmin", *inst.NewAdmin)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + }) + }) + }) +} + +func (obj TransferAdminRoleTokenAdminRegistry) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Mint` param: + err = encoder.Encode(obj.Mint) + if err != nil { + return err + } + // Serialize `NewAdmin` param: + err = encoder.Encode(obj.NewAdmin) + if err != nil { + return err + } + return nil +} +func (obj *TransferAdminRoleTokenAdminRegistry) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Mint`: + err = decoder.Decode(&obj.Mint) + if err != nil { + return err + } + // Deserialize `NewAdmin`: + err = decoder.Decode(&obj.NewAdmin) + if err != nil { + return err + } + return nil +} + +// NewTransferAdminRoleTokenAdminRegistryInstruction declares a new TransferAdminRoleTokenAdminRegistry instruction with the provided parameters and accounts. +func NewTransferAdminRoleTokenAdminRegistryInstruction( + // Parameters: + mint ag_solanago.PublicKey, + newAdmin ag_solanago.PublicKey, + // Accounts: + tokenAdminRegistry ag_solanago.PublicKey, + authority ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { + return NewTransferAdminRoleTokenAdminRegistryInstructionBuilder(). + SetMint(mint). + SetNewAdmin(newAdmin). + SetTokenAdminRegistryAccount(tokenAdminRegistry). + SetAuthorityAccount(authority) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go new file mode 100644 index 00000000000..e52c1a9983e --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_TransferAdminRoleTokenAdminRegistry(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("TransferAdminRoleTokenAdminRegistry"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(TransferAdminRoleTokenAdminRegistry) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(TransferAdminRoleTokenAdminRegistry) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go new file mode 100644 index 00000000000..37a129be90c --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go @@ -0,0 +1,146 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// TransferOwnership is the `transferOwnership` instruction. +type TransferOwnership struct { + ProposedOwner *ag_solanago.PublicKey + + // [0] = [WRITE] config + // + // [1] = [SIGNER] authority + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewTransferOwnershipInstructionBuilder creates a new `TransferOwnership` instruction builder. +func NewTransferOwnershipInstructionBuilder() *TransferOwnership { + nd := &TransferOwnership{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), + } + return nd +} + +// SetProposedOwner sets the "proposedOwner" parameter. +func (inst *TransferOwnership) SetProposedOwner(proposedOwner ag_solanago.PublicKey) *TransferOwnership { + inst.ProposedOwner = &proposedOwner + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *TransferOwnership) SetConfigAccount(config ag_solanago.PublicKey) *TransferOwnership { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *TransferOwnership) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *TransferOwnership) SetAuthorityAccount(authority ag_solanago.PublicKey) *TransferOwnership { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *TransferOwnership) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +func (inst TransferOwnership) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_TransferOwnership, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst TransferOwnership) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *TransferOwnership) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.ProposedOwner == nil { + return errors.New("ProposedOwner parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + } + return nil +} + +func (inst *TransferOwnership) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("TransferOwnership")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("ProposedOwner", *inst.ProposedOwner)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1])) + }) + }) + }) +} + +func (obj TransferOwnership) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `ProposedOwner` param: + err = encoder.Encode(obj.ProposedOwner) + if err != nil { + return err + } + return nil +} +func (obj *TransferOwnership) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `ProposedOwner`: + err = decoder.Decode(&obj.ProposedOwner) + if err != nil { + return err + } + return nil +} + +// NewTransferOwnershipInstruction declares a new TransferOwnership instruction with the provided parameters and accounts. +func NewTransferOwnershipInstruction( + // Parameters: + proposedOwner ag_solanago.PublicKey, + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey) *TransferOwnership { + return NewTransferOwnershipInstructionBuilder(). + SetProposedOwner(proposedOwner). + SetConfigAccount(config). + SetAuthorityAccount(authority) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go new file mode 100644 index 00000000000..38ea4ea34f1 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_TransferOwnership(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("TransferOwnership"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(TransferOwnership) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(TransferOwnership) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go new file mode 100644 index 00000000000..87e10696877 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go @@ -0,0 +1,165 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin can update the configuration of the Router, in this case the Default Allow Out Of Order Execution (True/False) +type UpdateDefaultAllowOutOfOrderExecution struct { + NewAllowOutOfOrderExecution *bool + + // [0] = [WRITE] config + // + // [1] = [SIGNER] authority + // + // [2] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewUpdateDefaultAllowOutOfOrderExecutionInstructionBuilder creates a new `UpdateDefaultAllowOutOfOrderExecution` instruction builder. +func NewUpdateDefaultAllowOutOfOrderExecutionInstructionBuilder() *UpdateDefaultAllowOutOfOrderExecution { + nd := &UpdateDefaultAllowOutOfOrderExecution{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), + } + return nd +} + +// SetNewAllowOutOfOrderExecution sets the "newAllowOutOfOrderExecution" parameter. +func (inst *UpdateDefaultAllowOutOfOrderExecution) SetNewAllowOutOfOrderExecution(newAllowOutOfOrderExecution bool) *UpdateDefaultAllowOutOfOrderExecution { + inst.NewAllowOutOfOrderExecution = &newAllowOutOfOrderExecution + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *UpdateDefaultAllowOutOfOrderExecution) SetConfigAccount(config ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *UpdateDefaultAllowOutOfOrderExecution) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *UpdateDefaultAllowOutOfOrderExecution) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *UpdateDefaultAllowOutOfOrderExecution) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *UpdateDefaultAllowOutOfOrderExecution) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { + inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *UpdateDefaultAllowOutOfOrderExecution) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +func (inst UpdateDefaultAllowOutOfOrderExecution) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_UpdateDefaultAllowOutOfOrderExecution, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst UpdateDefaultAllowOutOfOrderExecution) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *UpdateDefaultAllowOutOfOrderExecution) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.NewAllowOutOfOrderExecution == nil { + return errors.New("NewAllowOutOfOrderExecution parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *UpdateDefaultAllowOutOfOrderExecution) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("UpdateDefaultAllowOutOfOrderExecution")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("NewAllowOutOfOrderExecution", *inst.NewAllowOutOfOrderExecution)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) + }) + }) + }) +} + +func (obj UpdateDefaultAllowOutOfOrderExecution) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `NewAllowOutOfOrderExecution` param: + err = encoder.Encode(obj.NewAllowOutOfOrderExecution) + if err != nil { + return err + } + return nil +} +func (obj *UpdateDefaultAllowOutOfOrderExecution) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `NewAllowOutOfOrderExecution`: + err = decoder.Decode(&obj.NewAllowOutOfOrderExecution) + if err != nil { + return err + } + return nil +} + +// NewUpdateDefaultAllowOutOfOrderExecutionInstruction declares a new UpdateDefaultAllowOutOfOrderExecution instruction with the provided parameters and accounts. +func NewUpdateDefaultAllowOutOfOrderExecutionInstruction( + // Parameters: + newAllowOutOfOrderExecution bool, + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { + return NewUpdateDefaultAllowOutOfOrderExecutionInstructionBuilder(). + SetNewAllowOutOfOrderExecution(newAllowOutOfOrderExecution). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go new file mode 100644 index 00000000000..70a0674748c --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_UpdateDefaultAllowOutOfOrderExecution(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("UpdateDefaultAllowOutOfOrderExecution"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(UpdateDefaultAllowOutOfOrderExecution) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(UpdateDefaultAllowOutOfOrderExecution) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go new file mode 100644 index 00000000000..c1791685884 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go @@ -0,0 +1,165 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin can update the configuration of the Router, in this case the Default Gas Limit +type UpdateDefaultGasLimit struct { + NewGasLimit *ag_binary.Uint128 + + // [0] = [WRITE] config + // + // [1] = [SIGNER] authority + // + // [2] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewUpdateDefaultGasLimitInstructionBuilder creates a new `UpdateDefaultGasLimit` instruction builder. +func NewUpdateDefaultGasLimitInstructionBuilder() *UpdateDefaultGasLimit { + nd := &UpdateDefaultGasLimit{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), + } + return nd +} + +// SetNewGasLimit sets the "newGasLimit" parameter. +func (inst *UpdateDefaultGasLimit) SetNewGasLimit(newGasLimit ag_binary.Uint128) *UpdateDefaultGasLimit { + inst.NewGasLimit = &newGasLimit + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *UpdateDefaultGasLimit) SetConfigAccount(config ag_solanago.PublicKey) *UpdateDefaultGasLimit { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *UpdateDefaultGasLimit) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *UpdateDefaultGasLimit) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateDefaultGasLimit { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *UpdateDefaultGasLimit) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *UpdateDefaultGasLimit) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateDefaultGasLimit { + inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *UpdateDefaultGasLimit) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +func (inst UpdateDefaultGasLimit) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_UpdateDefaultGasLimit, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst UpdateDefaultGasLimit) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *UpdateDefaultGasLimit) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.NewGasLimit == nil { + return errors.New("NewGasLimit parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *UpdateDefaultGasLimit) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("UpdateDefaultGasLimit")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("NewGasLimit", *inst.NewGasLimit)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) + }) + }) + }) +} + +func (obj UpdateDefaultGasLimit) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `NewGasLimit` param: + err = encoder.Encode(obj.NewGasLimit) + if err != nil { + return err + } + return nil +} +func (obj *UpdateDefaultGasLimit) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `NewGasLimit`: + err = decoder.Decode(&obj.NewGasLimit) + if err != nil { + return err + } + return nil +} + +// NewUpdateDefaultGasLimitInstruction declares a new UpdateDefaultGasLimit instruction with the provided parameters and accounts. +func NewUpdateDefaultGasLimitInstruction( + // Parameters: + newGasLimit ag_binary.Uint128, + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *UpdateDefaultGasLimit { + return NewUpdateDefaultGasLimitInstructionBuilder(). + SetNewGasLimit(newGasLimit). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go new file mode 100644 index 00000000000..f323c69e6b8 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_UpdateDefaultGasLimit(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("UpdateDefaultGasLimit"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(UpdateDefaultGasLimit) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(UpdateDefaultGasLimit) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go new file mode 100644 index 00000000000..5adb9d10708 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go @@ -0,0 +1,165 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin can update the configuration of the Router, in this case the Enable Manual Execution After +type UpdateEnableManualExecutionAfter struct { + NewEnableManualExecutionAfter *int64 + + // [0] = [WRITE] config + // + // [1] = [SIGNER] authority + // + // [2] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewUpdateEnableManualExecutionAfterInstructionBuilder creates a new `UpdateEnableManualExecutionAfter` instruction builder. +func NewUpdateEnableManualExecutionAfterInstructionBuilder() *UpdateEnableManualExecutionAfter { + nd := &UpdateEnableManualExecutionAfter{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), + } + return nd +} + +// SetNewEnableManualExecutionAfter sets the "newEnableManualExecutionAfter" parameter. +func (inst *UpdateEnableManualExecutionAfter) SetNewEnableManualExecutionAfter(newEnableManualExecutionAfter int64) *UpdateEnableManualExecutionAfter { + inst.NewEnableManualExecutionAfter = &newEnableManualExecutionAfter + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *UpdateEnableManualExecutionAfter) SetConfigAccount(config ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *UpdateEnableManualExecutionAfter) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *UpdateEnableManualExecutionAfter) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *UpdateEnableManualExecutionAfter) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *UpdateEnableManualExecutionAfter) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { + inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *UpdateEnableManualExecutionAfter) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +func (inst UpdateEnableManualExecutionAfter) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_UpdateEnableManualExecutionAfter, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst UpdateEnableManualExecutionAfter) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *UpdateEnableManualExecutionAfter) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.NewEnableManualExecutionAfter == nil { + return errors.New("NewEnableManualExecutionAfter parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *UpdateEnableManualExecutionAfter) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("UpdateEnableManualExecutionAfter")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("NewEnableManualExecutionAfter", *inst.NewEnableManualExecutionAfter)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) + }) + }) + }) +} + +func (obj UpdateEnableManualExecutionAfter) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `NewEnableManualExecutionAfter` param: + err = encoder.Encode(obj.NewEnableManualExecutionAfter) + if err != nil { + return err + } + return nil +} +func (obj *UpdateEnableManualExecutionAfter) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `NewEnableManualExecutionAfter`: + err = decoder.Decode(&obj.NewEnableManualExecutionAfter) + if err != nil { + return err + } + return nil +} + +// NewUpdateEnableManualExecutionAfterInstruction declares a new UpdateEnableManualExecutionAfter instruction with the provided parameters and accounts. +func NewUpdateEnableManualExecutionAfterInstruction( + // Parameters: + newEnableManualExecutionAfter int64, + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { + return NewUpdateEnableManualExecutionAfterInstructionBuilder(). + SetNewEnableManualExecutionAfter(newEnableManualExecutionAfter). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go new file mode 100644 index 00000000000..cc37505f599 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_UpdateEnableManualExecutionAfter(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("UpdateEnableManualExecutionAfter"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(UpdateEnableManualExecutionAfter) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(UpdateEnableManualExecutionAfter) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go new file mode 100644 index 00000000000..58796f4e381 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go @@ -0,0 +1,165 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "errors" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_format "github.com/gagliardetto/solana-go/text/format" + ag_treeout "github.com/gagliardetto/treeout" +) + +// The Admin can update the configuration of the Router, in this case the Solana Chain Selector +type UpdateSolanaChainSelector struct { + NewChainSelector *uint64 + + // [0] = [WRITE] config + // + // [1] = [SIGNER] authority + // + // [2] = [] systemProgram + ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` +} + +// NewUpdateSolanaChainSelectorInstructionBuilder creates a new `UpdateSolanaChainSelector` instruction builder. +func NewUpdateSolanaChainSelectorInstructionBuilder() *UpdateSolanaChainSelector { + nd := &UpdateSolanaChainSelector{ + AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), + } + return nd +} + +// SetNewChainSelector sets the "newChainSelector" parameter. +func (inst *UpdateSolanaChainSelector) SetNewChainSelector(newChainSelector uint64) *UpdateSolanaChainSelector { + inst.NewChainSelector = &newChainSelector + return inst +} + +// SetConfigAccount sets the "config" account. +func (inst *UpdateSolanaChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *UpdateSolanaChainSelector { + inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() + return inst +} + +// GetConfigAccount gets the "config" account. +func (inst *UpdateSolanaChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[0] +} + +// SetAuthorityAccount sets the "authority" account. +func (inst *UpdateSolanaChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateSolanaChainSelector { + inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() + return inst +} + +// GetAuthorityAccount gets the "authority" account. +func (inst *UpdateSolanaChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[1] +} + +// SetSystemProgramAccount sets the "systemProgram" account. +func (inst *UpdateSolanaChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateSolanaChainSelector { + inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) + return inst +} + +// GetSystemProgramAccount gets the "systemProgram" account. +func (inst *UpdateSolanaChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { + return inst.AccountMetaSlice[2] +} + +func (inst UpdateSolanaChainSelector) Build() *Instruction { + return &Instruction{BaseVariant: ag_binary.BaseVariant{ + Impl: inst, + TypeID: Instruction_UpdateSolanaChainSelector, + }} +} + +// ValidateAndBuild validates the instruction parameters and accounts; +// if there is a validation error, it returns the error. +// Otherwise, it builds and returns the instruction. +func (inst UpdateSolanaChainSelector) ValidateAndBuild() (*Instruction, error) { + if err := inst.Validate(); err != nil { + return nil, err + } + return inst.Build(), nil +} + +func (inst *UpdateSolanaChainSelector) Validate() error { + // Check whether all (required) parameters are set: + { + if inst.NewChainSelector == nil { + return errors.New("NewChainSelector parameter is not set") + } + } + + // Check whether all (required) accounts are set: + { + if inst.AccountMetaSlice[0] == nil { + return errors.New("accounts.Config is not set") + } + if inst.AccountMetaSlice[1] == nil { + return errors.New("accounts.Authority is not set") + } + if inst.AccountMetaSlice[2] == nil { + return errors.New("accounts.SystemProgram is not set") + } + } + return nil +} + +func (inst *UpdateSolanaChainSelector) EncodeToTree(parent ag_treeout.Branches) { + parent.Child(ag_format.Program(ProgramName, ProgramID)). + // + ParentFunc(func(programBranch ag_treeout.Branches) { + programBranch.Child(ag_format.Instruction("UpdateSolanaChainSelector")). + // + ParentFunc(func(instructionBranch ag_treeout.Branches) { + + // Parameters of the instruction: + instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { + paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) + }) + + // Accounts of the instruction: + instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { + accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) + accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) + accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) + }) + }) + }) +} + +func (obj UpdateSolanaChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `NewChainSelector` param: + err = encoder.Encode(obj.NewChainSelector) + if err != nil { + return err + } + return nil +} +func (obj *UpdateSolanaChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `NewChainSelector`: + err = decoder.Decode(&obj.NewChainSelector) + if err != nil { + return err + } + return nil +} + +// NewUpdateSolanaChainSelectorInstruction declares a new UpdateSolanaChainSelector instruction with the provided parameters and accounts. +func NewUpdateSolanaChainSelectorInstruction( + // Parameters: + newChainSelector uint64, + // Accounts: + config ag_solanago.PublicKey, + authority ag_solanago.PublicKey, + systemProgram ag_solanago.PublicKey) *UpdateSolanaChainSelector { + return NewUpdateSolanaChainSelectorInstructionBuilder(). + SetNewChainSelector(newChainSelector). + SetConfigAccount(config). + SetAuthorityAccount(authority). + SetSystemProgramAccount(systemProgram) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go new file mode 100644 index 00000000000..00901a4a9af --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go @@ -0,0 +1,32 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + ag_gofuzz "github.com/gagliardetto/gofuzz" + ag_require "github.com/stretchr/testify/require" + "strconv" + "testing" +) + +func TestEncodeDecode_UpdateSolanaChainSelector(t *testing.T) { + fu := ag_gofuzz.New().NilChance(0) + for i := 0; i < 1; i++ { + t.Run("UpdateSolanaChainSelector"+strconv.Itoa(i), func(t *testing.T) { + { + params := new(UpdateSolanaChainSelector) + fu.Fuzz(params) + params.AccountMetaSlice = nil + buf := new(bytes.Buffer) + err := encodeT(*params, buf) + ag_require.NoError(t, err) + got := new(UpdateSolanaChainSelector) + err = decodeT(got, buf.Bytes()) + got.AccountMetaSlice = nil + ag_require.NoError(t, err) + ag_require.Equal(t, params, got) + } + }) + } +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/accounts.go b/core/capabilities/ccip/ccipsolana/ccip_router/accounts.go new file mode 100644 index 00000000000..44c43c1d364 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/accounts.go @@ -0,0 +1,661 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "fmt" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" +) + +type Config struct { + Version uint8 + DefaultAllowOutOfOrderExecution uint8 + Padding0 [6]uint8 + SolanaChainSelector uint64 + DefaultGasLimit ag_binary.Uint128 + Padding1 [8]uint8 + Owner ag_solanago.PublicKey + ProposedOwner ag_solanago.PublicKey + EnableManualExecutionAfter int64 + Padding2 [8]uint8 + Ocr3 [2]Ocr3Config +} + +var ConfigDiscriminator = [8]byte{155, 12, 170, 224, 30, 250, 204, 130} + +func (obj Config) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(ConfigDiscriminator[:], false) + if err != nil { + return err + } + // Serialize `Version` param: + err = encoder.Encode(obj.Version) + if err != nil { + return err + } + // Serialize `DefaultAllowOutOfOrderExecution` param: + err = encoder.Encode(obj.DefaultAllowOutOfOrderExecution) + if err != nil { + return err + } + // Serialize `Padding0` param: + err = encoder.Encode(obj.Padding0) + if err != nil { + return err + } + // Serialize `SolanaChainSelector` param: + err = encoder.Encode(obj.SolanaChainSelector) + if err != nil { + return err + } + // Serialize `DefaultGasLimit` param: + err = encoder.Encode(obj.DefaultGasLimit) + if err != nil { + return err + } + // Serialize `Padding1` param: + err = encoder.Encode(obj.Padding1) + if err != nil { + return err + } + // Serialize `Owner` param: + err = encoder.Encode(obj.Owner) + if err != nil { + return err + } + // Serialize `ProposedOwner` param: + err = encoder.Encode(obj.ProposedOwner) + if err != nil { + return err + } + // Serialize `EnableManualExecutionAfter` param: + err = encoder.Encode(obj.EnableManualExecutionAfter) + if err != nil { + return err + } + // Serialize `Padding2` param: + err = encoder.Encode(obj.Padding2) + if err != nil { + return err + } + // Serialize `Ocr3` param: + err = encoder.Encode(obj.Ocr3) + if err != nil { + return err + } + return nil +} + +func (obj *Config) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(ConfigDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[155 12 170 224 30 250 204 130]", + fmt.Sprint(discriminator[:])) + } + } + // Deserialize `Version`: + err = decoder.Decode(&obj.Version) + if err != nil { + return err + } + // Deserialize `DefaultAllowOutOfOrderExecution`: + err = decoder.Decode(&obj.DefaultAllowOutOfOrderExecution) + if err != nil { + return err + } + // Deserialize `Padding0`: + err = decoder.Decode(&obj.Padding0) + if err != nil { + return err + } + // Deserialize `SolanaChainSelector`: + err = decoder.Decode(&obj.SolanaChainSelector) + if err != nil { + return err + } + // Deserialize `DefaultGasLimit`: + err = decoder.Decode(&obj.DefaultGasLimit) + if err != nil { + return err + } + // Deserialize `Padding1`: + err = decoder.Decode(&obj.Padding1) + if err != nil { + return err + } + // Deserialize `Owner`: + err = decoder.Decode(&obj.Owner) + if err != nil { + return err + } + // Deserialize `ProposedOwner`: + err = decoder.Decode(&obj.ProposedOwner) + if err != nil { + return err + } + // Deserialize `EnableManualExecutionAfter`: + err = decoder.Decode(&obj.EnableManualExecutionAfter) + if err != nil { + return err + } + // Deserialize `Padding2`: + err = decoder.Decode(&obj.Padding2) + if err != nil { + return err + } + // Deserialize `Ocr3`: + err = decoder.Decode(&obj.Ocr3) + if err != nil { + return err + } + return nil +} + +type ChainState struct { + Version uint8 + SourceChainConfig SourceChainConfig + DestChainConfig DestChainConfig +} + +var ChainStateDiscriminator = [8]byte{130, 46, 94, 156, 79, 53, 170, 50} + +func (obj ChainState) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(ChainStateDiscriminator[:], false) + if err != nil { + return err + } + // Serialize `Version` param: + err = encoder.Encode(obj.Version) + if err != nil { + return err + } + // Serialize `SourceChainConfig` param: + err = encoder.Encode(obj.SourceChainConfig) + if err != nil { + return err + } + // Serialize `DestChainConfig` param: + err = encoder.Encode(obj.DestChainConfig) + if err != nil { + return err + } + return nil +} + +func (obj *ChainState) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(ChainStateDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[130 46 94 156 79 53 170 50]", + fmt.Sprint(discriminator[:])) + } + } + // Deserialize `Version`: + err = decoder.Decode(&obj.Version) + if err != nil { + return err + } + // Deserialize `SourceChainConfig`: + err = decoder.Decode(&obj.SourceChainConfig) + if err != nil { + return err + } + // Deserialize `DestChainConfig`: + err = decoder.Decode(&obj.DestChainConfig) + if err != nil { + return err + } + return nil +} + +type Nonce struct { + Version uint8 + Counter uint64 +} + +var NonceDiscriminator = [8]byte{143, 197, 147, 95, 106, 165, 50, 43} + +func (obj Nonce) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(NonceDiscriminator[:], false) + if err != nil { + return err + } + // Serialize `Version` param: + err = encoder.Encode(obj.Version) + if err != nil { + return err + } + // Serialize `Counter` param: + err = encoder.Encode(obj.Counter) + if err != nil { + return err + } + return nil +} + +func (obj *Nonce) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(NonceDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[143 197 147 95 106 165 50 43]", + fmt.Sprint(discriminator[:])) + } + } + // Deserialize `Version`: + err = decoder.Decode(&obj.Version) + if err != nil { + return err + } + // Deserialize `Counter`: + err = decoder.Decode(&obj.Counter) + if err != nil { + return err + } + return nil +} + +type ExternalExecutionConfig struct{} + +var ExternalExecutionConfigDiscriminator = [8]byte{159, 157, 150, 212, 168, 103, 117, 39} + +func (obj ExternalExecutionConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(ExternalExecutionConfigDiscriminator[:], false) + if err != nil { + return err + } + return nil +} + +func (obj *ExternalExecutionConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(ExternalExecutionConfigDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[159 157 150 212 168 103 117 39]", + fmt.Sprint(discriminator[:])) + } + } + return nil +} + +type CommitReport struct { + Version uint8 + Timestamp int64 + MinMsgNr uint64 + MaxMsgNr uint64 + ExecutionStates ag_binary.Uint128 +} + +var CommitReportDiscriminator = [8]byte{46, 231, 247, 231, 174, 68, 34, 26} + +func (obj CommitReport) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(CommitReportDiscriminator[:], false) + if err != nil { + return err + } + // Serialize `Version` param: + err = encoder.Encode(obj.Version) + if err != nil { + return err + } + // Serialize `Timestamp` param: + err = encoder.Encode(obj.Timestamp) + if err != nil { + return err + } + // Serialize `MinMsgNr` param: + err = encoder.Encode(obj.MinMsgNr) + if err != nil { + return err + } + // Serialize `MaxMsgNr` param: + err = encoder.Encode(obj.MaxMsgNr) + if err != nil { + return err + } + // Serialize `ExecutionStates` param: + err = encoder.Encode(obj.ExecutionStates) + if err != nil { + return err + } + return nil +} + +func (obj *CommitReport) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(CommitReportDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[46 231 247 231 174 68 34 26]", + fmt.Sprint(discriminator[:])) + } + } + // Deserialize `Version`: + err = decoder.Decode(&obj.Version) + if err != nil { + return err + } + // Deserialize `Timestamp`: + err = decoder.Decode(&obj.Timestamp) + if err != nil { + return err + } + // Deserialize `MinMsgNr`: + err = decoder.Decode(&obj.MinMsgNr) + if err != nil { + return err + } + // Deserialize `MaxMsgNr`: + err = decoder.Decode(&obj.MaxMsgNr) + if err != nil { + return err + } + // Deserialize `ExecutionStates`: + err = decoder.Decode(&obj.ExecutionStates) + if err != nil { + return err + } + return nil +} + +type PerChainPerTokenConfig struct { + Version uint8 + ChainSelector uint64 + Mint ag_solanago.PublicKey + Billing TokenBilling +} + +var PerChainPerTokenConfigDiscriminator = [8]byte{183, 88, 20, 99, 246, 46, 51, 230} + +func (obj PerChainPerTokenConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(PerChainPerTokenConfigDiscriminator[:], false) + if err != nil { + return err + } + // Serialize `Version` param: + err = encoder.Encode(obj.Version) + if err != nil { + return err + } + // Serialize `ChainSelector` param: + err = encoder.Encode(obj.ChainSelector) + if err != nil { + return err + } + // Serialize `Mint` param: + err = encoder.Encode(obj.Mint) + if err != nil { + return err + } + // Serialize `Billing` param: + err = encoder.Encode(obj.Billing) + if err != nil { + return err + } + return nil +} + +func (obj *PerChainPerTokenConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(PerChainPerTokenConfigDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[183 88 20 99 246 46 51 230]", + fmt.Sprint(discriminator[:])) + } + } + // Deserialize `Version`: + err = decoder.Decode(&obj.Version) + if err != nil { + return err + } + // Deserialize `ChainSelector`: + err = decoder.Decode(&obj.ChainSelector) + if err != nil { + return err + } + // Deserialize `Mint`: + err = decoder.Decode(&obj.Mint) + if err != nil { + return err + } + // Deserialize `Billing`: + err = decoder.Decode(&obj.Billing) + if err != nil { + return err + } + return nil +} + +type BillingTokenConfig struct { + Version uint8 + Enabled bool + UsdPerToken TimestampedPackedU224 + PremiumMultiplierWeiPerEth uint64 +} + +var BillingTokenConfigDiscriminator = [8]byte{191, 91, 1, 0, 93, 250, 239, 41} + +func (obj BillingTokenConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(BillingTokenConfigDiscriminator[:], false) + if err != nil { + return err + } + // Serialize `Version` param: + err = encoder.Encode(obj.Version) + if err != nil { + return err + } + // Serialize `Enabled` param: + err = encoder.Encode(obj.Enabled) + if err != nil { + return err + } + // Serialize `UsdPerToken` param: + err = encoder.Encode(obj.UsdPerToken) + if err != nil { + return err + } + // Serialize `PremiumMultiplierWeiPerEth` param: + err = encoder.Encode(obj.PremiumMultiplierWeiPerEth) + if err != nil { + return err + } + return nil +} + +func (obj *BillingTokenConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(BillingTokenConfigDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[191 91 1 0 93 250 239 41]", + fmt.Sprint(discriminator[:])) + } + } + // Deserialize `Version`: + err = decoder.Decode(&obj.Version) + if err != nil { + return err + } + // Deserialize `Enabled`: + err = decoder.Decode(&obj.Enabled) + if err != nil { + return err + } + // Deserialize `UsdPerToken`: + err = decoder.Decode(&obj.UsdPerToken) + if err != nil { + return err + } + // Deserialize `PremiumMultiplierWeiPerEth`: + err = decoder.Decode(&obj.PremiumMultiplierWeiPerEth) + if err != nil { + return err + } + return nil +} + +type TokenAdminRegistry struct { + Version uint8 + Administrator ag_solanago.PublicKey + PendingAdministrator *ag_solanago.PublicKey `bin:"optional"` + TokenPoolProgram *ag_solanago.PublicKey `bin:"optional"` +} + +var TokenAdminRegistryDiscriminator = [8]byte{70, 92, 207, 200, 76, 17, 57, 114} + +func (obj TokenAdminRegistry) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Write account discriminator: + err = encoder.WriteBytes(TokenAdminRegistryDiscriminator[:], false) + if err != nil { + return err + } + // Serialize `Version` param: + err = encoder.Encode(obj.Version) + if err != nil { + return err + } + // Serialize `Administrator` param: + err = encoder.Encode(obj.Administrator) + if err != nil { + return err + } + // Serialize `PendingAdministrator` param (optional): + { + if obj.PendingAdministrator == nil { + err = encoder.WriteBool(false) + if err != nil { + return err + } + } else { + err = encoder.WriteBool(true) + if err != nil { + return err + } + err = encoder.Encode(obj.PendingAdministrator) + if err != nil { + return err + } + } + } + // Serialize `TokenPoolProgram` param (optional): + { + if obj.TokenPoolProgram == nil { + err = encoder.WriteBool(false) + if err != nil { + return err + } + } else { + err = encoder.WriteBool(true) + if err != nil { + return err + } + err = encoder.Encode(obj.TokenPoolProgram) + if err != nil { + return err + } + } + } + return nil +} + +func (obj *TokenAdminRegistry) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Read and check account discriminator: + { + discriminator, err := decoder.ReadTypeID() + if err != nil { + return err + } + if !discriminator.Equal(TokenAdminRegistryDiscriminator[:]) { + return fmt.Errorf( + "wrong discriminator: wanted %s, got %s", + "[70 92 207 200 76 17 57 114]", + fmt.Sprint(discriminator[:])) + } + } + // Deserialize `Version`: + err = decoder.Decode(&obj.Version) + if err != nil { + return err + } + // Deserialize `Administrator`: + err = decoder.Decode(&obj.Administrator) + if err != nil { + return err + } + // Deserialize `PendingAdministrator` (optional): + { + ok, err := decoder.ReadBool() + if err != nil { + return err + } + if ok { + err = decoder.Decode(&obj.PendingAdministrator) + if err != nil { + return err + } + } + } + // Deserialize `TokenPoolProgram` (optional): + { + ok, err := decoder.ReadBool() + if err != nil { + return err + } + if ok { + err = decoder.Decode(&obj.TokenPoolProgram) + if err != nil { + return err + } + } + } + return nil +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/instructions.go b/core/capabilities/ccip/ccipsolana/ccip_router/instructions.go new file mode 100644 index 00000000000..395e39da2ea --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/instructions.go @@ -0,0 +1,304 @@ +// This is the Collapsed Router Program for CCIP. +// As it's upgradable persisting the same program id, there is no need to have an indirection of a Proxy Program. +// This Router handles both the OnRamp and OffRamp flow of the CCIP Messages. +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + "fmt" + ag_spew "github.com/davecgh/go-spew/spew" + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" + ag_text "github.com/gagliardetto/solana-go/text" + ag_treeout "github.com/gagliardetto/treeout" +) + +var ProgramID ag_solanago.PublicKey + +func SetProgramID(pubkey ag_solanago.PublicKey) { + ProgramID = pubkey + ag_solanago.RegisterInstructionDecoder(ProgramID, registryDecodeInstruction) +} + +const ProgramName = "CcipRouter" + +func init() { + if !ProgramID.IsZero() { + ag_solanago.RegisterInstructionDecoder(ProgramID, registryDecodeInstruction) + } +} + +var ( + // The initialization is responsibility of Admin, nothing more than calling this method should be done first. + Instruction_Initialize = ag_binary.TypeID([8]byte{175, 175, 109, 31, 13, 152, 155, 237}) + + Instruction_TransferOwnership = ag_binary.TypeID([8]byte{65, 177, 215, 73, 53, 45, 99, 47}) + + Instruction_AcceptOwnership = ag_binary.TypeID([8]byte{172, 23, 43, 13, 238, 213, 85, 150}) + + // The Admin needs to add any new chain supported (this means both OnRamp and OffRamp). + Instruction_AddChainSelector = ag_binary.TypeID([8]byte{28, 60, 171, 0, 195, 113, 56, 7}) + + // The Admin is the only one able to enable or disable the chain selector + Instruction_DisableChainSelector = ag_binary.TypeID([8]byte{24, 245, 159, 178, 139, 200, 133, 218}) + + // The Admin is the only one able to enable or disable the chain selector + Instruction_EnableChainSelector = ag_binary.TypeID([8]byte{29, 175, 195, 14, 137, 66, 194, 25}) + + // The Admin can update the configuration of the Router, in this case the Solana Chain Selector + Instruction_UpdateSolanaChainSelector = ag_binary.TypeID([8]byte{128, 198, 143, 222, 43, 55, 119, 106}) + + // The Admin can update the configuration of the Router, in this case the Default Gas Limit + Instruction_UpdateDefaultGasLimit = ag_binary.TypeID([8]byte{201, 34, 231, 229, 247, 252, 77, 210}) + + // The Admin can update the configuration of the Router, in this case the Default Allow Out Of Order Execution (True/False) + Instruction_UpdateDefaultAllowOutOfOrderExecution = ag_binary.TypeID([8]byte{44, 54, 136, 71, 177, 17, 18, 241}) + + // The Admin can update the configuration of the Router, in this case the Enable Manual Execution After + Instruction_UpdateEnableManualExecutionAfter = ag_binary.TypeID([8]byte{157, 236, 73, 92, 84, 197, 152, 105}) + + // The CCIP Admin or the Mint Authority of the Token can register the Token Admin Registry + Instruction_RegisterTokenAdminRegistryViaGetCcipAdmin = ag_binary.TypeID([8]byte{46, 246, 21, 58, 175, 69, 40, 202}) + + // The Token's mint_authority can register themselves to the Token Admin Registry + Instruction_RegisterTokenAdminRegistryViaOwner = ag_binary.TypeID([8]byte{85, 191, 10, 113, 134, 138, 144, 16}) + + // The administrator of the token can setup the token pool + Instruction_SetPool = ag_binary.TypeID([8]byte{119, 30, 14, 180, 115, 225, 167, 238}) + + // The Admin can transfer the Admin Role of the Token Admin Registry + Instruction_TransferAdminRoleTokenAdminRegistry = ag_binary.TypeID([8]byte{178, 98, 203, 181, 203, 107, 106, 14}) + + // The Pending Admin can accept the Admin Role of the Token Admin Registry + Instruction_AcceptAdminRoleTokenAdminRegistry = ag_binary.TypeID([8]byte{106, 240, 16, 173, 137, 213, 163, 246}) + + Instruction_SetTokenBilling = ag_binary.TypeID([8]byte{225, 230, 37, 71, 131, 209, 54, 230}) + + Instruction_SetOcrConfig = ag_binary.TypeID([8]byte{4, 131, 107, 110, 250, 158, 244, 200}) + + // ON RAMP FLOW + // The method name needs to be ccip_send with Anchor encoding. + // This function is called by the CCIP Sender Contract (or final user) to send a message to the CCIP Router. + // The size limit of data is 256 bytes. + // The message is sent to the receiver on the destination chain selector. + // This message emits the event CCIPSendRequested with all the necessary data to be retrieved by the OffChain Code + Instruction_CcipSend = ag_binary.TypeID([8]byte{108, 216, 134, 191, 249, 234, 33, 84}) + + // OFF RAMP FLOW + // + // The method name needs to be commit with Anchor encoding. + // + // This function is called by the OffChain when committing one Report to the Solana Router. + // In this Flow only one report is sent, the Commit Report. This is different as EVM does, + // this is because here all the chain state is stored in one account per Merkle Tree Root. + // So, to avoid having to send a dynamic size array of accounts, in this message only one Commit Report Account is sent. + // This message validates the signatures of the report and stores the Merkle Root in the Commit Report Account. + // The Report must contain an interval of messages, and the min of them must be the next sequence number expected. + // The max size of the interval is 64. + // This message emits two events: CommitReportAccepted and Transmitted. + Instruction_Commit = ag_binary.TypeID([8]byte{223, 140, 142, 165, 229, 208, 156, 74}) + + // OFF RAMP FLOW + // + // The method name needs to be execute with Anchor encoding. + // + // This function is called by the OffChain when executing one Report to the Solana Router. + // In this Flow only one message is sent, the Execution Report. This is different as EVM does, + // this is because there is no try/catch mechanism to allow batch execution. + // This message validates that the Merkle Tree Proof of the given message is correct and is stored in the Commit Report Account. + // The message must be untouched to be executed. + // This message emits the event ExecutionStateChanged with the new state of the message. + // Finally, executes the CPI instruction to the receiver program in the ccip_receive message. + Instruction_Execute = ag_binary.TypeID([8]byte{130, 221, 242, 154, 13, 193, 189, 29}) + + // When a message is not being executed, then the user can trigger the execution manually. + // No verification over the transmitter, but the message needs to be in some commit report. + Instruction_ManuallyExecute = ag_binary.TypeID([8]byte{238, 219, 224, 11, 226, 248, 47, 192}) +) + +// InstructionIDToName returns the name of the instruction given its ID. +func InstructionIDToName(id ag_binary.TypeID) string { + switch id { + case Instruction_Initialize: + return "Initialize" + case Instruction_TransferOwnership: + return "TransferOwnership" + case Instruction_AcceptOwnership: + return "AcceptOwnership" + case Instruction_AddChainSelector: + return "AddChainSelector" + case Instruction_DisableChainSelector: + return "DisableChainSelector" + case Instruction_EnableChainSelector: + return "EnableChainSelector" + case Instruction_UpdateSolanaChainSelector: + return "UpdateSolanaChainSelector" + case Instruction_UpdateDefaultGasLimit: + return "UpdateDefaultGasLimit" + case Instruction_UpdateDefaultAllowOutOfOrderExecution: + return "UpdateDefaultAllowOutOfOrderExecution" + case Instruction_UpdateEnableManualExecutionAfter: + return "UpdateEnableManualExecutionAfter" + case Instruction_RegisterTokenAdminRegistryViaGetCcipAdmin: + return "RegisterTokenAdminRegistryViaGetCcipAdmin" + case Instruction_RegisterTokenAdminRegistryViaOwner: + return "RegisterTokenAdminRegistryViaOwner" + case Instruction_SetPool: + return "SetPool" + case Instruction_TransferAdminRoleTokenAdminRegistry: + return "TransferAdminRoleTokenAdminRegistry" + case Instruction_AcceptAdminRoleTokenAdminRegistry: + return "AcceptAdminRoleTokenAdminRegistry" + case Instruction_SetTokenBilling: + return "SetTokenBilling" + case Instruction_SetOcrConfig: + return "SetOcrConfig" + case Instruction_CcipSend: + return "CcipSend" + case Instruction_Commit: + return "Commit" + case Instruction_Execute: + return "Execute" + case Instruction_ManuallyExecute: + return "ManuallyExecute" + default: + return "" + } +} + +type Instruction struct { + ag_binary.BaseVariant +} + +func (inst *Instruction) EncodeToTree(parent ag_treeout.Branches) { + if enToTree, ok := inst.Impl.(ag_text.EncodableToTree); ok { + enToTree.EncodeToTree(parent) + } else { + parent.Child(ag_spew.Sdump(inst)) + } +} + +var InstructionImplDef = ag_binary.NewVariantDefinition( + ag_binary.AnchorTypeIDEncoding, + []ag_binary.VariantType{ + { + "initialize", (*Initialize)(nil), + }, + { + "transfer_ownership", (*TransferOwnership)(nil), + }, + { + "accept_ownership", (*AcceptOwnership)(nil), + }, + { + "add_chain_selector", (*AddChainSelector)(nil), + }, + { + "disable_chain_selector", (*DisableChainSelector)(nil), + }, + { + "enable_chain_selector", (*EnableChainSelector)(nil), + }, + { + "update_solana_chain_selector", (*UpdateSolanaChainSelector)(nil), + }, + { + "update_default_gas_limit", (*UpdateDefaultGasLimit)(nil), + }, + { + "update_default_allow_out_of_order_execution", (*UpdateDefaultAllowOutOfOrderExecution)(nil), + }, + { + "update_enable_manual_execution_after", (*UpdateEnableManualExecutionAfter)(nil), + }, + { + "register_token_admin_registry_via_get_ccip_admin", (*RegisterTokenAdminRegistryViaGetCcipAdmin)(nil), + }, + { + "register_token_admin_registry_via_owner", (*RegisterTokenAdminRegistryViaOwner)(nil), + }, + { + "set_pool", (*SetPool)(nil), + }, + { + "transfer_admin_role_token_admin_registry", (*TransferAdminRoleTokenAdminRegistry)(nil), + }, + { + "accept_admin_role_token_admin_registry", (*AcceptAdminRoleTokenAdminRegistry)(nil), + }, + { + "set_token_billing", (*SetTokenBilling)(nil), + }, + { + "set_ocr_config", (*SetOcrConfig)(nil), + }, + { + "ccip_send", (*CcipSend)(nil), + }, + { + "commit", (*Commit)(nil), + }, + { + "execute", (*Execute)(nil), + }, + { + "manually_execute", (*ManuallyExecute)(nil), + }, + }, +) + +func (inst *Instruction) ProgramID() ag_solanago.PublicKey { + return ProgramID +} + +func (inst *Instruction) Accounts() (out []*ag_solanago.AccountMeta) { + return inst.Impl.(ag_solanago.AccountsGettable).GetAccounts() +} + +func (inst *Instruction) Data() ([]byte, error) { + buf := new(bytes.Buffer) + if err := ag_binary.NewBorshEncoder(buf).Encode(inst); err != nil { + return nil, fmt.Errorf("unable to encode instruction: %w", err) + } + return buf.Bytes(), nil +} + +func (inst *Instruction) TextEncode(encoder *ag_text.Encoder, option *ag_text.Option) error { + return encoder.Encode(inst.Impl, option) +} + +func (inst *Instruction) UnmarshalWithDecoder(decoder *ag_binary.Decoder) error { + return inst.BaseVariant.UnmarshalBinaryVariant(decoder, InstructionImplDef) +} + +func (inst *Instruction) MarshalWithEncoder(encoder *ag_binary.Encoder) error { + err := encoder.WriteBytes(inst.TypeID.Bytes(), false) + if err != nil { + return fmt.Errorf("unable to write variant type: %w", err) + } + return encoder.Encode(inst.Impl) +} + +func registryDecodeInstruction(accounts []*ag_solanago.AccountMeta, data []byte) (interface{}, error) { + inst, err := DecodeInstruction(accounts, data) + if err != nil { + return nil, err + } + return inst, nil +} + +func DecodeInstruction(accounts []*ag_solanago.AccountMeta, data []byte) (*Instruction, error) { + inst := new(Instruction) + if err := ag_binary.NewBorshDecoder(data).Decode(inst); err != nil { + return nil, fmt.Errorf("unable to decode instruction: %w", err) + } + if v, ok := inst.Impl.(ag_solanago.AccountsSettable); ok { + err := v.SetAccounts(accounts) + if err != nil { + return nil, fmt.Errorf("unable to set accounts for instruction: %w", err) + } + } + return inst, nil +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go b/core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go new file mode 100644 index 00000000000..aaecdf49bad --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go @@ -0,0 +1,20 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + "bytes" + "fmt" + ag_binary "github.com/gagliardetto/binary" +) + +func encodeT(data interface{}, buf *bytes.Buffer) error { + if err := ag_binary.NewBorshEncoder(buf).Encode(data); err != nil { + return fmt.Errorf("unable to encode instruction: %w", err) + } + return nil +} + +func decodeT(dst interface{}, data []byte) error { + return ag_binary.NewBorshDecoder(data).Decode(dst) +} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/types.go b/core/capabilities/ccip/ccipsolana/ccip_router/types.go new file mode 100644 index 00000000000..1c3167a1fcc --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/ccip_router/types.go @@ -0,0 +1,1817 @@ +// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. + +package ccip_router + +import ( + ag_binary "github.com/gagliardetto/binary" + ag_solanago "github.com/gagliardetto/solana-go" +) + +type CommitInput struct { + PriceUpdates PriceUpdates + MerkleRoot MerkleRoot +} + +func (obj CommitInput) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `PriceUpdates` param: + err = encoder.Encode(obj.PriceUpdates) + if err != nil { + return err + } + // Serialize `MerkleRoot` param: + err = encoder.Encode(obj.MerkleRoot) + if err != nil { + return err + } + return nil +} + +func (obj *CommitInput) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `PriceUpdates`: + err = decoder.Decode(&obj.PriceUpdates) + if err != nil { + return err + } + // Deserialize `MerkleRoot`: + err = decoder.Decode(&obj.MerkleRoot) + if err != nil { + return err + } + return nil +} + +type PriceUpdates struct { + TokenPriceUpdates []TokenPriceUpdate + GasPriceUpdates []GasPriceUpdate +} + +func (obj PriceUpdates) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `TokenPriceUpdates` param: + err = encoder.Encode(obj.TokenPriceUpdates) + if err != nil { + return err + } + // Serialize `GasPriceUpdates` param: + err = encoder.Encode(obj.GasPriceUpdates) + if err != nil { + return err + } + return nil +} + +func (obj *PriceUpdates) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `TokenPriceUpdates`: + err = decoder.Decode(&obj.TokenPriceUpdates) + if err != nil { + return err + } + // Deserialize `GasPriceUpdates`: + err = decoder.Decode(&obj.GasPriceUpdates) + if err != nil { + return err + } + return nil +} + +type TokenPriceUpdate struct { + SourceToken ag_solanago.PublicKey + UsdPerToken [28]uint8 +} + +func (obj TokenPriceUpdate) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `SourceToken` param: + err = encoder.Encode(obj.SourceToken) + if err != nil { + return err + } + // Serialize `UsdPerToken` param: + err = encoder.Encode(obj.UsdPerToken) + if err != nil { + return err + } + return nil +} + +func (obj *TokenPriceUpdate) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `SourceToken`: + err = decoder.Decode(&obj.SourceToken) + if err != nil { + return err + } + // Deserialize `UsdPerToken`: + err = decoder.Decode(&obj.UsdPerToken) + if err != nil { + return err + } + return nil +} + +type GasPriceUpdate struct { + DestChainSelector uint64 + UsdPerUnitGas [28]uint8 +} + +func (obj GasPriceUpdate) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `DestChainSelector` param: + err = encoder.Encode(obj.DestChainSelector) + if err != nil { + return err + } + // Serialize `UsdPerUnitGas` param: + err = encoder.Encode(obj.UsdPerUnitGas) + if err != nil { + return err + } + return nil +} + +func (obj *GasPriceUpdate) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `DestChainSelector`: + err = decoder.Decode(&obj.DestChainSelector) + if err != nil { + return err + } + // Deserialize `UsdPerUnitGas`: + err = decoder.Decode(&obj.UsdPerUnitGas) + if err != nil { + return err + } + return nil +} + +type MerkleRoot struct { + SourceChainSelector uint64 + OnRampAddress []byte + MinSeqNr uint64 + MaxSeqNr uint64 + MerkleRoot [32]uint8 +} + +func (obj MerkleRoot) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `SourceChainSelector` param: + err = encoder.Encode(obj.SourceChainSelector) + if err != nil { + return err + } + // Serialize `OnRampAddress` param: + err = encoder.Encode(obj.OnRampAddress) + if err != nil { + return err + } + // Serialize `MinSeqNr` param: + err = encoder.Encode(obj.MinSeqNr) + if err != nil { + return err + } + // Serialize `MaxSeqNr` param: + err = encoder.Encode(obj.MaxSeqNr) + if err != nil { + return err + } + // Serialize `MerkleRoot` param: + err = encoder.Encode(obj.MerkleRoot) + if err != nil { + return err + } + return nil +} + +func (obj *MerkleRoot) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `SourceChainSelector`: + err = decoder.Decode(&obj.SourceChainSelector) + if err != nil { + return err + } + // Deserialize `OnRampAddress`: + err = decoder.Decode(&obj.OnRampAddress) + if err != nil { + return err + } + // Deserialize `MinSeqNr`: + err = decoder.Decode(&obj.MinSeqNr) + if err != nil { + return err + } + // Deserialize `MaxSeqNr`: + err = decoder.Decode(&obj.MaxSeqNr) + if err != nil { + return err + } + // Deserialize `MerkleRoot`: + err = decoder.Decode(&obj.MerkleRoot) + if err != nil { + return err + } + return nil +} + +type Solana2AnyMessage struct { + Receiver []byte + Data []byte + TokenAmounts []SolanaTokenAmount + FeeToken ag_solanago.PublicKey + ExtraArgs ExtraArgsInput + TokenIndexes []byte +} + +func (obj Solana2AnyMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Receiver` param: + err = encoder.Encode(obj.Receiver) + if err != nil { + return err + } + // Serialize `Data` param: + err = encoder.Encode(obj.Data) + if err != nil { + return err + } + // Serialize `TokenAmounts` param: + err = encoder.Encode(obj.TokenAmounts) + if err != nil { + return err + } + // Serialize `FeeToken` param: + err = encoder.Encode(obj.FeeToken) + if err != nil { + return err + } + // Serialize `ExtraArgs` param: + err = encoder.Encode(obj.ExtraArgs) + if err != nil { + return err + } + // Serialize `TokenIndexes` param: + err = encoder.Encode(obj.TokenIndexes) + if err != nil { + return err + } + return nil +} + +func (obj *Solana2AnyMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Receiver`: + err = decoder.Decode(&obj.Receiver) + if err != nil { + return err + } + // Deserialize `Data`: + err = decoder.Decode(&obj.Data) + if err != nil { + return err + } + // Deserialize `TokenAmounts`: + err = decoder.Decode(&obj.TokenAmounts) + if err != nil { + return err + } + // Deserialize `FeeToken`: + err = decoder.Decode(&obj.FeeToken) + if err != nil { + return err + } + // Deserialize `ExtraArgs`: + err = decoder.Decode(&obj.ExtraArgs) + if err != nil { + return err + } + // Deserialize `TokenIndexes`: + err = decoder.Decode(&obj.TokenIndexes) + if err != nil { + return err + } + return nil +} + +type SolanaTokenAmount struct { + Token ag_solanago.PublicKey + Amount uint64 +} + +func (obj SolanaTokenAmount) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Token` param: + err = encoder.Encode(obj.Token) + if err != nil { + return err + } + // Serialize `Amount` param: + err = encoder.Encode(obj.Amount) + if err != nil { + return err + } + return nil +} + +func (obj *SolanaTokenAmount) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Token`: + err = decoder.Decode(&obj.Token) + if err != nil { + return err + } + // Deserialize `Amount`: + err = decoder.Decode(&obj.Amount) + if err != nil { + return err + } + return nil +} + +type ExtraArgsInput struct { + GasLimit *ag_binary.Uint128 `bin:"optional"` + AllowOutOfOrderExecution *bool `bin:"optional"` +} + +func (obj ExtraArgsInput) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `GasLimit` param (optional): + { + if obj.GasLimit == nil { + err = encoder.WriteBool(false) + if err != nil { + return err + } + } else { + err = encoder.WriteBool(true) + if err != nil { + return err + } + err = encoder.Encode(obj.GasLimit) + if err != nil { + return err + } + } + } + // Serialize `AllowOutOfOrderExecution` param (optional): + { + if obj.AllowOutOfOrderExecution == nil { + err = encoder.WriteBool(false) + if err != nil { + return err + } + } else { + err = encoder.WriteBool(true) + if err != nil { + return err + } + err = encoder.Encode(obj.AllowOutOfOrderExecution) + if err != nil { + return err + } + } + } + return nil +} + +func (obj *ExtraArgsInput) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `GasLimit` (optional): + { + ok, err := decoder.ReadBool() + if err != nil { + return err + } + if ok { + err = decoder.Decode(&obj.GasLimit) + if err != nil { + return err + } + } + } + // Deserialize `AllowOutOfOrderExecution` (optional): + { + ok, err := decoder.ReadBool() + if err != nil { + return err + } + if ok { + err = decoder.Decode(&obj.AllowOutOfOrderExecution) + if err != nil { + return err + } + } + } + return nil +} + +type Any2SolanaMessage struct { + MessageId [32]uint8 + SourceChainSelector uint64 + Sender []byte + Data []byte + TokenAmounts []SolanaTokenAmount +} + +func (obj Any2SolanaMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `MessageId` param: + err = encoder.Encode(obj.MessageId) + if err != nil { + return err + } + // Serialize `SourceChainSelector` param: + err = encoder.Encode(obj.SourceChainSelector) + if err != nil { + return err + } + // Serialize `Sender` param: + err = encoder.Encode(obj.Sender) + if err != nil { + return err + } + // Serialize `Data` param: + err = encoder.Encode(obj.Data) + if err != nil { + return err + } + // Serialize `TokenAmounts` param: + err = encoder.Encode(obj.TokenAmounts) + if err != nil { + return err + } + return nil +} + +func (obj *Any2SolanaMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `MessageId`: + err = decoder.Decode(&obj.MessageId) + if err != nil { + return err + } + // Deserialize `SourceChainSelector`: + err = decoder.Decode(&obj.SourceChainSelector) + if err != nil { + return err + } + // Deserialize `Sender`: + err = decoder.Decode(&obj.Sender) + if err != nil { + return err + } + // Deserialize `Data`: + err = decoder.Decode(&obj.Data) + if err != nil { + return err + } + // Deserialize `TokenAmounts`: + err = decoder.Decode(&obj.TokenAmounts) + if err != nil { + return err + } + return nil +} + +type RampMessageHeader struct { + MessageId [32]uint8 + SourceChainSelector uint64 + DestChainSelector uint64 + SequenceNumber uint64 + Nonce uint64 +} + +func (obj RampMessageHeader) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `MessageId` param: + err = encoder.Encode(obj.MessageId) + if err != nil { + return err + } + // Serialize `SourceChainSelector` param: + err = encoder.Encode(obj.SourceChainSelector) + if err != nil { + return err + } + // Serialize `DestChainSelector` param: + err = encoder.Encode(obj.DestChainSelector) + if err != nil { + return err + } + // Serialize `SequenceNumber` param: + err = encoder.Encode(obj.SequenceNumber) + if err != nil { + return err + } + // Serialize `Nonce` param: + err = encoder.Encode(obj.Nonce) + if err != nil { + return err + } + return nil +} + +func (obj *RampMessageHeader) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `MessageId`: + err = decoder.Decode(&obj.MessageId) + if err != nil { + return err + } + // Deserialize `SourceChainSelector`: + err = decoder.Decode(&obj.SourceChainSelector) + if err != nil { + return err + } + // Deserialize `DestChainSelector`: + err = decoder.Decode(&obj.DestChainSelector) + if err != nil { + return err + } + // Deserialize `SequenceNumber`: + err = decoder.Decode(&obj.SequenceNumber) + if err != nil { + return err + } + // Deserialize `Nonce`: + err = decoder.Decode(&obj.Nonce) + if err != nil { + return err + } + return nil +} + +type ExecutionReportSingleChain struct { + SourceChainSelector uint64 + Message Any2SolanaRampMessage + OffchainTokenData [][]byte + Root [32]uint8 + Proofs [][32]uint8 + TokenIndexes []byte +} + +func (obj ExecutionReportSingleChain) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `SourceChainSelector` param: + err = encoder.Encode(obj.SourceChainSelector) + if err != nil { + return err + } + // Serialize `Message` param: + err = encoder.Encode(obj.Message) + if err != nil { + return err + } + // Serialize `OffchainTokenData` param: + err = encoder.Encode(obj.OffchainTokenData) + if err != nil { + return err + } + // Serialize `Root` param: + err = encoder.Encode(obj.Root) + if err != nil { + return err + } + // Serialize `Proofs` param: + err = encoder.Encode(obj.Proofs) + if err != nil { + return err + } + // Serialize `TokenIndexes` param: + err = encoder.Encode(obj.TokenIndexes) + if err != nil { + return err + } + return nil +} + +func (obj *ExecutionReportSingleChain) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `SourceChainSelector`: + err = decoder.Decode(&obj.SourceChainSelector) + if err != nil { + return err + } + // Deserialize `Message`: + err = decoder.Decode(&obj.Message) + if err != nil { + return err + } + // Deserialize `OffchainTokenData`: + err = decoder.Decode(&obj.OffchainTokenData) + if err != nil { + return err + } + // Deserialize `Root`: + err = decoder.Decode(&obj.Root) + if err != nil { + return err + } + // Deserialize `Proofs`: + err = decoder.Decode(&obj.Proofs) + if err != nil { + return err + } + // Deserialize `TokenIndexes`: + err = decoder.Decode(&obj.TokenIndexes) + if err != nil { + return err + } + return nil +} + +type SolanaExtraArgs struct { + ComputeUnits uint32 + AllowOutOfOrderExecution bool +} + +func (obj SolanaExtraArgs) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `ComputeUnits` param: + err = encoder.Encode(obj.ComputeUnits) + if err != nil { + return err + } + // Serialize `AllowOutOfOrderExecution` param: + err = encoder.Encode(obj.AllowOutOfOrderExecution) + if err != nil { + return err + } + return nil +} + +func (obj *SolanaExtraArgs) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `ComputeUnits`: + err = decoder.Decode(&obj.ComputeUnits) + if err != nil { + return err + } + // Deserialize `AllowOutOfOrderExecution`: + err = decoder.Decode(&obj.AllowOutOfOrderExecution) + if err != nil { + return err + } + return nil +} + +type EvmExtraArgs struct { + GasLimit ag_binary.Uint128 + AllowOutOfOrderExecution bool +} + +func (obj EvmExtraArgs) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `GasLimit` param: + err = encoder.Encode(obj.GasLimit) + if err != nil { + return err + } + // Serialize `AllowOutOfOrderExecution` param: + err = encoder.Encode(obj.AllowOutOfOrderExecution) + if err != nil { + return err + } + return nil +} + +func (obj *EvmExtraArgs) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `GasLimit`: + err = decoder.Decode(&obj.GasLimit) + if err != nil { + return err + } + // Deserialize `AllowOutOfOrderExecution`: + err = decoder.Decode(&obj.AllowOutOfOrderExecution) + if err != nil { + return err + } + return nil +} + +type Any2SolanaRampMessage struct { + Header RampMessageHeader + Sender []byte + Data []byte + Receiver ag_solanago.PublicKey + TokenAmounts []Any2SolanaTokenTransfer + ExtraArgs SolanaExtraArgs +} + +func (obj Any2SolanaRampMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Header` param: + err = encoder.Encode(obj.Header) + if err != nil { + return err + } + // Serialize `Sender` param: + err = encoder.Encode(obj.Sender) + if err != nil { + return err + } + // Serialize `Data` param: + err = encoder.Encode(obj.Data) + if err != nil { + return err + } + // Serialize `Receiver` param: + err = encoder.Encode(obj.Receiver) + if err != nil { + return err + } + // Serialize `TokenAmounts` param: + err = encoder.Encode(obj.TokenAmounts) + if err != nil { + return err + } + // Serialize `ExtraArgs` param: + err = encoder.Encode(obj.ExtraArgs) + if err != nil { + return err + } + return nil +} + +func (obj *Any2SolanaRampMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Header`: + err = decoder.Decode(&obj.Header) + if err != nil { + return err + } + // Deserialize `Sender`: + err = decoder.Decode(&obj.Sender) + if err != nil { + return err + } + // Deserialize `Data`: + err = decoder.Decode(&obj.Data) + if err != nil { + return err + } + // Deserialize `Receiver`: + err = decoder.Decode(&obj.Receiver) + if err != nil { + return err + } + // Deserialize `TokenAmounts`: + err = decoder.Decode(&obj.TokenAmounts) + if err != nil { + return err + } + // Deserialize `ExtraArgs`: + err = decoder.Decode(&obj.ExtraArgs) + if err != nil { + return err + } + return nil +} + +type Solana2AnyRampMessage struct { + Header RampMessageHeader + Sender ag_solanago.PublicKey + Data []byte + Receiver []byte + ExtraArgs EvmExtraArgs + FeeToken ag_solanago.PublicKey + TokenAmounts []Solana2AnyTokenTransfer +} + +func (obj Solana2AnyRampMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Header` param: + err = encoder.Encode(obj.Header) + if err != nil { + return err + } + // Serialize `Sender` param: + err = encoder.Encode(obj.Sender) + if err != nil { + return err + } + // Serialize `Data` param: + err = encoder.Encode(obj.Data) + if err != nil { + return err + } + // Serialize `Receiver` param: + err = encoder.Encode(obj.Receiver) + if err != nil { + return err + } + // Serialize `ExtraArgs` param: + err = encoder.Encode(obj.ExtraArgs) + if err != nil { + return err + } + // Serialize `FeeToken` param: + err = encoder.Encode(obj.FeeToken) + if err != nil { + return err + } + // Serialize `TokenAmounts` param: + err = encoder.Encode(obj.TokenAmounts) + if err != nil { + return err + } + return nil +} + +func (obj *Solana2AnyRampMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Header`: + err = decoder.Decode(&obj.Header) + if err != nil { + return err + } + // Deserialize `Sender`: + err = decoder.Decode(&obj.Sender) + if err != nil { + return err + } + // Deserialize `Data`: + err = decoder.Decode(&obj.Data) + if err != nil { + return err + } + // Deserialize `Receiver`: + err = decoder.Decode(&obj.Receiver) + if err != nil { + return err + } + // Deserialize `ExtraArgs`: + err = decoder.Decode(&obj.ExtraArgs) + if err != nil { + return err + } + // Deserialize `FeeToken`: + err = decoder.Decode(&obj.FeeToken) + if err != nil { + return err + } + // Deserialize `TokenAmounts`: + err = decoder.Decode(&obj.TokenAmounts) + if err != nil { + return err + } + return nil +} + +type Solana2AnyTokenTransfer struct { + SourcePoolAddress ag_solanago.PublicKey + DestTokenAddress []byte + ExtraData []byte + Amount uint64 + DestExecData []byte +} + +func (obj Solana2AnyTokenTransfer) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `SourcePoolAddress` param: + err = encoder.Encode(obj.SourcePoolAddress) + if err != nil { + return err + } + // Serialize `DestTokenAddress` param: + err = encoder.Encode(obj.DestTokenAddress) + if err != nil { + return err + } + // Serialize `ExtraData` param: + err = encoder.Encode(obj.ExtraData) + if err != nil { + return err + } + // Serialize `Amount` param: + err = encoder.Encode(obj.Amount) + if err != nil { + return err + } + // Serialize `DestExecData` param: + err = encoder.Encode(obj.DestExecData) + if err != nil { + return err + } + return nil +} + +func (obj *Solana2AnyTokenTransfer) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `SourcePoolAddress`: + err = decoder.Decode(&obj.SourcePoolAddress) + if err != nil { + return err + } + // Deserialize `DestTokenAddress`: + err = decoder.Decode(&obj.DestTokenAddress) + if err != nil { + return err + } + // Deserialize `ExtraData`: + err = decoder.Decode(&obj.ExtraData) + if err != nil { + return err + } + // Deserialize `Amount`: + err = decoder.Decode(&obj.Amount) + if err != nil { + return err + } + // Deserialize `DestExecData`: + err = decoder.Decode(&obj.DestExecData) + if err != nil { + return err + } + return nil +} + +type Any2SolanaTokenTransfer struct { + SourcePoolAddress []byte + DestTokenAddress ag_solanago.PublicKey + DestGasAmount uint32 + ExtraData []byte + Amount uint64 +} + +func (obj Any2SolanaTokenTransfer) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `SourcePoolAddress` param: + err = encoder.Encode(obj.SourcePoolAddress) + if err != nil { + return err + } + // Serialize `DestTokenAddress` param: + err = encoder.Encode(obj.DestTokenAddress) + if err != nil { + return err + } + // Serialize `DestGasAmount` param: + err = encoder.Encode(obj.DestGasAmount) + if err != nil { + return err + } + // Serialize `ExtraData` param: + err = encoder.Encode(obj.ExtraData) + if err != nil { + return err + } + // Serialize `Amount` param: + err = encoder.Encode(obj.Amount) + if err != nil { + return err + } + return nil +} + +func (obj *Any2SolanaTokenTransfer) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `SourcePoolAddress`: + err = decoder.Decode(&obj.SourcePoolAddress) + if err != nil { + return err + } + // Deserialize `DestTokenAddress`: + err = decoder.Decode(&obj.DestTokenAddress) + if err != nil { + return err + } + // Deserialize `DestGasAmount`: + err = decoder.Decode(&obj.DestGasAmount) + if err != nil { + return err + } + // Deserialize `ExtraData`: + err = decoder.Decode(&obj.ExtraData) + if err != nil { + return err + } + // Deserialize `Amount`: + err = decoder.Decode(&obj.Amount) + if err != nil { + return err + } + return nil +} + +type LockOrBurnInV1 struct { + Receiver []byte + RemoteChainSelector uint64 + OriginalSender ag_solanago.PublicKey + Amount uint64 + LocalToken ag_solanago.PublicKey +} + +func (obj LockOrBurnInV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Receiver` param: + err = encoder.Encode(obj.Receiver) + if err != nil { + return err + } + // Serialize `RemoteChainSelector` param: + err = encoder.Encode(obj.RemoteChainSelector) + if err != nil { + return err + } + // Serialize `OriginalSender` param: + err = encoder.Encode(obj.OriginalSender) + if err != nil { + return err + } + // Serialize `Amount` param: + err = encoder.Encode(obj.Amount) + if err != nil { + return err + } + // Serialize `LocalToken` param: + err = encoder.Encode(obj.LocalToken) + if err != nil { + return err + } + return nil +} + +func (obj *LockOrBurnInV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Receiver`: + err = decoder.Decode(&obj.Receiver) + if err != nil { + return err + } + // Deserialize `RemoteChainSelector`: + err = decoder.Decode(&obj.RemoteChainSelector) + if err != nil { + return err + } + // Deserialize `OriginalSender`: + err = decoder.Decode(&obj.OriginalSender) + if err != nil { + return err + } + // Deserialize `Amount`: + err = decoder.Decode(&obj.Amount) + if err != nil { + return err + } + // Deserialize `LocalToken`: + err = decoder.Decode(&obj.LocalToken) + if err != nil { + return err + } + return nil +} + +type ReleaseOrMintInV1 struct { + OriginalSender []byte + RemoteChainSelector uint64 + Receiver ag_solanago.PublicKey + Amount uint64 + LocalToken ag_solanago.PublicKey + + // @dev WARNING: sourcePoolAddress should be checked prior to any processing of funds. Make sure it matches the + // expected pool address for the given remoteChainSelector. + SourcePoolAddress []byte + SourcePoolData []byte + + // @dev WARNING: offchainTokenData is untrusted data. + OffchainTokenData []byte +} + +func (obj ReleaseOrMintInV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `OriginalSender` param: + err = encoder.Encode(obj.OriginalSender) + if err != nil { + return err + } + // Serialize `RemoteChainSelector` param: + err = encoder.Encode(obj.RemoteChainSelector) + if err != nil { + return err + } + // Serialize `Receiver` param: + err = encoder.Encode(obj.Receiver) + if err != nil { + return err + } + // Serialize `Amount` param: + err = encoder.Encode(obj.Amount) + if err != nil { + return err + } + // Serialize `LocalToken` param: + err = encoder.Encode(obj.LocalToken) + if err != nil { + return err + } + // Serialize `SourcePoolAddress` param: + err = encoder.Encode(obj.SourcePoolAddress) + if err != nil { + return err + } + // Serialize `SourcePoolData` param: + err = encoder.Encode(obj.SourcePoolData) + if err != nil { + return err + } + // Serialize `OffchainTokenData` param: + err = encoder.Encode(obj.OffchainTokenData) + if err != nil { + return err + } + return nil +} + +func (obj *ReleaseOrMintInV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `OriginalSender`: + err = decoder.Decode(&obj.OriginalSender) + if err != nil { + return err + } + // Deserialize `RemoteChainSelector`: + err = decoder.Decode(&obj.RemoteChainSelector) + if err != nil { + return err + } + // Deserialize `Receiver`: + err = decoder.Decode(&obj.Receiver) + if err != nil { + return err + } + // Deserialize `Amount`: + err = decoder.Decode(&obj.Amount) + if err != nil { + return err + } + // Deserialize `LocalToken`: + err = decoder.Decode(&obj.LocalToken) + if err != nil { + return err + } + // Deserialize `SourcePoolAddress`: + err = decoder.Decode(&obj.SourcePoolAddress) + if err != nil { + return err + } + // Deserialize `SourcePoolData`: + err = decoder.Decode(&obj.SourcePoolData) + if err != nil { + return err + } + // Deserialize `OffchainTokenData`: + err = decoder.Decode(&obj.OffchainTokenData) + if err != nil { + return err + } + return nil +} + +type LockOrBurnOutV1 struct { + DestTokenAddress []byte + DestPoolData []byte +} + +func (obj LockOrBurnOutV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `DestTokenAddress` param: + err = encoder.Encode(obj.DestTokenAddress) + if err != nil { + return err + } + // Serialize `DestPoolData` param: + err = encoder.Encode(obj.DestPoolData) + if err != nil { + return err + } + return nil +} + +func (obj *LockOrBurnOutV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `DestTokenAddress`: + err = decoder.Decode(&obj.DestTokenAddress) + if err != nil { + return err + } + // Deserialize `DestPoolData`: + err = decoder.Decode(&obj.DestPoolData) + if err != nil { + return err + } + return nil +} + +type ReleaseOrMintOutV1 struct { + DestinationAmount uint64 +} + +func (obj ReleaseOrMintOutV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `DestinationAmount` param: + err = encoder.Encode(obj.DestinationAmount) + if err != nil { + return err + } + return nil +} + +func (obj *ReleaseOrMintOutV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `DestinationAmount`: + err = decoder.Decode(&obj.DestinationAmount) + if err != nil { + return err + } + return nil +} + +type Ocr3Config struct { + PluginType uint8 + ConfigInfo Ocr3ConfigInfo + Signers [16][20]uint8 + Transmitters [16][32]uint8 +} + +func (obj Ocr3Config) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `PluginType` param: + err = encoder.Encode(obj.PluginType) + if err != nil { + return err + } + // Serialize `ConfigInfo` param: + err = encoder.Encode(obj.ConfigInfo) + if err != nil { + return err + } + // Serialize `Signers` param: + err = encoder.Encode(obj.Signers) + if err != nil { + return err + } + // Serialize `Transmitters` param: + err = encoder.Encode(obj.Transmitters) + if err != nil { + return err + } + return nil +} + +func (obj *Ocr3Config) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `PluginType`: + err = decoder.Decode(&obj.PluginType) + if err != nil { + return err + } + // Deserialize `ConfigInfo`: + err = decoder.Decode(&obj.ConfigInfo) + if err != nil { + return err + } + // Deserialize `Signers`: + err = decoder.Decode(&obj.Signers) + if err != nil { + return err + } + // Deserialize `Transmitters`: + err = decoder.Decode(&obj.Transmitters) + if err != nil { + return err + } + return nil +} + +type Ocr3ConfigInfo struct { + ConfigDigest [32]uint8 + F uint8 + N uint8 + IsSignatureVerificationEnabled uint8 +} + +func (obj Ocr3ConfigInfo) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `ConfigDigest` param: + err = encoder.Encode(obj.ConfigDigest) + if err != nil { + return err + } + // Serialize `F` param: + err = encoder.Encode(obj.F) + if err != nil { + return err + } + // Serialize `N` param: + err = encoder.Encode(obj.N) + if err != nil { + return err + } + // Serialize `IsSignatureVerificationEnabled` param: + err = encoder.Encode(obj.IsSignatureVerificationEnabled) + if err != nil { + return err + } + return nil +} + +func (obj *Ocr3ConfigInfo) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `ConfigDigest`: + err = decoder.Decode(&obj.ConfigDigest) + if err != nil { + return err + } + // Deserialize `F`: + err = decoder.Decode(&obj.F) + if err != nil { + return err + } + // Deserialize `N`: + err = decoder.Decode(&obj.N) + if err != nil { + return err + } + // Deserialize `IsSignatureVerificationEnabled`: + err = decoder.Decode(&obj.IsSignatureVerificationEnabled) + if err != nil { + return err + } + return nil +} + +type SourceChainConfig struct { + IsEnabled bool + MinSeqNr uint64 + OnRamp []byte +} + +func (obj SourceChainConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `IsEnabled` param: + err = encoder.Encode(obj.IsEnabled) + if err != nil { + return err + } + // Serialize `MinSeqNr` param: + err = encoder.Encode(obj.MinSeqNr) + if err != nil { + return err + } + // Serialize `OnRamp` param: + err = encoder.Encode(obj.OnRamp) + if err != nil { + return err + } + return nil +} + +func (obj *SourceChainConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `IsEnabled`: + err = decoder.Decode(&obj.IsEnabled) + if err != nil { + return err + } + // Deserialize `MinSeqNr`: + err = decoder.Decode(&obj.MinSeqNr) + if err != nil { + return err + } + // Deserialize `OnRamp`: + err = decoder.Decode(&obj.OnRamp) + if err != nil { + return err + } + return nil +} + +type DestChainConfig struct { + SequenceNumber uint64 + UsdPerUnitGas TimestampedPackedU224 + BillingConfig ChainBillingConfig +} + +func (obj DestChainConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `SequenceNumber` param: + err = encoder.Encode(obj.SequenceNumber) + if err != nil { + return err + } + // Serialize `UsdPerUnitGas` param: + err = encoder.Encode(obj.UsdPerUnitGas) + if err != nil { + return err + } + // Serialize `BillingConfig` param: + err = encoder.Encode(obj.BillingConfig) + if err != nil { + return err + } + return nil +} + +func (obj *DestChainConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `SequenceNumber`: + err = decoder.Decode(&obj.SequenceNumber) + if err != nil { + return err + } + // Deserialize `UsdPerUnitGas`: + err = decoder.Decode(&obj.UsdPerUnitGas) + if err != nil { + return err + } + // Deserialize `BillingConfig`: + err = decoder.Decode(&obj.BillingConfig) + if err != nil { + return err + } + return nil +} + +type ChainBillingConfig struct { + IsEnabled bool + MaxNumberOfTokensPerMsg uint16 + MaxDataBytes uint32 + MaxPerMsgGasLimit uint32 + DestGasOverhead uint32 + DestGasPerPayloadByte uint16 + DestDataAvailabilityOverheadGas uint32 + DestGasPerDataAvailabilityByte uint16 + DestDataAvailabilityMultiplierBps uint16 + DefaultTokenFeeUsdcents uint16 + DefaultTokenDestGasOverhead uint32 + DefaultTxGasLimit uint32 + GasMultiplierWeiPerEth uint64 + NetworkFeeUsdcents uint32 + GasPriceStalenessThreshold uint32 + EnforceOutOfOrder bool + ChainFamilySelector [4]uint8 +} + +func (obj ChainBillingConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `IsEnabled` param: + err = encoder.Encode(obj.IsEnabled) + if err != nil { + return err + } + // Serialize `MaxNumberOfTokensPerMsg` param: + err = encoder.Encode(obj.MaxNumberOfTokensPerMsg) + if err != nil { + return err + } + // Serialize `MaxDataBytes` param: + err = encoder.Encode(obj.MaxDataBytes) + if err != nil { + return err + } + // Serialize `MaxPerMsgGasLimit` param: + err = encoder.Encode(obj.MaxPerMsgGasLimit) + if err != nil { + return err + } + // Serialize `DestGasOverhead` param: + err = encoder.Encode(obj.DestGasOverhead) + if err != nil { + return err + } + // Serialize `DestGasPerPayloadByte` param: + err = encoder.Encode(obj.DestGasPerPayloadByte) + if err != nil { + return err + } + // Serialize `DestDataAvailabilityOverheadGas` param: + err = encoder.Encode(obj.DestDataAvailabilityOverheadGas) + if err != nil { + return err + } + // Serialize `DestGasPerDataAvailabilityByte` param: + err = encoder.Encode(obj.DestGasPerDataAvailabilityByte) + if err != nil { + return err + } + // Serialize `DestDataAvailabilityMultiplierBps` param: + err = encoder.Encode(obj.DestDataAvailabilityMultiplierBps) + if err != nil { + return err + } + // Serialize `DefaultTokenFeeUsdcents` param: + err = encoder.Encode(obj.DefaultTokenFeeUsdcents) + if err != nil { + return err + } + // Serialize `DefaultTokenDestGasOverhead` param: + err = encoder.Encode(obj.DefaultTokenDestGasOverhead) + if err != nil { + return err + } + // Serialize `DefaultTxGasLimit` param: + err = encoder.Encode(obj.DefaultTxGasLimit) + if err != nil { + return err + } + // Serialize `GasMultiplierWeiPerEth` param: + err = encoder.Encode(obj.GasMultiplierWeiPerEth) + if err != nil { + return err + } + // Serialize `NetworkFeeUsdcents` param: + err = encoder.Encode(obj.NetworkFeeUsdcents) + if err != nil { + return err + } + // Serialize `GasPriceStalenessThreshold` param: + err = encoder.Encode(obj.GasPriceStalenessThreshold) + if err != nil { + return err + } + // Serialize `EnforceOutOfOrder` param: + err = encoder.Encode(obj.EnforceOutOfOrder) + if err != nil { + return err + } + // Serialize `ChainFamilySelector` param: + err = encoder.Encode(obj.ChainFamilySelector) + if err != nil { + return err + } + return nil +} + +func (obj *ChainBillingConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `IsEnabled`: + err = decoder.Decode(&obj.IsEnabled) + if err != nil { + return err + } + // Deserialize `MaxNumberOfTokensPerMsg`: + err = decoder.Decode(&obj.MaxNumberOfTokensPerMsg) + if err != nil { + return err + } + // Deserialize `MaxDataBytes`: + err = decoder.Decode(&obj.MaxDataBytes) + if err != nil { + return err + } + // Deserialize `MaxPerMsgGasLimit`: + err = decoder.Decode(&obj.MaxPerMsgGasLimit) + if err != nil { + return err + } + // Deserialize `DestGasOverhead`: + err = decoder.Decode(&obj.DestGasOverhead) + if err != nil { + return err + } + // Deserialize `DestGasPerPayloadByte`: + err = decoder.Decode(&obj.DestGasPerPayloadByte) + if err != nil { + return err + } + // Deserialize `DestDataAvailabilityOverheadGas`: + err = decoder.Decode(&obj.DestDataAvailabilityOverheadGas) + if err != nil { + return err + } + // Deserialize `DestGasPerDataAvailabilityByte`: + err = decoder.Decode(&obj.DestGasPerDataAvailabilityByte) + if err != nil { + return err + } + // Deserialize `DestDataAvailabilityMultiplierBps`: + err = decoder.Decode(&obj.DestDataAvailabilityMultiplierBps) + if err != nil { + return err + } + // Deserialize `DefaultTokenFeeUsdcents`: + err = decoder.Decode(&obj.DefaultTokenFeeUsdcents) + if err != nil { + return err + } + // Deserialize `DefaultTokenDestGasOverhead`: + err = decoder.Decode(&obj.DefaultTokenDestGasOverhead) + if err != nil { + return err + } + // Deserialize `DefaultTxGasLimit`: + err = decoder.Decode(&obj.DefaultTxGasLimit) + if err != nil { + return err + } + // Deserialize `GasMultiplierWeiPerEth`: + err = decoder.Decode(&obj.GasMultiplierWeiPerEth) + if err != nil { + return err + } + // Deserialize `NetworkFeeUsdcents`: + err = decoder.Decode(&obj.NetworkFeeUsdcents) + if err != nil { + return err + } + // Deserialize `GasPriceStalenessThreshold`: + err = decoder.Decode(&obj.GasPriceStalenessThreshold) + if err != nil { + return err + } + // Deserialize `EnforceOutOfOrder`: + err = decoder.Decode(&obj.EnforceOutOfOrder) + if err != nil { + return err + } + // Deserialize `ChainFamilySelector`: + err = decoder.Decode(&obj.ChainFamilySelector) + if err != nil { + return err + } + return nil +} + +type TokenBilling struct { + MinFeeUsdcents uint32 + MaxFeeUsdcents uint32 + DeciBps uint16 + DestGasOverhead uint32 + DestBytesOverhead uint32 + IsEnabled bool +} + +func (obj TokenBilling) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `MinFeeUsdcents` param: + err = encoder.Encode(obj.MinFeeUsdcents) + if err != nil { + return err + } + // Serialize `MaxFeeUsdcents` param: + err = encoder.Encode(obj.MaxFeeUsdcents) + if err != nil { + return err + } + // Serialize `DeciBps` param: + err = encoder.Encode(obj.DeciBps) + if err != nil { + return err + } + // Serialize `DestGasOverhead` param: + err = encoder.Encode(obj.DestGasOverhead) + if err != nil { + return err + } + // Serialize `DestBytesOverhead` param: + err = encoder.Encode(obj.DestBytesOverhead) + if err != nil { + return err + } + // Serialize `IsEnabled` param: + err = encoder.Encode(obj.IsEnabled) + if err != nil { + return err + } + return nil +} + +func (obj *TokenBilling) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `MinFeeUsdcents`: + err = decoder.Decode(&obj.MinFeeUsdcents) + if err != nil { + return err + } + // Deserialize `MaxFeeUsdcents`: + err = decoder.Decode(&obj.MaxFeeUsdcents) + if err != nil { + return err + } + // Deserialize `DeciBps`: + err = decoder.Decode(&obj.DeciBps) + if err != nil { + return err + } + // Deserialize `DestGasOverhead`: + err = decoder.Decode(&obj.DestGasOverhead) + if err != nil { + return err + } + // Deserialize `DestBytesOverhead`: + err = decoder.Decode(&obj.DestBytesOverhead) + if err != nil { + return err + } + // Deserialize `IsEnabled`: + err = decoder.Decode(&obj.IsEnabled) + if err != nil { + return err + } + return nil +} + +type TimestampedPackedU224 struct { + Value [28]uint8 + Timestamp uint32 +} + +func (obj TimestampedPackedU224) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { + // Serialize `Value` param: + err = encoder.Encode(obj.Value) + if err != nil { + return err + } + // Serialize `Timestamp` param: + err = encoder.Encode(obj.Timestamp) + if err != nil { + return err + } + return nil +} + +func (obj *TimestampedPackedU224) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { + // Deserialize `Value`: + err = decoder.Decode(&obj.Value) + if err != nil { + return err + } + // Deserialize `Timestamp`: + err = decoder.Decode(&obj.Timestamp) + if err != nil { + return err + } + return nil +} + +type OcrPluginType ag_binary.BorshEnum + +const ( + Commit_OcrPluginType OcrPluginType = iota + Execution_OcrPluginType +) + +func (value OcrPluginType) String() string { + switch value { + case Commit_OcrPluginType: + return "Commit" + case Execution_OcrPluginType: + return "Execution" + default: + return "" + } +} + +type MerkleError ag_binary.BorshEnum + +const ( + InvalidProof_MerkleError MerkleError = iota +) + +func (value MerkleError) String() string { + switch value { + case InvalidProof_MerkleError: + return "InvalidProof" + default: + return "" + } +} + +type MessageExecutionState ag_binary.BorshEnum + +const ( + Untouched_MessageExecutionState MessageExecutionState = iota + InProgress_MessageExecutionState + Success_MessageExecutionState + Failure_MessageExecutionState +) + +func (value MessageExecutionState) String() string { + switch value { + case Untouched_MessageExecutionState: + return "Untouched" + case InProgress_MessageExecutionState: + return "InProgress" + case Success_MessageExecutionState: + return "Success" + case Failure_MessageExecutionState: + return "Failure" + default: + return "" + } +} + +type CcipRouterError ag_binary.BorshEnum + +const ( + InvalidSequenceInterval_CcipRouterError CcipRouterError = iota + RootNotCommitted_CcipRouterError + ExistingMerkleRoot_CcipRouterError + Unauthorized_CcipRouterError + InvalidInputs_CcipRouterError + UnsupportedSourceChainSelector_CcipRouterError + UnsupportedDestinationChainSelector_CcipRouterError + InvalidProof_CcipRouterError + InvalidMessage_CcipRouterError + ReachedMaxSequenceNumber_CcipRouterError + ManualExecutionNotAllowed_CcipRouterError + InvalidInputsTokenIndices_CcipRouterError + InvalidInputsPoolAccounts_CcipRouterError + InvalidInputsTokenAccounts_CcipRouterError + InvalidInputsConfigAccounts_CcipRouterError + InvalidInputsTokenAmount_CcipRouterError + OfframpReleaseMintBalanceMismatch_CcipRouterError + OfframpInvalidDataLength_CcipRouterError +) + +func (value CcipRouterError) String() string { + switch value { + case InvalidSequenceInterval_CcipRouterError: + return "InvalidSequenceInterval" + case RootNotCommitted_CcipRouterError: + return "RootNotCommitted" + case ExistingMerkleRoot_CcipRouterError: + return "ExistingMerkleRoot" + case Unauthorized_CcipRouterError: + return "Unauthorized" + case InvalidInputs_CcipRouterError: + return "InvalidInputs" + case UnsupportedSourceChainSelector_CcipRouterError: + return "UnsupportedSourceChainSelector" + case UnsupportedDestinationChainSelector_CcipRouterError: + return "UnsupportedDestinationChainSelector" + case InvalidProof_CcipRouterError: + return "InvalidProof" + case InvalidMessage_CcipRouterError: + return "InvalidMessage" + case ReachedMaxSequenceNumber_CcipRouterError: + return "ReachedMaxSequenceNumber" + case ManualExecutionNotAllowed_CcipRouterError: + return "ManualExecutionNotAllowed" + case InvalidInputsTokenIndices_CcipRouterError: + return "InvalidInputsTokenIndices" + case InvalidInputsPoolAccounts_CcipRouterError: + return "InvalidInputsPoolAccounts" + case InvalidInputsTokenAccounts_CcipRouterError: + return "InvalidInputsTokenAccounts" + case InvalidInputsConfigAccounts_CcipRouterError: + return "InvalidInputsConfigAccounts" + case InvalidInputsTokenAmount_CcipRouterError: + return "InvalidInputsTokenAmount" + case OfframpReleaseMintBalanceMismatch_CcipRouterError: + return "OfframpReleaseMintBalanceMismatch" + case OfframpInvalidDataLength_CcipRouterError: + return "OfframpInvalidDataLength" + default: + return "" + } +} diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go new file mode 100644 index 00000000000..711bb66068a --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -0,0 +1,144 @@ +package ccipsolana + +import ( + "bytes" + "context" + "errors" + "fmt" + + "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana/ccip_router" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + + agbinary "github.com/gagliardetto/binary" +) + +// CommitPluginCodecV1 is a codec for encoding and decoding commit plugin reports. +// Compatible with: +// - "OffRamp 1.6.0-dev" +type CommitPluginCodecV1 struct{} + +func NewCommitPluginCodecV1() *CommitPluginCodecV1 { + return &CommitPluginCodecV1{} +} + +func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.CommitPluginReport) ([]byte, error) { + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + + mr := ccip_router.MerkleRoot{ + SourceChainSelector: uint64(report.MerkleRoots[0].ChainSel), + OnRampAddress: report.MerkleRoots[0].OnRampAddress, + MinSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.Start()), + MaxSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.End()), + MerkleRoot: report.MerkleRoots[0].MerkleRoot, + } + + tpu := make([]ccip_router.TokenPriceUpdate, 0, len(report.PriceUpdates.TokenPriceUpdates)) + for _, update := range report.PriceUpdates.TokenPriceUpdates { + b, err := update.Price.MarshalJSON() + if err != nil { + return nil, fmt.Errorf("error marshaling token price: %v", err) + } + + if len(b) > 28 { + return nil, errors.New("token price is too large") + } + + tpu = append(tpu, ccip_router.TokenPriceUpdate{ + SourceToken: solana.MPK(string(update.TokenID)), + UsdPerToken: [28]uint8(b), + }) + } + + gpu := make([]ccip_router.GasPriceUpdate, 0, len(report.PriceUpdates.GasPriceUpdates)) + for _, update := range report.PriceUpdates.GasPriceUpdates { + b, err := update.GasPrice.MarshalJSON() + if err != nil { + return nil, fmt.Errorf("error marshaling gas price update: %w", err) + } + + if len(b) > 28 { + return nil, errors.New("error marshaling gas price update: gas price is too large") + } + + gpu = append(gpu, ccip_router.GasPriceUpdate{ + DestChainSelector: uint64(update.ChainSel), + UsdPerUnitGas: [28]uint8(b), + }) + } + + commit := ccip_router.CommitInput{ + MerkleRoot: mr, + PriceUpdates: ccip_router.PriceUpdates{ + TokenPriceUpdates: tpu, + GasPriceUpdates: gpu, + }, + } + + err := commit.MarshalWithEncoder(encoder) + if err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +func (c *CommitPluginCodecV1) Decode(ctx context.Context, bytes []byte) (cciptypes.CommitPluginReport, error) { + decoder := agbinary.NewBorshDecoder(bytes) + commitReport := ccip_router.CommitInput{} + err := commitReport.UnmarshalWithDecoder(decoder) + if err != nil { + return cciptypes.CommitPluginReport{}, err + } + + merkleRoots := []cciptypes.MerkleRootChain{ + { + ChainSel: cciptypes.ChainSelector(commitReport.MerkleRoot.SourceChainSelector), + OnRampAddress: commitReport.MerkleRoot.OnRampAddress, + SeqNumsRange: cciptypes.NewSeqNumRange( + cciptypes.SeqNum(commitReport.MerkleRoot.MinSeqNr), + cciptypes.SeqNum(commitReport.MerkleRoot.MaxSeqNr), + ), + MerkleRoot: commitReport.MerkleRoot.MerkleRoot, + }, + } + + tokenPriceUpdates := make([]cciptypes.TokenPrice, 0, len(commitReport.PriceUpdates.TokenPriceUpdates)) + for _, update := range commitReport.PriceUpdates.TokenPriceUpdates { + price := cciptypes.BigInt{} + err = price.UnmarshalJSON(update.UsdPerToken[:]) + if err != nil { + return cciptypes.CommitPluginReport{}, err + } + tokenPriceUpdates = append(tokenPriceUpdates, cciptypes.TokenPrice{ + TokenID: cciptypes.UnknownEncodedAddress(update.SourceToken.String()), + Price: price, + }) + } + + gasPriceUpdates := make([]cciptypes.GasPriceChain, 0, len(commitReport.PriceUpdates.GasPriceUpdates)) + for _, update := range commitReport.PriceUpdates.GasPriceUpdates { + price := cciptypes.BigInt{} + err = price.UnmarshalJSON(update.UsdPerUnitGas[:]) + if err != nil { + return cciptypes.CommitPluginReport{}, err + } + gasPriceUpdates = append(gasPriceUpdates, cciptypes.GasPriceChain{ + GasPrice: price, + ChainSel: cciptypes.ChainSelector(update.DestChainSelector), + }) + } + + return cciptypes.CommitPluginReport{ + MerkleRoots: merkleRoots, + PriceUpdates: cciptypes.PriceUpdates{ + TokenPriceUpdates: tokenPriceUpdates, + GasPriceUpdates: gasPriceUpdates, + }, + }, nil +} + +// Ensure CommitPluginCodec implements the CommitPluginCodec interface +var _ cciptypes.CommitPluginCodec = (*CommitPluginCodecV1)(nil) From c79a4064b5b5019a83f263b29fcd0d730e45cd37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Tue, 24 Dec 2024 15:42:39 +0900 Subject: [PATCH 002/232] ccipsolana: Import bindings --- .../AcceptAdminRoleTokenAdminRegistry.go | 146 -- .../AcceptAdminRoleTokenAdminRegistry_test.go | 32 - .../ccipsolana/ccip_router/AcceptOwnership.go | 117 -- .../ccip_router/AcceptOwnership_test.go | 32 - .../ccip_router/AddChainSelector.go | 207 -- .../ccip_router/AddChainSelector_test.go | 32 - .../ccip/ccipsolana/ccip_router/CcipSend.go | 250 --- .../ccipsolana/ccip_router/CcipSend_test.go | 32 - .../ccip/ccipsolana/ccip_router/Commit.go | 279 --- .../ccipsolana/ccip_router/Commit_test.go | 32 - .../ccip_router/DisableChainSelector.go | 184 -- .../ccip_router/DisableChainSelector_test.go | 32 - .../ccip_router/EnableChainSelector.go | 184 -- .../ccip_router/EnableChainSelector_test.go | 32 - .../ccip/ccipsolana/ccip_router/Execute.go | 293 --- .../ccipsolana/ccip_router/Execute_test.go | 32 - .../ccip/ccipsolana/ccip_router/Initialize.go | 310 --- .../ccipsolana/ccip_router/Initialize_test.go | 32 - .../ccipsolana/ccip_router/ManuallyExecute.go | 261 --- .../ccip_router/ManuallyExecute_test.go | 32 - ...gisterTokenAdminRegistryViaGetCcipAdmin.go | 207 -- ...rTokenAdminRegistryViaGetCcipAdmin_test.go | 32 - .../RegisterTokenAdminRegistryViaOwner.go | 155 -- ...RegisterTokenAdminRegistryViaOwner_test.go | 32 - .../ccipsolana/ccip_router/SetOcrConfig.go | 215 -- .../ccip_router/SetOcrConfig_test.go | 32 - .../ccip/ccipsolana/ccip_router/SetPool.go | 169 -- .../ccipsolana/ccip_router/SetPool_test.go | 32 - .../ccipsolana/ccip_router/SetTokenBilling.go | 230 --- .../ccip_router/SetTokenBilling_test.go | 32 - .../TransferAdminRoleTokenAdminRegistry.go | 169 -- ...ransferAdminRoleTokenAdminRegistry_test.go | 32 - .../ccip_router/TransferOwnership.go | 146 -- .../ccip_router/TransferOwnership_test.go | 32 - .../UpdateDefaultAllowOutOfOrderExecution.go | 165 -- ...ateDefaultAllowOutOfOrderExecution_test.go | 32 - .../ccip_router/UpdateDefaultGasLimit.go | 165 -- .../ccip_router/UpdateDefaultGasLimit_test.go | 32 - .../UpdateEnableManualExecutionAfter.go | 165 -- .../UpdateEnableManualExecutionAfter_test.go | 32 - .../ccip_router/UpdateSolanaChainSelector.go | 165 -- .../UpdateSolanaChainSelector_test.go | 32 - .../ccip/ccipsolana/ccip_router/accounts.go | 661 ------ .../ccipsolana/ccip_router/instructions.go | 304 --- .../ccipsolana/ccip_router/testing_utils.go | 20 - .../ccip/ccipsolana/ccip_router/types.go | 1817 ----------------- .../ccip/ccipsolana/commitcodec.go | 7 +- go.mod | 24 +- go.sum | 124 +- 49 files changed, 33 insertions(+), 7778 deletions(-) delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Commit.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Execute.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/accounts.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/instructions.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go delete mode 100644 core/capabilities/ccip/ccipsolana/ccip_router/types.go diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go deleted file mode 100644 index 6afa27007fe..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry.go +++ /dev/null @@ -1,146 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Pending Admin can accept the Admin Role of the Token Admin Registry -type AcceptAdminRoleTokenAdminRegistry struct { - Mint *ag_solanago.PublicKey - - // [0] = [WRITE] tokenAdminRegistry - // - // [1] = [WRITE, SIGNER] authority - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewAcceptAdminRoleTokenAdminRegistryInstructionBuilder creates a new `AcceptAdminRoleTokenAdminRegistry` instruction builder. -func NewAcceptAdminRoleTokenAdminRegistryInstructionBuilder() *AcceptAdminRoleTokenAdminRegistry { - nd := &AcceptAdminRoleTokenAdminRegistry{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), - } - return nd -} - -// SetMint sets the "mint" parameter. -func (inst *AcceptAdminRoleTokenAdminRegistry) SetMint(mint ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { - inst.Mint = &mint - return inst -} - -// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. -func (inst *AcceptAdminRoleTokenAdminRegistry) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { - inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() - return inst -} - -// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. -func (inst *AcceptAdminRoleTokenAdminRegistry) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *AcceptAdminRoleTokenAdminRegistry) SetAuthorityAccount(authority ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *AcceptAdminRoleTokenAdminRegistry) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -func (inst AcceptAdminRoleTokenAdminRegistry) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_AcceptAdminRoleTokenAdminRegistry, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst AcceptAdminRoleTokenAdminRegistry) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *AcceptAdminRoleTokenAdminRegistry) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.Mint == nil { - return errors.New("Mint parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.TokenAdminRegistry is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - } - return nil -} - -func (inst *AcceptAdminRoleTokenAdminRegistry) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("AcceptAdminRoleTokenAdminRegistry")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("Mint", *inst.Mint)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - }) - }) - }) -} - -func (obj AcceptAdminRoleTokenAdminRegistry) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Mint` param: - err = encoder.Encode(obj.Mint) - if err != nil { - return err - } - return nil -} -func (obj *AcceptAdminRoleTokenAdminRegistry) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Mint`: - err = decoder.Decode(&obj.Mint) - if err != nil { - return err - } - return nil -} - -// NewAcceptAdminRoleTokenAdminRegistryInstruction declares a new AcceptAdminRoleTokenAdminRegistry instruction with the provided parameters and accounts. -func NewAcceptAdminRoleTokenAdminRegistryInstruction( - // Parameters: - mint ag_solanago.PublicKey, - // Accounts: - tokenAdminRegistry ag_solanago.PublicKey, - authority ag_solanago.PublicKey) *AcceptAdminRoleTokenAdminRegistry { - return NewAcceptAdminRoleTokenAdminRegistryInstructionBuilder(). - SetMint(mint). - SetTokenAdminRegistryAccount(tokenAdminRegistry). - SetAuthorityAccount(authority) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go deleted file mode 100644 index 44baeb8e004..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptAdminRoleTokenAdminRegistry_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_AcceptAdminRoleTokenAdminRegistry(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("AcceptAdminRoleTokenAdminRegistry"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(AcceptAdminRoleTokenAdminRegistry) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(AcceptAdminRoleTokenAdminRegistry) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go deleted file mode 100644 index 9354db59224..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// AcceptOwnership is the `acceptOwnership` instruction. -type AcceptOwnership struct { - - // [0] = [WRITE] config - // - // [1] = [SIGNER] authority - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewAcceptOwnershipInstructionBuilder creates a new `AcceptOwnership` instruction builder. -func NewAcceptOwnershipInstructionBuilder() *AcceptOwnership { - nd := &AcceptOwnership{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), - } - return nd -} - -// SetConfigAccount sets the "config" account. -func (inst *AcceptOwnership) SetConfigAccount(config ag_solanago.PublicKey) *AcceptOwnership { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *AcceptOwnership) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *AcceptOwnership) SetAuthorityAccount(authority ag_solanago.PublicKey) *AcceptOwnership { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *AcceptOwnership) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -func (inst AcceptOwnership) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_AcceptOwnership, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst AcceptOwnership) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *AcceptOwnership) Validate() error { - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - } - return nil -} - -func (inst *AcceptOwnership) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("AcceptOwnership")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=0]").ParentFunc(func(paramsBranch ag_treeout.Branches) {}) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1])) - }) - }) - }) -} - -func (obj AcceptOwnership) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - return nil -} -func (obj *AcceptOwnership) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - return nil -} - -// NewAcceptOwnershipInstruction declares a new AcceptOwnership instruction with the provided parameters and accounts. -func NewAcceptOwnershipInstruction( - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey) *AcceptOwnership { - return NewAcceptOwnershipInstructionBuilder(). - SetConfigAccount(config). - SetAuthorityAccount(authority) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go deleted file mode 100644 index da475cd5d24..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/AcceptOwnership_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_AcceptOwnership(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("AcceptOwnership"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(AcceptOwnership) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(AcceptOwnership) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go deleted file mode 100644 index 743d44c41e1..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector.go +++ /dev/null @@ -1,207 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin needs to add any new chain supported (this means both OnRamp and OffRamp). -type AddChainSelector struct { - NewChainSelector *uint64 - OnRampAddress *[]byte - - // [0] = [WRITE] chainState - // - // [1] = [] config - // - // [2] = [WRITE, SIGNER] authority - // - // [3] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewAddChainSelectorInstructionBuilder creates a new `AddChainSelector` instruction builder. -func NewAddChainSelectorInstructionBuilder() *AddChainSelector { - nd := &AddChainSelector{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), - } - return nd -} - -// SetNewChainSelector sets the "newChainSelector" parameter. -func (inst *AddChainSelector) SetNewChainSelector(newChainSelector uint64) *AddChainSelector { - inst.NewChainSelector = &newChainSelector - return inst -} - -// SetOnRampAddress sets the "onRampAddress" parameter. -func (inst *AddChainSelector) SetOnRampAddress(onRampAddress []byte) *AddChainSelector { - inst.OnRampAddress = &onRampAddress - return inst -} - -// SetChainStateAccount sets the "chainState" account. -func (inst *AddChainSelector) SetChainStateAccount(chainState ag_solanago.PublicKey) *AddChainSelector { - inst.AccountMetaSlice[0] = ag_solanago.Meta(chainState).WRITE() - return inst -} - -// GetChainStateAccount gets the "chainState" account. -func (inst *AddChainSelector) GetChainStateAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetConfigAccount sets the "config" account. -func (inst *AddChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *AddChainSelector { - inst.AccountMetaSlice[1] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *AddChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *AddChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *AddChainSelector { - inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *AddChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *AddChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *AddChainSelector { - inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *AddChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -func (inst AddChainSelector) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_AddChainSelector, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst AddChainSelector) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *AddChainSelector) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.NewChainSelector == nil { - return errors.New("NewChainSelector parameter is not set") - } - if inst.OnRampAddress == nil { - return errors.New("OnRampAddress parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.ChainState is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *AddChainSelector) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("AddChainSelector")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) - paramsBranch.Child(ag_format.Param(" OnRampAddress", *inst.OnRampAddress)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[3])) - }) - }) - }) -} - -func (obj AddChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `NewChainSelector` param: - err = encoder.Encode(obj.NewChainSelector) - if err != nil { - return err - } - // Serialize `OnRampAddress` param: - err = encoder.Encode(obj.OnRampAddress) - if err != nil { - return err - } - return nil -} -func (obj *AddChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `NewChainSelector`: - err = decoder.Decode(&obj.NewChainSelector) - if err != nil { - return err - } - // Deserialize `OnRampAddress`: - err = decoder.Decode(&obj.OnRampAddress) - if err != nil { - return err - } - return nil -} - -// NewAddChainSelectorInstruction declares a new AddChainSelector instruction with the provided parameters and accounts. -func NewAddChainSelectorInstruction( - // Parameters: - newChainSelector uint64, - onRampAddress []byte, - // Accounts: - chainState ag_solanago.PublicKey, - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *AddChainSelector { - return NewAddChainSelectorInstructionBuilder(). - SetNewChainSelector(newChainSelector). - SetOnRampAddress(onRampAddress). - SetChainStateAccount(chainState). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go deleted file mode 100644 index 8398360f7f6..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/AddChainSelector_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_AddChainSelector(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("AddChainSelector"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(AddChainSelector) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(AddChainSelector) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go b/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go deleted file mode 100644 index 61cd343e929..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend.go +++ /dev/null @@ -1,250 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// ON RAMP FLOW -// The method name needs to be ccip_send with Anchor encoding. -// This function is called by the CCIP Sender Contract (or final user) to send a message to the CCIP Router. -// The size limit of data is 256 bytes. -// The message is sent to the receiver on the destination chain selector. -// This message emits the event CCIPSendRequested with all the necessary data to be retrieved by the OffChain Code -type CcipSend struct { - DestChainSelector *uint64 - Message *Solana2AnyMessage - - // [0] = [] config - // - // [1] = [WRITE] chainState - // - // [2] = [WRITE] nonce - // - // [3] = [WRITE, SIGNER] authority - // - // [4] = [] systemProgram - // - // [5] = [WRITE] tokenPoolsSigner - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewCcipSendInstructionBuilder creates a new `CcipSend` instruction builder. -func NewCcipSendInstructionBuilder() *CcipSend { - nd := &CcipSend{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 6), - } - return nd -} - -// SetDestChainSelector sets the "destChainSelector" parameter. -func (inst *CcipSend) SetDestChainSelector(destChainSelector uint64) *CcipSend { - inst.DestChainSelector = &destChainSelector - return inst -} - -// SetMessage sets the "message" parameter. -func (inst *CcipSend) SetMessage(message Solana2AnyMessage) *CcipSend { - inst.Message = &message - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *CcipSend) SetConfigAccount(config ag_solanago.PublicKey) *CcipSend { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *CcipSend) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetChainStateAccount sets the "chainState" account. -func (inst *CcipSend) SetChainStateAccount(chainState ag_solanago.PublicKey) *CcipSend { - inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState).WRITE() - return inst -} - -// GetChainStateAccount gets the "chainState" account. -func (inst *CcipSend) GetChainStateAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetNonceAccount sets the "nonce" account. -func (inst *CcipSend) SetNonceAccount(nonce ag_solanago.PublicKey) *CcipSend { - inst.AccountMetaSlice[2] = ag_solanago.Meta(nonce).WRITE() - return inst -} - -// GetNonceAccount gets the "nonce" account. -func (inst *CcipSend) GetNonceAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *CcipSend) SetAuthorityAccount(authority ag_solanago.PublicKey) *CcipSend { - inst.AccountMetaSlice[3] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *CcipSend) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *CcipSend) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *CcipSend { - inst.AccountMetaSlice[4] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *CcipSend) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[4] -} - -// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. -func (inst *CcipSend) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *CcipSend { - inst.AccountMetaSlice[5] = ag_solanago.Meta(tokenPoolsSigner).WRITE() - return inst -} - -// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. -func (inst *CcipSend) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[5] -} - -func (inst CcipSend) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_CcipSend, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst CcipSend) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *CcipSend) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.DestChainSelector == nil { - return errors.New("DestChainSelector parameter is not set") - } - if inst.Message == nil { - return errors.New("Message parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.ChainState is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.Nonce is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[4] == nil { - return errors.New("accounts.SystemProgram is not set") - } - if inst.AccountMetaSlice[5] == nil { - return errors.New("accounts.TokenPoolsSigner is not set") - } - } - return nil -} - -func (inst *CcipSend) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("CcipSend")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("DestChainSelector", *inst.DestChainSelector)) - paramsBranch.Child(ag_format.Param(" Message", *inst.Message)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=6]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" nonce", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[3])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[4])) - accountsBranch.Child(ag_format.Meta("tokenPoolsSigner", inst.AccountMetaSlice[5])) - }) - }) - }) -} - -func (obj CcipSend) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `DestChainSelector` param: - err = encoder.Encode(obj.DestChainSelector) - if err != nil { - return err - } - // Serialize `Message` param: - err = encoder.Encode(obj.Message) - if err != nil { - return err - } - return nil -} -func (obj *CcipSend) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `DestChainSelector`: - err = decoder.Decode(&obj.DestChainSelector) - if err != nil { - return err - } - // Deserialize `Message`: - err = decoder.Decode(&obj.Message) - if err != nil { - return err - } - return nil -} - -// NewCcipSendInstruction declares a new CcipSend instruction with the provided parameters and accounts. -func NewCcipSendInstruction( - // Parameters: - destChainSelector uint64, - message Solana2AnyMessage, - // Accounts: - config ag_solanago.PublicKey, - chainState ag_solanago.PublicKey, - nonce ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey, - tokenPoolsSigner ag_solanago.PublicKey) *CcipSend { - return NewCcipSendInstructionBuilder(). - SetDestChainSelector(destChainSelector). - SetMessage(message). - SetConfigAccount(config). - SetChainStateAccount(chainState). - SetNonceAccount(nonce). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram). - SetTokenPoolsSignerAccount(tokenPoolsSigner) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go deleted file mode 100644 index a9f819342cb..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/CcipSend_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_CcipSend(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("CcipSend"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(CcipSend) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(CcipSend) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Commit.go b/core/capabilities/ccip/ccipsolana/ccip_router/Commit.go deleted file mode 100644 index 898c086029b..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/Commit.go +++ /dev/null @@ -1,279 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// OFF RAMP FLOW -// -// The method name needs to be commit with Anchor encoding. -// -// This function is called by the OffChain when committing one Report to the Solana Router. -// In this Flow only one report is sent, the Commit Report. This is different as EVM does, -// this is because here all the chain state is stored in one account per Merkle Tree Root. -// So, to avoid having to send a dynamic size array of accounts, in this message only one Commit Report Account is sent. -// This message validates the signatures of the report and stores the Merkle Root in the Commit Report Account. -// The Report must contain an interval of messages, and the min of them must be the next sequence number expected. -// The max size of the interval is 64. -// This message emits two events: CommitReportAccepted and Transmitted. -type Commit struct { - ReportContext *[3][32]uint8 - Report *CommitInput - Signatures *[][65]uint8 - - // [0] = [] config - // - // [1] = [WRITE] chainState - // - // [2] = [WRITE] commitReport - // - // [3] = [WRITE, SIGNER] authority - // - // [4] = [] systemProgram - // - // [5] = [] sysvarInstructions - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewCommitInstructionBuilder creates a new `Commit` instruction builder. -func NewCommitInstructionBuilder() *Commit { - nd := &Commit{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 6), - } - return nd -} - -// SetReportContext sets the "reportContext" parameter. -func (inst *Commit) SetReportContext(reportContext [3][32]uint8) *Commit { - inst.ReportContext = &reportContext - return inst -} - -// SetReport sets the "report" parameter. -func (inst *Commit) SetReport(report CommitInput) *Commit { - inst.Report = &report - return inst -} - -// SetSignatures sets the "signatures" parameter. -func (inst *Commit) SetSignatures(signatures [][65]uint8) *Commit { - inst.Signatures = &signatures - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *Commit) SetConfigAccount(config ag_solanago.PublicKey) *Commit { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *Commit) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetChainStateAccount sets the "chainState" account. -func (inst *Commit) SetChainStateAccount(chainState ag_solanago.PublicKey) *Commit { - inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState).WRITE() - return inst -} - -// GetChainStateAccount gets the "chainState" account. -func (inst *Commit) GetChainStateAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetCommitReportAccount sets the "commitReport" account. -func (inst *Commit) SetCommitReportAccount(commitReport ag_solanago.PublicKey) *Commit { - inst.AccountMetaSlice[2] = ag_solanago.Meta(commitReport).WRITE() - return inst -} - -// GetCommitReportAccount gets the "commitReport" account. -func (inst *Commit) GetCommitReportAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *Commit) SetAuthorityAccount(authority ag_solanago.PublicKey) *Commit { - inst.AccountMetaSlice[3] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *Commit) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *Commit) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *Commit { - inst.AccountMetaSlice[4] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *Commit) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[4] -} - -// SetSysvarInstructionsAccount sets the "sysvarInstructions" account. -func (inst *Commit) SetSysvarInstructionsAccount(sysvarInstructions ag_solanago.PublicKey) *Commit { - inst.AccountMetaSlice[5] = ag_solanago.Meta(sysvarInstructions) - return inst -} - -// GetSysvarInstructionsAccount gets the "sysvarInstructions" account. -func (inst *Commit) GetSysvarInstructionsAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[5] -} - -func (inst Commit) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_Commit, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst Commit) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *Commit) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.ReportContext == nil { - return errors.New("ReportContext parameter is not set") - } - if inst.Report == nil { - return errors.New("Report parameter is not set") - } - if inst.Signatures == nil { - return errors.New("Signatures parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.ChainState is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.CommitReport is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[4] == nil { - return errors.New("accounts.SystemProgram is not set") - } - if inst.AccountMetaSlice[5] == nil { - return errors.New("accounts.SysvarInstructions is not set") - } - } - return nil -} - -func (inst *Commit) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("Commit")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=3]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("ReportContext", *inst.ReportContext)) - paramsBranch.Child(ag_format.Param(" Report", *inst.Report)) - paramsBranch.Child(ag_format.Param(" Signatures", *inst.Signatures)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=6]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" commitReport", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[3])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[4])) - accountsBranch.Child(ag_format.Meta("sysvarInstructions", inst.AccountMetaSlice[5])) - }) - }) - }) -} - -func (obj Commit) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `ReportContext` param: - err = encoder.Encode(obj.ReportContext) - if err != nil { - return err - } - // Serialize `Report` param: - err = encoder.Encode(obj.Report) - if err != nil { - return err - } - // Serialize `Signatures` param: - err = encoder.Encode(obj.Signatures) - if err != nil { - return err - } - return nil -} -func (obj *Commit) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `ReportContext`: - err = decoder.Decode(&obj.ReportContext) - if err != nil { - return err - } - // Deserialize `Report`: - err = decoder.Decode(&obj.Report) - if err != nil { - return err - } - // Deserialize `Signatures`: - err = decoder.Decode(&obj.Signatures) - if err != nil { - return err - } - return nil -} - -// NewCommitInstruction declares a new Commit instruction with the provided parameters and accounts. -func NewCommitInstruction( - // Parameters: - reportContext [3][32]uint8, - report CommitInput, - signatures [][65]uint8, - // Accounts: - config ag_solanago.PublicKey, - chainState ag_solanago.PublicKey, - commitReport ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey, - sysvarInstructions ag_solanago.PublicKey) *Commit { - return NewCommitInstructionBuilder(). - SetReportContext(reportContext). - SetReport(report). - SetSignatures(signatures). - SetConfigAccount(config). - SetChainStateAccount(chainState). - SetCommitReportAccount(commitReport). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram). - SetSysvarInstructionsAccount(sysvarInstructions) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go deleted file mode 100644 index fcaf33cc942..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/Commit_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_Commit(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("Commit"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(Commit) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(Commit) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go deleted file mode 100644 index 772c3391061..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector.go +++ /dev/null @@ -1,184 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin is the only one able to enable or disable the chain selector -type DisableChainSelector struct { - NewChainSelector *uint64 - - // [0] = [WRITE] chainState - // - // [1] = [] config - // - // [2] = [WRITE, SIGNER] authority - // - // [3] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewDisableChainSelectorInstructionBuilder creates a new `DisableChainSelector` instruction builder. -func NewDisableChainSelectorInstructionBuilder() *DisableChainSelector { - nd := &DisableChainSelector{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), - } - return nd -} - -// SetNewChainSelector sets the "newChainSelector" parameter. -func (inst *DisableChainSelector) SetNewChainSelector(newChainSelector uint64) *DisableChainSelector { - inst.NewChainSelector = &newChainSelector - return inst -} - -// SetChainStateAccount sets the "chainState" account. -func (inst *DisableChainSelector) SetChainStateAccount(chainState ag_solanago.PublicKey) *DisableChainSelector { - inst.AccountMetaSlice[0] = ag_solanago.Meta(chainState).WRITE() - return inst -} - -// GetChainStateAccount gets the "chainState" account. -func (inst *DisableChainSelector) GetChainStateAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetConfigAccount sets the "config" account. -func (inst *DisableChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *DisableChainSelector { - inst.AccountMetaSlice[1] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *DisableChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *DisableChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *DisableChainSelector { - inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *DisableChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *DisableChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *DisableChainSelector { - inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *DisableChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -func (inst DisableChainSelector) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_DisableChainSelector, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst DisableChainSelector) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *DisableChainSelector) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.NewChainSelector == nil { - return errors.New("NewChainSelector parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.ChainState is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *DisableChainSelector) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("DisableChainSelector")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[3])) - }) - }) - }) -} - -func (obj DisableChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `NewChainSelector` param: - err = encoder.Encode(obj.NewChainSelector) - if err != nil { - return err - } - return nil -} -func (obj *DisableChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `NewChainSelector`: - err = decoder.Decode(&obj.NewChainSelector) - if err != nil { - return err - } - return nil -} - -// NewDisableChainSelectorInstruction declares a new DisableChainSelector instruction with the provided parameters and accounts. -func NewDisableChainSelectorInstruction( - // Parameters: - newChainSelector uint64, - // Accounts: - chainState ag_solanago.PublicKey, - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *DisableChainSelector { - return NewDisableChainSelectorInstructionBuilder(). - SetNewChainSelector(newChainSelector). - SetChainStateAccount(chainState). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go deleted file mode 100644 index 6d4d01c9feb..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/DisableChainSelector_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_DisableChainSelector(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("DisableChainSelector"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(DisableChainSelector) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(DisableChainSelector) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go deleted file mode 100644 index b3b45bb7f91..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector.go +++ /dev/null @@ -1,184 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin is the only one able to enable or disable the chain selector -type EnableChainSelector struct { - NewChainSelector *uint64 - - // [0] = [WRITE] chainState - // - // [1] = [] config - // - // [2] = [WRITE, SIGNER] authority - // - // [3] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewEnableChainSelectorInstructionBuilder creates a new `EnableChainSelector` instruction builder. -func NewEnableChainSelectorInstructionBuilder() *EnableChainSelector { - nd := &EnableChainSelector{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), - } - return nd -} - -// SetNewChainSelector sets the "newChainSelector" parameter. -func (inst *EnableChainSelector) SetNewChainSelector(newChainSelector uint64) *EnableChainSelector { - inst.NewChainSelector = &newChainSelector - return inst -} - -// SetChainStateAccount sets the "chainState" account. -func (inst *EnableChainSelector) SetChainStateAccount(chainState ag_solanago.PublicKey) *EnableChainSelector { - inst.AccountMetaSlice[0] = ag_solanago.Meta(chainState).WRITE() - return inst -} - -// GetChainStateAccount gets the "chainState" account. -func (inst *EnableChainSelector) GetChainStateAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetConfigAccount sets the "config" account. -func (inst *EnableChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *EnableChainSelector { - inst.AccountMetaSlice[1] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *EnableChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *EnableChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *EnableChainSelector { - inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *EnableChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *EnableChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *EnableChainSelector { - inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *EnableChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -func (inst EnableChainSelector) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_EnableChainSelector, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst EnableChainSelector) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *EnableChainSelector) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.NewChainSelector == nil { - return errors.New("NewChainSelector parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.ChainState is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *EnableChainSelector) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("EnableChainSelector")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[3])) - }) - }) - }) -} - -func (obj EnableChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `NewChainSelector` param: - err = encoder.Encode(obj.NewChainSelector) - if err != nil { - return err - } - return nil -} -func (obj *EnableChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `NewChainSelector`: - err = decoder.Decode(&obj.NewChainSelector) - if err != nil { - return err - } - return nil -} - -// NewEnableChainSelectorInstruction declares a new EnableChainSelector instruction with the provided parameters and accounts. -func NewEnableChainSelectorInstruction( - // Parameters: - newChainSelector uint64, - // Accounts: - chainState ag_solanago.PublicKey, - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *EnableChainSelector { - return NewEnableChainSelectorInstructionBuilder(). - SetNewChainSelector(newChainSelector). - SetChainStateAccount(chainState). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go deleted file mode 100644 index f14c09f534a..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/EnableChainSelector_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_EnableChainSelector(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("EnableChainSelector"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(EnableChainSelector) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(EnableChainSelector) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Execute.go b/core/capabilities/ccip/ccipsolana/ccip_router/Execute.go deleted file mode 100644 index 5ed3628dd1f..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/Execute.go +++ /dev/null @@ -1,293 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// OFF RAMP FLOW -// -// The method name needs to be execute with Anchor encoding. -// -// This function is called by the OffChain when executing one Report to the Solana Router. -// In this Flow only one message is sent, the Execution Report. This is different as EVM does, -// this is because there is no try/catch mechanism to allow batch execution. -// This message validates that the Merkle Tree Proof of the given message is correct and is stored in the Commit Report Account. -// The message must be untouched to be executed. -// This message emits the event ExecutionStateChanged with the new state of the message. -// Finally, executes the CPI instruction to the receiver program in the ccip_receive message. -type Execute struct { - ExecutionReport *ExecutionReportSingleChain - ReportContext *[3][32]uint8 - - // [0] = [] config - // - // [1] = [] chainState - // - // [2] = [WRITE] commitReport - // - // [3] = [] externalExecutionConfig - // - // [4] = [WRITE, SIGNER] authority - // - // [5] = [] systemProgram - // - // [6] = [] sysvarInstructions - // - // [7] = [] tokenPoolsSigner - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewExecuteInstructionBuilder creates a new `Execute` instruction builder. -func NewExecuteInstructionBuilder() *Execute { - nd := &Execute{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 8), - } - return nd -} - -// SetExecutionReport sets the "executionReport" parameter. -func (inst *Execute) SetExecutionReport(executionReport ExecutionReportSingleChain) *Execute { - inst.ExecutionReport = &executionReport - return inst -} - -// SetReportContext sets the "reportContext" parameter. -func (inst *Execute) SetReportContext(reportContext [3][32]uint8) *Execute { - inst.ReportContext = &reportContext - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *Execute) SetConfigAccount(config ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *Execute) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetChainStateAccount sets the "chainState" account. -func (inst *Execute) SetChainStateAccount(chainState ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState) - return inst -} - -// GetChainStateAccount gets the "chainState" account. -func (inst *Execute) GetChainStateAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetCommitReportAccount sets the "commitReport" account. -func (inst *Execute) SetCommitReportAccount(commitReport ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[2] = ag_solanago.Meta(commitReport).WRITE() - return inst -} - -// GetCommitReportAccount gets the "commitReport" account. -func (inst *Execute) GetCommitReportAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetExternalExecutionConfigAccount sets the "externalExecutionConfig" account. -func (inst *Execute) SetExternalExecutionConfigAccount(externalExecutionConfig ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[3] = ag_solanago.Meta(externalExecutionConfig) - return inst -} - -// GetExternalExecutionConfigAccount gets the "externalExecutionConfig" account. -func (inst *Execute) GetExternalExecutionConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *Execute) SetAuthorityAccount(authority ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[4] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *Execute) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[4] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *Execute) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[5] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *Execute) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[5] -} - -// SetSysvarInstructionsAccount sets the "sysvarInstructions" account. -func (inst *Execute) SetSysvarInstructionsAccount(sysvarInstructions ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[6] = ag_solanago.Meta(sysvarInstructions) - return inst -} - -// GetSysvarInstructionsAccount gets the "sysvarInstructions" account. -func (inst *Execute) GetSysvarInstructionsAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[6] -} - -// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. -func (inst *Execute) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *Execute { - inst.AccountMetaSlice[7] = ag_solanago.Meta(tokenPoolsSigner) - return inst -} - -// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. -func (inst *Execute) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[7] -} - -func (inst Execute) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_Execute, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst Execute) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *Execute) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.ExecutionReport == nil { - return errors.New("ExecutionReport parameter is not set") - } - if inst.ReportContext == nil { - return errors.New("ReportContext parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.ChainState is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.CommitReport is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.ExternalExecutionConfig is not set") - } - if inst.AccountMetaSlice[4] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[5] == nil { - return errors.New("accounts.SystemProgram is not set") - } - if inst.AccountMetaSlice[6] == nil { - return errors.New("accounts.SysvarInstructions is not set") - } - if inst.AccountMetaSlice[7] == nil { - return errors.New("accounts.TokenPoolsSigner is not set") - } - } - return nil -} - -func (inst *Execute) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("Execute")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("ExecutionReport", *inst.ExecutionReport)) - paramsBranch.Child(ag_format.Param(" ReportContext", *inst.ReportContext)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=8]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" commitReport", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta("externalExecutionConfig", inst.AccountMetaSlice[3])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[4])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[5])) - accountsBranch.Child(ag_format.Meta(" sysvarInstructions", inst.AccountMetaSlice[6])) - accountsBranch.Child(ag_format.Meta(" tokenPoolsSigner", inst.AccountMetaSlice[7])) - }) - }) - }) -} - -func (obj Execute) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `ExecutionReport` param: - err = encoder.Encode(obj.ExecutionReport) - if err != nil { - return err - } - // Serialize `ReportContext` param: - err = encoder.Encode(obj.ReportContext) - if err != nil { - return err - } - return nil -} -func (obj *Execute) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `ExecutionReport`: - err = decoder.Decode(&obj.ExecutionReport) - if err != nil { - return err - } - // Deserialize `ReportContext`: - err = decoder.Decode(&obj.ReportContext) - if err != nil { - return err - } - return nil -} - -// NewExecuteInstruction declares a new Execute instruction with the provided parameters and accounts. -func NewExecuteInstruction( - // Parameters: - executionReport ExecutionReportSingleChain, - reportContext [3][32]uint8, - // Accounts: - config ag_solanago.PublicKey, - chainState ag_solanago.PublicKey, - commitReport ag_solanago.PublicKey, - externalExecutionConfig ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey, - sysvarInstructions ag_solanago.PublicKey, - tokenPoolsSigner ag_solanago.PublicKey) *Execute { - return NewExecuteInstructionBuilder(). - SetExecutionReport(executionReport). - SetReportContext(reportContext). - SetConfigAccount(config). - SetChainStateAccount(chainState). - SetCommitReportAccount(commitReport). - SetExternalExecutionConfigAccount(externalExecutionConfig). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram). - SetSysvarInstructionsAccount(sysvarInstructions). - SetTokenPoolsSignerAccount(tokenPoolsSigner) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go deleted file mode 100644 index 5c0f4d7b7ff..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/Execute_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_Execute(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("Execute"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(Execute) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(Execute) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go b/core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go deleted file mode 100644 index ed65234f3e7..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/Initialize.go +++ /dev/null @@ -1,310 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The initialization is responsibility of Admin, nothing more than calling this method should be done first. -type Initialize struct { - SolanaChainSelector *uint64 - DefaultGasLimit *ag_binary.Uint128 - DefaultAllowOutOfOrderExecution *bool - EnableExecutionAfter *int64 - - // [0] = [WRITE] config - // - // [1] = [WRITE, SIGNER] authority - // - // [2] = [] systemProgram - // - // [3] = [] program - // - // [4] = [] programData - // - // [5] = [WRITE] externalExecutionConfig - // - // [6] = [WRITE] tokenPoolsSigner - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewInitializeInstructionBuilder creates a new `Initialize` instruction builder. -func NewInitializeInstructionBuilder() *Initialize { - nd := &Initialize{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 7), - } - return nd -} - -// SetSolanaChainSelector sets the "solanaChainSelector" parameter. -func (inst *Initialize) SetSolanaChainSelector(solanaChainSelector uint64) *Initialize { - inst.SolanaChainSelector = &solanaChainSelector - return inst -} - -// SetDefaultGasLimit sets the "defaultGasLimit" parameter. -func (inst *Initialize) SetDefaultGasLimit(defaultGasLimit ag_binary.Uint128) *Initialize { - inst.DefaultGasLimit = &defaultGasLimit - return inst -} - -// SetDefaultAllowOutOfOrderExecution sets the "defaultAllowOutOfOrderExecution" parameter. -func (inst *Initialize) SetDefaultAllowOutOfOrderExecution(defaultAllowOutOfOrderExecution bool) *Initialize { - inst.DefaultAllowOutOfOrderExecution = &defaultAllowOutOfOrderExecution - return inst -} - -// SetEnableExecutionAfter sets the "enableExecutionAfter" parameter. -func (inst *Initialize) SetEnableExecutionAfter(enableExecutionAfter int64) *Initialize { - inst.EnableExecutionAfter = &enableExecutionAfter - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *Initialize) SetConfigAccount(config ag_solanago.PublicKey) *Initialize { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *Initialize) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *Initialize) SetAuthorityAccount(authority ag_solanago.PublicKey) *Initialize { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *Initialize) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *Initialize) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *Initialize { - inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *Initialize) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetProgramAccount sets the "program" account. -func (inst *Initialize) SetProgramAccount(program ag_solanago.PublicKey) *Initialize { - inst.AccountMetaSlice[3] = ag_solanago.Meta(program) - return inst -} - -// GetProgramAccount gets the "program" account. -func (inst *Initialize) GetProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -// SetProgramDataAccount sets the "programData" account. -func (inst *Initialize) SetProgramDataAccount(programData ag_solanago.PublicKey) *Initialize { - inst.AccountMetaSlice[4] = ag_solanago.Meta(programData) - return inst -} - -// GetProgramDataAccount gets the "programData" account. -func (inst *Initialize) GetProgramDataAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[4] -} - -// SetExternalExecutionConfigAccount sets the "externalExecutionConfig" account. -func (inst *Initialize) SetExternalExecutionConfigAccount(externalExecutionConfig ag_solanago.PublicKey) *Initialize { - inst.AccountMetaSlice[5] = ag_solanago.Meta(externalExecutionConfig).WRITE() - return inst -} - -// GetExternalExecutionConfigAccount gets the "externalExecutionConfig" account. -func (inst *Initialize) GetExternalExecutionConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[5] -} - -// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. -func (inst *Initialize) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *Initialize { - inst.AccountMetaSlice[6] = ag_solanago.Meta(tokenPoolsSigner).WRITE() - return inst -} - -// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. -func (inst *Initialize) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[6] -} - -func (inst Initialize) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_Initialize, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst Initialize) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *Initialize) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.SolanaChainSelector == nil { - return errors.New("SolanaChainSelector parameter is not set") - } - if inst.DefaultGasLimit == nil { - return errors.New("DefaultGasLimit parameter is not set") - } - if inst.DefaultAllowOutOfOrderExecution == nil { - return errors.New("DefaultAllowOutOfOrderExecution parameter is not set") - } - if inst.EnableExecutionAfter == nil { - return errors.New("EnableExecutionAfter parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.SystemProgram is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.Program is not set") - } - if inst.AccountMetaSlice[4] == nil { - return errors.New("accounts.ProgramData is not set") - } - if inst.AccountMetaSlice[5] == nil { - return errors.New("accounts.ExternalExecutionConfig is not set") - } - if inst.AccountMetaSlice[6] == nil { - return errors.New("accounts.TokenPoolsSigner is not set") - } - } - return nil -} - -func (inst *Initialize) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("Initialize")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=4]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param(" SolanaChainSelector", *inst.SolanaChainSelector)) - paramsBranch.Child(ag_format.Param(" DefaultGasLimit", *inst.DefaultGasLimit)) - paramsBranch.Child(ag_format.Param("DefaultAllowOutOfOrderExecution", *inst.DefaultAllowOutOfOrderExecution)) - paramsBranch.Child(ag_format.Param(" EnableExecutionAfter", *inst.EnableExecutionAfter)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=7]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta(" program", inst.AccountMetaSlice[3])) - accountsBranch.Child(ag_format.Meta(" programData", inst.AccountMetaSlice[4])) - accountsBranch.Child(ag_format.Meta("externalExecutionConfig", inst.AccountMetaSlice[5])) - accountsBranch.Child(ag_format.Meta(" tokenPoolsSigner", inst.AccountMetaSlice[6])) - }) - }) - }) -} - -func (obj Initialize) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `SolanaChainSelector` param: - err = encoder.Encode(obj.SolanaChainSelector) - if err != nil { - return err - } - // Serialize `DefaultGasLimit` param: - err = encoder.Encode(obj.DefaultGasLimit) - if err != nil { - return err - } - // Serialize `DefaultAllowOutOfOrderExecution` param: - err = encoder.Encode(obj.DefaultAllowOutOfOrderExecution) - if err != nil { - return err - } - // Serialize `EnableExecutionAfter` param: - err = encoder.Encode(obj.EnableExecutionAfter) - if err != nil { - return err - } - return nil -} -func (obj *Initialize) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `SolanaChainSelector`: - err = decoder.Decode(&obj.SolanaChainSelector) - if err != nil { - return err - } - // Deserialize `DefaultGasLimit`: - err = decoder.Decode(&obj.DefaultGasLimit) - if err != nil { - return err - } - // Deserialize `DefaultAllowOutOfOrderExecution`: - err = decoder.Decode(&obj.DefaultAllowOutOfOrderExecution) - if err != nil { - return err - } - // Deserialize `EnableExecutionAfter`: - err = decoder.Decode(&obj.EnableExecutionAfter) - if err != nil { - return err - } - return nil -} - -// NewInitializeInstruction declares a new Initialize instruction with the provided parameters and accounts. -func NewInitializeInstruction( - // Parameters: - solanaChainSelector uint64, - defaultGasLimit ag_binary.Uint128, - defaultAllowOutOfOrderExecution bool, - enableExecutionAfter int64, - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey, - program ag_solanago.PublicKey, - programData ag_solanago.PublicKey, - externalExecutionConfig ag_solanago.PublicKey, - tokenPoolsSigner ag_solanago.PublicKey) *Initialize { - return NewInitializeInstructionBuilder(). - SetSolanaChainSelector(solanaChainSelector). - SetDefaultGasLimit(defaultGasLimit). - SetDefaultAllowOutOfOrderExecution(defaultAllowOutOfOrderExecution). - SetEnableExecutionAfter(enableExecutionAfter). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram). - SetProgramAccount(program). - SetProgramDataAccount(programData). - SetExternalExecutionConfigAccount(externalExecutionConfig). - SetTokenPoolsSignerAccount(tokenPoolsSigner) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go deleted file mode 100644 index 51eed3384b8..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/Initialize_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_Initialize(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("Initialize"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(Initialize) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(Initialize) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go b/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go deleted file mode 100644 index 7ec00306a8f..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute.go +++ /dev/null @@ -1,261 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// When a message is not being executed, then the user can trigger the execution manually. -// No verification over the transmitter, but the message needs to be in some commit report. -type ManuallyExecute struct { - ExecutionReport *ExecutionReportSingleChain - - // [0] = [] config - // - // [1] = [] chainState - // - // [2] = [WRITE] commitReport - // - // [3] = [] externalExecutionConfig - // - // [4] = [WRITE, SIGNER] authority - // - // [5] = [] systemProgram - // - // [6] = [] sysvarInstructions - // - // [7] = [] tokenPoolsSigner - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewManuallyExecuteInstructionBuilder creates a new `ManuallyExecute` instruction builder. -func NewManuallyExecuteInstructionBuilder() *ManuallyExecute { - nd := &ManuallyExecute{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 8), - } - return nd -} - -// SetExecutionReport sets the "executionReport" parameter. -func (inst *ManuallyExecute) SetExecutionReport(executionReport ExecutionReportSingleChain) *ManuallyExecute { - inst.ExecutionReport = &executionReport - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *ManuallyExecute) SetConfigAccount(config ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *ManuallyExecute) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetChainStateAccount sets the "chainState" account. -func (inst *ManuallyExecute) SetChainStateAccount(chainState ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[1] = ag_solanago.Meta(chainState) - return inst -} - -// GetChainStateAccount gets the "chainState" account. -func (inst *ManuallyExecute) GetChainStateAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetCommitReportAccount sets the "commitReport" account. -func (inst *ManuallyExecute) SetCommitReportAccount(commitReport ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[2] = ag_solanago.Meta(commitReport).WRITE() - return inst -} - -// GetCommitReportAccount gets the "commitReport" account. -func (inst *ManuallyExecute) GetCommitReportAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetExternalExecutionConfigAccount sets the "externalExecutionConfig" account. -func (inst *ManuallyExecute) SetExternalExecutionConfigAccount(externalExecutionConfig ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[3] = ag_solanago.Meta(externalExecutionConfig) - return inst -} - -// GetExternalExecutionConfigAccount gets the "externalExecutionConfig" account. -func (inst *ManuallyExecute) GetExternalExecutionConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *ManuallyExecute) SetAuthorityAccount(authority ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[4] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *ManuallyExecute) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[4] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *ManuallyExecute) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[5] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *ManuallyExecute) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[5] -} - -// SetSysvarInstructionsAccount sets the "sysvarInstructions" account. -func (inst *ManuallyExecute) SetSysvarInstructionsAccount(sysvarInstructions ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[6] = ag_solanago.Meta(sysvarInstructions) - return inst -} - -// GetSysvarInstructionsAccount gets the "sysvarInstructions" account. -func (inst *ManuallyExecute) GetSysvarInstructionsAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[6] -} - -// SetTokenPoolsSignerAccount sets the "tokenPoolsSigner" account. -func (inst *ManuallyExecute) SetTokenPoolsSignerAccount(tokenPoolsSigner ag_solanago.PublicKey) *ManuallyExecute { - inst.AccountMetaSlice[7] = ag_solanago.Meta(tokenPoolsSigner) - return inst -} - -// GetTokenPoolsSignerAccount gets the "tokenPoolsSigner" account. -func (inst *ManuallyExecute) GetTokenPoolsSignerAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[7] -} - -func (inst ManuallyExecute) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_ManuallyExecute, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst ManuallyExecute) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *ManuallyExecute) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.ExecutionReport == nil { - return errors.New("ExecutionReport parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.ChainState is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.CommitReport is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.ExternalExecutionConfig is not set") - } - if inst.AccountMetaSlice[4] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[5] == nil { - return errors.New("accounts.SystemProgram is not set") - } - if inst.AccountMetaSlice[6] == nil { - return errors.New("accounts.SysvarInstructions is not set") - } - if inst.AccountMetaSlice[7] == nil { - return errors.New("accounts.TokenPoolsSigner is not set") - } - } - return nil -} - -func (inst *ManuallyExecute) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("ManuallyExecute")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("ExecutionReport", *inst.ExecutionReport)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=8]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" chainState", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" commitReport", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta("externalExecutionConfig", inst.AccountMetaSlice[3])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[4])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[5])) - accountsBranch.Child(ag_format.Meta(" sysvarInstructions", inst.AccountMetaSlice[6])) - accountsBranch.Child(ag_format.Meta(" tokenPoolsSigner", inst.AccountMetaSlice[7])) - }) - }) - }) -} - -func (obj ManuallyExecute) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `ExecutionReport` param: - err = encoder.Encode(obj.ExecutionReport) - if err != nil { - return err - } - return nil -} -func (obj *ManuallyExecute) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `ExecutionReport`: - err = decoder.Decode(&obj.ExecutionReport) - if err != nil { - return err - } - return nil -} - -// NewManuallyExecuteInstruction declares a new ManuallyExecute instruction with the provided parameters and accounts. -func NewManuallyExecuteInstruction( - // Parameters: - executionReport ExecutionReportSingleChain, - // Accounts: - config ag_solanago.PublicKey, - chainState ag_solanago.PublicKey, - commitReport ag_solanago.PublicKey, - externalExecutionConfig ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey, - sysvarInstructions ag_solanago.PublicKey, - tokenPoolsSigner ag_solanago.PublicKey) *ManuallyExecute { - return NewManuallyExecuteInstructionBuilder(). - SetExecutionReport(executionReport). - SetConfigAccount(config). - SetChainStateAccount(chainState). - SetCommitReportAccount(commitReport). - SetExternalExecutionConfigAccount(externalExecutionConfig). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram). - SetSysvarInstructionsAccount(sysvarInstructions). - SetTokenPoolsSignerAccount(tokenPoolsSigner) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go deleted file mode 100644 index 38f8fe33c61..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/ManuallyExecute_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_ManuallyExecute(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("ManuallyExecute"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(ManuallyExecute) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(ManuallyExecute) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go deleted file mode 100644 index 20ed495cdb4..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin.go +++ /dev/null @@ -1,207 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The CCIP Admin or the Mint Authority of the Token can register the Token Admin Registry -type RegisterTokenAdminRegistryViaGetCcipAdmin struct { - Mint *ag_solanago.PublicKey - TokenAdminRegistryAdmin *ag_solanago.PublicKey - - // [0] = [] config - // - // [1] = [WRITE] tokenAdminRegistry - // - // [2] = [WRITE, SIGNER] authority - // - // [3] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewRegisterTokenAdminRegistryViaGetCcipAdminInstructionBuilder creates a new `RegisterTokenAdminRegistryViaGetCcipAdmin` instruction builder. -func NewRegisterTokenAdminRegistryViaGetCcipAdminInstructionBuilder() *RegisterTokenAdminRegistryViaGetCcipAdmin { - nd := &RegisterTokenAdminRegistryViaGetCcipAdmin{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), - } - return nd -} - -// SetMint sets the "mint" parameter. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetMint(mint ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { - inst.Mint = &mint - return inst -} - -// SetTokenAdminRegistryAdmin sets the "tokenAdminRegistryAdmin" parameter. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetTokenAdminRegistryAdmin(tokenAdminRegistryAdmin ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { - inst.TokenAdminRegistryAdmin = &tokenAdminRegistryAdmin - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetConfigAccount(config ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { - inst.AccountMetaSlice[1] = ag_solanago.Meta(tokenAdminRegistry).WRITE() - return inst -} - -// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetAuthorityAccount(authority ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { - inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { - inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -func (inst RegisterTokenAdminRegistryViaGetCcipAdmin) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_RegisterTokenAdminRegistryViaGetCcipAdmin, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst RegisterTokenAdminRegistryViaGetCcipAdmin) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.Mint == nil { - return errors.New("Mint parameter is not set") - } - if inst.TokenAdminRegistryAdmin == nil { - return errors.New("TokenAdminRegistryAdmin parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.TokenAdminRegistry is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *RegisterTokenAdminRegistryViaGetCcipAdmin) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("RegisterTokenAdminRegistryViaGetCcipAdmin")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) - paramsBranch.Child(ag_format.Param("TokenAdminRegistryAdmin", *inst.TokenAdminRegistryAdmin)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[3])) - }) - }) - }) -} - -func (obj RegisterTokenAdminRegistryViaGetCcipAdmin) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Mint` param: - err = encoder.Encode(obj.Mint) - if err != nil { - return err - } - // Serialize `TokenAdminRegistryAdmin` param: - err = encoder.Encode(obj.TokenAdminRegistryAdmin) - if err != nil { - return err - } - return nil -} -func (obj *RegisterTokenAdminRegistryViaGetCcipAdmin) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Mint`: - err = decoder.Decode(&obj.Mint) - if err != nil { - return err - } - // Deserialize `TokenAdminRegistryAdmin`: - err = decoder.Decode(&obj.TokenAdminRegistryAdmin) - if err != nil { - return err - } - return nil -} - -// NewRegisterTokenAdminRegistryViaGetCcipAdminInstruction declares a new RegisterTokenAdminRegistryViaGetCcipAdmin instruction with the provided parameters and accounts. -func NewRegisterTokenAdminRegistryViaGetCcipAdminInstruction( - // Parameters: - mint ag_solanago.PublicKey, - tokenAdminRegistryAdmin ag_solanago.PublicKey, - // Accounts: - config ag_solanago.PublicKey, - tokenAdminRegistry ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaGetCcipAdmin { - return NewRegisterTokenAdminRegistryViaGetCcipAdminInstructionBuilder(). - SetMint(mint). - SetTokenAdminRegistryAdmin(tokenAdminRegistryAdmin). - SetConfigAccount(config). - SetTokenAdminRegistryAccount(tokenAdminRegistry). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go deleted file mode 100644 index 29a2c212a49..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaGetCcipAdmin_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_RegisterTokenAdminRegistryViaGetCcipAdmin(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("RegisterTokenAdminRegistryViaGetCcipAdmin"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(RegisterTokenAdminRegistryViaGetCcipAdmin) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(RegisterTokenAdminRegistryViaGetCcipAdmin) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go deleted file mode 100644 index eb79b822606..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner.go +++ /dev/null @@ -1,155 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Token's mint_authority can register themselves to the Token Admin Registry -type RegisterTokenAdminRegistryViaOwner struct { - - // [0] = [WRITE] tokenAdminRegistry - // - // [1] = [WRITE] mint - // - // [2] = [WRITE, SIGNER] authority - // - // [3] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewRegisterTokenAdminRegistryViaOwnerInstructionBuilder creates a new `RegisterTokenAdminRegistryViaOwner` instruction builder. -func NewRegisterTokenAdminRegistryViaOwnerInstructionBuilder() *RegisterTokenAdminRegistryViaOwner { - nd := &RegisterTokenAdminRegistryViaOwner{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), - } - return nd -} - -// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. -func (inst *RegisterTokenAdminRegistryViaOwner) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { - inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() - return inst -} - -// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. -func (inst *RegisterTokenAdminRegistryViaOwner) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetMintAccount sets the "mint" account. -func (inst *RegisterTokenAdminRegistryViaOwner) SetMintAccount(mint ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { - inst.AccountMetaSlice[1] = ag_solanago.Meta(mint).WRITE() - return inst -} - -// GetMintAccount gets the "mint" account. -func (inst *RegisterTokenAdminRegistryViaOwner) GetMintAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *RegisterTokenAdminRegistryViaOwner) SetAuthorityAccount(authority ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { - inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *RegisterTokenAdminRegistryViaOwner) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *RegisterTokenAdminRegistryViaOwner) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { - inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *RegisterTokenAdminRegistryViaOwner) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -func (inst RegisterTokenAdminRegistryViaOwner) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_RegisterTokenAdminRegistryViaOwner, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst RegisterTokenAdminRegistryViaOwner) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *RegisterTokenAdminRegistryViaOwner) Validate() error { - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.TokenAdminRegistry is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Mint is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *RegisterTokenAdminRegistryViaOwner) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("RegisterTokenAdminRegistryViaOwner")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=0]").ParentFunc(func(paramsBranch ag_treeout.Branches) {}) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" mint", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[3])) - }) - }) - }) -} - -func (obj RegisterTokenAdminRegistryViaOwner) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - return nil -} -func (obj *RegisterTokenAdminRegistryViaOwner) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - return nil -} - -// NewRegisterTokenAdminRegistryViaOwnerInstruction declares a new RegisterTokenAdminRegistryViaOwner instruction with the provided parameters and accounts. -func NewRegisterTokenAdminRegistryViaOwnerInstruction( - // Accounts: - tokenAdminRegistry ag_solanago.PublicKey, - mint ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *RegisterTokenAdminRegistryViaOwner { - return NewRegisterTokenAdminRegistryViaOwnerInstructionBuilder(). - SetTokenAdminRegistryAccount(tokenAdminRegistry). - SetMintAccount(mint). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go deleted file mode 100644 index ea293f88b2e..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/RegisterTokenAdminRegistryViaOwner_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_RegisterTokenAdminRegistryViaOwner(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("RegisterTokenAdminRegistryViaOwner"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(RegisterTokenAdminRegistryViaOwner) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(RegisterTokenAdminRegistryViaOwner) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go deleted file mode 100644 index 3a6420a6980..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig.go +++ /dev/null @@ -1,215 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// SetOcrConfig is the `setOcrConfig` instruction. -type SetOcrConfig struct { - PluginType *uint8 - ConfigInfo *Ocr3ConfigInfo - Signers *[][20]uint8 - Transmitters *[]ag_solanago.PublicKey - - // [0] = [WRITE] config - // - // [1] = [SIGNER] authority - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewSetOcrConfigInstructionBuilder creates a new `SetOcrConfig` instruction builder. -func NewSetOcrConfigInstructionBuilder() *SetOcrConfig { - nd := &SetOcrConfig{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), - } - return nd -} - -// SetPluginType sets the "pluginType" parameter. -func (inst *SetOcrConfig) SetPluginType(pluginType uint8) *SetOcrConfig { - inst.PluginType = &pluginType - return inst -} - -// SetConfigInfo sets the "configInfo" parameter. -func (inst *SetOcrConfig) SetConfigInfo(configInfo Ocr3ConfigInfo) *SetOcrConfig { - inst.ConfigInfo = &configInfo - return inst -} - -// SetSigners sets the "signers" parameter. -func (inst *SetOcrConfig) SetSigners(signers [][20]uint8) *SetOcrConfig { - inst.Signers = &signers - return inst -} - -// SetTransmitters sets the "transmitters" parameter. -func (inst *SetOcrConfig) SetTransmitters(transmitters []ag_solanago.PublicKey) *SetOcrConfig { - inst.Transmitters = &transmitters - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *SetOcrConfig) SetConfigAccount(config ag_solanago.PublicKey) *SetOcrConfig { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *SetOcrConfig) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *SetOcrConfig) SetAuthorityAccount(authority ag_solanago.PublicKey) *SetOcrConfig { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *SetOcrConfig) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -func (inst SetOcrConfig) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_SetOcrConfig, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst SetOcrConfig) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *SetOcrConfig) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.PluginType == nil { - return errors.New("PluginType parameter is not set") - } - if inst.ConfigInfo == nil { - return errors.New("ConfigInfo parameter is not set") - } - if inst.Signers == nil { - return errors.New("Signers parameter is not set") - } - if inst.Transmitters == nil { - return errors.New("Transmitters parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - } - return nil -} - -func (inst *SetOcrConfig) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("SetOcrConfig")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=4]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param(" PluginType", *inst.PluginType)) - paramsBranch.Child(ag_format.Param(" ConfigInfo", *inst.ConfigInfo)) - paramsBranch.Child(ag_format.Param(" Signers", *inst.Signers)) - paramsBranch.Child(ag_format.Param("Transmitters", *inst.Transmitters)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1])) - }) - }) - }) -} - -func (obj SetOcrConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `PluginType` param: - err = encoder.Encode(obj.PluginType) - if err != nil { - return err - } - // Serialize `ConfigInfo` param: - err = encoder.Encode(obj.ConfigInfo) - if err != nil { - return err - } - // Serialize `Signers` param: - err = encoder.Encode(obj.Signers) - if err != nil { - return err - } - // Serialize `Transmitters` param: - err = encoder.Encode(obj.Transmitters) - if err != nil { - return err - } - return nil -} -func (obj *SetOcrConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `PluginType`: - err = decoder.Decode(&obj.PluginType) - if err != nil { - return err - } - // Deserialize `ConfigInfo`: - err = decoder.Decode(&obj.ConfigInfo) - if err != nil { - return err - } - // Deserialize `Signers`: - err = decoder.Decode(&obj.Signers) - if err != nil { - return err - } - // Deserialize `Transmitters`: - err = decoder.Decode(&obj.Transmitters) - if err != nil { - return err - } - return nil -} - -// NewSetOcrConfigInstruction declares a new SetOcrConfig instruction with the provided parameters and accounts. -func NewSetOcrConfigInstruction( - // Parameters: - pluginType uint8, - configInfo Ocr3ConfigInfo, - signers [][20]uint8, - transmitters []ag_solanago.PublicKey, - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey) *SetOcrConfig { - return NewSetOcrConfigInstructionBuilder(). - SetPluginType(pluginType). - SetConfigInfo(configInfo). - SetSigners(signers). - SetTransmitters(transmitters). - SetConfigAccount(config). - SetAuthorityAccount(authority) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go deleted file mode 100644 index 88528fc48ea..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/SetOcrConfig_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_SetOcrConfig(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("SetOcrConfig"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(SetOcrConfig) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(SetOcrConfig) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go deleted file mode 100644 index 69cdc9ba5e1..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/SetPool.go +++ /dev/null @@ -1,169 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The administrator of the token can setup the token pool -type SetPool struct { - Mint *ag_solanago.PublicKey - PoolLookupTable *ag_solanago.PublicKey - - // [0] = [WRITE] tokenAdminRegistry - // - // [1] = [WRITE, SIGNER] authority - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewSetPoolInstructionBuilder creates a new `SetPool` instruction builder. -func NewSetPoolInstructionBuilder() *SetPool { - nd := &SetPool{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), - } - return nd -} - -// SetMint sets the "mint" parameter. -func (inst *SetPool) SetMint(mint ag_solanago.PublicKey) *SetPool { - inst.Mint = &mint - return inst -} - -// SetPoolLookupTable sets the "poolLookupTable" parameter. -func (inst *SetPool) SetPoolLookupTable(poolLookupTable ag_solanago.PublicKey) *SetPool { - inst.PoolLookupTable = &poolLookupTable - return inst -} - -// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. -func (inst *SetPool) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *SetPool { - inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() - return inst -} - -// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. -func (inst *SetPool) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *SetPool) SetAuthorityAccount(authority ag_solanago.PublicKey) *SetPool { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *SetPool) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -func (inst SetPool) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_SetPool, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst SetPool) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *SetPool) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.Mint == nil { - return errors.New("Mint parameter is not set") - } - if inst.PoolLookupTable == nil { - return errors.New("PoolLookupTable parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.TokenAdminRegistry is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - } - return nil -} - -func (inst *SetPool) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("SetPool")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) - paramsBranch.Child(ag_format.Param("PoolLookupTable", *inst.PoolLookupTable)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - }) - }) - }) -} - -func (obj SetPool) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Mint` param: - err = encoder.Encode(obj.Mint) - if err != nil { - return err - } - // Serialize `PoolLookupTable` param: - err = encoder.Encode(obj.PoolLookupTable) - if err != nil { - return err - } - return nil -} -func (obj *SetPool) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Mint`: - err = decoder.Decode(&obj.Mint) - if err != nil { - return err - } - // Deserialize `PoolLookupTable`: - err = decoder.Decode(&obj.PoolLookupTable) - if err != nil { - return err - } - return nil -} - -// NewSetPoolInstruction declares a new SetPool instruction with the provided parameters and accounts. -func NewSetPoolInstruction( - // Parameters: - mint ag_solanago.PublicKey, - poolLookupTable ag_solanago.PublicKey, - // Accounts: - tokenAdminRegistry ag_solanago.PublicKey, - authority ag_solanago.PublicKey) *SetPool { - return NewSetPoolInstructionBuilder(). - SetMint(mint). - SetPoolLookupTable(poolLookupTable). - SetTokenAdminRegistryAccount(tokenAdminRegistry). - SetAuthorityAccount(authority) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go deleted file mode 100644 index 249513a25ba..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/SetPool_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_SetPool(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("SetPool"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(SetPool) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(SetPool) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go deleted file mode 100644 index 41f1bcd34a5..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling.go +++ /dev/null @@ -1,230 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// SetTokenBilling is the `setTokenBilling` instruction. -type SetTokenBilling struct { - ChainSelector *uint64 - Mint *ag_solanago.PublicKey - Cfg *TokenBilling - - // [0] = [] config - // - // [1] = [WRITE] perChainPerTokenConfig - // - // [2] = [WRITE, SIGNER] authority - // - // [3] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewSetTokenBillingInstructionBuilder creates a new `SetTokenBilling` instruction builder. -func NewSetTokenBillingInstructionBuilder() *SetTokenBilling { - nd := &SetTokenBilling{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 4), - } - return nd -} - -// SetChainSelector sets the "chainSelector" parameter. -func (inst *SetTokenBilling) SetChainSelector(chainSelector uint64) *SetTokenBilling { - inst.ChainSelector = &chainSelector - return inst -} - -// SetMint sets the "mint" parameter. -func (inst *SetTokenBilling) SetMint(mint ag_solanago.PublicKey) *SetTokenBilling { - inst.Mint = &mint - return inst -} - -// SetCfg sets the "cfg" parameter. -func (inst *SetTokenBilling) SetCfg(cfg TokenBilling) *SetTokenBilling { - inst.Cfg = &cfg - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *SetTokenBilling) SetConfigAccount(config ag_solanago.PublicKey) *SetTokenBilling { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config) - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *SetTokenBilling) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetPerChainPerTokenConfigAccount sets the "perChainPerTokenConfig" account. -func (inst *SetTokenBilling) SetPerChainPerTokenConfigAccount(perChainPerTokenConfig ag_solanago.PublicKey) *SetTokenBilling { - inst.AccountMetaSlice[1] = ag_solanago.Meta(perChainPerTokenConfig).WRITE() - return inst -} - -// GetPerChainPerTokenConfigAccount gets the "perChainPerTokenConfig" account. -func (inst *SetTokenBilling) GetPerChainPerTokenConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *SetTokenBilling) SetAuthorityAccount(authority ag_solanago.PublicKey) *SetTokenBilling { - inst.AccountMetaSlice[2] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *SetTokenBilling) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *SetTokenBilling) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *SetTokenBilling { - inst.AccountMetaSlice[3] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *SetTokenBilling) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[3] -} - -func (inst SetTokenBilling) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_SetTokenBilling, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst SetTokenBilling) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *SetTokenBilling) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.ChainSelector == nil { - return errors.New("ChainSelector parameter is not set") - } - if inst.Mint == nil { - return errors.New("Mint parameter is not set") - } - if inst.Cfg == nil { - return errors.New("Cfg parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.PerChainPerTokenConfig is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[3] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *SetTokenBilling) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("SetTokenBilling")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=3]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("ChainSelector", *inst.ChainSelector)) - paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) - paramsBranch.Child(ag_format.Param(" Cfg", *inst.Cfg)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=4]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta("perChainPerTokenConfig", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[2])) - accountsBranch.Child(ag_format.Meta(" systemProgram", inst.AccountMetaSlice[3])) - }) - }) - }) -} - -func (obj SetTokenBilling) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `ChainSelector` param: - err = encoder.Encode(obj.ChainSelector) - if err != nil { - return err - } - // Serialize `Mint` param: - err = encoder.Encode(obj.Mint) - if err != nil { - return err - } - // Serialize `Cfg` param: - err = encoder.Encode(obj.Cfg) - if err != nil { - return err - } - return nil -} -func (obj *SetTokenBilling) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `ChainSelector`: - err = decoder.Decode(&obj.ChainSelector) - if err != nil { - return err - } - // Deserialize `Mint`: - err = decoder.Decode(&obj.Mint) - if err != nil { - return err - } - // Deserialize `Cfg`: - err = decoder.Decode(&obj.Cfg) - if err != nil { - return err - } - return nil -} - -// NewSetTokenBillingInstruction declares a new SetTokenBilling instruction with the provided parameters and accounts. -func NewSetTokenBillingInstruction( - // Parameters: - chainSelector uint64, - mint ag_solanago.PublicKey, - cfg TokenBilling, - // Accounts: - config ag_solanago.PublicKey, - perChainPerTokenConfig ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *SetTokenBilling { - return NewSetTokenBillingInstructionBuilder(). - SetChainSelector(chainSelector). - SetMint(mint). - SetCfg(cfg). - SetConfigAccount(config). - SetPerChainPerTokenConfigAccount(perChainPerTokenConfig). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go deleted file mode 100644 index aff9d60f3d3..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/SetTokenBilling_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_SetTokenBilling(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("SetTokenBilling"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(SetTokenBilling) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(SetTokenBilling) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go deleted file mode 100644 index 269a086456d..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry.go +++ /dev/null @@ -1,169 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin can transfer the Admin Role of the Token Admin Registry -type TransferAdminRoleTokenAdminRegistry struct { - Mint *ag_solanago.PublicKey - NewAdmin *ag_solanago.PublicKey - - // [0] = [WRITE] tokenAdminRegistry - // - // [1] = [WRITE, SIGNER] authority - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewTransferAdminRoleTokenAdminRegistryInstructionBuilder creates a new `TransferAdminRoleTokenAdminRegistry` instruction builder. -func NewTransferAdminRoleTokenAdminRegistryInstructionBuilder() *TransferAdminRoleTokenAdminRegistry { - nd := &TransferAdminRoleTokenAdminRegistry{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), - } - return nd -} - -// SetMint sets the "mint" parameter. -func (inst *TransferAdminRoleTokenAdminRegistry) SetMint(mint ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { - inst.Mint = &mint - return inst -} - -// SetNewAdmin sets the "newAdmin" parameter. -func (inst *TransferAdminRoleTokenAdminRegistry) SetNewAdmin(newAdmin ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { - inst.NewAdmin = &newAdmin - return inst -} - -// SetTokenAdminRegistryAccount sets the "tokenAdminRegistry" account. -func (inst *TransferAdminRoleTokenAdminRegistry) SetTokenAdminRegistryAccount(tokenAdminRegistry ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { - inst.AccountMetaSlice[0] = ag_solanago.Meta(tokenAdminRegistry).WRITE() - return inst -} - -// GetTokenAdminRegistryAccount gets the "tokenAdminRegistry" account. -func (inst *TransferAdminRoleTokenAdminRegistry) GetTokenAdminRegistryAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *TransferAdminRoleTokenAdminRegistry) SetAuthorityAccount(authority ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).WRITE().SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *TransferAdminRoleTokenAdminRegistry) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -func (inst TransferAdminRoleTokenAdminRegistry) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_TransferAdminRoleTokenAdminRegistry, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst TransferAdminRoleTokenAdminRegistry) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *TransferAdminRoleTokenAdminRegistry) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.Mint == nil { - return errors.New("Mint parameter is not set") - } - if inst.NewAdmin == nil { - return errors.New("NewAdmin parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.TokenAdminRegistry is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - } - return nil -} - -func (inst *TransferAdminRoleTokenAdminRegistry) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("TransferAdminRoleTokenAdminRegistry")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=2]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param(" Mint", *inst.Mint)) - paramsBranch.Child(ag_format.Param("NewAdmin", *inst.NewAdmin)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta("tokenAdminRegistry", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - }) - }) - }) -} - -func (obj TransferAdminRoleTokenAdminRegistry) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Mint` param: - err = encoder.Encode(obj.Mint) - if err != nil { - return err - } - // Serialize `NewAdmin` param: - err = encoder.Encode(obj.NewAdmin) - if err != nil { - return err - } - return nil -} -func (obj *TransferAdminRoleTokenAdminRegistry) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Mint`: - err = decoder.Decode(&obj.Mint) - if err != nil { - return err - } - // Deserialize `NewAdmin`: - err = decoder.Decode(&obj.NewAdmin) - if err != nil { - return err - } - return nil -} - -// NewTransferAdminRoleTokenAdminRegistryInstruction declares a new TransferAdminRoleTokenAdminRegistry instruction with the provided parameters and accounts. -func NewTransferAdminRoleTokenAdminRegistryInstruction( - // Parameters: - mint ag_solanago.PublicKey, - newAdmin ag_solanago.PublicKey, - // Accounts: - tokenAdminRegistry ag_solanago.PublicKey, - authority ag_solanago.PublicKey) *TransferAdminRoleTokenAdminRegistry { - return NewTransferAdminRoleTokenAdminRegistryInstructionBuilder(). - SetMint(mint). - SetNewAdmin(newAdmin). - SetTokenAdminRegistryAccount(tokenAdminRegistry). - SetAuthorityAccount(authority) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go deleted file mode 100644 index e52c1a9983e..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/TransferAdminRoleTokenAdminRegistry_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_TransferAdminRoleTokenAdminRegistry(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("TransferAdminRoleTokenAdminRegistry"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(TransferAdminRoleTokenAdminRegistry) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(TransferAdminRoleTokenAdminRegistry) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go deleted file mode 100644 index 37a129be90c..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership.go +++ /dev/null @@ -1,146 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// TransferOwnership is the `transferOwnership` instruction. -type TransferOwnership struct { - ProposedOwner *ag_solanago.PublicKey - - // [0] = [WRITE] config - // - // [1] = [SIGNER] authority - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewTransferOwnershipInstructionBuilder creates a new `TransferOwnership` instruction builder. -func NewTransferOwnershipInstructionBuilder() *TransferOwnership { - nd := &TransferOwnership{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2), - } - return nd -} - -// SetProposedOwner sets the "proposedOwner" parameter. -func (inst *TransferOwnership) SetProposedOwner(proposedOwner ag_solanago.PublicKey) *TransferOwnership { - inst.ProposedOwner = &proposedOwner - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *TransferOwnership) SetConfigAccount(config ag_solanago.PublicKey) *TransferOwnership { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *TransferOwnership) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *TransferOwnership) SetAuthorityAccount(authority ag_solanago.PublicKey) *TransferOwnership { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *TransferOwnership) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -func (inst TransferOwnership) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_TransferOwnership, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst TransferOwnership) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *TransferOwnership) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.ProposedOwner == nil { - return errors.New("ProposedOwner parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - } - return nil -} - -func (inst *TransferOwnership) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("TransferOwnership")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("ProposedOwner", *inst.ProposedOwner)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1])) - }) - }) - }) -} - -func (obj TransferOwnership) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `ProposedOwner` param: - err = encoder.Encode(obj.ProposedOwner) - if err != nil { - return err - } - return nil -} -func (obj *TransferOwnership) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `ProposedOwner`: - err = decoder.Decode(&obj.ProposedOwner) - if err != nil { - return err - } - return nil -} - -// NewTransferOwnershipInstruction declares a new TransferOwnership instruction with the provided parameters and accounts. -func NewTransferOwnershipInstruction( - // Parameters: - proposedOwner ag_solanago.PublicKey, - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey) *TransferOwnership { - return NewTransferOwnershipInstructionBuilder(). - SetProposedOwner(proposedOwner). - SetConfigAccount(config). - SetAuthorityAccount(authority) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go deleted file mode 100644 index 38ea4ea34f1..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/TransferOwnership_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_TransferOwnership(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("TransferOwnership"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(TransferOwnership) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(TransferOwnership) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go deleted file mode 100644 index 87e10696877..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution.go +++ /dev/null @@ -1,165 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin can update the configuration of the Router, in this case the Default Allow Out Of Order Execution (True/False) -type UpdateDefaultAllowOutOfOrderExecution struct { - NewAllowOutOfOrderExecution *bool - - // [0] = [WRITE] config - // - // [1] = [SIGNER] authority - // - // [2] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewUpdateDefaultAllowOutOfOrderExecutionInstructionBuilder creates a new `UpdateDefaultAllowOutOfOrderExecution` instruction builder. -func NewUpdateDefaultAllowOutOfOrderExecutionInstructionBuilder() *UpdateDefaultAllowOutOfOrderExecution { - nd := &UpdateDefaultAllowOutOfOrderExecution{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), - } - return nd -} - -// SetNewAllowOutOfOrderExecution sets the "newAllowOutOfOrderExecution" parameter. -func (inst *UpdateDefaultAllowOutOfOrderExecution) SetNewAllowOutOfOrderExecution(newAllowOutOfOrderExecution bool) *UpdateDefaultAllowOutOfOrderExecution { - inst.NewAllowOutOfOrderExecution = &newAllowOutOfOrderExecution - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *UpdateDefaultAllowOutOfOrderExecution) SetConfigAccount(config ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *UpdateDefaultAllowOutOfOrderExecution) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *UpdateDefaultAllowOutOfOrderExecution) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *UpdateDefaultAllowOutOfOrderExecution) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *UpdateDefaultAllowOutOfOrderExecution) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { - inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *UpdateDefaultAllowOutOfOrderExecution) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -func (inst UpdateDefaultAllowOutOfOrderExecution) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_UpdateDefaultAllowOutOfOrderExecution, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst UpdateDefaultAllowOutOfOrderExecution) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *UpdateDefaultAllowOutOfOrderExecution) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.NewAllowOutOfOrderExecution == nil { - return errors.New("NewAllowOutOfOrderExecution parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *UpdateDefaultAllowOutOfOrderExecution) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("UpdateDefaultAllowOutOfOrderExecution")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("NewAllowOutOfOrderExecution", *inst.NewAllowOutOfOrderExecution)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) - }) - }) - }) -} - -func (obj UpdateDefaultAllowOutOfOrderExecution) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `NewAllowOutOfOrderExecution` param: - err = encoder.Encode(obj.NewAllowOutOfOrderExecution) - if err != nil { - return err - } - return nil -} -func (obj *UpdateDefaultAllowOutOfOrderExecution) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `NewAllowOutOfOrderExecution`: - err = decoder.Decode(&obj.NewAllowOutOfOrderExecution) - if err != nil { - return err - } - return nil -} - -// NewUpdateDefaultAllowOutOfOrderExecutionInstruction declares a new UpdateDefaultAllowOutOfOrderExecution instruction with the provided parameters and accounts. -func NewUpdateDefaultAllowOutOfOrderExecutionInstruction( - // Parameters: - newAllowOutOfOrderExecution bool, - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *UpdateDefaultAllowOutOfOrderExecution { - return NewUpdateDefaultAllowOutOfOrderExecutionInstructionBuilder(). - SetNewAllowOutOfOrderExecution(newAllowOutOfOrderExecution). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go deleted file mode 100644 index 70a0674748c..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultAllowOutOfOrderExecution_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_UpdateDefaultAllowOutOfOrderExecution(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("UpdateDefaultAllowOutOfOrderExecution"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(UpdateDefaultAllowOutOfOrderExecution) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(UpdateDefaultAllowOutOfOrderExecution) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go deleted file mode 100644 index c1791685884..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit.go +++ /dev/null @@ -1,165 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin can update the configuration of the Router, in this case the Default Gas Limit -type UpdateDefaultGasLimit struct { - NewGasLimit *ag_binary.Uint128 - - // [0] = [WRITE] config - // - // [1] = [SIGNER] authority - // - // [2] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewUpdateDefaultGasLimitInstructionBuilder creates a new `UpdateDefaultGasLimit` instruction builder. -func NewUpdateDefaultGasLimitInstructionBuilder() *UpdateDefaultGasLimit { - nd := &UpdateDefaultGasLimit{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), - } - return nd -} - -// SetNewGasLimit sets the "newGasLimit" parameter. -func (inst *UpdateDefaultGasLimit) SetNewGasLimit(newGasLimit ag_binary.Uint128) *UpdateDefaultGasLimit { - inst.NewGasLimit = &newGasLimit - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *UpdateDefaultGasLimit) SetConfigAccount(config ag_solanago.PublicKey) *UpdateDefaultGasLimit { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *UpdateDefaultGasLimit) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *UpdateDefaultGasLimit) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateDefaultGasLimit { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *UpdateDefaultGasLimit) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *UpdateDefaultGasLimit) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateDefaultGasLimit { - inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *UpdateDefaultGasLimit) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -func (inst UpdateDefaultGasLimit) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_UpdateDefaultGasLimit, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst UpdateDefaultGasLimit) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *UpdateDefaultGasLimit) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.NewGasLimit == nil { - return errors.New("NewGasLimit parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *UpdateDefaultGasLimit) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("UpdateDefaultGasLimit")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("NewGasLimit", *inst.NewGasLimit)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) - }) - }) - }) -} - -func (obj UpdateDefaultGasLimit) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `NewGasLimit` param: - err = encoder.Encode(obj.NewGasLimit) - if err != nil { - return err - } - return nil -} -func (obj *UpdateDefaultGasLimit) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `NewGasLimit`: - err = decoder.Decode(&obj.NewGasLimit) - if err != nil { - return err - } - return nil -} - -// NewUpdateDefaultGasLimitInstruction declares a new UpdateDefaultGasLimit instruction with the provided parameters and accounts. -func NewUpdateDefaultGasLimitInstruction( - // Parameters: - newGasLimit ag_binary.Uint128, - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *UpdateDefaultGasLimit { - return NewUpdateDefaultGasLimitInstructionBuilder(). - SetNewGasLimit(newGasLimit). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go deleted file mode 100644 index f323c69e6b8..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateDefaultGasLimit_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_UpdateDefaultGasLimit(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("UpdateDefaultGasLimit"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(UpdateDefaultGasLimit) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(UpdateDefaultGasLimit) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go deleted file mode 100644 index 5adb9d10708..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter.go +++ /dev/null @@ -1,165 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin can update the configuration of the Router, in this case the Enable Manual Execution After -type UpdateEnableManualExecutionAfter struct { - NewEnableManualExecutionAfter *int64 - - // [0] = [WRITE] config - // - // [1] = [SIGNER] authority - // - // [2] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewUpdateEnableManualExecutionAfterInstructionBuilder creates a new `UpdateEnableManualExecutionAfter` instruction builder. -func NewUpdateEnableManualExecutionAfterInstructionBuilder() *UpdateEnableManualExecutionAfter { - nd := &UpdateEnableManualExecutionAfter{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), - } - return nd -} - -// SetNewEnableManualExecutionAfter sets the "newEnableManualExecutionAfter" parameter. -func (inst *UpdateEnableManualExecutionAfter) SetNewEnableManualExecutionAfter(newEnableManualExecutionAfter int64) *UpdateEnableManualExecutionAfter { - inst.NewEnableManualExecutionAfter = &newEnableManualExecutionAfter - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *UpdateEnableManualExecutionAfter) SetConfigAccount(config ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *UpdateEnableManualExecutionAfter) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *UpdateEnableManualExecutionAfter) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *UpdateEnableManualExecutionAfter) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *UpdateEnableManualExecutionAfter) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { - inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *UpdateEnableManualExecutionAfter) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -func (inst UpdateEnableManualExecutionAfter) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_UpdateEnableManualExecutionAfter, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst UpdateEnableManualExecutionAfter) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *UpdateEnableManualExecutionAfter) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.NewEnableManualExecutionAfter == nil { - return errors.New("NewEnableManualExecutionAfter parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *UpdateEnableManualExecutionAfter) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("UpdateEnableManualExecutionAfter")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("NewEnableManualExecutionAfter", *inst.NewEnableManualExecutionAfter)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) - }) - }) - }) -} - -func (obj UpdateEnableManualExecutionAfter) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `NewEnableManualExecutionAfter` param: - err = encoder.Encode(obj.NewEnableManualExecutionAfter) - if err != nil { - return err - } - return nil -} -func (obj *UpdateEnableManualExecutionAfter) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `NewEnableManualExecutionAfter`: - err = decoder.Decode(&obj.NewEnableManualExecutionAfter) - if err != nil { - return err - } - return nil -} - -// NewUpdateEnableManualExecutionAfterInstruction declares a new UpdateEnableManualExecutionAfter instruction with the provided parameters and accounts. -func NewUpdateEnableManualExecutionAfterInstruction( - // Parameters: - newEnableManualExecutionAfter int64, - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *UpdateEnableManualExecutionAfter { - return NewUpdateEnableManualExecutionAfterInstructionBuilder(). - SetNewEnableManualExecutionAfter(newEnableManualExecutionAfter). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go deleted file mode 100644 index cc37505f599..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateEnableManualExecutionAfter_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_UpdateEnableManualExecutionAfter(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("UpdateEnableManualExecutionAfter"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(UpdateEnableManualExecutionAfter) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(UpdateEnableManualExecutionAfter) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go deleted file mode 100644 index 58796f4e381..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector.go +++ /dev/null @@ -1,165 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "errors" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_format "github.com/gagliardetto/solana-go/text/format" - ag_treeout "github.com/gagliardetto/treeout" -) - -// The Admin can update the configuration of the Router, in this case the Solana Chain Selector -type UpdateSolanaChainSelector struct { - NewChainSelector *uint64 - - // [0] = [WRITE] config - // - // [1] = [SIGNER] authority - // - // [2] = [] systemProgram - ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"` -} - -// NewUpdateSolanaChainSelectorInstructionBuilder creates a new `UpdateSolanaChainSelector` instruction builder. -func NewUpdateSolanaChainSelectorInstructionBuilder() *UpdateSolanaChainSelector { - nd := &UpdateSolanaChainSelector{ - AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 3), - } - return nd -} - -// SetNewChainSelector sets the "newChainSelector" parameter. -func (inst *UpdateSolanaChainSelector) SetNewChainSelector(newChainSelector uint64) *UpdateSolanaChainSelector { - inst.NewChainSelector = &newChainSelector - return inst -} - -// SetConfigAccount sets the "config" account. -func (inst *UpdateSolanaChainSelector) SetConfigAccount(config ag_solanago.PublicKey) *UpdateSolanaChainSelector { - inst.AccountMetaSlice[0] = ag_solanago.Meta(config).WRITE() - return inst -} - -// GetConfigAccount gets the "config" account. -func (inst *UpdateSolanaChainSelector) GetConfigAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[0] -} - -// SetAuthorityAccount sets the "authority" account. -func (inst *UpdateSolanaChainSelector) SetAuthorityAccount(authority ag_solanago.PublicKey) *UpdateSolanaChainSelector { - inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER() - return inst -} - -// GetAuthorityAccount gets the "authority" account. -func (inst *UpdateSolanaChainSelector) GetAuthorityAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[1] -} - -// SetSystemProgramAccount sets the "systemProgram" account. -func (inst *UpdateSolanaChainSelector) SetSystemProgramAccount(systemProgram ag_solanago.PublicKey) *UpdateSolanaChainSelector { - inst.AccountMetaSlice[2] = ag_solanago.Meta(systemProgram) - return inst -} - -// GetSystemProgramAccount gets the "systemProgram" account. -func (inst *UpdateSolanaChainSelector) GetSystemProgramAccount() *ag_solanago.AccountMeta { - return inst.AccountMetaSlice[2] -} - -func (inst UpdateSolanaChainSelector) Build() *Instruction { - return &Instruction{BaseVariant: ag_binary.BaseVariant{ - Impl: inst, - TypeID: Instruction_UpdateSolanaChainSelector, - }} -} - -// ValidateAndBuild validates the instruction parameters and accounts; -// if there is a validation error, it returns the error. -// Otherwise, it builds and returns the instruction. -func (inst UpdateSolanaChainSelector) ValidateAndBuild() (*Instruction, error) { - if err := inst.Validate(); err != nil { - return nil, err - } - return inst.Build(), nil -} - -func (inst *UpdateSolanaChainSelector) Validate() error { - // Check whether all (required) parameters are set: - { - if inst.NewChainSelector == nil { - return errors.New("NewChainSelector parameter is not set") - } - } - - // Check whether all (required) accounts are set: - { - if inst.AccountMetaSlice[0] == nil { - return errors.New("accounts.Config is not set") - } - if inst.AccountMetaSlice[1] == nil { - return errors.New("accounts.Authority is not set") - } - if inst.AccountMetaSlice[2] == nil { - return errors.New("accounts.SystemProgram is not set") - } - } - return nil -} - -func (inst *UpdateSolanaChainSelector) EncodeToTree(parent ag_treeout.Branches) { - parent.Child(ag_format.Program(ProgramName, ProgramID)). - // - ParentFunc(func(programBranch ag_treeout.Branches) { - programBranch.Child(ag_format.Instruction("UpdateSolanaChainSelector")). - // - ParentFunc(func(instructionBranch ag_treeout.Branches) { - - // Parameters of the instruction: - instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) { - paramsBranch.Child(ag_format.Param("NewChainSelector", *inst.NewChainSelector)) - }) - - // Accounts of the instruction: - instructionBranch.Child("Accounts[len=3]").ParentFunc(func(accountsBranch ag_treeout.Branches) { - accountsBranch.Child(ag_format.Meta(" config", inst.AccountMetaSlice[0])) - accountsBranch.Child(ag_format.Meta(" authority", inst.AccountMetaSlice[1])) - accountsBranch.Child(ag_format.Meta("systemProgram", inst.AccountMetaSlice[2])) - }) - }) - }) -} - -func (obj UpdateSolanaChainSelector) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `NewChainSelector` param: - err = encoder.Encode(obj.NewChainSelector) - if err != nil { - return err - } - return nil -} -func (obj *UpdateSolanaChainSelector) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `NewChainSelector`: - err = decoder.Decode(&obj.NewChainSelector) - if err != nil { - return err - } - return nil -} - -// NewUpdateSolanaChainSelectorInstruction declares a new UpdateSolanaChainSelector instruction with the provided parameters and accounts. -func NewUpdateSolanaChainSelectorInstruction( - // Parameters: - newChainSelector uint64, - // Accounts: - config ag_solanago.PublicKey, - authority ag_solanago.PublicKey, - systemProgram ag_solanago.PublicKey) *UpdateSolanaChainSelector { - return NewUpdateSolanaChainSelectorInstructionBuilder(). - SetNewChainSelector(newChainSelector). - SetConfigAccount(config). - SetAuthorityAccount(authority). - SetSystemProgramAccount(systemProgram) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go b/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go deleted file mode 100644 index 00901a4a9af..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/UpdateSolanaChainSelector_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - ag_gofuzz "github.com/gagliardetto/gofuzz" - ag_require "github.com/stretchr/testify/require" - "strconv" - "testing" -) - -func TestEncodeDecode_UpdateSolanaChainSelector(t *testing.T) { - fu := ag_gofuzz.New().NilChance(0) - for i := 0; i < 1; i++ { - t.Run("UpdateSolanaChainSelector"+strconv.Itoa(i), func(t *testing.T) { - { - params := new(UpdateSolanaChainSelector) - fu.Fuzz(params) - params.AccountMetaSlice = nil - buf := new(bytes.Buffer) - err := encodeT(*params, buf) - ag_require.NoError(t, err) - got := new(UpdateSolanaChainSelector) - err = decodeT(got, buf.Bytes()) - got.AccountMetaSlice = nil - ag_require.NoError(t, err) - ag_require.Equal(t, params, got) - } - }) - } -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/accounts.go b/core/capabilities/ccip/ccipsolana/ccip_router/accounts.go deleted file mode 100644 index 44c43c1d364..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/accounts.go +++ /dev/null @@ -1,661 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "fmt" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" -) - -type Config struct { - Version uint8 - DefaultAllowOutOfOrderExecution uint8 - Padding0 [6]uint8 - SolanaChainSelector uint64 - DefaultGasLimit ag_binary.Uint128 - Padding1 [8]uint8 - Owner ag_solanago.PublicKey - ProposedOwner ag_solanago.PublicKey - EnableManualExecutionAfter int64 - Padding2 [8]uint8 - Ocr3 [2]Ocr3Config -} - -var ConfigDiscriminator = [8]byte{155, 12, 170, 224, 30, 250, 204, 130} - -func (obj Config) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(ConfigDiscriminator[:], false) - if err != nil { - return err - } - // Serialize `Version` param: - err = encoder.Encode(obj.Version) - if err != nil { - return err - } - // Serialize `DefaultAllowOutOfOrderExecution` param: - err = encoder.Encode(obj.DefaultAllowOutOfOrderExecution) - if err != nil { - return err - } - // Serialize `Padding0` param: - err = encoder.Encode(obj.Padding0) - if err != nil { - return err - } - // Serialize `SolanaChainSelector` param: - err = encoder.Encode(obj.SolanaChainSelector) - if err != nil { - return err - } - // Serialize `DefaultGasLimit` param: - err = encoder.Encode(obj.DefaultGasLimit) - if err != nil { - return err - } - // Serialize `Padding1` param: - err = encoder.Encode(obj.Padding1) - if err != nil { - return err - } - // Serialize `Owner` param: - err = encoder.Encode(obj.Owner) - if err != nil { - return err - } - // Serialize `ProposedOwner` param: - err = encoder.Encode(obj.ProposedOwner) - if err != nil { - return err - } - // Serialize `EnableManualExecutionAfter` param: - err = encoder.Encode(obj.EnableManualExecutionAfter) - if err != nil { - return err - } - // Serialize `Padding2` param: - err = encoder.Encode(obj.Padding2) - if err != nil { - return err - } - // Serialize `Ocr3` param: - err = encoder.Encode(obj.Ocr3) - if err != nil { - return err - } - return nil -} - -func (obj *Config) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(ConfigDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[155 12 170 224 30 250 204 130]", - fmt.Sprint(discriminator[:])) - } - } - // Deserialize `Version`: - err = decoder.Decode(&obj.Version) - if err != nil { - return err - } - // Deserialize `DefaultAllowOutOfOrderExecution`: - err = decoder.Decode(&obj.DefaultAllowOutOfOrderExecution) - if err != nil { - return err - } - // Deserialize `Padding0`: - err = decoder.Decode(&obj.Padding0) - if err != nil { - return err - } - // Deserialize `SolanaChainSelector`: - err = decoder.Decode(&obj.SolanaChainSelector) - if err != nil { - return err - } - // Deserialize `DefaultGasLimit`: - err = decoder.Decode(&obj.DefaultGasLimit) - if err != nil { - return err - } - // Deserialize `Padding1`: - err = decoder.Decode(&obj.Padding1) - if err != nil { - return err - } - // Deserialize `Owner`: - err = decoder.Decode(&obj.Owner) - if err != nil { - return err - } - // Deserialize `ProposedOwner`: - err = decoder.Decode(&obj.ProposedOwner) - if err != nil { - return err - } - // Deserialize `EnableManualExecutionAfter`: - err = decoder.Decode(&obj.EnableManualExecutionAfter) - if err != nil { - return err - } - // Deserialize `Padding2`: - err = decoder.Decode(&obj.Padding2) - if err != nil { - return err - } - // Deserialize `Ocr3`: - err = decoder.Decode(&obj.Ocr3) - if err != nil { - return err - } - return nil -} - -type ChainState struct { - Version uint8 - SourceChainConfig SourceChainConfig - DestChainConfig DestChainConfig -} - -var ChainStateDiscriminator = [8]byte{130, 46, 94, 156, 79, 53, 170, 50} - -func (obj ChainState) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(ChainStateDiscriminator[:], false) - if err != nil { - return err - } - // Serialize `Version` param: - err = encoder.Encode(obj.Version) - if err != nil { - return err - } - // Serialize `SourceChainConfig` param: - err = encoder.Encode(obj.SourceChainConfig) - if err != nil { - return err - } - // Serialize `DestChainConfig` param: - err = encoder.Encode(obj.DestChainConfig) - if err != nil { - return err - } - return nil -} - -func (obj *ChainState) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(ChainStateDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[130 46 94 156 79 53 170 50]", - fmt.Sprint(discriminator[:])) - } - } - // Deserialize `Version`: - err = decoder.Decode(&obj.Version) - if err != nil { - return err - } - // Deserialize `SourceChainConfig`: - err = decoder.Decode(&obj.SourceChainConfig) - if err != nil { - return err - } - // Deserialize `DestChainConfig`: - err = decoder.Decode(&obj.DestChainConfig) - if err != nil { - return err - } - return nil -} - -type Nonce struct { - Version uint8 - Counter uint64 -} - -var NonceDiscriminator = [8]byte{143, 197, 147, 95, 106, 165, 50, 43} - -func (obj Nonce) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(NonceDiscriminator[:], false) - if err != nil { - return err - } - // Serialize `Version` param: - err = encoder.Encode(obj.Version) - if err != nil { - return err - } - // Serialize `Counter` param: - err = encoder.Encode(obj.Counter) - if err != nil { - return err - } - return nil -} - -func (obj *Nonce) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(NonceDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[143 197 147 95 106 165 50 43]", - fmt.Sprint(discriminator[:])) - } - } - // Deserialize `Version`: - err = decoder.Decode(&obj.Version) - if err != nil { - return err - } - // Deserialize `Counter`: - err = decoder.Decode(&obj.Counter) - if err != nil { - return err - } - return nil -} - -type ExternalExecutionConfig struct{} - -var ExternalExecutionConfigDiscriminator = [8]byte{159, 157, 150, 212, 168, 103, 117, 39} - -func (obj ExternalExecutionConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(ExternalExecutionConfigDiscriminator[:], false) - if err != nil { - return err - } - return nil -} - -func (obj *ExternalExecutionConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(ExternalExecutionConfigDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[159 157 150 212 168 103 117 39]", - fmt.Sprint(discriminator[:])) - } - } - return nil -} - -type CommitReport struct { - Version uint8 - Timestamp int64 - MinMsgNr uint64 - MaxMsgNr uint64 - ExecutionStates ag_binary.Uint128 -} - -var CommitReportDiscriminator = [8]byte{46, 231, 247, 231, 174, 68, 34, 26} - -func (obj CommitReport) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(CommitReportDiscriminator[:], false) - if err != nil { - return err - } - // Serialize `Version` param: - err = encoder.Encode(obj.Version) - if err != nil { - return err - } - // Serialize `Timestamp` param: - err = encoder.Encode(obj.Timestamp) - if err != nil { - return err - } - // Serialize `MinMsgNr` param: - err = encoder.Encode(obj.MinMsgNr) - if err != nil { - return err - } - // Serialize `MaxMsgNr` param: - err = encoder.Encode(obj.MaxMsgNr) - if err != nil { - return err - } - // Serialize `ExecutionStates` param: - err = encoder.Encode(obj.ExecutionStates) - if err != nil { - return err - } - return nil -} - -func (obj *CommitReport) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(CommitReportDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[46 231 247 231 174 68 34 26]", - fmt.Sprint(discriminator[:])) - } - } - // Deserialize `Version`: - err = decoder.Decode(&obj.Version) - if err != nil { - return err - } - // Deserialize `Timestamp`: - err = decoder.Decode(&obj.Timestamp) - if err != nil { - return err - } - // Deserialize `MinMsgNr`: - err = decoder.Decode(&obj.MinMsgNr) - if err != nil { - return err - } - // Deserialize `MaxMsgNr`: - err = decoder.Decode(&obj.MaxMsgNr) - if err != nil { - return err - } - // Deserialize `ExecutionStates`: - err = decoder.Decode(&obj.ExecutionStates) - if err != nil { - return err - } - return nil -} - -type PerChainPerTokenConfig struct { - Version uint8 - ChainSelector uint64 - Mint ag_solanago.PublicKey - Billing TokenBilling -} - -var PerChainPerTokenConfigDiscriminator = [8]byte{183, 88, 20, 99, 246, 46, 51, 230} - -func (obj PerChainPerTokenConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(PerChainPerTokenConfigDiscriminator[:], false) - if err != nil { - return err - } - // Serialize `Version` param: - err = encoder.Encode(obj.Version) - if err != nil { - return err - } - // Serialize `ChainSelector` param: - err = encoder.Encode(obj.ChainSelector) - if err != nil { - return err - } - // Serialize `Mint` param: - err = encoder.Encode(obj.Mint) - if err != nil { - return err - } - // Serialize `Billing` param: - err = encoder.Encode(obj.Billing) - if err != nil { - return err - } - return nil -} - -func (obj *PerChainPerTokenConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(PerChainPerTokenConfigDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[183 88 20 99 246 46 51 230]", - fmt.Sprint(discriminator[:])) - } - } - // Deserialize `Version`: - err = decoder.Decode(&obj.Version) - if err != nil { - return err - } - // Deserialize `ChainSelector`: - err = decoder.Decode(&obj.ChainSelector) - if err != nil { - return err - } - // Deserialize `Mint`: - err = decoder.Decode(&obj.Mint) - if err != nil { - return err - } - // Deserialize `Billing`: - err = decoder.Decode(&obj.Billing) - if err != nil { - return err - } - return nil -} - -type BillingTokenConfig struct { - Version uint8 - Enabled bool - UsdPerToken TimestampedPackedU224 - PremiumMultiplierWeiPerEth uint64 -} - -var BillingTokenConfigDiscriminator = [8]byte{191, 91, 1, 0, 93, 250, 239, 41} - -func (obj BillingTokenConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(BillingTokenConfigDiscriminator[:], false) - if err != nil { - return err - } - // Serialize `Version` param: - err = encoder.Encode(obj.Version) - if err != nil { - return err - } - // Serialize `Enabled` param: - err = encoder.Encode(obj.Enabled) - if err != nil { - return err - } - // Serialize `UsdPerToken` param: - err = encoder.Encode(obj.UsdPerToken) - if err != nil { - return err - } - // Serialize `PremiumMultiplierWeiPerEth` param: - err = encoder.Encode(obj.PremiumMultiplierWeiPerEth) - if err != nil { - return err - } - return nil -} - -func (obj *BillingTokenConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(BillingTokenConfigDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[191 91 1 0 93 250 239 41]", - fmt.Sprint(discriminator[:])) - } - } - // Deserialize `Version`: - err = decoder.Decode(&obj.Version) - if err != nil { - return err - } - // Deserialize `Enabled`: - err = decoder.Decode(&obj.Enabled) - if err != nil { - return err - } - // Deserialize `UsdPerToken`: - err = decoder.Decode(&obj.UsdPerToken) - if err != nil { - return err - } - // Deserialize `PremiumMultiplierWeiPerEth`: - err = decoder.Decode(&obj.PremiumMultiplierWeiPerEth) - if err != nil { - return err - } - return nil -} - -type TokenAdminRegistry struct { - Version uint8 - Administrator ag_solanago.PublicKey - PendingAdministrator *ag_solanago.PublicKey `bin:"optional"` - TokenPoolProgram *ag_solanago.PublicKey `bin:"optional"` -} - -var TokenAdminRegistryDiscriminator = [8]byte{70, 92, 207, 200, 76, 17, 57, 114} - -func (obj TokenAdminRegistry) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Write account discriminator: - err = encoder.WriteBytes(TokenAdminRegistryDiscriminator[:], false) - if err != nil { - return err - } - // Serialize `Version` param: - err = encoder.Encode(obj.Version) - if err != nil { - return err - } - // Serialize `Administrator` param: - err = encoder.Encode(obj.Administrator) - if err != nil { - return err - } - // Serialize `PendingAdministrator` param (optional): - { - if obj.PendingAdministrator == nil { - err = encoder.WriteBool(false) - if err != nil { - return err - } - } else { - err = encoder.WriteBool(true) - if err != nil { - return err - } - err = encoder.Encode(obj.PendingAdministrator) - if err != nil { - return err - } - } - } - // Serialize `TokenPoolProgram` param (optional): - { - if obj.TokenPoolProgram == nil { - err = encoder.WriteBool(false) - if err != nil { - return err - } - } else { - err = encoder.WriteBool(true) - if err != nil { - return err - } - err = encoder.Encode(obj.TokenPoolProgram) - if err != nil { - return err - } - } - } - return nil -} - -func (obj *TokenAdminRegistry) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Read and check account discriminator: - { - discriminator, err := decoder.ReadTypeID() - if err != nil { - return err - } - if !discriminator.Equal(TokenAdminRegistryDiscriminator[:]) { - return fmt.Errorf( - "wrong discriminator: wanted %s, got %s", - "[70 92 207 200 76 17 57 114]", - fmt.Sprint(discriminator[:])) - } - } - // Deserialize `Version`: - err = decoder.Decode(&obj.Version) - if err != nil { - return err - } - // Deserialize `Administrator`: - err = decoder.Decode(&obj.Administrator) - if err != nil { - return err - } - // Deserialize `PendingAdministrator` (optional): - { - ok, err := decoder.ReadBool() - if err != nil { - return err - } - if ok { - err = decoder.Decode(&obj.PendingAdministrator) - if err != nil { - return err - } - } - } - // Deserialize `TokenPoolProgram` (optional): - { - ok, err := decoder.ReadBool() - if err != nil { - return err - } - if ok { - err = decoder.Decode(&obj.TokenPoolProgram) - if err != nil { - return err - } - } - } - return nil -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/instructions.go b/core/capabilities/ccip/ccipsolana/ccip_router/instructions.go deleted file mode 100644 index 395e39da2ea..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/instructions.go +++ /dev/null @@ -1,304 +0,0 @@ -// This is the Collapsed Router Program for CCIP. -// As it's upgradable persisting the same program id, there is no need to have an indirection of a Proxy Program. -// This Router handles both the OnRamp and OffRamp flow of the CCIP Messages. -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - "fmt" - ag_spew "github.com/davecgh/go-spew/spew" - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" - ag_text "github.com/gagliardetto/solana-go/text" - ag_treeout "github.com/gagliardetto/treeout" -) - -var ProgramID ag_solanago.PublicKey - -func SetProgramID(pubkey ag_solanago.PublicKey) { - ProgramID = pubkey - ag_solanago.RegisterInstructionDecoder(ProgramID, registryDecodeInstruction) -} - -const ProgramName = "CcipRouter" - -func init() { - if !ProgramID.IsZero() { - ag_solanago.RegisterInstructionDecoder(ProgramID, registryDecodeInstruction) - } -} - -var ( - // The initialization is responsibility of Admin, nothing more than calling this method should be done first. - Instruction_Initialize = ag_binary.TypeID([8]byte{175, 175, 109, 31, 13, 152, 155, 237}) - - Instruction_TransferOwnership = ag_binary.TypeID([8]byte{65, 177, 215, 73, 53, 45, 99, 47}) - - Instruction_AcceptOwnership = ag_binary.TypeID([8]byte{172, 23, 43, 13, 238, 213, 85, 150}) - - // The Admin needs to add any new chain supported (this means both OnRamp and OffRamp). - Instruction_AddChainSelector = ag_binary.TypeID([8]byte{28, 60, 171, 0, 195, 113, 56, 7}) - - // The Admin is the only one able to enable or disable the chain selector - Instruction_DisableChainSelector = ag_binary.TypeID([8]byte{24, 245, 159, 178, 139, 200, 133, 218}) - - // The Admin is the only one able to enable or disable the chain selector - Instruction_EnableChainSelector = ag_binary.TypeID([8]byte{29, 175, 195, 14, 137, 66, 194, 25}) - - // The Admin can update the configuration of the Router, in this case the Solana Chain Selector - Instruction_UpdateSolanaChainSelector = ag_binary.TypeID([8]byte{128, 198, 143, 222, 43, 55, 119, 106}) - - // The Admin can update the configuration of the Router, in this case the Default Gas Limit - Instruction_UpdateDefaultGasLimit = ag_binary.TypeID([8]byte{201, 34, 231, 229, 247, 252, 77, 210}) - - // The Admin can update the configuration of the Router, in this case the Default Allow Out Of Order Execution (True/False) - Instruction_UpdateDefaultAllowOutOfOrderExecution = ag_binary.TypeID([8]byte{44, 54, 136, 71, 177, 17, 18, 241}) - - // The Admin can update the configuration of the Router, in this case the Enable Manual Execution After - Instruction_UpdateEnableManualExecutionAfter = ag_binary.TypeID([8]byte{157, 236, 73, 92, 84, 197, 152, 105}) - - // The CCIP Admin or the Mint Authority of the Token can register the Token Admin Registry - Instruction_RegisterTokenAdminRegistryViaGetCcipAdmin = ag_binary.TypeID([8]byte{46, 246, 21, 58, 175, 69, 40, 202}) - - // The Token's mint_authority can register themselves to the Token Admin Registry - Instruction_RegisterTokenAdminRegistryViaOwner = ag_binary.TypeID([8]byte{85, 191, 10, 113, 134, 138, 144, 16}) - - // The administrator of the token can setup the token pool - Instruction_SetPool = ag_binary.TypeID([8]byte{119, 30, 14, 180, 115, 225, 167, 238}) - - // The Admin can transfer the Admin Role of the Token Admin Registry - Instruction_TransferAdminRoleTokenAdminRegistry = ag_binary.TypeID([8]byte{178, 98, 203, 181, 203, 107, 106, 14}) - - // The Pending Admin can accept the Admin Role of the Token Admin Registry - Instruction_AcceptAdminRoleTokenAdminRegistry = ag_binary.TypeID([8]byte{106, 240, 16, 173, 137, 213, 163, 246}) - - Instruction_SetTokenBilling = ag_binary.TypeID([8]byte{225, 230, 37, 71, 131, 209, 54, 230}) - - Instruction_SetOcrConfig = ag_binary.TypeID([8]byte{4, 131, 107, 110, 250, 158, 244, 200}) - - // ON RAMP FLOW - // The method name needs to be ccip_send with Anchor encoding. - // This function is called by the CCIP Sender Contract (or final user) to send a message to the CCIP Router. - // The size limit of data is 256 bytes. - // The message is sent to the receiver on the destination chain selector. - // This message emits the event CCIPSendRequested with all the necessary data to be retrieved by the OffChain Code - Instruction_CcipSend = ag_binary.TypeID([8]byte{108, 216, 134, 191, 249, 234, 33, 84}) - - // OFF RAMP FLOW - // - // The method name needs to be commit with Anchor encoding. - // - // This function is called by the OffChain when committing one Report to the Solana Router. - // In this Flow only one report is sent, the Commit Report. This is different as EVM does, - // this is because here all the chain state is stored in one account per Merkle Tree Root. - // So, to avoid having to send a dynamic size array of accounts, in this message only one Commit Report Account is sent. - // This message validates the signatures of the report and stores the Merkle Root in the Commit Report Account. - // The Report must contain an interval of messages, and the min of them must be the next sequence number expected. - // The max size of the interval is 64. - // This message emits two events: CommitReportAccepted and Transmitted. - Instruction_Commit = ag_binary.TypeID([8]byte{223, 140, 142, 165, 229, 208, 156, 74}) - - // OFF RAMP FLOW - // - // The method name needs to be execute with Anchor encoding. - // - // This function is called by the OffChain when executing one Report to the Solana Router. - // In this Flow only one message is sent, the Execution Report. This is different as EVM does, - // this is because there is no try/catch mechanism to allow batch execution. - // This message validates that the Merkle Tree Proof of the given message is correct and is stored in the Commit Report Account. - // The message must be untouched to be executed. - // This message emits the event ExecutionStateChanged with the new state of the message. - // Finally, executes the CPI instruction to the receiver program in the ccip_receive message. - Instruction_Execute = ag_binary.TypeID([8]byte{130, 221, 242, 154, 13, 193, 189, 29}) - - // When a message is not being executed, then the user can trigger the execution manually. - // No verification over the transmitter, but the message needs to be in some commit report. - Instruction_ManuallyExecute = ag_binary.TypeID([8]byte{238, 219, 224, 11, 226, 248, 47, 192}) -) - -// InstructionIDToName returns the name of the instruction given its ID. -func InstructionIDToName(id ag_binary.TypeID) string { - switch id { - case Instruction_Initialize: - return "Initialize" - case Instruction_TransferOwnership: - return "TransferOwnership" - case Instruction_AcceptOwnership: - return "AcceptOwnership" - case Instruction_AddChainSelector: - return "AddChainSelector" - case Instruction_DisableChainSelector: - return "DisableChainSelector" - case Instruction_EnableChainSelector: - return "EnableChainSelector" - case Instruction_UpdateSolanaChainSelector: - return "UpdateSolanaChainSelector" - case Instruction_UpdateDefaultGasLimit: - return "UpdateDefaultGasLimit" - case Instruction_UpdateDefaultAllowOutOfOrderExecution: - return "UpdateDefaultAllowOutOfOrderExecution" - case Instruction_UpdateEnableManualExecutionAfter: - return "UpdateEnableManualExecutionAfter" - case Instruction_RegisterTokenAdminRegistryViaGetCcipAdmin: - return "RegisterTokenAdminRegistryViaGetCcipAdmin" - case Instruction_RegisterTokenAdminRegistryViaOwner: - return "RegisterTokenAdminRegistryViaOwner" - case Instruction_SetPool: - return "SetPool" - case Instruction_TransferAdminRoleTokenAdminRegistry: - return "TransferAdminRoleTokenAdminRegistry" - case Instruction_AcceptAdminRoleTokenAdminRegistry: - return "AcceptAdminRoleTokenAdminRegistry" - case Instruction_SetTokenBilling: - return "SetTokenBilling" - case Instruction_SetOcrConfig: - return "SetOcrConfig" - case Instruction_CcipSend: - return "CcipSend" - case Instruction_Commit: - return "Commit" - case Instruction_Execute: - return "Execute" - case Instruction_ManuallyExecute: - return "ManuallyExecute" - default: - return "" - } -} - -type Instruction struct { - ag_binary.BaseVariant -} - -func (inst *Instruction) EncodeToTree(parent ag_treeout.Branches) { - if enToTree, ok := inst.Impl.(ag_text.EncodableToTree); ok { - enToTree.EncodeToTree(parent) - } else { - parent.Child(ag_spew.Sdump(inst)) - } -} - -var InstructionImplDef = ag_binary.NewVariantDefinition( - ag_binary.AnchorTypeIDEncoding, - []ag_binary.VariantType{ - { - "initialize", (*Initialize)(nil), - }, - { - "transfer_ownership", (*TransferOwnership)(nil), - }, - { - "accept_ownership", (*AcceptOwnership)(nil), - }, - { - "add_chain_selector", (*AddChainSelector)(nil), - }, - { - "disable_chain_selector", (*DisableChainSelector)(nil), - }, - { - "enable_chain_selector", (*EnableChainSelector)(nil), - }, - { - "update_solana_chain_selector", (*UpdateSolanaChainSelector)(nil), - }, - { - "update_default_gas_limit", (*UpdateDefaultGasLimit)(nil), - }, - { - "update_default_allow_out_of_order_execution", (*UpdateDefaultAllowOutOfOrderExecution)(nil), - }, - { - "update_enable_manual_execution_after", (*UpdateEnableManualExecutionAfter)(nil), - }, - { - "register_token_admin_registry_via_get_ccip_admin", (*RegisterTokenAdminRegistryViaGetCcipAdmin)(nil), - }, - { - "register_token_admin_registry_via_owner", (*RegisterTokenAdminRegistryViaOwner)(nil), - }, - { - "set_pool", (*SetPool)(nil), - }, - { - "transfer_admin_role_token_admin_registry", (*TransferAdminRoleTokenAdminRegistry)(nil), - }, - { - "accept_admin_role_token_admin_registry", (*AcceptAdminRoleTokenAdminRegistry)(nil), - }, - { - "set_token_billing", (*SetTokenBilling)(nil), - }, - { - "set_ocr_config", (*SetOcrConfig)(nil), - }, - { - "ccip_send", (*CcipSend)(nil), - }, - { - "commit", (*Commit)(nil), - }, - { - "execute", (*Execute)(nil), - }, - { - "manually_execute", (*ManuallyExecute)(nil), - }, - }, -) - -func (inst *Instruction) ProgramID() ag_solanago.PublicKey { - return ProgramID -} - -func (inst *Instruction) Accounts() (out []*ag_solanago.AccountMeta) { - return inst.Impl.(ag_solanago.AccountsGettable).GetAccounts() -} - -func (inst *Instruction) Data() ([]byte, error) { - buf := new(bytes.Buffer) - if err := ag_binary.NewBorshEncoder(buf).Encode(inst); err != nil { - return nil, fmt.Errorf("unable to encode instruction: %w", err) - } - return buf.Bytes(), nil -} - -func (inst *Instruction) TextEncode(encoder *ag_text.Encoder, option *ag_text.Option) error { - return encoder.Encode(inst.Impl, option) -} - -func (inst *Instruction) UnmarshalWithDecoder(decoder *ag_binary.Decoder) error { - return inst.BaseVariant.UnmarshalBinaryVariant(decoder, InstructionImplDef) -} - -func (inst *Instruction) MarshalWithEncoder(encoder *ag_binary.Encoder) error { - err := encoder.WriteBytes(inst.TypeID.Bytes(), false) - if err != nil { - return fmt.Errorf("unable to write variant type: %w", err) - } - return encoder.Encode(inst.Impl) -} - -func registryDecodeInstruction(accounts []*ag_solanago.AccountMeta, data []byte) (interface{}, error) { - inst, err := DecodeInstruction(accounts, data) - if err != nil { - return nil, err - } - return inst, nil -} - -func DecodeInstruction(accounts []*ag_solanago.AccountMeta, data []byte) (*Instruction, error) { - inst := new(Instruction) - if err := ag_binary.NewBorshDecoder(data).Decode(inst); err != nil { - return nil, fmt.Errorf("unable to decode instruction: %w", err) - } - if v, ok := inst.Impl.(ag_solanago.AccountsSettable); ok { - err := v.SetAccounts(accounts) - if err != nil { - return nil, fmt.Errorf("unable to set accounts for instruction: %w", err) - } - } - return inst, nil -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go b/core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go deleted file mode 100644 index aaecdf49bad..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/testing_utils.go +++ /dev/null @@ -1,20 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - "bytes" - "fmt" - ag_binary "github.com/gagliardetto/binary" -) - -func encodeT(data interface{}, buf *bytes.Buffer) error { - if err := ag_binary.NewBorshEncoder(buf).Encode(data); err != nil { - return fmt.Errorf("unable to encode instruction: %w", err) - } - return nil -} - -func decodeT(dst interface{}, data []byte) error { - return ag_binary.NewBorshDecoder(data).Decode(dst) -} diff --git a/core/capabilities/ccip/ccipsolana/ccip_router/types.go b/core/capabilities/ccip/ccipsolana/ccip_router/types.go deleted file mode 100644 index 1c3167a1fcc..00000000000 --- a/core/capabilities/ccip/ccipsolana/ccip_router/types.go +++ /dev/null @@ -1,1817 +0,0 @@ -// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT. - -package ccip_router - -import ( - ag_binary "github.com/gagliardetto/binary" - ag_solanago "github.com/gagliardetto/solana-go" -) - -type CommitInput struct { - PriceUpdates PriceUpdates - MerkleRoot MerkleRoot -} - -func (obj CommitInput) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `PriceUpdates` param: - err = encoder.Encode(obj.PriceUpdates) - if err != nil { - return err - } - // Serialize `MerkleRoot` param: - err = encoder.Encode(obj.MerkleRoot) - if err != nil { - return err - } - return nil -} - -func (obj *CommitInput) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `PriceUpdates`: - err = decoder.Decode(&obj.PriceUpdates) - if err != nil { - return err - } - // Deserialize `MerkleRoot`: - err = decoder.Decode(&obj.MerkleRoot) - if err != nil { - return err - } - return nil -} - -type PriceUpdates struct { - TokenPriceUpdates []TokenPriceUpdate - GasPriceUpdates []GasPriceUpdate -} - -func (obj PriceUpdates) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `TokenPriceUpdates` param: - err = encoder.Encode(obj.TokenPriceUpdates) - if err != nil { - return err - } - // Serialize `GasPriceUpdates` param: - err = encoder.Encode(obj.GasPriceUpdates) - if err != nil { - return err - } - return nil -} - -func (obj *PriceUpdates) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `TokenPriceUpdates`: - err = decoder.Decode(&obj.TokenPriceUpdates) - if err != nil { - return err - } - // Deserialize `GasPriceUpdates`: - err = decoder.Decode(&obj.GasPriceUpdates) - if err != nil { - return err - } - return nil -} - -type TokenPriceUpdate struct { - SourceToken ag_solanago.PublicKey - UsdPerToken [28]uint8 -} - -func (obj TokenPriceUpdate) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `SourceToken` param: - err = encoder.Encode(obj.SourceToken) - if err != nil { - return err - } - // Serialize `UsdPerToken` param: - err = encoder.Encode(obj.UsdPerToken) - if err != nil { - return err - } - return nil -} - -func (obj *TokenPriceUpdate) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `SourceToken`: - err = decoder.Decode(&obj.SourceToken) - if err != nil { - return err - } - // Deserialize `UsdPerToken`: - err = decoder.Decode(&obj.UsdPerToken) - if err != nil { - return err - } - return nil -} - -type GasPriceUpdate struct { - DestChainSelector uint64 - UsdPerUnitGas [28]uint8 -} - -func (obj GasPriceUpdate) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `DestChainSelector` param: - err = encoder.Encode(obj.DestChainSelector) - if err != nil { - return err - } - // Serialize `UsdPerUnitGas` param: - err = encoder.Encode(obj.UsdPerUnitGas) - if err != nil { - return err - } - return nil -} - -func (obj *GasPriceUpdate) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `DestChainSelector`: - err = decoder.Decode(&obj.DestChainSelector) - if err != nil { - return err - } - // Deserialize `UsdPerUnitGas`: - err = decoder.Decode(&obj.UsdPerUnitGas) - if err != nil { - return err - } - return nil -} - -type MerkleRoot struct { - SourceChainSelector uint64 - OnRampAddress []byte - MinSeqNr uint64 - MaxSeqNr uint64 - MerkleRoot [32]uint8 -} - -func (obj MerkleRoot) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `SourceChainSelector` param: - err = encoder.Encode(obj.SourceChainSelector) - if err != nil { - return err - } - // Serialize `OnRampAddress` param: - err = encoder.Encode(obj.OnRampAddress) - if err != nil { - return err - } - // Serialize `MinSeqNr` param: - err = encoder.Encode(obj.MinSeqNr) - if err != nil { - return err - } - // Serialize `MaxSeqNr` param: - err = encoder.Encode(obj.MaxSeqNr) - if err != nil { - return err - } - // Serialize `MerkleRoot` param: - err = encoder.Encode(obj.MerkleRoot) - if err != nil { - return err - } - return nil -} - -func (obj *MerkleRoot) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `SourceChainSelector`: - err = decoder.Decode(&obj.SourceChainSelector) - if err != nil { - return err - } - // Deserialize `OnRampAddress`: - err = decoder.Decode(&obj.OnRampAddress) - if err != nil { - return err - } - // Deserialize `MinSeqNr`: - err = decoder.Decode(&obj.MinSeqNr) - if err != nil { - return err - } - // Deserialize `MaxSeqNr`: - err = decoder.Decode(&obj.MaxSeqNr) - if err != nil { - return err - } - // Deserialize `MerkleRoot`: - err = decoder.Decode(&obj.MerkleRoot) - if err != nil { - return err - } - return nil -} - -type Solana2AnyMessage struct { - Receiver []byte - Data []byte - TokenAmounts []SolanaTokenAmount - FeeToken ag_solanago.PublicKey - ExtraArgs ExtraArgsInput - TokenIndexes []byte -} - -func (obj Solana2AnyMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Receiver` param: - err = encoder.Encode(obj.Receiver) - if err != nil { - return err - } - // Serialize `Data` param: - err = encoder.Encode(obj.Data) - if err != nil { - return err - } - // Serialize `TokenAmounts` param: - err = encoder.Encode(obj.TokenAmounts) - if err != nil { - return err - } - // Serialize `FeeToken` param: - err = encoder.Encode(obj.FeeToken) - if err != nil { - return err - } - // Serialize `ExtraArgs` param: - err = encoder.Encode(obj.ExtraArgs) - if err != nil { - return err - } - // Serialize `TokenIndexes` param: - err = encoder.Encode(obj.TokenIndexes) - if err != nil { - return err - } - return nil -} - -func (obj *Solana2AnyMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Receiver`: - err = decoder.Decode(&obj.Receiver) - if err != nil { - return err - } - // Deserialize `Data`: - err = decoder.Decode(&obj.Data) - if err != nil { - return err - } - // Deserialize `TokenAmounts`: - err = decoder.Decode(&obj.TokenAmounts) - if err != nil { - return err - } - // Deserialize `FeeToken`: - err = decoder.Decode(&obj.FeeToken) - if err != nil { - return err - } - // Deserialize `ExtraArgs`: - err = decoder.Decode(&obj.ExtraArgs) - if err != nil { - return err - } - // Deserialize `TokenIndexes`: - err = decoder.Decode(&obj.TokenIndexes) - if err != nil { - return err - } - return nil -} - -type SolanaTokenAmount struct { - Token ag_solanago.PublicKey - Amount uint64 -} - -func (obj SolanaTokenAmount) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Token` param: - err = encoder.Encode(obj.Token) - if err != nil { - return err - } - // Serialize `Amount` param: - err = encoder.Encode(obj.Amount) - if err != nil { - return err - } - return nil -} - -func (obj *SolanaTokenAmount) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Token`: - err = decoder.Decode(&obj.Token) - if err != nil { - return err - } - // Deserialize `Amount`: - err = decoder.Decode(&obj.Amount) - if err != nil { - return err - } - return nil -} - -type ExtraArgsInput struct { - GasLimit *ag_binary.Uint128 `bin:"optional"` - AllowOutOfOrderExecution *bool `bin:"optional"` -} - -func (obj ExtraArgsInput) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `GasLimit` param (optional): - { - if obj.GasLimit == nil { - err = encoder.WriteBool(false) - if err != nil { - return err - } - } else { - err = encoder.WriteBool(true) - if err != nil { - return err - } - err = encoder.Encode(obj.GasLimit) - if err != nil { - return err - } - } - } - // Serialize `AllowOutOfOrderExecution` param (optional): - { - if obj.AllowOutOfOrderExecution == nil { - err = encoder.WriteBool(false) - if err != nil { - return err - } - } else { - err = encoder.WriteBool(true) - if err != nil { - return err - } - err = encoder.Encode(obj.AllowOutOfOrderExecution) - if err != nil { - return err - } - } - } - return nil -} - -func (obj *ExtraArgsInput) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `GasLimit` (optional): - { - ok, err := decoder.ReadBool() - if err != nil { - return err - } - if ok { - err = decoder.Decode(&obj.GasLimit) - if err != nil { - return err - } - } - } - // Deserialize `AllowOutOfOrderExecution` (optional): - { - ok, err := decoder.ReadBool() - if err != nil { - return err - } - if ok { - err = decoder.Decode(&obj.AllowOutOfOrderExecution) - if err != nil { - return err - } - } - } - return nil -} - -type Any2SolanaMessage struct { - MessageId [32]uint8 - SourceChainSelector uint64 - Sender []byte - Data []byte - TokenAmounts []SolanaTokenAmount -} - -func (obj Any2SolanaMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `MessageId` param: - err = encoder.Encode(obj.MessageId) - if err != nil { - return err - } - // Serialize `SourceChainSelector` param: - err = encoder.Encode(obj.SourceChainSelector) - if err != nil { - return err - } - // Serialize `Sender` param: - err = encoder.Encode(obj.Sender) - if err != nil { - return err - } - // Serialize `Data` param: - err = encoder.Encode(obj.Data) - if err != nil { - return err - } - // Serialize `TokenAmounts` param: - err = encoder.Encode(obj.TokenAmounts) - if err != nil { - return err - } - return nil -} - -func (obj *Any2SolanaMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `MessageId`: - err = decoder.Decode(&obj.MessageId) - if err != nil { - return err - } - // Deserialize `SourceChainSelector`: - err = decoder.Decode(&obj.SourceChainSelector) - if err != nil { - return err - } - // Deserialize `Sender`: - err = decoder.Decode(&obj.Sender) - if err != nil { - return err - } - // Deserialize `Data`: - err = decoder.Decode(&obj.Data) - if err != nil { - return err - } - // Deserialize `TokenAmounts`: - err = decoder.Decode(&obj.TokenAmounts) - if err != nil { - return err - } - return nil -} - -type RampMessageHeader struct { - MessageId [32]uint8 - SourceChainSelector uint64 - DestChainSelector uint64 - SequenceNumber uint64 - Nonce uint64 -} - -func (obj RampMessageHeader) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `MessageId` param: - err = encoder.Encode(obj.MessageId) - if err != nil { - return err - } - // Serialize `SourceChainSelector` param: - err = encoder.Encode(obj.SourceChainSelector) - if err != nil { - return err - } - // Serialize `DestChainSelector` param: - err = encoder.Encode(obj.DestChainSelector) - if err != nil { - return err - } - // Serialize `SequenceNumber` param: - err = encoder.Encode(obj.SequenceNumber) - if err != nil { - return err - } - // Serialize `Nonce` param: - err = encoder.Encode(obj.Nonce) - if err != nil { - return err - } - return nil -} - -func (obj *RampMessageHeader) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `MessageId`: - err = decoder.Decode(&obj.MessageId) - if err != nil { - return err - } - // Deserialize `SourceChainSelector`: - err = decoder.Decode(&obj.SourceChainSelector) - if err != nil { - return err - } - // Deserialize `DestChainSelector`: - err = decoder.Decode(&obj.DestChainSelector) - if err != nil { - return err - } - // Deserialize `SequenceNumber`: - err = decoder.Decode(&obj.SequenceNumber) - if err != nil { - return err - } - // Deserialize `Nonce`: - err = decoder.Decode(&obj.Nonce) - if err != nil { - return err - } - return nil -} - -type ExecutionReportSingleChain struct { - SourceChainSelector uint64 - Message Any2SolanaRampMessage - OffchainTokenData [][]byte - Root [32]uint8 - Proofs [][32]uint8 - TokenIndexes []byte -} - -func (obj ExecutionReportSingleChain) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `SourceChainSelector` param: - err = encoder.Encode(obj.SourceChainSelector) - if err != nil { - return err - } - // Serialize `Message` param: - err = encoder.Encode(obj.Message) - if err != nil { - return err - } - // Serialize `OffchainTokenData` param: - err = encoder.Encode(obj.OffchainTokenData) - if err != nil { - return err - } - // Serialize `Root` param: - err = encoder.Encode(obj.Root) - if err != nil { - return err - } - // Serialize `Proofs` param: - err = encoder.Encode(obj.Proofs) - if err != nil { - return err - } - // Serialize `TokenIndexes` param: - err = encoder.Encode(obj.TokenIndexes) - if err != nil { - return err - } - return nil -} - -func (obj *ExecutionReportSingleChain) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `SourceChainSelector`: - err = decoder.Decode(&obj.SourceChainSelector) - if err != nil { - return err - } - // Deserialize `Message`: - err = decoder.Decode(&obj.Message) - if err != nil { - return err - } - // Deserialize `OffchainTokenData`: - err = decoder.Decode(&obj.OffchainTokenData) - if err != nil { - return err - } - // Deserialize `Root`: - err = decoder.Decode(&obj.Root) - if err != nil { - return err - } - // Deserialize `Proofs`: - err = decoder.Decode(&obj.Proofs) - if err != nil { - return err - } - // Deserialize `TokenIndexes`: - err = decoder.Decode(&obj.TokenIndexes) - if err != nil { - return err - } - return nil -} - -type SolanaExtraArgs struct { - ComputeUnits uint32 - AllowOutOfOrderExecution bool -} - -func (obj SolanaExtraArgs) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `ComputeUnits` param: - err = encoder.Encode(obj.ComputeUnits) - if err != nil { - return err - } - // Serialize `AllowOutOfOrderExecution` param: - err = encoder.Encode(obj.AllowOutOfOrderExecution) - if err != nil { - return err - } - return nil -} - -func (obj *SolanaExtraArgs) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `ComputeUnits`: - err = decoder.Decode(&obj.ComputeUnits) - if err != nil { - return err - } - // Deserialize `AllowOutOfOrderExecution`: - err = decoder.Decode(&obj.AllowOutOfOrderExecution) - if err != nil { - return err - } - return nil -} - -type EvmExtraArgs struct { - GasLimit ag_binary.Uint128 - AllowOutOfOrderExecution bool -} - -func (obj EvmExtraArgs) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `GasLimit` param: - err = encoder.Encode(obj.GasLimit) - if err != nil { - return err - } - // Serialize `AllowOutOfOrderExecution` param: - err = encoder.Encode(obj.AllowOutOfOrderExecution) - if err != nil { - return err - } - return nil -} - -func (obj *EvmExtraArgs) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `GasLimit`: - err = decoder.Decode(&obj.GasLimit) - if err != nil { - return err - } - // Deserialize `AllowOutOfOrderExecution`: - err = decoder.Decode(&obj.AllowOutOfOrderExecution) - if err != nil { - return err - } - return nil -} - -type Any2SolanaRampMessage struct { - Header RampMessageHeader - Sender []byte - Data []byte - Receiver ag_solanago.PublicKey - TokenAmounts []Any2SolanaTokenTransfer - ExtraArgs SolanaExtraArgs -} - -func (obj Any2SolanaRampMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Header` param: - err = encoder.Encode(obj.Header) - if err != nil { - return err - } - // Serialize `Sender` param: - err = encoder.Encode(obj.Sender) - if err != nil { - return err - } - // Serialize `Data` param: - err = encoder.Encode(obj.Data) - if err != nil { - return err - } - // Serialize `Receiver` param: - err = encoder.Encode(obj.Receiver) - if err != nil { - return err - } - // Serialize `TokenAmounts` param: - err = encoder.Encode(obj.TokenAmounts) - if err != nil { - return err - } - // Serialize `ExtraArgs` param: - err = encoder.Encode(obj.ExtraArgs) - if err != nil { - return err - } - return nil -} - -func (obj *Any2SolanaRampMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Header`: - err = decoder.Decode(&obj.Header) - if err != nil { - return err - } - // Deserialize `Sender`: - err = decoder.Decode(&obj.Sender) - if err != nil { - return err - } - // Deserialize `Data`: - err = decoder.Decode(&obj.Data) - if err != nil { - return err - } - // Deserialize `Receiver`: - err = decoder.Decode(&obj.Receiver) - if err != nil { - return err - } - // Deserialize `TokenAmounts`: - err = decoder.Decode(&obj.TokenAmounts) - if err != nil { - return err - } - // Deserialize `ExtraArgs`: - err = decoder.Decode(&obj.ExtraArgs) - if err != nil { - return err - } - return nil -} - -type Solana2AnyRampMessage struct { - Header RampMessageHeader - Sender ag_solanago.PublicKey - Data []byte - Receiver []byte - ExtraArgs EvmExtraArgs - FeeToken ag_solanago.PublicKey - TokenAmounts []Solana2AnyTokenTransfer -} - -func (obj Solana2AnyRampMessage) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Header` param: - err = encoder.Encode(obj.Header) - if err != nil { - return err - } - // Serialize `Sender` param: - err = encoder.Encode(obj.Sender) - if err != nil { - return err - } - // Serialize `Data` param: - err = encoder.Encode(obj.Data) - if err != nil { - return err - } - // Serialize `Receiver` param: - err = encoder.Encode(obj.Receiver) - if err != nil { - return err - } - // Serialize `ExtraArgs` param: - err = encoder.Encode(obj.ExtraArgs) - if err != nil { - return err - } - // Serialize `FeeToken` param: - err = encoder.Encode(obj.FeeToken) - if err != nil { - return err - } - // Serialize `TokenAmounts` param: - err = encoder.Encode(obj.TokenAmounts) - if err != nil { - return err - } - return nil -} - -func (obj *Solana2AnyRampMessage) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Header`: - err = decoder.Decode(&obj.Header) - if err != nil { - return err - } - // Deserialize `Sender`: - err = decoder.Decode(&obj.Sender) - if err != nil { - return err - } - // Deserialize `Data`: - err = decoder.Decode(&obj.Data) - if err != nil { - return err - } - // Deserialize `Receiver`: - err = decoder.Decode(&obj.Receiver) - if err != nil { - return err - } - // Deserialize `ExtraArgs`: - err = decoder.Decode(&obj.ExtraArgs) - if err != nil { - return err - } - // Deserialize `FeeToken`: - err = decoder.Decode(&obj.FeeToken) - if err != nil { - return err - } - // Deserialize `TokenAmounts`: - err = decoder.Decode(&obj.TokenAmounts) - if err != nil { - return err - } - return nil -} - -type Solana2AnyTokenTransfer struct { - SourcePoolAddress ag_solanago.PublicKey - DestTokenAddress []byte - ExtraData []byte - Amount uint64 - DestExecData []byte -} - -func (obj Solana2AnyTokenTransfer) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `SourcePoolAddress` param: - err = encoder.Encode(obj.SourcePoolAddress) - if err != nil { - return err - } - // Serialize `DestTokenAddress` param: - err = encoder.Encode(obj.DestTokenAddress) - if err != nil { - return err - } - // Serialize `ExtraData` param: - err = encoder.Encode(obj.ExtraData) - if err != nil { - return err - } - // Serialize `Amount` param: - err = encoder.Encode(obj.Amount) - if err != nil { - return err - } - // Serialize `DestExecData` param: - err = encoder.Encode(obj.DestExecData) - if err != nil { - return err - } - return nil -} - -func (obj *Solana2AnyTokenTransfer) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `SourcePoolAddress`: - err = decoder.Decode(&obj.SourcePoolAddress) - if err != nil { - return err - } - // Deserialize `DestTokenAddress`: - err = decoder.Decode(&obj.DestTokenAddress) - if err != nil { - return err - } - // Deserialize `ExtraData`: - err = decoder.Decode(&obj.ExtraData) - if err != nil { - return err - } - // Deserialize `Amount`: - err = decoder.Decode(&obj.Amount) - if err != nil { - return err - } - // Deserialize `DestExecData`: - err = decoder.Decode(&obj.DestExecData) - if err != nil { - return err - } - return nil -} - -type Any2SolanaTokenTransfer struct { - SourcePoolAddress []byte - DestTokenAddress ag_solanago.PublicKey - DestGasAmount uint32 - ExtraData []byte - Amount uint64 -} - -func (obj Any2SolanaTokenTransfer) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `SourcePoolAddress` param: - err = encoder.Encode(obj.SourcePoolAddress) - if err != nil { - return err - } - // Serialize `DestTokenAddress` param: - err = encoder.Encode(obj.DestTokenAddress) - if err != nil { - return err - } - // Serialize `DestGasAmount` param: - err = encoder.Encode(obj.DestGasAmount) - if err != nil { - return err - } - // Serialize `ExtraData` param: - err = encoder.Encode(obj.ExtraData) - if err != nil { - return err - } - // Serialize `Amount` param: - err = encoder.Encode(obj.Amount) - if err != nil { - return err - } - return nil -} - -func (obj *Any2SolanaTokenTransfer) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `SourcePoolAddress`: - err = decoder.Decode(&obj.SourcePoolAddress) - if err != nil { - return err - } - // Deserialize `DestTokenAddress`: - err = decoder.Decode(&obj.DestTokenAddress) - if err != nil { - return err - } - // Deserialize `DestGasAmount`: - err = decoder.Decode(&obj.DestGasAmount) - if err != nil { - return err - } - // Deserialize `ExtraData`: - err = decoder.Decode(&obj.ExtraData) - if err != nil { - return err - } - // Deserialize `Amount`: - err = decoder.Decode(&obj.Amount) - if err != nil { - return err - } - return nil -} - -type LockOrBurnInV1 struct { - Receiver []byte - RemoteChainSelector uint64 - OriginalSender ag_solanago.PublicKey - Amount uint64 - LocalToken ag_solanago.PublicKey -} - -func (obj LockOrBurnInV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Receiver` param: - err = encoder.Encode(obj.Receiver) - if err != nil { - return err - } - // Serialize `RemoteChainSelector` param: - err = encoder.Encode(obj.RemoteChainSelector) - if err != nil { - return err - } - // Serialize `OriginalSender` param: - err = encoder.Encode(obj.OriginalSender) - if err != nil { - return err - } - // Serialize `Amount` param: - err = encoder.Encode(obj.Amount) - if err != nil { - return err - } - // Serialize `LocalToken` param: - err = encoder.Encode(obj.LocalToken) - if err != nil { - return err - } - return nil -} - -func (obj *LockOrBurnInV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Receiver`: - err = decoder.Decode(&obj.Receiver) - if err != nil { - return err - } - // Deserialize `RemoteChainSelector`: - err = decoder.Decode(&obj.RemoteChainSelector) - if err != nil { - return err - } - // Deserialize `OriginalSender`: - err = decoder.Decode(&obj.OriginalSender) - if err != nil { - return err - } - // Deserialize `Amount`: - err = decoder.Decode(&obj.Amount) - if err != nil { - return err - } - // Deserialize `LocalToken`: - err = decoder.Decode(&obj.LocalToken) - if err != nil { - return err - } - return nil -} - -type ReleaseOrMintInV1 struct { - OriginalSender []byte - RemoteChainSelector uint64 - Receiver ag_solanago.PublicKey - Amount uint64 - LocalToken ag_solanago.PublicKey - - // @dev WARNING: sourcePoolAddress should be checked prior to any processing of funds. Make sure it matches the - // expected pool address for the given remoteChainSelector. - SourcePoolAddress []byte - SourcePoolData []byte - - // @dev WARNING: offchainTokenData is untrusted data. - OffchainTokenData []byte -} - -func (obj ReleaseOrMintInV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `OriginalSender` param: - err = encoder.Encode(obj.OriginalSender) - if err != nil { - return err - } - // Serialize `RemoteChainSelector` param: - err = encoder.Encode(obj.RemoteChainSelector) - if err != nil { - return err - } - // Serialize `Receiver` param: - err = encoder.Encode(obj.Receiver) - if err != nil { - return err - } - // Serialize `Amount` param: - err = encoder.Encode(obj.Amount) - if err != nil { - return err - } - // Serialize `LocalToken` param: - err = encoder.Encode(obj.LocalToken) - if err != nil { - return err - } - // Serialize `SourcePoolAddress` param: - err = encoder.Encode(obj.SourcePoolAddress) - if err != nil { - return err - } - // Serialize `SourcePoolData` param: - err = encoder.Encode(obj.SourcePoolData) - if err != nil { - return err - } - // Serialize `OffchainTokenData` param: - err = encoder.Encode(obj.OffchainTokenData) - if err != nil { - return err - } - return nil -} - -func (obj *ReleaseOrMintInV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `OriginalSender`: - err = decoder.Decode(&obj.OriginalSender) - if err != nil { - return err - } - // Deserialize `RemoteChainSelector`: - err = decoder.Decode(&obj.RemoteChainSelector) - if err != nil { - return err - } - // Deserialize `Receiver`: - err = decoder.Decode(&obj.Receiver) - if err != nil { - return err - } - // Deserialize `Amount`: - err = decoder.Decode(&obj.Amount) - if err != nil { - return err - } - // Deserialize `LocalToken`: - err = decoder.Decode(&obj.LocalToken) - if err != nil { - return err - } - // Deserialize `SourcePoolAddress`: - err = decoder.Decode(&obj.SourcePoolAddress) - if err != nil { - return err - } - // Deserialize `SourcePoolData`: - err = decoder.Decode(&obj.SourcePoolData) - if err != nil { - return err - } - // Deserialize `OffchainTokenData`: - err = decoder.Decode(&obj.OffchainTokenData) - if err != nil { - return err - } - return nil -} - -type LockOrBurnOutV1 struct { - DestTokenAddress []byte - DestPoolData []byte -} - -func (obj LockOrBurnOutV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `DestTokenAddress` param: - err = encoder.Encode(obj.DestTokenAddress) - if err != nil { - return err - } - // Serialize `DestPoolData` param: - err = encoder.Encode(obj.DestPoolData) - if err != nil { - return err - } - return nil -} - -func (obj *LockOrBurnOutV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `DestTokenAddress`: - err = decoder.Decode(&obj.DestTokenAddress) - if err != nil { - return err - } - // Deserialize `DestPoolData`: - err = decoder.Decode(&obj.DestPoolData) - if err != nil { - return err - } - return nil -} - -type ReleaseOrMintOutV1 struct { - DestinationAmount uint64 -} - -func (obj ReleaseOrMintOutV1) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `DestinationAmount` param: - err = encoder.Encode(obj.DestinationAmount) - if err != nil { - return err - } - return nil -} - -func (obj *ReleaseOrMintOutV1) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `DestinationAmount`: - err = decoder.Decode(&obj.DestinationAmount) - if err != nil { - return err - } - return nil -} - -type Ocr3Config struct { - PluginType uint8 - ConfigInfo Ocr3ConfigInfo - Signers [16][20]uint8 - Transmitters [16][32]uint8 -} - -func (obj Ocr3Config) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `PluginType` param: - err = encoder.Encode(obj.PluginType) - if err != nil { - return err - } - // Serialize `ConfigInfo` param: - err = encoder.Encode(obj.ConfigInfo) - if err != nil { - return err - } - // Serialize `Signers` param: - err = encoder.Encode(obj.Signers) - if err != nil { - return err - } - // Serialize `Transmitters` param: - err = encoder.Encode(obj.Transmitters) - if err != nil { - return err - } - return nil -} - -func (obj *Ocr3Config) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `PluginType`: - err = decoder.Decode(&obj.PluginType) - if err != nil { - return err - } - // Deserialize `ConfigInfo`: - err = decoder.Decode(&obj.ConfigInfo) - if err != nil { - return err - } - // Deserialize `Signers`: - err = decoder.Decode(&obj.Signers) - if err != nil { - return err - } - // Deserialize `Transmitters`: - err = decoder.Decode(&obj.Transmitters) - if err != nil { - return err - } - return nil -} - -type Ocr3ConfigInfo struct { - ConfigDigest [32]uint8 - F uint8 - N uint8 - IsSignatureVerificationEnabled uint8 -} - -func (obj Ocr3ConfigInfo) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `ConfigDigest` param: - err = encoder.Encode(obj.ConfigDigest) - if err != nil { - return err - } - // Serialize `F` param: - err = encoder.Encode(obj.F) - if err != nil { - return err - } - // Serialize `N` param: - err = encoder.Encode(obj.N) - if err != nil { - return err - } - // Serialize `IsSignatureVerificationEnabled` param: - err = encoder.Encode(obj.IsSignatureVerificationEnabled) - if err != nil { - return err - } - return nil -} - -func (obj *Ocr3ConfigInfo) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `ConfigDigest`: - err = decoder.Decode(&obj.ConfigDigest) - if err != nil { - return err - } - // Deserialize `F`: - err = decoder.Decode(&obj.F) - if err != nil { - return err - } - // Deserialize `N`: - err = decoder.Decode(&obj.N) - if err != nil { - return err - } - // Deserialize `IsSignatureVerificationEnabled`: - err = decoder.Decode(&obj.IsSignatureVerificationEnabled) - if err != nil { - return err - } - return nil -} - -type SourceChainConfig struct { - IsEnabled bool - MinSeqNr uint64 - OnRamp []byte -} - -func (obj SourceChainConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `IsEnabled` param: - err = encoder.Encode(obj.IsEnabled) - if err != nil { - return err - } - // Serialize `MinSeqNr` param: - err = encoder.Encode(obj.MinSeqNr) - if err != nil { - return err - } - // Serialize `OnRamp` param: - err = encoder.Encode(obj.OnRamp) - if err != nil { - return err - } - return nil -} - -func (obj *SourceChainConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `IsEnabled`: - err = decoder.Decode(&obj.IsEnabled) - if err != nil { - return err - } - // Deserialize `MinSeqNr`: - err = decoder.Decode(&obj.MinSeqNr) - if err != nil { - return err - } - // Deserialize `OnRamp`: - err = decoder.Decode(&obj.OnRamp) - if err != nil { - return err - } - return nil -} - -type DestChainConfig struct { - SequenceNumber uint64 - UsdPerUnitGas TimestampedPackedU224 - BillingConfig ChainBillingConfig -} - -func (obj DestChainConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `SequenceNumber` param: - err = encoder.Encode(obj.SequenceNumber) - if err != nil { - return err - } - // Serialize `UsdPerUnitGas` param: - err = encoder.Encode(obj.UsdPerUnitGas) - if err != nil { - return err - } - // Serialize `BillingConfig` param: - err = encoder.Encode(obj.BillingConfig) - if err != nil { - return err - } - return nil -} - -func (obj *DestChainConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `SequenceNumber`: - err = decoder.Decode(&obj.SequenceNumber) - if err != nil { - return err - } - // Deserialize `UsdPerUnitGas`: - err = decoder.Decode(&obj.UsdPerUnitGas) - if err != nil { - return err - } - // Deserialize `BillingConfig`: - err = decoder.Decode(&obj.BillingConfig) - if err != nil { - return err - } - return nil -} - -type ChainBillingConfig struct { - IsEnabled bool - MaxNumberOfTokensPerMsg uint16 - MaxDataBytes uint32 - MaxPerMsgGasLimit uint32 - DestGasOverhead uint32 - DestGasPerPayloadByte uint16 - DestDataAvailabilityOverheadGas uint32 - DestGasPerDataAvailabilityByte uint16 - DestDataAvailabilityMultiplierBps uint16 - DefaultTokenFeeUsdcents uint16 - DefaultTokenDestGasOverhead uint32 - DefaultTxGasLimit uint32 - GasMultiplierWeiPerEth uint64 - NetworkFeeUsdcents uint32 - GasPriceStalenessThreshold uint32 - EnforceOutOfOrder bool - ChainFamilySelector [4]uint8 -} - -func (obj ChainBillingConfig) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `IsEnabled` param: - err = encoder.Encode(obj.IsEnabled) - if err != nil { - return err - } - // Serialize `MaxNumberOfTokensPerMsg` param: - err = encoder.Encode(obj.MaxNumberOfTokensPerMsg) - if err != nil { - return err - } - // Serialize `MaxDataBytes` param: - err = encoder.Encode(obj.MaxDataBytes) - if err != nil { - return err - } - // Serialize `MaxPerMsgGasLimit` param: - err = encoder.Encode(obj.MaxPerMsgGasLimit) - if err != nil { - return err - } - // Serialize `DestGasOverhead` param: - err = encoder.Encode(obj.DestGasOverhead) - if err != nil { - return err - } - // Serialize `DestGasPerPayloadByte` param: - err = encoder.Encode(obj.DestGasPerPayloadByte) - if err != nil { - return err - } - // Serialize `DestDataAvailabilityOverheadGas` param: - err = encoder.Encode(obj.DestDataAvailabilityOverheadGas) - if err != nil { - return err - } - // Serialize `DestGasPerDataAvailabilityByte` param: - err = encoder.Encode(obj.DestGasPerDataAvailabilityByte) - if err != nil { - return err - } - // Serialize `DestDataAvailabilityMultiplierBps` param: - err = encoder.Encode(obj.DestDataAvailabilityMultiplierBps) - if err != nil { - return err - } - // Serialize `DefaultTokenFeeUsdcents` param: - err = encoder.Encode(obj.DefaultTokenFeeUsdcents) - if err != nil { - return err - } - // Serialize `DefaultTokenDestGasOverhead` param: - err = encoder.Encode(obj.DefaultTokenDestGasOverhead) - if err != nil { - return err - } - // Serialize `DefaultTxGasLimit` param: - err = encoder.Encode(obj.DefaultTxGasLimit) - if err != nil { - return err - } - // Serialize `GasMultiplierWeiPerEth` param: - err = encoder.Encode(obj.GasMultiplierWeiPerEth) - if err != nil { - return err - } - // Serialize `NetworkFeeUsdcents` param: - err = encoder.Encode(obj.NetworkFeeUsdcents) - if err != nil { - return err - } - // Serialize `GasPriceStalenessThreshold` param: - err = encoder.Encode(obj.GasPriceStalenessThreshold) - if err != nil { - return err - } - // Serialize `EnforceOutOfOrder` param: - err = encoder.Encode(obj.EnforceOutOfOrder) - if err != nil { - return err - } - // Serialize `ChainFamilySelector` param: - err = encoder.Encode(obj.ChainFamilySelector) - if err != nil { - return err - } - return nil -} - -func (obj *ChainBillingConfig) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `IsEnabled`: - err = decoder.Decode(&obj.IsEnabled) - if err != nil { - return err - } - // Deserialize `MaxNumberOfTokensPerMsg`: - err = decoder.Decode(&obj.MaxNumberOfTokensPerMsg) - if err != nil { - return err - } - // Deserialize `MaxDataBytes`: - err = decoder.Decode(&obj.MaxDataBytes) - if err != nil { - return err - } - // Deserialize `MaxPerMsgGasLimit`: - err = decoder.Decode(&obj.MaxPerMsgGasLimit) - if err != nil { - return err - } - // Deserialize `DestGasOverhead`: - err = decoder.Decode(&obj.DestGasOverhead) - if err != nil { - return err - } - // Deserialize `DestGasPerPayloadByte`: - err = decoder.Decode(&obj.DestGasPerPayloadByte) - if err != nil { - return err - } - // Deserialize `DestDataAvailabilityOverheadGas`: - err = decoder.Decode(&obj.DestDataAvailabilityOverheadGas) - if err != nil { - return err - } - // Deserialize `DestGasPerDataAvailabilityByte`: - err = decoder.Decode(&obj.DestGasPerDataAvailabilityByte) - if err != nil { - return err - } - // Deserialize `DestDataAvailabilityMultiplierBps`: - err = decoder.Decode(&obj.DestDataAvailabilityMultiplierBps) - if err != nil { - return err - } - // Deserialize `DefaultTokenFeeUsdcents`: - err = decoder.Decode(&obj.DefaultTokenFeeUsdcents) - if err != nil { - return err - } - // Deserialize `DefaultTokenDestGasOverhead`: - err = decoder.Decode(&obj.DefaultTokenDestGasOverhead) - if err != nil { - return err - } - // Deserialize `DefaultTxGasLimit`: - err = decoder.Decode(&obj.DefaultTxGasLimit) - if err != nil { - return err - } - // Deserialize `GasMultiplierWeiPerEth`: - err = decoder.Decode(&obj.GasMultiplierWeiPerEth) - if err != nil { - return err - } - // Deserialize `NetworkFeeUsdcents`: - err = decoder.Decode(&obj.NetworkFeeUsdcents) - if err != nil { - return err - } - // Deserialize `GasPriceStalenessThreshold`: - err = decoder.Decode(&obj.GasPriceStalenessThreshold) - if err != nil { - return err - } - // Deserialize `EnforceOutOfOrder`: - err = decoder.Decode(&obj.EnforceOutOfOrder) - if err != nil { - return err - } - // Deserialize `ChainFamilySelector`: - err = decoder.Decode(&obj.ChainFamilySelector) - if err != nil { - return err - } - return nil -} - -type TokenBilling struct { - MinFeeUsdcents uint32 - MaxFeeUsdcents uint32 - DeciBps uint16 - DestGasOverhead uint32 - DestBytesOverhead uint32 - IsEnabled bool -} - -func (obj TokenBilling) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `MinFeeUsdcents` param: - err = encoder.Encode(obj.MinFeeUsdcents) - if err != nil { - return err - } - // Serialize `MaxFeeUsdcents` param: - err = encoder.Encode(obj.MaxFeeUsdcents) - if err != nil { - return err - } - // Serialize `DeciBps` param: - err = encoder.Encode(obj.DeciBps) - if err != nil { - return err - } - // Serialize `DestGasOverhead` param: - err = encoder.Encode(obj.DestGasOverhead) - if err != nil { - return err - } - // Serialize `DestBytesOverhead` param: - err = encoder.Encode(obj.DestBytesOverhead) - if err != nil { - return err - } - // Serialize `IsEnabled` param: - err = encoder.Encode(obj.IsEnabled) - if err != nil { - return err - } - return nil -} - -func (obj *TokenBilling) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `MinFeeUsdcents`: - err = decoder.Decode(&obj.MinFeeUsdcents) - if err != nil { - return err - } - // Deserialize `MaxFeeUsdcents`: - err = decoder.Decode(&obj.MaxFeeUsdcents) - if err != nil { - return err - } - // Deserialize `DeciBps`: - err = decoder.Decode(&obj.DeciBps) - if err != nil { - return err - } - // Deserialize `DestGasOverhead`: - err = decoder.Decode(&obj.DestGasOverhead) - if err != nil { - return err - } - // Deserialize `DestBytesOverhead`: - err = decoder.Decode(&obj.DestBytesOverhead) - if err != nil { - return err - } - // Deserialize `IsEnabled`: - err = decoder.Decode(&obj.IsEnabled) - if err != nil { - return err - } - return nil -} - -type TimestampedPackedU224 struct { - Value [28]uint8 - Timestamp uint32 -} - -func (obj TimestampedPackedU224) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) { - // Serialize `Value` param: - err = encoder.Encode(obj.Value) - if err != nil { - return err - } - // Serialize `Timestamp` param: - err = encoder.Encode(obj.Timestamp) - if err != nil { - return err - } - return nil -} - -func (obj *TimestampedPackedU224) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) { - // Deserialize `Value`: - err = decoder.Decode(&obj.Value) - if err != nil { - return err - } - // Deserialize `Timestamp`: - err = decoder.Decode(&obj.Timestamp) - if err != nil { - return err - } - return nil -} - -type OcrPluginType ag_binary.BorshEnum - -const ( - Commit_OcrPluginType OcrPluginType = iota - Execution_OcrPluginType -) - -func (value OcrPluginType) String() string { - switch value { - case Commit_OcrPluginType: - return "Commit" - case Execution_OcrPluginType: - return "Execution" - default: - return "" - } -} - -type MerkleError ag_binary.BorshEnum - -const ( - InvalidProof_MerkleError MerkleError = iota -) - -func (value MerkleError) String() string { - switch value { - case InvalidProof_MerkleError: - return "InvalidProof" - default: - return "" - } -} - -type MessageExecutionState ag_binary.BorshEnum - -const ( - Untouched_MessageExecutionState MessageExecutionState = iota - InProgress_MessageExecutionState - Success_MessageExecutionState - Failure_MessageExecutionState -) - -func (value MessageExecutionState) String() string { - switch value { - case Untouched_MessageExecutionState: - return "Untouched" - case InProgress_MessageExecutionState: - return "InProgress" - case Success_MessageExecutionState: - return "Success" - case Failure_MessageExecutionState: - return "Failure" - default: - return "" - } -} - -type CcipRouterError ag_binary.BorshEnum - -const ( - InvalidSequenceInterval_CcipRouterError CcipRouterError = iota - RootNotCommitted_CcipRouterError - ExistingMerkleRoot_CcipRouterError - Unauthorized_CcipRouterError - InvalidInputs_CcipRouterError - UnsupportedSourceChainSelector_CcipRouterError - UnsupportedDestinationChainSelector_CcipRouterError - InvalidProof_CcipRouterError - InvalidMessage_CcipRouterError - ReachedMaxSequenceNumber_CcipRouterError - ManualExecutionNotAllowed_CcipRouterError - InvalidInputsTokenIndices_CcipRouterError - InvalidInputsPoolAccounts_CcipRouterError - InvalidInputsTokenAccounts_CcipRouterError - InvalidInputsConfigAccounts_CcipRouterError - InvalidInputsTokenAmount_CcipRouterError - OfframpReleaseMintBalanceMismatch_CcipRouterError - OfframpInvalidDataLength_CcipRouterError -) - -func (value CcipRouterError) String() string { - switch value { - case InvalidSequenceInterval_CcipRouterError: - return "InvalidSequenceInterval" - case RootNotCommitted_CcipRouterError: - return "RootNotCommitted" - case ExistingMerkleRoot_CcipRouterError: - return "ExistingMerkleRoot" - case Unauthorized_CcipRouterError: - return "Unauthorized" - case InvalidInputs_CcipRouterError: - return "InvalidInputs" - case UnsupportedSourceChainSelector_CcipRouterError: - return "UnsupportedSourceChainSelector" - case UnsupportedDestinationChainSelector_CcipRouterError: - return "UnsupportedDestinationChainSelector" - case InvalidProof_CcipRouterError: - return "InvalidProof" - case InvalidMessage_CcipRouterError: - return "InvalidMessage" - case ReachedMaxSequenceNumber_CcipRouterError: - return "ReachedMaxSequenceNumber" - case ManualExecutionNotAllowed_CcipRouterError: - return "ManualExecutionNotAllowed" - case InvalidInputsTokenIndices_CcipRouterError: - return "InvalidInputsTokenIndices" - case InvalidInputsPoolAccounts_CcipRouterError: - return "InvalidInputsPoolAccounts" - case InvalidInputsTokenAccounts_CcipRouterError: - return "InvalidInputsTokenAccounts" - case InvalidInputsConfigAccounts_CcipRouterError: - return "InvalidInputsConfigAccounts" - case InvalidInputsTokenAmount_CcipRouterError: - return "InvalidInputsTokenAmount" - case OfframpReleaseMintBalanceMismatch_CcipRouterError: - return "OfframpReleaseMintBalanceMismatch" - case OfframpInvalidDataLength_CcipRouterError: - return "OfframpInvalidDataLength" - default: - return "" - } -} diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index 711bb66068a..425cc7bdea8 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -6,12 +6,11 @@ import ( "errors" "fmt" + agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana/ccip_router" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" - - agbinary "github.com/gagliardetto/binary" ) // CommitPluginCodecV1 is a codec for encoding and decoding commit plugin reports. @@ -39,7 +38,7 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi for _, update := range report.PriceUpdates.TokenPriceUpdates { b, err := update.Price.MarshalJSON() if err != nil { - return nil, fmt.Errorf("error marshaling token price: %v", err) + return nil, fmt.Errorf("error marshaling token price: %w", err) } if len(b) > 28 { diff --git a/go.mod b/go.mod index 4bfc5964ff7..f3e76d0be9b 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,8 @@ require ( github.com/ethereum/go-ethereum v1.14.11 github.com/fatih/color v1.17.0 github.com/fxamacker/cbor/v2 v2.7.0 - github.com/gagliardetto/solana-go v1.8.4 + github.com/gagliardetto/binary v0.8.0 + github.com/gagliardetto/solana-go v1.12.0 github.com/getsentry/sentry-go v0.27.0 github.com/gin-contrib/cors v1.7.2 github.com/gin-contrib/expvar v0.0.1 @@ -79,6 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20241223194433-f25773de7c0e github.com/smartcontractkit/chainlink-common v0.4.1-0.20241217120918-bbe318cd0760 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 @@ -91,7 +93,7 @@ require ( github.com/smartcontractkit/tdh2/go/tdh2 v0.0.0-20241009055228-33d0c0bf38de github.com/smartcontractkit/wsrpc v0.8.3 github.com/spf13/cast v1.6.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/test-go/testify v1.1.4 github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a github.com/tidwall/gjson v1.17.0 @@ -111,13 +113,13 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c - golang.org/x/mod v0.21.0 + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 + golang.org/x/mod v0.22.0 golang.org/x/sync v0.10.0 golang.org/x/term v0.27.0 golang.org/x/text v0.21.0 golang.org/x/time v0.7.0 - golang.org/x/tools v0.26.0 + golang.org/x/tools v0.28.0 gonum.org/v1/gonum v0.15.1 google.golang.org/grpc v1.67.1 google.golang.org/protobuf v1.35.1 @@ -130,7 +132,6 @@ require ( cel.dev/expr v0.17.0 // indirect cloud.google.com/go/auth v0.9.9 // indirect cloud.google.com/go/storage v1.45.0 // indirect - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -191,8 +192,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -204,7 +204,6 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect @@ -230,7 +229,6 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect @@ -328,13 +326,12 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect @@ -354,7 +351,6 @@ require ( go.dedis.ch/protobuf v1.0.11 // indirect go.etcd.io/bbolt v1.3.9 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.31.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect @@ -374,7 +370,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/ratelimit v0.3.1 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.202.0 // indirect diff --git a/go.sum b/go.sum index c6f5b4a29e8..0c9654d1fb5 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -73,7 +68,6 @@ cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -100,8 +94,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -133,7 +125,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -143,7 +134,6 @@ github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1L github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -163,8 +153,6 @@ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c h1:cxQ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c/go.mod h1:3XzxudkrYVUvbduN/uI2fl4lSrMSzU0+3RCu2mpnfx8= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= @@ -183,7 +171,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= @@ -268,9 +255,7 @@ github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -278,7 +263,6 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -315,7 +299,6 @@ github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJF github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -329,23 +312,18 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= @@ -379,7 +357,6 @@ github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2 github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= @@ -398,12 +375,12 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= @@ -507,7 +484,6 @@ github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVI github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -543,7 +519,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -618,12 +593,10 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/pyroscope-go v1.1.2 h1:7vCfdORYQMCxIzI3NlYAs3FcBP760+gWuYWOyiVyYx8= @@ -634,15 +607,12 @@ github.com/graph-gophers/dataloader v5.0.0+incompatible h1:R+yjsbrNq1Mo3aPG+Z/EK github.com/graph-gophers/dataloader v5.0.0+incompatible/go.mod h1:jk4jk0c5ZISbKaMe8WsVopGB5/15GvGHMdMdPtwlRp4= github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -695,7 +665,6 @@ github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -789,10 +758,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= @@ -801,7 +768,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= @@ -822,7 +788,6 @@ github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -864,7 +829,6 @@ github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczG github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -878,7 +842,6 @@ github.com/marcboeker/go-duckdb v1.8.3 h1:ZkYwiIZhbYsT6MmJsZ3UPTHrTZccDdM4ztoqSl github.com/marcboeker/go-duckdb v1.8.3/go.mod h1:C9bYRE1dPYb1hhfu/SSomm78B0FXmNgRvv6YBW/Hooc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -887,8 +850,6 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -948,7 +909,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1 h1:mPMvm6X6tf4w8y7j9YIt6V9jfWhL6QlbEc7CCmeQlWk= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1/go.mod h1:ye2e/VUEtE2BHE+G/QcKkcLQVAEJoYRFj5VUOQatCRE= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= @@ -963,7 +923,6 @@ github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJm github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -971,7 +930,6 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= 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= @@ -1036,7 +994,6 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/pressly/goose/v3 v3.21.1 h1:5SSAKKWej8LVVzNLuT6KIvP1eFDuPvxa+B6H0w78buQ= github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfWh8pHEe+vE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -1047,21 +1004,17 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1075,7 +1028,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1139,6 +1091,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20241223194433-f25773de7c0e h1:aZ9IMSlI3qxelcNqhkOIwK7Z8I5HpCmWvAeOdFzCKwE= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20241223194433-f25773de7c0e/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20241217120918-bbe318cd0760 h1:lB5A3TP0zOVuu1n0kEm6d8/o/4Knh6HLvsU/GChk+sI= github.com/smartcontractkit/chainlink-common v0.4.1-0.20241217120918-bbe318cd0760/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1167,7 +1121,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1182,7 +1135,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1192,15 +1144,13 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1220,8 +1170,9 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= @@ -1231,21 +1182,16 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1253,7 +1199,6 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= @@ -1279,24 +1224,17 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= 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/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1324,18 +1262,15 @@ go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRL go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11 h1:FTYVIEzY/bfl37lu3pR4lIj+F9Vp1jE8oh91VmxKgLo= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1407,15 +1342,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1442,7 +1374,6 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= @@ -1457,8 +1388,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1487,15 +1418,14 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1508,7 +1438,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1542,8 +1471,8 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1578,7 +1507,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1594,7 +1522,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1660,7 +1587,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -1707,7 +1633,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -1717,7 +1642,6 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1753,8 +1677,8 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1770,7 +1694,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -1795,7 +1718,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -1805,7 +1727,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1854,9 +1775,7 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go. google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1908,16 +1827,13 @@ gopkg.in/guregu/null.v2 v2.1.2/go.mod h1:XORrx8tyS5ZDcyUboCIxQtta/Aujk/6pfWrn9Xe gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From de95bf15d6c96198ef8fcf89bd9ece924570189c Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 30 Dec 2024 11:27:00 -0600 Subject: [PATCH 003/232] update go list --- core/scripts/go.mod | 18 +++++++++--------- core/scripts/go.sum | 9 +++++++++ deployment/go.mod | 18 +++++++++--------- deployment/go.sum | 9 +++++++++ integration-tests/go.mod | 18 +++++++++--------- integration-tests/go.sum | 9 +++++++++ integration-tests/load/go.mod | 18 +++++++++--------- integration-tests/load/go.sum | 9 +++++++++ 8 files changed, 72 insertions(+), 36 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index a9e5130db2c..0bec3a25ed4 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -37,7 +37,7 @@ require ( github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/umbracle/ethgo v0.1.3 github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 github.com/urfave/cli v1.22.14 @@ -118,7 +118,7 @@ require ( github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect @@ -138,8 +138,8 @@ require ( github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect - github.com/gagliardetto/solana-go v1.8.4 // indirect + github.com/gagliardetto/binary v0.8.0 // indirect + github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect @@ -321,7 +321,7 @@ require ( github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect @@ -381,16 +381,16 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.7.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/tools v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gonum.org/v1/gonum v0.15.1 // indirect google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 7b004d6eae7..08abfae3d0f 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -330,6 +330,7 @@ github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5il github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= @@ -405,10 +406,12 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= @@ -1228,6 +1231,7 @@ github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobt github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1249,6 +1253,7 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= @@ -1485,6 +1490,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1515,6 +1521,7 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1569,6 +1576,7 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1777,6 +1785,7 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/deployment/go.mod b/deployment/go.mod index 34fbc7fd21d..157b9f6134e 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -33,12 +33,12 @@ require ( github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/test-go/testify v1.1.4 github.com/testcontainers/testcontainers-go v0.34.0 go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 golang.org/x/oauth2 v0.23.0 golang.org/x/sync v0.10.0 google.golang.org/grpc v1.67.1 @@ -160,7 +160,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect @@ -189,8 +189,8 @@ require ( github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect - github.com/gagliardetto/solana-go v1.8.4 // indirect + github.com/gagliardetto/binary v0.8.0 // indirect + github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect @@ -429,7 +429,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect @@ -494,13 +494,13 @@ require ( go4.org/netipx v0.0.0-20230125063823-8449b0a6169f // indirect golang.org/x/arch v0.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.7.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/tools v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index a364fc9b1ec..40a36a7e1d7 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -446,6 +446,7 @@ github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5il github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= @@ -541,10 +542,12 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= @@ -1503,6 +1506,7 @@ github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobt github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1524,6 +1528,7 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= @@ -1780,6 +1785,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1810,6 +1816,7 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1869,6 +1876,7 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2093,6 +2101,7 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 1c63ac6738e..8138daa8597 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -56,7 +56,7 @@ require ( github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/subosito/gotenv v1.6.0 github.com/test-go/testify v1.1.4 github.com/testcontainers/testcontainers-go v0.34.0 @@ -65,7 +65,7 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 golang.org/x/sync v0.10.0 golang.org/x/text v0.21.0 google.golang.org/grpc v1.67.1 @@ -183,7 +183,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect @@ -211,8 +211,8 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect - github.com/gagliardetto/solana-go v1.8.4 // indirect + github.com/gagliardetto/binary v0.8.0 // indirect + github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect @@ -442,7 +442,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect @@ -506,13 +506,13 @@ require ( go.uber.org/ratelimit v0.3.1 // indirect go4.org/netipx v0.0.0-20230125063823-8449b0a6169f // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/time v0.7.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/tools v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 1baff05f3f1..19dd6365630 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -450,6 +450,7 @@ github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5il github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= @@ -543,10 +544,12 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= @@ -1526,6 +1529,7 @@ github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobt github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1547,6 +1551,7 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= @@ -1806,6 +1811,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1836,6 +1842,7 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1895,6 +1902,7 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2121,6 +2129,7 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 04f9b07f93b..432cf25c921 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -32,10 +32,10 @@ require ( github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.9 github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 github.com/smartcontractkit/tdh2/go/tdh2 v0.0.0-20241009055228-33d0c0bf38de - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/wiremock/go-wiremock v1.9.0 go.uber.org/ratelimit v0.3.1 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 ) require ( @@ -153,7 +153,7 @@ require ( github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect @@ -182,8 +182,8 @@ require ( github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect - github.com/gagliardetto/solana-go v1.8.4 // indirect + github.com/gagliardetto/binary v0.8.0 // indirect + github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect @@ -429,7 +429,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect @@ -500,15 +500,15 @@ require ( go4.org/netipx v0.0.0-20230125063823-8449b0a6169f // indirect golang.org/x/arch v0.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.7.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/tools v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 48bdf1cb5b1..50479afe0ab 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -444,6 +444,7 @@ github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5il github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= @@ -537,10 +538,12 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= @@ -1517,6 +1520,7 @@ github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobt github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1538,6 +1542,7 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= @@ -1797,6 +1802,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1827,6 +1833,7 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1886,6 +1893,7 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2110,6 +2118,7 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From e51bd46bc4604c2dc428e49e454d531c0149c9a8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 31 Dec 2024 07:14:36 -0600 Subject: [PATCH 004/232] add test and update commit price processing logic --- .../ccip/ccipsolana/commitcodec.go | 71 +++++----- .../ccip/ccipsolana/commitcodec_test.go | 129 ++++++++++++++++++ 2 files changed, 162 insertions(+), 38 deletions(-) create mode 100644 core/capabilities/ccip/ccipsolana/commitcodec_test.go diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index 425cc7bdea8..aa8c69a0044 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -3,13 +3,14 @@ package ccipsolana import ( "bytes" "context" - "errors" "fmt" + "math/big" agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/common" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) @@ -25,46 +26,38 @@ func NewCommitPluginCodecV1() *CommitPluginCodecV1 { func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.CommitPluginReport) ([]byte, error) { var buf bytes.Buffer encoder := agbinary.NewBorshEncoder(&buf) - - mr := ccip_router.MerkleRoot{ - SourceChainSelector: uint64(report.MerkleRoots[0].ChainSel), - OnRampAddress: report.MerkleRoots[0].OnRampAddress, - MinSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.Start()), - MaxSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.End()), - MerkleRoot: report.MerkleRoots[0].MerkleRoot, + mr := ccip_router.MerkleRoot{} + + if len(report.MerkleRoots) != 0 { + mr = ccip_router.MerkleRoot{ + SourceChainSelector: uint64(report.MerkleRoots[0].ChainSel), + OnRampAddress: report.MerkleRoots[0].OnRampAddress, + MinSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.Start()), + MaxSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.End()), + MerkleRoot: report.MerkleRoots[0].MerkleRoot, + } } tpu := make([]ccip_router.TokenPriceUpdate, 0, len(report.PriceUpdates.TokenPriceUpdates)) for _, update := range report.PriceUpdates.TokenPriceUpdates { - b, err := update.Price.MarshalJSON() + token, err := solana.PublicKeyFromBase58(string(update.TokenID)) if err != nil { - return nil, fmt.Errorf("error marshaling token price: %w", err) + return nil, fmt.Errorf("invalid token address: %s, %v", update.TokenID, err) } - - if len(b) > 28 { - return nil, errors.New("token price is too large") + if update.Price.IsEmpty() { + return nil, fmt.Errorf("empty price for token: %s", update.TokenID) } - tpu = append(tpu, ccip_router.TokenPriceUpdate{ - SourceToken: solana.MPK(string(update.TokenID)), - UsdPerToken: [28]uint8(b), + SourceToken: token, + UsdPerToken: common.To28BytesBE(update.Price.Int.Uint64()), }) } gpu := make([]ccip_router.GasPriceUpdate, 0, len(report.PriceUpdates.GasPriceUpdates)) for _, update := range report.PriceUpdates.GasPriceUpdates { - b, err := update.GasPrice.MarshalJSON() - if err != nil { - return nil, fmt.Errorf("error marshaling gas price update: %w", err) - } - - if len(b) > 28 { - return nil, errors.New("error marshaling gas price update: gas price is too large") - } - gpu = append(gpu, ccip_router.GasPriceUpdate{ DestChainSelector: uint64(update.ChainSel), - UsdPerUnitGas: [28]uint8(b), + UsdPerUnitGas: common.To28BytesBE(update.GasPrice.Int.Uint64()), }) } @@ -106,26 +99,16 @@ func (c *CommitPluginCodecV1) Decode(ctx context.Context, bytes []byte) (cciptyp tokenPriceUpdates := make([]cciptypes.TokenPrice, 0, len(commitReport.PriceUpdates.TokenPriceUpdates)) for _, update := range commitReport.PriceUpdates.TokenPriceUpdates { - price := cciptypes.BigInt{} - err = price.UnmarshalJSON(update.UsdPerToken[:]) - if err != nil { - return cciptypes.CommitPluginReport{}, err - } tokenPriceUpdates = append(tokenPriceUpdates, cciptypes.TokenPrice{ TokenID: cciptypes.UnknownEncodedAddress(update.SourceToken.String()), - Price: price, + Price: priceHelper(update.UsdPerToken[:]), }) } gasPriceUpdates := make([]cciptypes.GasPriceChain, 0, len(commitReport.PriceUpdates.GasPriceUpdates)) for _, update := range commitReport.PriceUpdates.GasPriceUpdates { - price := cciptypes.BigInt{} - err = price.UnmarshalJSON(update.UsdPerUnitGas[:]) - if err != nil { - return cciptypes.CommitPluginReport{}, err - } gasPriceUpdates = append(gasPriceUpdates, cciptypes.GasPriceChain{ - GasPrice: price, + GasPrice: priceHelper(update.UsdPerUnitGas[:]), ChainSel: cciptypes.ChainSelector(update.DestChainSelector), }) } @@ -139,5 +122,17 @@ func (c *CommitPluginCodecV1) Decode(ctx context.Context, bytes []byte) (cciptyp }, nil } +func priceHelper(input []byte) cciptypes.BigInt { + var tokenPrice cciptypes.BigInt + price := new(big.Int).SetBytes(input) + if price.Int64() == 0 { + tokenPrice = cciptypes.NewBigInt(big.NewInt(0)) + } else { + tokenPrice = cciptypes.NewBigInt(price) + } + + return tokenPrice +} + // Ensure CommitPluginCodec implements the CommitPluginCodec interface var _ cciptypes.CommitPluginCodec = (*CommitPluginCodecV1)(nil) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go new file mode 100644 index 00000000000..849e6bfe404 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -0,0 +1,129 @@ +package ccipsolana + +import ( + "math/big" + "math/rand" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + solanacommon "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/common" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" + "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" +) + +var randomCommitReport = func() cciptypes.CommitPluginReport { + pubkey := solanacommon.MakeRandom32ByteArray() + return cciptypes.CommitPluginReport{ + MerkleRoots: []cciptypes.MerkleRootChain{ + { + OnRampAddress: pubkey[:], + ChainSel: cciptypes.ChainSelector(rand.Uint64()), + SeqNumsRange: cciptypes.NewSeqNumRange( + cciptypes.SeqNum(rand.Uint64()), + cciptypes.SeqNum(rand.Uint64()), + ), + MerkleRoot: utils.RandomBytes32(), + }, + }, + PriceUpdates: cciptypes.PriceUpdates{ + TokenPriceUpdates: []cciptypes.TokenPrice{ + { + TokenID: "C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8", + Price: cciptypes.NewBigInt(big.NewInt(64)), + }, + }, + GasPriceUpdates: []cciptypes.GasPriceChain{ + {GasPrice: cciptypes.NewBigInt(big.NewInt(64)), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, + {GasPrice: cciptypes.NewBigInt(big.NewInt(64)), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, + {GasPrice: cciptypes.NewBigInt(big.NewInt(64)), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, + }, + }, + } +} + +func TestCommitPluginCodecV1(t *testing.T) { + testCases := []struct { + name string + report func(report cciptypes.CommitPluginReport) cciptypes.CommitPluginReport + expErr bool + }{ + { + name: "base report", + report: func(report cciptypes.CommitPluginReport) cciptypes.CommitPluginReport { + return report + }, + }, + { + name: "empty token address", + report: func(report cciptypes.CommitPluginReport) cciptypes.CommitPluginReport { + report.PriceUpdates.TokenPriceUpdates[0].TokenID = "" + return report + }, + expErr: true, + }, + { + name: "empty merkle root", + report: func(report cciptypes.CommitPluginReport) cciptypes.CommitPluginReport { + report.MerkleRoots[0].MerkleRoot = cciptypes.Bytes32{} + return report + }, + }, + { + name: "zero token price", + report: func(report cciptypes.CommitPluginReport) cciptypes.CommitPluginReport { + report.PriceUpdates.TokenPriceUpdates[0].Price = cciptypes.NewBigInt(big.NewInt(0)) + return report + }, + }, + { + name: "zero gas price", + report: func(report cciptypes.CommitPluginReport) cciptypes.CommitPluginReport { + report.PriceUpdates.GasPriceUpdates[0].GasPrice = cciptypes.NewBigInt(big.NewInt(0)) + return report + }, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + report := tc.report(randomCommitReport()) + commitCodec := NewCommitPluginCodecV1() + ctx := testutils.Context(t) + encodedReport, err := commitCodec.Encode(ctx, report) + if tc.expErr { + assert.Error(t, err) + return + } + require.NoError(t, err) + decodedReport, err := commitCodec.Decode(ctx, encodedReport) + require.NoError(t, err) + require.Equal(t, report, decodedReport) + }) + } +} + +func BenchmarkCommitPluginCodecV1_Encode(b *testing.B) { + commitCodec := NewCommitPluginCodecV1() + ctx := testutils.Context(b) + + rep := randomCommitReport() + for i := 0; i < b.N; i++ { + _, err := commitCodec.Encode(ctx, rep) + require.NoError(b, err) + } +} + +func BenchmarkCommitPluginCodecV1_Decode(b *testing.B) { + commitCodec := NewCommitPluginCodecV1() + ctx := testutils.Context(b) + encodedReport, err := commitCodec.Encode(ctx, randomCommitReport()) + require.NoError(b, err) + + for i := 0; i < b.N; i++ { + _, err := commitCodec.Decode(ctx, encodedReport) + require.NoError(b, err) + } +} From 86c9c171b11c897341c908e040d48f73af6d51ae Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 31 Dec 2024 07:40:54 -0600 Subject: [PATCH 005/232] fix lint --- core/capabilities/ccip/ccipsolana/commitcodec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index aa8c69a0044..5daee5817a1 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -42,7 +42,7 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi for _, update := range report.PriceUpdates.TokenPriceUpdates { token, err := solana.PublicKeyFromBase58(string(update.TokenID)) if err != nil { - return nil, fmt.Errorf("invalid token address: %s, %v", update.TokenID, err) + return nil, fmt.Errorf("invalid token address: %s, %w", update.TokenID, err) } if update.Price.IsEmpty() { return nil, fmt.Errorf("empty price for token: %s", update.TokenID) From 237e4f4c3277e5a6678e6378481376fba7fac123 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 31 Dec 2024 17:12:45 -0600 Subject: [PATCH 006/232] add exec, and test in progress --- .../ccip/ccipsolana/executecodec.go | 178 ++++++++++++++++++ .../ccip/ccipsolana/executecodec_test.go | 150 +++++++++++++++ 2 files changed, 328 insertions(+) create mode 100644 core/capabilities/ccip/ccipsolana/executecodec.go create mode 100644 core/capabilities/ccip/ccipsolana/executecodec_test.go diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go new file mode 100644 index 00000000000..a23383a7a65 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -0,0 +1,178 @@ +package ccipsolana + +import ( + "bytes" + "context" + "fmt" + + agbinary "github.com/gagliardetto/binary" + "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/tokens" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +// ExecutePluginCodecV1 is a codec for encoding and decoding execute plugin reports. +// Compatible with: +// - "OffRamp 1.6.0-dev" +type ExecutePluginCodecV1 struct { +} + +func NewExecutePluginCodecV1() *ExecutePluginCodecV1 { + return &ExecutePluginCodecV1{} +} + +func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.ExecutePluginReport) ([]byte, error) { + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + + if len(report.ChainReports) == 0 || len(report.ChainReports) > 1 { + return nil, fmt.Errorf("unexpected chain report length: %d", len(report.ChainReports)) + } + + chainReport := report.ChainReports[0] + + // skip proofFlagBits check, as ProofFlagBits is missing in current ExecutionReportSingleChain + //if chainReport.ProofFlagBits.IsEmpty() { + // return nil, fmt.Errorf("proof flag bits are empty") + //} + + solanaProofs := make([][32]byte, 0, len(chainReport.Proofs)) + for _, proof := range chainReport.Proofs { + solanaProofs = append(solanaProofs, proof) + } + + var msg ccip_router.Any2SolanaRampMessage + if len(chainReport.Messages) > 0 { + // currently report only include single message + message := chainReport.Messages[0] + receiver, err := solana.PublicKeyFromBase58(string(message.Receiver)) + if err != nil { + return nil, fmt.Errorf("invalid receiver address: %s, %w", string(message.Receiver), err) + } + + tokenAmounts := make([]ccip_router.Any2SolanaTokenTransfer, 0, len(message.TokenAmounts)) + for _, tokenAmount := range message.TokenAmounts { + if tokenAmount.Amount.IsEmpty() { + return nil, fmt.Errorf("empty amount for token: %s", tokenAmount.DestTokenAddress) + } + + //destGasAmount, err := abiDecodeUint32(tokenAmount.DestExecData) + //if err != nil { + // return nil, fmt.Errorf("decode dest gas amount: %w", err) + //} + + DestTokenAddress, err := solana.PublicKeyFromBase58(string(tokenAmount.DestTokenAddress)) + if err != nil { + return nil, fmt.Errorf("invalid receiver address: %s, %w", string(message.Receiver), err) + } + + tokenAmounts = append(tokenAmounts, ccip_router.Any2SolanaTokenTransfer{ + SourcePoolAddress: tokenAmount.SourcePoolAddress, + DestTokenAddress: DestTokenAddress, + ExtraData: tokenAmount.ExtraData, + Amount: tokens.ToLittleEndianU256(tokenAmount.Amount.Int.Uint64()), + //DestGasAmount: destGasAmount, + }) + } + msg = ccip_router.Any2SolanaRampMessage{ + Header: ccip_router.RampMessageHeader{ + MessageId: message.Header.MessageID, + SourceChainSelector: uint64(message.Header.SourceChainSelector), + DestChainSelector: uint64(message.Header.DestChainSelector), + SequenceNumber: uint64(message.Header.SequenceNumber), + Nonce: message.Header.Nonce, + }, + Sender: message.Sender, + Data: message.Data, + Receiver: receiver, + //GasLimit: gasLimit, + TokenAmounts: tokenAmounts, + //ExtraArgs: + } + } + + solanaReport := ccip_router.ExecutionReportSingleChain{ + SourceChainSelector: uint64(chainReport.SourceChainSelector), + Message: msg, + OffchainTokenData: chainReport.OffchainTokenData[0], + Proofs: solanaProofs, + } + + err := solanaReport.MarshalWithEncoder(encoder) + if err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) (cciptypes.ExecutePluginReport, error) { + decoder := agbinary.NewBorshDecoder(encodedReport) + executeReport := ccip_router.ExecutionReportSingleChain{} + err := executeReport.UnmarshalWithDecoder(decoder) + if err != nil { + return cciptypes.ExecutePluginReport{}, fmt.Errorf("unpack encoded report: %w", err) + } + + report := cciptypes.ExecutePluginReport{ + ChainReports: make([]cciptypes.ExecutePluginReportSingleChain, 0, 1), + } + + proofs := make([]cciptypes.Bytes32, 0, len(executeReport.Proofs)) + for _, proof := range executeReport.Proofs { + proofs = append(proofs, proof) + } + + tokenAmounts := make([]cciptypes.RampTokenAmount, 0, len(executeReport.Message.TokenAmounts)) + for _, tokenAmount := range executeReport.Message.TokenAmounts { + //destData, err := abiEncodeUint32(tokenAmount.DestGasAmount) + //if err != nil { + // return cciptypes.ExecutePluginReport{}, fmt.Errorf("abi encode dest gas amount: %w", err) + //} + + tokenAmounts = append(tokenAmounts, cciptypes.RampTokenAmount{ + SourcePoolAddress: tokenAmount.SourcePoolAddress, + // TODO: should this be abi-encoded? + DestTokenAddress: tokenAmount.DestTokenAddress.Bytes(), + ExtraData: tokenAmount.ExtraData, + Amount: priceHelper(tokenAmount.Amount[:]), + //DestExecData: destData, + }) + } + + messages := make([]cciptypes.Message, 0, 1) + message := cciptypes.Message{ + Header: cciptypes.RampMessageHeader{ + MessageID: executeReport.Message.Header.MessageId, + SourceChainSelector: cciptypes.ChainSelector(executeReport.Message.Header.SourceChainSelector), + DestChainSelector: cciptypes.ChainSelector(executeReport.Message.Header.DestChainSelector), + SequenceNumber: cciptypes.SeqNum(executeReport.Message.Header.SequenceNumber), + Nonce: executeReport.Message.Header.Nonce, + MsgHash: cciptypes.Bytes32{}, // todo: info not available, but not required atm + OnRamp: cciptypes.UnknownAddress{}, // todo: info not available, but not required atm + }, + Sender: executeReport.Message.Sender, + Data: executeReport.Message.Data, + Receiver: executeReport.Message.Receiver.Bytes(), + ExtraArgs: cciptypes.Bytes{}, // <-- todo: info not available, but not required atm + FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm + FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm + TokenAmounts: tokenAmounts, + } + messages = append(messages, message) + + chainReport := cciptypes.ExecutePluginReportSingleChain{ + SourceChainSelector: cciptypes.ChainSelector(executeReport.SourceChainSelector), + Messages: messages, + OffchainTokenData: [][][]byte{executeReport.OffchainTokenData}, + Proofs: proofs, + } + + report.ChainReports = append(report.ChainReports, chainReport) + + return report, nil +} + +// Ensure ExecutePluginCodec implements the ExecutePluginCodec interface +var _ cciptypes.ExecutePluginCodec = (*ExecutePluginCodecV1)(nil) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go new file mode 100644 index 00000000000..6b67bcd6231 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -0,0 +1,150 @@ +package ccipsolana + +import ( + "math/rand" + "testing" + + solanacommon "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/common" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" + "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { + const numChainReports = 1 + const msgsPerReport = 1 + const numTokensPerMsg = 3 + + chainReports := make([]cciptypes.ExecutePluginReportSingleChain, numChainReports) + for i := 0; i < numChainReports; i++ { + reportMessages := make([]cciptypes.Message, msgsPerReport) + for j := 0; j < msgsPerReport; j++ { + data, err := cciptypes.NewBytesFromString(utils.RandomAddress().String()) + assert.NoError(t, err) + + tokenAmounts := make([]cciptypes.RampTokenAmount, numTokensPerMsg) + for z := 0; z < numTokensPerMsg; z++ { + tokenAmounts[z] = cciptypes.RampTokenAmount{ + SourcePoolAddress: utils.RandomAddress().Bytes(), + DestTokenAddress: utils.RandomAddress().Bytes(), + ExtraData: data, + Amount: cciptypes.NewBigInt(utils.RandUint256()), + } + } + + // TODO enable extraArgs ? + //extraArgs := ccip_router.SolanaExtraArgs{ + // ComputeUnits: 1000, + // Accounts: []ccip_router.SolanaAccountMeta{ + // {Pubkey: config.CcipReceiverProgram}, + // {Pubkey: config.ReceiverTargetAccountPDA, IsWritable: true}, + // {Pubkey: solana.SystemProgramID, IsWritable: false}, + // }, + //} + assert.NoError(t, err) + senderAddr := solanacommon.MakeRandom32ByteArray() + receiverAddr := solanacommon.MakeRandom32ByteArray() + feeTokenAddr := solanacommon.MakeRandom32ByteArray() + + reportMessages[j] = cciptypes.Message{ + Header: cciptypes.RampMessageHeader{ + MessageID: utils.RandomBytes32(), + SourceChainSelector: cciptypes.ChainSelector(rand.Uint64()), + DestChainSelector: cciptypes.ChainSelector(rand.Uint64()), + SequenceNumber: cciptypes.SeqNum(rand.Uint64()), + Nonce: rand.Uint64(), + MsgHash: utils.RandomBytes32(), + OnRamp: utils.RandomAddress().Bytes(), + }, + Sender: senderAddr[:], + Data: data, + Receiver: receiverAddr[:], + //ExtraArgs: extraArgs, + FeeToken: feeTokenAddr[:], + FeeTokenAmount: cciptypes.NewBigInt(utils.RandUint256()), + TokenAmounts: tokenAmounts, + } + } + + tokenData := make([][][]byte, numTokensPerMsg) + for j := 0; j < numTokensPerMsg; j++ { + tokenData[j] = [][]byte{{0x1}, {0x2, 0x3}} + } + + chainReports[i] = cciptypes.ExecutePluginReportSingleChain{ + SourceChainSelector: cciptypes.ChainSelector(rand.Uint64()), + Messages: reportMessages, + OffchainTokenData: tokenData, + Proofs: []cciptypes.Bytes32{utils.RandomBytes32(), utils.RandomBytes32()}, + ProofFlagBits: cciptypes.NewBigInt(utils.RandUint256()), + } + } + + return cciptypes.ExecutePluginReport{ChainReports: chainReports} +} + +func TestExecutePluginCodecV1(t *testing.T) { + testCases := []struct { + name string + report func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport + expErr bool + }{ + { + name: "base report", + report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, + expErr: false, + }, + { + name: "reports have empty msgs", + report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { + report.ChainReports[0].Messages = []cciptypes.Message{} + report.ChainReports[4].Messages = []cciptypes.Message{} + return report + }, + expErr: false, + }, + { + name: "reports have empty offchain token data", + report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { + report.ChainReports[0].OffchainTokenData = [][][]byte{} + report.ChainReports[4].OffchainTokenData[1] = [][]byte{} + return report + }, + expErr: false, + }, + } + + ctx := testutils.Context(t) + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + cd := NewExecutePluginCodecV1() + report := tc.report(randomExecuteReport(t)) + bytes, err := cd.Encode(ctx, report) + if tc.expErr { + assert.Error(t, err) + return + } + require.NoError(t, err) + + // ignore msg hash in comparison + for i := range report.ChainReports { + for j := range report.ChainReports[i].Messages { + report.ChainReports[i].Messages[j].Header.MsgHash = cciptypes.Bytes32{} + report.ChainReports[i].Messages[j].Header.OnRamp = cciptypes.UnknownAddress{} + report.ChainReports[i].Messages[j].FeeToken = cciptypes.UnknownAddress{} + report.ChainReports[i].Messages[j].ExtraArgs = cciptypes.Bytes{} + report.ChainReports[i].Messages[j].FeeTokenAmount = cciptypes.BigInt{} + } + } + + // decode using the codec + codecDecoded, err := cd.Decode(ctx, bytes) + require.NoError(t, err) + assert.Equal(t, report, codecDecoded) + }) + } +} From 7ae43ed47e1b70ce58e241462497e6037f47f937 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 1 Jan 2025 09:43:42 -0600 Subject: [PATCH 007/232] added unit tests for execute, need clean up and verify requirements --- .../ccip/ccipsolana/commitcodec_test.go | 18 +++--- .../ccip/ccipsolana/executecodec.go | 28 +++++++-- .../ccip/ccipsolana/executecodec_test.go | 58 ++++++++++--------- 3 files changed, 64 insertions(+), 40 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go index 849e6bfe404..3938db9d63a 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec_test.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -5,21 +5,25 @@ import ( "math/rand" "testing" + solanago "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - solanacommon "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/common" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" ) var randomCommitReport = func() cciptypes.CommitPluginReport { - pubkey := solanacommon.MakeRandom32ByteArray() + pubkey, err := solanago.NewRandomPrivateKey() + if err != nil { + panic(err) + } + return cciptypes.CommitPluginReport{ MerkleRoots: []cciptypes.MerkleRootChain{ { - OnRampAddress: pubkey[:], + OnRampAddress: cciptypes.UnknownAddress(pubkey.PublicKey().String()), ChainSel: cciptypes.ChainSelector(rand.Uint64()), SeqNumsRange: cciptypes.NewSeqNumRange( cciptypes.SeqNum(rand.Uint64()), @@ -32,13 +36,13 @@ var randomCommitReport = func() cciptypes.CommitPluginReport { TokenPriceUpdates: []cciptypes.TokenPrice{ { TokenID: "C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8", - Price: cciptypes.NewBigInt(big.NewInt(64)), + Price: cciptypes.NewBigInt(big.NewInt(rand.Int63())), }, }, GasPriceUpdates: []cciptypes.GasPriceChain{ - {GasPrice: cciptypes.NewBigInt(big.NewInt(64)), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, - {GasPrice: cciptypes.NewBigInt(big.NewInt(64)), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, - {GasPrice: cciptypes.NewBigInt(big.NewInt(64)), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, + {GasPrice: cciptypes.NewBigInt(big.NewInt(rand.Int63())), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, + {GasPrice: cciptypes.NewBigInt(big.NewInt(rand.Int63())), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, + {GasPrice: cciptypes.NewBigInt(big.NewInt(rand.Int63())), ChainSel: cciptypes.ChainSelector(rand.Uint64())}, }, }, } diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index a23383a7a65..ac48140b750 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -3,12 +3,12 @@ package ccipsolana import ( "bytes" "context" + "encoding/binary" "fmt" agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/tokens" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) @@ -71,7 +71,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: DestTokenAddress, ExtraData: tokenAmount.ExtraData, - Amount: tokens.ToLittleEndianU256(tokenAmount.Amount.Int.Uint64()), + Amount: ToBigEndianU256(tokenAmount.Amount.Int.Uint64()), //DestGasAmount: destGasAmount, }) } @@ -92,10 +92,15 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec } } + var offchainTokenData [][]byte + if len(chainReport.OffchainTokenData) > 0 { + offchainTokenData = chainReport.OffchainTokenData[0] + } + solanaReport := ccip_router.ExecutionReportSingleChain{ SourceChainSelector: uint64(chainReport.SourceChainSelector), Message: msg, - OffchainTokenData: chainReport.OffchainTokenData[0], + OffchainTokenData: offchainTokenData, Proofs: solanaProofs, } @@ -134,7 +139,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) tokenAmounts = append(tokenAmounts, cciptypes.RampTokenAmount{ SourcePoolAddress: tokenAmount.SourcePoolAddress, // TODO: should this be abi-encoded? - DestTokenAddress: tokenAmount.DestTokenAddress.Bytes(), + DestTokenAddress: cciptypes.UnknownAddress(tokenAmount.DestTokenAddress.String()), ExtraData: tokenAmount.ExtraData, Amount: priceHelper(tokenAmount.Amount[:]), //DestExecData: destData, @@ -154,7 +159,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) }, Sender: executeReport.Message.Sender, Data: executeReport.Message.Data, - Receiver: executeReport.Message.Receiver.Bytes(), + Receiver: cciptypes.UnknownAddress(executeReport.Message.Receiver.String()), ExtraArgs: cciptypes.Bytes{}, // <-- todo: info not available, but not required atm FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm @@ -162,10 +167,15 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) } messages = append(messages, message) + offchainTokenData := make([][][]byte, 0, 1) + if executeReport.OffchainTokenData != nil { + offchainTokenData = append(offchainTokenData, executeReport.OffchainTokenData) + } + chainReport := cciptypes.ExecutePluginReportSingleChain{ SourceChainSelector: cciptypes.ChainSelector(executeReport.SourceChainSelector), Messages: messages, - OffchainTokenData: [][][]byte{executeReport.OffchainTokenData}, + OffchainTokenData: offchainTokenData, Proofs: proofs, } @@ -174,5 +184,11 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } +func ToBigEndianU256(v uint64) [32]byte { + out := make([]byte, 32) + binary.BigEndian.PutUint64(out[24:], v) + return [32]byte(out) +} + // Ensure ExecutePluginCodec implements the ExecutePluginCodec interface var _ cciptypes.ExecutePluginCodec = (*ExecutePluginCodecV1)(nil) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 6b67bcd6231..c7435efc755 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -1,10 +1,11 @@ package ccipsolana import ( + "math/big" "math/rand" "testing" - solanacommon "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/common" + solanago "github.com/gagliardetto/solana-go" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" @@ -16,22 +17,25 @@ import ( var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { const numChainReports = 1 const msgsPerReport = 1 - const numTokensPerMsg = 3 + const numTokensPerMsg = 1 chainReports := make([]cciptypes.ExecutePluginReportSingleChain, numChainReports) for i := 0; i < numChainReports; i++ { reportMessages := make([]cciptypes.Message, msgsPerReport) for j := 0; j < msgsPerReport; j++ { - data, err := cciptypes.NewBytesFromString(utils.RandomAddress().String()) - assert.NoError(t, err) + key, err := solanago.NewRandomPrivateKey() + if err != nil { + panic(err) + } + data, err := cciptypes.NewBytesFromString("0x1234") tokenAmounts := make([]cciptypes.RampTokenAmount, numTokensPerMsg) for z := 0; z < numTokensPerMsg; z++ { tokenAmounts[z] = cciptypes.RampTokenAmount{ - SourcePoolAddress: utils.RandomAddress().Bytes(), - DestTokenAddress: utils.RandomAddress().Bytes(), + SourcePoolAddress: cciptypes.UnknownAddress(key.PublicKey().String()), + DestTokenAddress: cciptypes.UnknownAddress(key.PublicKey().String()), ExtraData: data, - Amount: cciptypes.NewBigInt(utils.RandUint256()), + Amount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), } } @@ -44,10 +48,11 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { // {Pubkey: solana.SystemProgramID, IsWritable: false}, // }, //} - assert.NoError(t, err) - senderAddr := solanacommon.MakeRandom32ByteArray() - receiverAddr := solanacommon.MakeRandom32ByteArray() - feeTokenAddr := solanacommon.MakeRandom32ByteArray() + + //senderAddr = solanacommon.MakeRandom32ByteArray() + //receiverAddr := solanacommon.MakeRandom32ByteArray() + //feeTokenAddr := solanacommon.MakeRandom32ByteArray() + //onRampAddr := solanacommon.MakeRandom32ByteArray() reportMessages[j] = cciptypes.Message{ Header: cciptypes.RampMessageHeader{ @@ -57,14 +62,14 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { SequenceNumber: cciptypes.SeqNum(rand.Uint64()), Nonce: rand.Uint64(), MsgHash: utils.RandomBytes32(), - OnRamp: utils.RandomAddress().Bytes(), + OnRamp: cciptypes.UnknownAddress(key.PublicKey().String()), }, - Sender: senderAddr[:], + Sender: cciptypes.UnknownAddress(key.PublicKey().String()), Data: data, - Receiver: receiverAddr[:], + Receiver: cciptypes.UnknownAddress(key.PublicKey().String()), //ExtraArgs: extraArgs, - FeeToken: feeTokenAddr[:], - FeeTokenAmount: cciptypes.NewBigInt(utils.RandUint256()), + FeeToken: cciptypes.UnknownAddress(key.PublicKey().String()), + FeeTokenAmount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), TokenAmounts: tokenAmounts, } } @@ -79,7 +84,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { Messages: reportMessages, OffchainTokenData: tokenData, Proofs: []cciptypes.Bytes32{utils.RandomBytes32(), utils.RandomBytes32()}, - ProofFlagBits: cciptypes.NewBigInt(utils.RandUint256()), + //ProofFlagBits: cciptypes.NewBigInt(utils.RandUint256()), } } @@ -97,20 +102,19 @@ func TestExecutePluginCodecV1(t *testing.T) { report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, expErr: false, }, - { - name: "reports have empty msgs", - report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { - report.ChainReports[0].Messages = []cciptypes.Message{} - report.ChainReports[4].Messages = []cciptypes.Message{} - return report - }, - expErr: false, - }, + // TODO: check if empty msg if necessary since there is only single msg in solana execute report + //{ + // name: "reports have empty msgs", + // report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { + // report.ChainReports[0].Messages = []cciptypes.Message{} + // return report + // }, + // expErr: false, + //}, { name: "reports have empty offchain token data", report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { report.ChainReports[0].OffchainTokenData = [][][]byte{} - report.ChainReports[4].OffchainTokenData[1] = [][]byte{} return report }, expErr: false, From 4e2ea858ca15161b82778f82c020c8dcbe148ab4 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 2 Jan 2025 13:53:03 -0600 Subject: [PATCH 008/232] fix go mod in deployment --- deployment/go.mod | 4 -- deployment/go.sum | 106 ++++------------------------------------------ 2 files changed, 9 insertions(+), 101 deletions(-) diff --git a/deployment/go.mod b/deployment/go.mod index 157b9f6134e..929f23cc195 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -48,7 +48,6 @@ require ( ) require ( - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -162,7 +161,6 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dennwc/varint v1.0.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -435,7 +433,6 @@ require ( github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/gjson v1.17.0 // indirect @@ -464,7 +461,6 @@ require ( go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect go.etcd.io/etcd/client/v3 v3.5.14 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/collector/pdata v1.12.0 // indirect go.opentelemetry.io/collector/semconv v0.105.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index 40a36a7e1d7..a54ce8a604d 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -75,7 +70,6 @@ cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8 dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -118,8 +112,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -159,7 +151,6 @@ github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8= github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -181,7 +172,6 @@ github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6u github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -210,8 +200,6 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/awalterschulze/gographviz v2.0.3+incompatible h1:9sVEXJBJLwGX7EQVhLm2elIKCm7P2YHFC8v6096G09E= github.com/awalterschulze/gographviz v2.0.3+incompatible/go.mod h1:GEV5wmg4YquNw7v1kkyoX9etIk8yVmXj+AkDHuuETHs= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= @@ -269,7 +257,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= @@ -376,9 +363,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -389,7 +374,6 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -430,7 +414,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -444,28 +427,22 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48 h1:fRzb/w+pyskVMQ+UbP35JkH8yB7MYb4q/qhBarqZE6g= github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= github.com/digitalocean/godo v1.118.0 h1:lkzGFQmACrVCp7UqH1sAi4JK/PWwlc5aaxubgorKmC4= @@ -540,13 +517,11 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= @@ -673,7 +648,6 @@ github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVI github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -709,7 +683,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -793,12 +766,10 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/dskit v0.0.0-20231120170505-765e343eda4f h1:gyojr97YeWZ70pKNakWv5/tKwBHuLy3icnIeCo9gQr4= @@ -823,15 +794,12 @@ github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMN github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -904,7 +872,6 @@ github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -1007,10 +974,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -1021,7 +986,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -1046,7 +1010,6 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -1096,7 +1059,6 @@ github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/z github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -1197,7 +1159,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= @@ -1218,7 +1179,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -1306,7 +1266,6 @@ github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfW github.com/prometheus/alertmanager v0.27.0 h1:V6nTa2J5V4s8TG4C4HtrBP/WNSebCCTYGGv4qecA/+I= github.com/prometheus/alertmanager v0.27.0/go.mod h1:8Ia/R3urPmbzJ8OsdvmZvIprDwvwmYCmUbwBL+jlPOE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -1319,8 +1278,6 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= @@ -1333,7 +1290,6 @@ github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57J github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -1342,7 +1298,6 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1354,7 +1309,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= @@ -1468,7 +1422,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/sony/gobreaker v0.5.0 h1:dRCvqm0P490vZPmy7ppEk2qCnCieBooFJ+YoXGYB+yg= @@ -1487,7 +1440,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1497,15 +1449,12 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1526,8 +1475,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= @@ -1538,9 +1487,6 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/testcontainers/testcontainers-go v0.34.0 h1:5fbgF0vIN5u+nD3IWabQwRybuB4GY8G2HHgCkbMzMHo= @@ -1549,12 +1495,10 @@ github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrj github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1562,7 +1506,6 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= @@ -1589,10 +1532,8 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/vektah/gqlparser/v2 v2.5.11 h1:JJxLtXIoN7+3x6MBdtIP59TP1RANnY7pXOaDnADQSf8= github.com/vektah/gqlparser/v2 v2.5.11/go.mod h1:1rCcfwB2ekJofmluGWXMSEnPMZgbxzwj6FaZ/4OT8Cc= github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= @@ -1601,10 +1542,6 @@ github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/ github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= @@ -1612,7 +1549,6 @@ github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGC github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1639,7 +1575,6 @@ go.dedis.ch/kyber/v3 v3.1.0/go.mod h1:kXy7p3STAurkADD+/aZcsznZGKVHEqbtmdIzvPfrs1 go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRLo= go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= @@ -1651,12 +1586,10 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSv go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1730,15 +1663,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1768,7 +1698,6 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= @@ -1783,8 +1712,7 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1814,8 +1742,7 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1823,7 +1750,6 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1874,8 +1800,7 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1912,7 +1837,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1928,7 +1852,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2004,7 +1927,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -2053,7 +1975,6 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -2063,7 +1984,6 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2099,8 +2019,7 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2119,7 +2038,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -2144,7 +2062,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -2155,7 +2072,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -2205,7 +2121,6 @@ google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmE google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -2258,16 +2173,13 @@ gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 0d49c2ef15221652e9835166ecf07793890fb7f6 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 2 Jan 2025 14:22:26 -0600 Subject: [PATCH 009/232] fix lint --- .../ccip/ccipsolana/executecodec.go | 31 ++++++++++--------- .../ccip/ccipsolana/executecodec_test.go | 2 ++ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index ac48140b750..c0c842f7f39 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -8,6 +8,7 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) @@ -33,9 +34,9 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec chainReport := report.ChainReports[0] // skip proofFlagBits check, as ProofFlagBits is missing in current ExecutionReportSingleChain - //if chainReport.ProofFlagBits.IsEmpty() { - // return nil, fmt.Errorf("proof flag bits are empty") - //} + // if chainReport.ProofFlagBits.IsEmpty() { + // return nil, fmt.Errorf("proof flag bits are empty") + // } solanaProofs := make([][32]byte, 0, len(chainReport.Proofs)) for _, proof := range chainReport.Proofs { @@ -57,10 +58,10 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("empty amount for token: %s", tokenAmount.DestTokenAddress) } - //destGasAmount, err := abiDecodeUint32(tokenAmount.DestExecData) - //if err != nil { - // return nil, fmt.Errorf("decode dest gas amount: %w", err) - //} + // destGasAmount, err := abiDecodeUint32(tokenAmount.DestExecData) + // if err != nil { + // return nil, fmt.Errorf("decode dest gas amount: %w", err) + // } DestTokenAddress, err := solana.PublicKeyFromBase58(string(tokenAmount.DestTokenAddress)) if err != nil { @@ -72,7 +73,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec DestTokenAddress: DestTokenAddress, ExtraData: tokenAmount.ExtraData, Amount: ToBigEndianU256(tokenAmount.Amount.Int.Uint64()), - //DestGasAmount: destGasAmount, + // DestGasAmount: destGasAmount, }) } msg = ccip_router.Any2SolanaRampMessage{ @@ -86,9 +87,9 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec Sender: message.Sender, Data: message.Data, Receiver: receiver, - //GasLimit: gasLimit, + // GasLimit: gasLimit, TokenAmounts: tokenAmounts, - //ExtraArgs: + // ExtraArgs: } } @@ -131,10 +132,10 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) tokenAmounts := make([]cciptypes.RampTokenAmount, 0, len(executeReport.Message.TokenAmounts)) for _, tokenAmount := range executeReport.Message.TokenAmounts { - //destData, err := abiEncodeUint32(tokenAmount.DestGasAmount) - //if err != nil { - // return cciptypes.ExecutePluginReport{}, fmt.Errorf("abi encode dest gas amount: %w", err) - //} + // destData, err := abiEncodeUint32(tokenAmount.DestGasAmount) + // if err != nil { + // return cciptypes.ExecutePluginReport{}, fmt.Errorf("abi encode dest gas amount: %w", err) + // } tokenAmounts = append(tokenAmounts, cciptypes.RampTokenAmount{ SourcePoolAddress: tokenAmount.SourcePoolAddress, @@ -142,7 +143,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) DestTokenAddress: cciptypes.UnknownAddress(tokenAmount.DestTokenAddress.String()), ExtraData: tokenAmount.ExtraData, Amount: priceHelper(tokenAmount.Amount[:]), - //DestExecData: destData, + // DestExecData: destData, }) } diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index c7435efc755..6e6847eb9ba 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -6,6 +6,7 @@ import ( "testing" solanago "github.com/gagliardetto/solana-go" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" @@ -28,6 +29,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { panic(err) } data, err := cciptypes.NewBytesFromString("0x1234") + assert.NoError(t, err) tokenAmounts := make([]cciptypes.RampTokenAmount, numTokensPerMsg) for z := 0; z < numTokensPerMsg; z++ { From 5849b3b85f8951335fdf75b729810cedde2b8d53 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 2 Jan 2025 14:34:21 -0600 Subject: [PATCH 010/232] lint --- .../ccip/ccipsolana/executecodec_test.go | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 6e6847eb9ba..ec65b97d8db 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -29,7 +29,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { panic(err) } data, err := cciptypes.NewBytesFromString("0x1234") - assert.NoError(t, err) + require.NoError(t, err) tokenAmounts := make([]cciptypes.RampTokenAmount, numTokensPerMsg) for z := 0; z < numTokensPerMsg; z++ { @@ -42,19 +42,19 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { } // TODO enable extraArgs ? - //extraArgs := ccip_router.SolanaExtraArgs{ - // ComputeUnits: 1000, - // Accounts: []ccip_router.SolanaAccountMeta{ - // {Pubkey: config.CcipReceiverProgram}, - // {Pubkey: config.ReceiverTargetAccountPDA, IsWritable: true}, - // {Pubkey: solana.SystemProgramID, IsWritable: false}, - // }, - //} - - //senderAddr = solanacommon.MakeRandom32ByteArray() - //receiverAddr := solanacommon.MakeRandom32ByteArray() - //feeTokenAddr := solanacommon.MakeRandom32ByteArray() - //onRampAddr := solanacommon.MakeRandom32ByteArray() + // extraArgs := ccip_router.SolanaExtraArgs{ + // ComputeUnits: 1000, + // Accounts: []ccip_router.SolanaAccountMeta{ + // {Pubkey: config.CcipReceiverProgram}, + // {Pubkey: config.ReceiverTargetAccountPDA, IsWritable: true}, + // {Pubkey: solana.SystemProgramID, IsWritable: false}, + // }, + // } + + // senderAddr = solanacommon.MakeRandom32ByteArray() + // receiverAddr := solanacommon.MakeRandom32ByteArray() + // feeTokenAddr := solanacommon.MakeRandom32ByteArray() + // onRampAddr := solanacommon.MakeRandom32ByteArray() reportMessages[j] = cciptypes.Message{ Header: cciptypes.RampMessageHeader{ @@ -105,14 +105,14 @@ func TestExecutePluginCodecV1(t *testing.T) { expErr: false, }, // TODO: check if empty msg if necessary since there is only single msg in solana execute report - //{ - // name: "reports have empty msgs", - // report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { - // report.ChainReports[0].Messages = []cciptypes.Message{} - // return report - // }, - // expErr: false, - //}, + // { + // name: "reports have empty msgs", + // report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { + // report.ChainReports[0].Messages = []cciptypes.Message{} + // return report + // }, + // expErr: false, + // }, { name: "reports have empty offchain token data", report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { From 70db87eba7273ec3a2479b9e1e994c28cce16838 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 2 Jan 2025 15:41:05 -0600 Subject: [PATCH 011/232] go mod --- go.mod | 27 ++++++++++++++++++++------- go.sum | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index e426a82ec49..6b3ea79d382 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( github.com/gin-contrib/expvar v0.0.1 github.com/gin-contrib/sessions v0.0.5 github.com/gin-contrib/size v0.0.0-20230212012657-e14a14094dc4 - github.com/gin-gonic/gin v1.9.1 + github.com/gin-gonic/gin v1.10.0 github.com/go-ldap/ldap/v3 v3.4.6 github.com/go-viper/mapstructure/v2 v2.1.0 github.com/go-webauthn/webauthn v0.9.4 @@ -42,7 +42,7 @@ require ( github.com/grafana/pyroscope-go v1.1.2 github.com/graph-gophers/dataloader v5.0.0+incompatible github.com/graph-gophers/graphql-go v1.5.0 - github.com/hashicorp/consul/sdk v0.16.0 + github.com/hashicorp/consul/sdk v0.16.1 github.com/hashicorp/go-envparse v0.1.0 github.com/hashicorp/go-plugin v1.6.2 github.com/hashicorp/go-retryablehttp v0.7.7 @@ -136,7 +136,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.3.0 // indirect + cosmossdk.io/math v1.4.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -152,6 +152,7 @@ require ( github.com/apache/arrow-go/v18 v18.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c // indirect + github.com/aws/aws-sdk-go v1.54.19 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -187,7 +188,7 @@ require ( github.com/cosmos/ibc-go/v7 v7.5.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c // indirect github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect @@ -268,6 +269,7 @@ require ( github.com/jackc/pgproto3/v2 v2.3.3 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.17.11 // indirect @@ -310,7 +312,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rivo/uniseg v0.4.4 // indirect - github.com/rs/cors v1.9.0 // indirect + github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect @@ -319,6 +321,10 @@ require ( github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/sethvargo/go-retry v0.2.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect + github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect + github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect + github.com/smartcontractkit/chainlink/core/scripts v0.0.0-20250102181259-945c70695676 // indirect + github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect @@ -340,10 +346,10 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 // indirect - github.com/urfave/cli/v2 v2.25.7 // indirect + github.com/urfave/cli/v2 v2.27.5 // indirect github.com/valyala/fastjson v1.4.1 // indirect github.com/x448/float16 v0.8.4 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect github.com/zondax/hid v0.9.2 // indirect @@ -371,6 +377,7 @@ require ( go.uber.org/ratelimit v0.3.1 // indirect golang.org/x/arch v0.11.0 // indirect golang.org/x/net v0.32.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.202.0 // indirect @@ -379,11 +386,17 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/grpc/stats/opentelemetry v0.0.0-20241022174616-4bb0170ac65f // indirect gopkg.in/guregu/null.v2 v2.1.2 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/apimachinery v0.31.1 // indirect + k8s.io/client-go v0.31.1 // indirect + k8s.io/klog/v2 v2.130.1 // indirect pgregory.net/rapid v1.1.0 // indirect rsc.io/tmplfunc v0.0.3 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 4855785d19c..2b7299e9ac9 100644 --- a/go.sum +++ b/go.sum @@ -65,6 +65,8 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= +cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -295,6 +297,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c h1:uQYC5Z1mdLRPrZhHjHxufI8+2UG/i25QG92j0Er9p6I= github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v1.0.0 h1:TsSgHwrkTKecKJ4kadtHi4b3xHW5dCFUDFnUp1TsawI= @@ -411,6 +414,8 @@ github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/ github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA= github.com/go-asn1-ber/asn1-ber v1.5.5/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -636,6 +641,7 @@ github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBt github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= +github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= @@ -770,6 +776,7 @@ github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgf github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= @@ -1047,6 +1054,7 @@ github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= @@ -1097,6 +1105,10 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= 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/ccip-owner-contracts v0.0.0-salt-fix h1:DPJD++yKLSx0EfT+U14P8vLVxjXFmoIETiCO9lVwQo8= +github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix/go.mod h1:NnT6w4Kj42OFFXhSx99LvJZWPpMjmo4+CpDEWfw61xY= github.com/smartcontractkit/chain-selectors v1.0.34 h1:MJ17OGu8+jjl426pcKrJkCf3fePb3eCreuAnUA3RBj4= github.com/smartcontractkit/chain-selectors v1.0.34/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= @@ -1113,12 +1125,18 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3/go.mod h1:AS6zY2BkcRwfiGzNabGbHhfrLSrXrcI/GmjnT4jQ5/s= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= +github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= +github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= +github.com/smartcontractkit/chainlink/core/scripts v0.0.0-20250102181259-945c70695676 h1:Fx9TwVThCQrolgM5iA+K0iJ7/9FGWbwk6mTR4uGDZe8= +github.com/smartcontractkit/chainlink/core/scripts v0.0.0-20250102181259-945c70695676/go.mod h1:s45SJVKp9ci8GMy4X7+NbtfSqWtbwqhbzHxZiz/7+Kg= +github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66 h1:8ZBqO5WHEAhmIoI6EvPEbpn7UcTxvNQjKc+47pqwrJI= +github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66/go.mod h1:bm0Uz074GC0plJshujrzBPutNvCiGhmNaArs7kNfP8c= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7/go.mod h1:FX7/bVdoep147QQhsOPkYsPEXhGZjeYx6lBSaSXtZOA= github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 h1:IpGoPTXpvllN38kT2z2j13sifJMz4nbHglidvop7mfg= @@ -1236,6 +1254,7 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= 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.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= @@ -1245,6 +1264,7 @@ github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcY github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1839,6 +1859,8 @@ gopkg.in/guregu/null.v2 v2.1.2/go.mod h1:XORrx8tyS5ZDcyUboCIxQtta/Aujk/6pfWrn9Xe gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -1870,6 +1892,13 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= +k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= +k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= +k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= @@ -1897,5 +1926,9 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From d2a7a391dd8f0b2925b818921344501905087dda Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 2 Jan 2025 17:19:34 -0600 Subject: [PATCH 012/232] update --- .../ccip/ccipsolana/executecodec.go | 22 ++++++++++--------- .../ccip/ccipsolana/executecodec_test.go | 2 +- go.mod | 4 ++-- go.sum | 8 +++++++ 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index c0c842f7f39..35c841900d9 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -3,7 +3,6 @@ package ccipsolana import ( "bytes" "context" - "encoding/binary" "fmt" agbinary "github.com/gagliardetto/binary" @@ -24,6 +23,9 @@ func NewExecutePluginCodecV1() *ExecutePluginCodecV1 { } func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.ExecutePluginReport) ([]byte, error) { + // TODO: + // 1. destGasAmount + // 2. ExtraArgs var buf bytes.Buffer encoder := agbinary.NewBorshEncoder(&buf) @@ -72,7 +74,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: DestTokenAddress, ExtraData: tokenAmount.ExtraData, - Amount: ToBigEndianU256(tokenAmount.Amount.Int.Uint64()), + Amount: BigIntToBytes32(tokenAmount.Amount), // DestGasAmount: destGasAmount, }) } @@ -84,10 +86,9 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec SequenceNumber: uint64(message.Header.SequenceNumber), Nonce: message.Header.Nonce, }, - Sender: message.Sender, - Data: message.Data, - Receiver: receiver, - // GasLimit: gasLimit, + Sender: message.Sender, + Data: message.Data, + Receiver: receiver, TokenAmounts: tokenAmounts, // ExtraArgs: } @@ -185,10 +186,11 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } -func ToBigEndianU256(v uint64) [32]byte { - out := make([]byte, 32) - binary.BigEndian.PutUint64(out[24:], v) - return [32]byte(out) +func BigIntToBytes32(n cciptypes.BigInt) [32]uint8 { + var b [32]uint8 + raw := n.Bytes() + copy(b[32-len(raw):], raw) // Right-align and zero-pad + return b } // Ensure ExecutePluginCodec implements the ExecutePluginCodec interface diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index ec65b97d8db..3ed9283adc9 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -41,7 +41,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { } } - // TODO enable extraArgs ? + // TODO enable extraArgs // extraArgs := ccip_router.SolanaExtraArgs{ // ComputeUnits: 1000, // Accounts: []ccip_router.SolanaAccountMeta{ diff --git a/go.mod b/go.mod index 6b3ea79d382..aa6e99709a1 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 github.com/dominikbraun/graph v0.23.0 github.com/esote/minmaxheap v1.0.0 - github.com/ethereum/go-ethereum v1.14.11 + github.com/ethereum/go-ethereum v1.14.12 github.com/fatih/color v1.17.0 github.com/fxamacker/cbor/v2 v2.7.0 github.com/gagliardetto/binary v0.8.0 @@ -227,7 +227,7 @@ require ( github.com/gofrs/flock v0.8.1 // indirect github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/protobuf v1.5.4 // indirect diff --git a/go.sum b/go.sum index 2b7299e9ac9..81c5378d975 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c h1:uQYC5Z1mdLRPrZhHjHxufI8+2UG/i25QG92j0Er9p6I= github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= @@ -361,6 +362,8 @@ github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHE github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= +github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -490,6 +493,8 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -1054,6 +1059,7 @@ github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= @@ -1254,6 +1260,7 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= 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.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= @@ -1264,6 +1271,7 @@ github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcY github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= From 11cd2f3d525776e7ff167220ff0ae52eb754020e Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 14:12:27 -0600 Subject: [PATCH 013/232] add extra args and destExec support --- .../ccip/ccipsolana/executecodec.go | 69 +++++++++++-------- .../ccip/ccipsolana/executecodec_test.go | 52 ++++++++------ 2 files changed, 69 insertions(+), 52 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 35c841900d9..d63a5acee3f 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -3,6 +3,7 @@ package ccipsolana import ( "bytes" "context" + "encoding/binary" "fmt" agbinary "github.com/gagliardetto/binary" @@ -23,9 +24,6 @@ func NewExecutePluginCodecV1() *ExecutePluginCodecV1 { } func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.ExecutePluginReport) ([]byte, error) { - // TODO: - // 1. destGasAmount - // 2. ExtraArgs var buf bytes.Buffer encoder := agbinary.NewBorshEncoder(&buf) @@ -34,20 +32,14 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec } chainReport := report.ChainReports[0] - - // skip proofFlagBits check, as ProofFlagBits is missing in current ExecutionReportSingleChain - // if chainReport.ProofFlagBits.IsEmpty() { - // return nil, fmt.Errorf("proof flag bits are empty") - // } - solanaProofs := make([][32]byte, 0, len(chainReport.Proofs)) for _, proof := range chainReport.Proofs { solanaProofs = append(solanaProofs, proof) } var msg ccip_router.Any2SolanaRampMessage - if len(chainReport.Messages) > 0 { - // currently report only include single message + if len(chainReport.Messages) != 0 { + // currently only allow commiting one message at a time message := chainReport.Messages[0] receiver, err := solana.PublicKeyFromBase58(string(message.Receiver)) if err != nil { @@ -60,11 +52,6 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("empty amount for token: %s", tokenAmount.DestTokenAddress) } - // destGasAmount, err := abiDecodeUint32(tokenAmount.DestExecData) - // if err != nil { - // return nil, fmt.Errorf("decode dest gas amount: %w", err) - // } - DestTokenAddress, err := solana.PublicKeyFromBase58(string(tokenAmount.DestTokenAddress)) if err != nil { return nil, fmt.Errorf("invalid receiver address: %s, %w", string(message.Receiver), err) @@ -74,10 +61,18 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: DestTokenAddress, ExtraData: tokenAmount.ExtraData, - Amount: BigIntToBytes32(tokenAmount.Amount), - // DestGasAmount: destGasAmount, + Amount: bigIntToBytes32(tokenAmount.Amount), + DestGasAmount: bytesToUint32(tokenAmount.DestExecData), }) } + + var extraArgs ccip_router.SolanaExtraArgs + decoder := agbinary.NewBorshDecoder(message.ExtraArgs) + err = extraArgs.UnmarshalWithDecoder(decoder) + if err != nil { + return nil, fmt.Errorf("invalid extra arguments: %w", err) + } + msg = ccip_router.Any2SolanaRampMessage{ Header: ccip_router.RampMessageHeader{ MessageId: message.Header.MessageID, @@ -90,7 +85,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec Data: message.Data, Receiver: receiver, TokenAmounts: tokenAmounts, - // ExtraArgs: + ExtraArgs: extraArgs, } } @@ -133,21 +128,25 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) tokenAmounts := make([]cciptypes.RampTokenAmount, 0, len(executeReport.Message.TokenAmounts)) for _, tokenAmount := range executeReport.Message.TokenAmounts { - // destData, err := abiEncodeUint32(tokenAmount.DestGasAmount) - // if err != nil { - // return cciptypes.ExecutePluginReport{}, fmt.Errorf("abi encode dest gas amount: %w", err) - // } + destData := make([]byte, 4) + binary.BigEndian.PutUint32(destData, tokenAmount.DestGasAmount) tokenAmounts = append(tokenAmounts, cciptypes.RampTokenAmount{ SourcePoolAddress: tokenAmount.SourcePoolAddress, - // TODO: should this be abi-encoded? - DestTokenAddress: cciptypes.UnknownAddress(tokenAmount.DestTokenAddress.String()), - ExtraData: tokenAmount.ExtraData, - Amount: priceHelper(tokenAmount.Amount[:]), - // DestExecData: destData, + DestTokenAddress: cciptypes.UnknownAddress(tokenAmount.DestTokenAddress.String()), + ExtraData: tokenAmount.ExtraData, + Amount: priceHelper(tokenAmount.Amount[:]), + DestExecData: destData, }) } + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + err = executeReport.Message.ExtraArgs.MarshalWithEncoder(encoder) + if err != nil { + return cciptypes.ExecutePluginReport{}, fmt.Errorf("unpack encoded report: %w", err) + } + messages := make([]cciptypes.Message, 0, 1) message := cciptypes.Message{ Header: cciptypes.RampMessageHeader{ @@ -162,7 +161,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) Sender: executeReport.Message.Sender, Data: executeReport.Message.Data, Receiver: cciptypes.UnknownAddress(executeReport.Message.Receiver.String()), - ExtraArgs: cciptypes.Bytes{}, // <-- todo: info not available, but not required atm + ExtraArgs: buf.Bytes(), FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm TokenAmounts: tokenAmounts, @@ -186,7 +185,17 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } -func BigIntToBytes32(n cciptypes.BigInt) [32]uint8 { +func bytesToUint32(b []byte) uint32 { + if len(b) < 4 { + var padded [4]byte + copy(padded[4-len(b):], b) // Pad from the right for big-endian + return binary.BigEndian.Uint32(padded[:]) + } + + return binary.BigEndian.Uint32(b) +} + +func bigIntToBytes32(n cciptypes.BigInt) [32]uint8 { var b [32]uint8 raw := n.Bytes() copy(b[32-len(raw):], raw) // Right-align and zero-pad diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 3ed9283adc9..a85655b1830 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -1,16 +1,22 @@ package ccipsolana import ( + "bytes" + "encoding/binary" "math/big" "math/rand" "testing" + agbinary "github.com/gagliardetto/binary" solanago "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" + "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -28,33 +34,37 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { if err != nil { panic(err) } - data, err := cciptypes.NewBytesFromString("0x1234") + extraData, err := cciptypes.NewBytesFromString("0x1234") require.NoError(t, err) + destGasAmount := uint32(10) + destExecData := make([]byte, 4) + binary.BigEndian.PutUint32(destExecData, destGasAmount) + tokenAmounts := make([]cciptypes.RampTokenAmount, numTokensPerMsg) for z := 0; z < numTokensPerMsg; z++ { tokenAmounts[z] = cciptypes.RampTokenAmount{ SourcePoolAddress: cciptypes.UnknownAddress(key.PublicKey().String()), DestTokenAddress: cciptypes.UnknownAddress(key.PublicKey().String()), - ExtraData: data, + ExtraData: extraData, Amount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), + DestExecData: destExecData, } } - // TODO enable extraArgs - // extraArgs := ccip_router.SolanaExtraArgs{ - // ComputeUnits: 1000, - // Accounts: []ccip_router.SolanaAccountMeta{ - // {Pubkey: config.CcipReceiverProgram}, - // {Pubkey: config.ReceiverTargetAccountPDA, IsWritable: true}, - // {Pubkey: solana.SystemProgramID, IsWritable: false}, - // }, - // } - - // senderAddr = solanacommon.MakeRandom32ByteArray() - // receiverAddr := solanacommon.MakeRandom32ByteArray() - // feeTokenAddr := solanacommon.MakeRandom32ByteArray() - // onRampAddr := solanacommon.MakeRandom32ByteArray() + extraArgs := ccip_router.SolanaExtraArgs{ + ComputeUnits: 1000, + Accounts: []ccip_router.SolanaAccountMeta{ + {Pubkey: config.CcipReceiverProgram}, + {Pubkey: config.ReceiverTargetAccountPDA, IsWritable: true}, + {Pubkey: solana.SystemProgramID, IsWritable: false}, + }, + } + + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + err = extraArgs.MarshalWithEncoder(encoder) + require.NoError(t, err) reportMessages[j] = cciptypes.Message{ Header: cciptypes.RampMessageHeader{ @@ -66,10 +76,10 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { MsgHash: utils.RandomBytes32(), OnRamp: cciptypes.UnknownAddress(key.PublicKey().String()), }, - Sender: cciptypes.UnknownAddress(key.PublicKey().String()), - Data: data, - Receiver: cciptypes.UnknownAddress(key.PublicKey().String()), - //ExtraArgs: extraArgs, + Sender: cciptypes.UnknownAddress(key.PublicKey().String()), + Data: extraData, + Receiver: cciptypes.UnknownAddress(key.PublicKey().String()), + ExtraArgs: buf.Bytes(), FeeToken: cciptypes.UnknownAddress(key.PublicKey().String()), FeeTokenAmount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), TokenAmounts: tokenAmounts, @@ -86,7 +96,6 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { Messages: reportMessages, OffchainTokenData: tokenData, Proofs: []cciptypes.Bytes32{utils.RandomBytes32(), utils.RandomBytes32()}, - //ProofFlagBits: cciptypes.NewBigInt(utils.RandUint256()), } } @@ -142,7 +151,6 @@ func TestExecutePluginCodecV1(t *testing.T) { report.ChainReports[i].Messages[j].Header.MsgHash = cciptypes.Bytes32{} report.ChainReports[i].Messages[j].Header.OnRamp = cciptypes.UnknownAddress{} report.ChainReports[i].Messages[j].FeeToken = cciptypes.UnknownAddress{} - report.ChainReports[i].Messages[j].ExtraArgs = cciptypes.Bytes{} report.ChainReports[i].Messages[j].FeeTokenAmount = cciptypes.BigInt{} } } From 40abc5c9df6138dc5301eb971c9345e58ff9b1bf Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 14:13:26 -0600 Subject: [PATCH 014/232] minor --- core/capabilities/ccip/ccipsolana/executecodec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index d63a5acee3f..95a64e39124 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -38,7 +38,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec } var msg ccip_router.Any2SolanaRampMessage - if len(chainReport.Messages) != 0 { + if len(chainReport.Messages) > 0 { // currently only allow commiting one message at a time message := chainReport.Messages[0] receiver, err := solana.PublicKeyFromBase58(string(message.Receiver)) From 4e2f6476b11a0639577bd940e377f1a74875d844 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 15:07:02 -0600 Subject: [PATCH 015/232] cleanup --- .../ccip/ccipsolana/executecodec.go | 65 +++++++++---------- core/scripts/go.mod | 6 +- core/scripts/go.sum | 3 + deployment/go.mod | 6 +- deployment/go.sum | 3 + integration-tests/go.mod | 6 +- integration-tests/go.sum | 3 + integration-tests/load/go.mod | 6 +- integration-tests/load/go.sum | 3 + 9 files changed, 55 insertions(+), 46 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 95a64e39124..eff5a614df4 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -24,37 +24,24 @@ func NewExecutePluginCodecV1() *ExecutePluginCodecV1 { } func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.ExecutePluginReport) ([]byte, error) { - var buf bytes.Buffer - encoder := agbinary.NewBorshEncoder(&buf) - if len(report.ChainReports) == 0 || len(report.ChainReports) > 1 { return nil, fmt.Errorf("unexpected chain report length: %d", len(report.ChainReports)) } + var message ccip_router.Any2SolanaRampMessage chainReport := report.ChainReports[0] - solanaProofs := make([][32]byte, 0, len(chainReport.Proofs)) - for _, proof := range chainReport.Proofs { - solanaProofs = append(solanaProofs, proof) - } - - var msg ccip_router.Any2SolanaRampMessage if len(chainReport.Messages) > 0 { // currently only allow commiting one message at a time - message := chainReport.Messages[0] - receiver, err := solana.PublicKeyFromBase58(string(message.Receiver)) - if err != nil { - return nil, fmt.Errorf("invalid receiver address: %s, %w", string(message.Receiver), err) - } - - tokenAmounts := make([]ccip_router.Any2SolanaTokenTransfer, 0, len(message.TokenAmounts)) - for _, tokenAmount := range message.TokenAmounts { + msg := chainReport.Messages[0] + tokenAmounts := make([]ccip_router.Any2SolanaTokenTransfer, 0, len(msg.TokenAmounts)) + for _, tokenAmount := range msg.TokenAmounts { if tokenAmount.Amount.IsEmpty() { return nil, fmt.Errorf("empty amount for token: %s", tokenAmount.DestTokenAddress) } DestTokenAddress, err := solana.PublicKeyFromBase58(string(tokenAmount.DestTokenAddress)) if err != nil { - return nil, fmt.Errorf("invalid receiver address: %s, %w", string(message.Receiver), err) + return nil, fmt.Errorf("invalid destTokenAddress address: %w", err) } tokenAmounts = append(tokenAmounts, ccip_router.Any2SolanaTokenTransfer{ @@ -67,22 +54,27 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec } var extraArgs ccip_router.SolanaExtraArgs - decoder := agbinary.NewBorshDecoder(message.ExtraArgs) - err = extraArgs.UnmarshalWithDecoder(decoder) + decoder := agbinary.NewBorshDecoder(msg.ExtraArgs) + err := extraArgs.UnmarshalWithDecoder(decoder) if err != nil { return nil, fmt.Errorf("invalid extra arguments: %w", err) } - msg = ccip_router.Any2SolanaRampMessage{ + receiver, err := solana.PublicKeyFromBase58(string(msg.Receiver)) + if err != nil { + return nil, fmt.Errorf("invalid receiver address: %s, %w", string(msg.Receiver), err) + } + + message = ccip_router.Any2SolanaRampMessage{ Header: ccip_router.RampMessageHeader{ - MessageId: message.Header.MessageID, - SourceChainSelector: uint64(message.Header.SourceChainSelector), - DestChainSelector: uint64(message.Header.DestChainSelector), - SequenceNumber: uint64(message.Header.SequenceNumber), - Nonce: message.Header.Nonce, + MessageId: msg.Header.MessageID, + SourceChainSelector: uint64(msg.Header.SourceChainSelector), + DestChainSelector: uint64(msg.Header.DestChainSelector), + SequenceNumber: uint64(msg.Header.SequenceNumber), + Nonce: msg.Header.Nonce, }, - Sender: message.Sender, - Data: message.Data, + Sender: msg.Sender, + Data: msg.Data, Receiver: receiver, TokenAmounts: tokenAmounts, ExtraArgs: extraArgs, @@ -94,13 +86,20 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec offchainTokenData = chainReport.OffchainTokenData[0] } + solanaProofs := make([][32]byte, 0, len(chainReport.Proofs)) + for _, proof := range chainReport.Proofs { + solanaProofs = append(solanaProofs, proof) + } + solanaReport := ccip_router.ExecutionReportSingleChain{ SourceChainSelector: uint64(chainReport.SourceChainSelector), - Message: msg, + Message: message, OffchainTokenData: offchainTokenData, Proofs: solanaProofs, } + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) err := solanaReport.MarshalWithEncoder(encoder) if err != nil { return nil, err @@ -117,10 +116,6 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return cciptypes.ExecutePluginReport{}, fmt.Errorf("unpack encoded report: %w", err) } - report := cciptypes.ExecutePluginReport{ - ChainReports: make([]cciptypes.ExecutePluginReportSingleChain, 0, 1), - } - proofs := make([]cciptypes.Bytes32, 0, len(executeReport.Proofs)) for _, proof := range executeReport.Proofs { proofs = append(proofs, proof) @@ -180,7 +175,9 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) Proofs: proofs, } - report.ChainReports = append(report.ChainReports, chainReport) + report := cciptypes.ExecutePluginReport{ + ChainReports: []cciptypes.ExecutePluginReportSingleChain{chainReport}, + } return report, nil } diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 0bec3a25ed4..605771f4b09 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -19,7 +19,7 @@ require ( require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 - github.com/ethereum/go-ethereum v1.14.11 + github.com/ethereum/go-ethereum v1.14.12 github.com/gkampitakis/go-snaps v0.5.4 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 @@ -53,7 +53,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.3.0 // indirect + cosmossdk.io/math v1.4.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -175,7 +175,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 08abfae3d0f..e6786916a1b 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -70,6 +70,7 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -382,6 +383,7 @@ github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHE github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -524,6 +526,7 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= diff --git a/deployment/go.mod b/deployment/go.mod index 929f23cc195..183cf6070c8 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -17,7 +17,7 @@ require ( github.com/avast/retry-go/v4 v4.6.0 github.com/aws/aws-sdk-go v1.54.19 github.com/deckarep/golang-set/v2 v2.6.0 - github.com/ethereum/go-ethereum v1.14.11 + github.com/ethereum/go-ethereum v1.14.12 github.com/go-resty/resty/v2 v2.15.3 github.com/google/uuid v1.6.0 github.com/hashicorp/consul/sdk v0.16.1 @@ -52,7 +52,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.3.0 // indirect + cosmossdk.io/math v1.4.0 // indirect dario.cat/mergo v1.0.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -228,7 +228,7 @@ require ( github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/gogo/status v1.1.1 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/deployment/go.sum b/deployment/go.sum index a54ce8a604d..8e0278e2c4e 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -65,6 +65,7 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= @@ -485,6 +486,7 @@ github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHE github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= @@ -643,6 +645,7 @@ github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 8138daa8597..f3a5c4ccd85 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -26,7 +26,7 @@ require ( github.com/chaos-mesh/chaos-mesh/api v0.0.0-20240821051457-da69c6d9617a github.com/cli/go-gh/v2 v2.0.0 github.com/deckarep/golang-set/v2 v2.6.0 - github.com/ethereum/go-ethereum v1.14.11 + github.com/ethereum/go-ethereum v1.14.12 github.com/fxamacker/cbor/v2 v2.7.0 github.com/go-resty/resty/v2 v2.15.3 github.com/google/go-cmp v0.6.0 @@ -79,7 +79,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.3.0 // indirect + cosmossdk.io/math v1.4.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -252,7 +252,7 @@ require ( github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/gogo/status v1.1.1 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 19dd6365630..0e1ef01a939 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -70,6 +70,7 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= @@ -510,6 +511,7 @@ github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHE github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= @@ -672,6 +674,7 @@ github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 432cf25c921..a7494e1d38d 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -21,7 +21,7 @@ require ( require ( github.com/K-Phoen/grabana v0.22.2 - github.com/ethereum/go-ethereum v1.14.11 + github.com/ethereum/go-ethereum v1.14.12 github.com/go-resty/resty/v2 v2.15.3 github.com/pelletier/go-toml/v2 v2.2.3 github.com/pkg/errors v0.9.1 @@ -44,7 +44,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.3.0 // indirect + cosmossdk.io/math v1.4.0 // indirect dario.cat/mergo v1.0.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -223,7 +223,7 @@ require ( github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/gogo/status v1.1.1 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 50479afe0ab..b93490eecc9 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -70,6 +70,7 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= @@ -504,6 +505,7 @@ github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHE github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= @@ -666,6 +668,7 @@ github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= From 558c0ff7a03519501702d7b2a73ac21a3b1dc04b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 15:21:26 -0600 Subject: [PATCH 016/232] update --- .../ccip/ccipsolana/executecodec.go | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index eff5a614df4..4b2ca112030 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -96,6 +96,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec Message: message, OffchainTokenData: offchainTokenData, Proofs: solanaProofs, + //TODO: add TokenIndexes in the cciptypes.ExecutePluginReport } var buf bytes.Buffer @@ -116,11 +117,6 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return cciptypes.ExecutePluginReport{}, fmt.Errorf("unpack encoded report: %w", err) } - proofs := make([]cciptypes.Bytes32, 0, len(executeReport.Proofs)) - for _, proof := range executeReport.Proofs { - proofs = append(proofs, proof) - } - tokenAmounts := make([]cciptypes.RampTokenAmount, 0, len(executeReport.Message.TokenAmounts)) for _, tokenAmount := range executeReport.Message.TokenAmounts { destData := make([]byte, 4) @@ -142,32 +138,37 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return cciptypes.ExecutePluginReport{}, fmt.Errorf("unpack encoded report: %w", err) } - messages := make([]cciptypes.Message, 0, 1) - message := cciptypes.Message{ - Header: cciptypes.RampMessageHeader{ - MessageID: executeReport.Message.Header.MessageId, - SourceChainSelector: cciptypes.ChainSelector(executeReport.Message.Header.SourceChainSelector), - DestChainSelector: cciptypes.ChainSelector(executeReport.Message.Header.DestChainSelector), - SequenceNumber: cciptypes.SeqNum(executeReport.Message.Header.SequenceNumber), - Nonce: executeReport.Message.Header.Nonce, - MsgHash: cciptypes.Bytes32{}, // todo: info not available, but not required atm - OnRamp: cciptypes.UnknownAddress{}, // todo: info not available, but not required atm + messages := []cciptypes.Message{ + { + Header: cciptypes.RampMessageHeader{ + MessageID: executeReport.Message.Header.MessageId, + SourceChainSelector: cciptypes.ChainSelector(executeReport.Message.Header.SourceChainSelector), + DestChainSelector: cciptypes.ChainSelector(executeReport.Message.Header.DestChainSelector), + SequenceNumber: cciptypes.SeqNum(executeReport.Message.Header.SequenceNumber), + Nonce: executeReport.Message.Header.Nonce, + MsgHash: cciptypes.Bytes32{}, // todo: info not available, but not required atm + OnRamp: cciptypes.UnknownAddress{}, // todo: info not available, but not required atm + }, + Sender: executeReport.Message.Sender, + Data: executeReport.Message.Data, + Receiver: cciptypes.UnknownAddress(executeReport.Message.Receiver.String()), + ExtraArgs: buf.Bytes(), + FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm + FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm + TokenAmounts: tokenAmounts, }, - Sender: executeReport.Message.Sender, - Data: executeReport.Message.Data, - Receiver: cciptypes.UnknownAddress(executeReport.Message.Receiver.String()), - ExtraArgs: buf.Bytes(), - FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm - FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm - TokenAmounts: tokenAmounts, } - messages = append(messages, message) offchainTokenData := make([][][]byte, 0, 1) if executeReport.OffchainTokenData != nil { offchainTokenData = append(offchainTokenData, executeReport.OffchainTokenData) } + proofs := make([]cciptypes.Bytes32, 0, len(executeReport.Proofs)) + for _, proof := range executeReport.Proofs { + proofs = append(proofs, proof) + } + chainReport := cciptypes.ExecutePluginReportSingleChain{ SourceChainSelector: cciptypes.ChainSelector(executeReport.SourceChainSelector), Messages: messages, From 07acdb1ccc6f2e0e1d521d887522338fe695bb45 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 15:33:25 -0600 Subject: [PATCH 017/232] fix mod --- go.sum | 1 + 1 file changed, 1 insertion(+) diff --git a/go.sum b/go.sum index 81c5378d975..85210adb913 100644 --- a/go.sum +++ b/go.sum @@ -646,6 +646,7 @@ github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBt github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= +github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= From 0c0b802e6f4bdfb2953bb1b0984a7652b29259ee Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 15:36:14 -0600 Subject: [PATCH 018/232] update --- go.mod | 17 +---------------- go.sum | 51 ++------------------------------------------------- 2 files changed, 3 insertions(+), 65 deletions(-) diff --git a/go.mod b/go.mod index aa6e99709a1..a12db105084 100644 --- a/go.mod +++ b/go.mod @@ -152,7 +152,6 @@ require ( github.com/apache/arrow-go/v18 v18.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c // indirect - github.com/aws/aws-sdk-go v1.54.19 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -206,7 +205,6 @@ require ( github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect - github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect @@ -251,6 +249,7 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect @@ -269,7 +268,6 @@ require ( github.com/jackc/pgproto3/v2 v2.3.3 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.17.11 // indirect @@ -321,17 +319,12 @@ require ( github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/sethvargo/go-retry v0.2.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect - github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect - github.com/smartcontractkit/chainlink/core/scripts v0.0.0-20250102181259-945c70695676 // indirect - github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect - github.com/status-im/keycard-go v0.2.0 // indirect github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect @@ -344,7 +337,6 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 // indirect github.com/urfave/cli/v2 v2.27.5 // indirect github.com/valyala/fastjson v1.4.1 // indirect @@ -377,7 +369,6 @@ require ( go.uber.org/ratelimit v0.3.1 // indirect golang.org/x/arch v0.11.0 // indirect golang.org/x/net v0.32.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.202.0 // indirect @@ -386,17 +377,11 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/grpc/stats/opentelemetry v0.0.0-20241022174616-4bb0170ac65f // indirect gopkg.in/guregu/null.v2 v2.1.2 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.31.1 // indirect - k8s.io/client-go v0.31.1 // indirect - k8s.io/klog/v2 v2.130.1 // indirect pgregory.net/rapid v1.1.0 // indirect rsc.io/tmplfunc v0.0.3 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 85210adb913..fe7fe0f538e 100644 --- a/go.sum +++ b/go.sum @@ -63,8 +63,6 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= -cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= -cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -295,7 +293,6 @@ github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFg github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -360,8 +357,6 @@ github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8nta github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= -github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= @@ -395,8 +390,6 @@ github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdF github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= github.com/gagliardetto/utilz v0.1.1/go.mod h1:b+rGFkRHz3HWJD0RYMzat47JyvbTtpE0iEcYTRJTLLA= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813/go.mod h1:P+oSoE9yhSRvsmYyZsshflcR6ePWYLql6UU1amW13IM= github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= @@ -415,8 +408,6 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= -github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= -github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA= @@ -491,8 +482,6 @@ github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1 github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= @@ -644,8 +633,6 @@ github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 h1:BpJ2o0OR5FV7vrkDYf github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= -github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -680,8 +667,8 @@ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -782,7 +769,6 @@ github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgf github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= @@ -1058,8 +1044,6 @@ github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6po github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= -github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= @@ -1112,10 +1096,6 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= 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/ccip-owner-contracts v0.0.0-salt-fix h1:DPJD++yKLSx0EfT+U14P8vLVxjXFmoIETiCO9lVwQo8= -github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix/go.mod h1:NnT6w4Kj42OFFXhSx99LvJZWPpMjmo4+CpDEWfw61xY= github.com/smartcontractkit/chain-selectors v1.0.34 h1:MJ17OGu8+jjl426pcKrJkCf3fePb3eCreuAnUA3RBj4= github.com/smartcontractkit/chain-selectors v1.0.34/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= @@ -1132,18 +1112,12 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3/go.mod h1:AS6zY2BkcRwfiGzNabGbHhfrLSrXrcI/GmjnT4jQ5/s= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= -github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= -github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= -github.com/smartcontractkit/chainlink/core/scripts v0.0.0-20250102181259-945c70695676 h1:Fx9TwVThCQrolgM5iA+K0iJ7/9FGWbwk6mTR4uGDZe8= -github.com/smartcontractkit/chainlink/core/scripts v0.0.0-20250102181259-945c70695676/go.mod h1:s45SJVKp9ci8GMy4X7+NbtfSqWtbwqhbzHxZiz/7+Kg= -github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66 h1:8ZBqO5WHEAhmIoI6EvPEbpn7UcTxvNQjKc+47pqwrJI= -github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66/go.mod h1:bm0Uz074GC0plJshujrzBPutNvCiGhmNaArs7kNfP8c= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7/go.mod h1:FX7/bVdoep147QQhsOPkYsPEXhGZjeYx6lBSaSXtZOA= github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 h1:IpGoPTXpvllN38kT2z2j13sifJMz4nbHglidvop7mfg= @@ -1184,8 +1158,6 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= -github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1239,8 +1211,6 @@ github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9f github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= -github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -1259,8 +1229,6 @@ github.com/unrolled/secure v1.13.0 h1:sdr3Phw2+f8Px8HE5sd1EHdj1aV3yUwed/uZXChLFs github.com/unrolled/secure v1.13.0/go.mod h1:BmF5hyM6tXczk3MpQkFf1hpKSRqCyhqcbiQtiAF7+40= github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= -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.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= @@ -1270,8 +1238,6 @@ github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+x github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= @@ -1868,8 +1834,6 @@ gopkg.in/guregu/null.v2 v2.1.2/go.mod h1:XORrx8tyS5ZDcyUboCIxQtta/Aujk/6pfWrn9Xe gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -1901,13 +1865,6 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= -k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= @@ -1935,9 +1892,5 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From 22ad68c8bc7c033da76cbd0b42e52e127926249a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 16:15:36 -0600 Subject: [PATCH 019/232] revert mod change --- go.mod | 9 ++++++--- go.sum | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index a12db105084..7fefe4e9879 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 github.com/dominikbraun/graph v0.23.0 github.com/esote/minmaxheap v1.0.0 - github.com/ethereum/go-ethereum v1.14.12 + github.com/ethereum/go-ethereum v1.14.11 github.com/fatih/color v1.17.0 github.com/fxamacker/cbor/v2 v2.7.0 github.com/gagliardetto/binary v0.8.0 @@ -30,7 +30,7 @@ require ( github.com/gin-contrib/expvar v0.0.1 github.com/gin-contrib/sessions v0.0.5 github.com/gin-contrib/size v0.0.0-20230212012657-e14a14094dc4 - github.com/gin-gonic/gin v1.10.0 + github.com/gin-gonic/gin v1.9.1 github.com/go-ldap/ldap/v3 v3.4.6 github.com/go-viper/mapstructure/v2 v2.1.0 github.com/go-webauthn/webauthn v0.9.4 @@ -42,7 +42,7 @@ require ( github.com/grafana/pyroscope-go v1.1.2 github.com/graph-gophers/dataloader v5.0.0+incompatible github.com/graph-gophers/graphql-go v1.5.0 - github.com/hashicorp/consul/sdk v0.16.1 + github.com/hashicorp/consul/sdk v0.16.0 github.com/hashicorp/go-envparse v0.1.0 github.com/hashicorp/go-plugin v1.6.2 github.com/hashicorp/go-retryablehttp v0.7.7 @@ -205,6 +205,7 @@ require ( github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect @@ -325,6 +326,7 @@ require ( github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect + github.com/status-im/keycard-go v0.2.0 // indirect github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect @@ -337,6 +339,7 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 // indirect github.com/urfave/cli/v2 v2.27.5 // indirect github.com/valyala/fastjson v1.4.1 // indirect diff --git a/go.sum b/go.sum index fe7fe0f538e..10d14078025 100644 --- a/go.sum +++ b/go.sum @@ -357,8 +357,8 @@ github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8nta github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= -github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= +github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= +github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -390,6 +390,8 @@ github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdF github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= github.com/gagliardetto/utilz v0.1.1/go.mod h1:b+rGFkRHz3HWJD0RYMzat47JyvbTtpE0iEcYTRJTLLA= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813/go.mod h1:P+oSoE9yhSRvsmYyZsshflcR6ePWYLql6UU1amW13IM= github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= @@ -408,8 +410,8 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= -github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= -github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA= github.com/go-asn1-ber/asn1-ber v1.5.5/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -633,8 +635,8 @@ github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 h1:BpJ2o0OR5FV7vrkDYf github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= -github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= +github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= +github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= @@ -1158,6 +1160,8 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1211,6 +1215,8 @@ github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9f github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= From effd03096c2ebc3e7951ed57c340e1d809a3440d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 16:18:22 -0600 Subject: [PATCH 020/232] add changeset --- .changeset/violet-bears-try.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/violet-bears-try.md diff --git a/.changeset/violet-bears-try.md b/.changeset/violet-bears-try.md new file mode 100644 index 00000000000..187527757c1 --- /dev/null +++ b/.changeset/violet-bears-try.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +Solana CCIP plugin codec support for both commit and execute report #added From 26e9cb3d3892ecf72d28253a4462c3e7592eadd2 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 16:29:30 -0600 Subject: [PATCH 021/232] fix smoke test --- integration-tests/go.mod | 7 --- integration-tests/go.sum | 120 ++++----------------------------------- 2 files changed, 12 insertions(+), 115 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index f3a5c4ccd85..7e5ff359a6c 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -74,7 +74,6 @@ require ( ) require ( - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -185,7 +184,6 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dennwc/varint v1.0.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -214,7 +212,6 @@ require ( github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect - github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect github.com/gin-contrib/sse v0.1.0 // indirect @@ -441,13 +438,11 @@ require ( github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect - github.com/status-im/keycard-go v0.2.0 // indirect github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/gjson v1.17.0 // indirect @@ -456,7 +451,6 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -478,7 +472,6 @@ require ( go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect go.etcd.io/etcd/client/v3 v3.5.14 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/collector/pdata v1.12.0 // indirect go.opentelemetry.io/collector/semconv v0.105.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 0e1ef01a939..82c40ba03fe 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -68,15 +63,13 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= -cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= -cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -119,8 +112,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -160,7 +151,6 @@ github.com/Workiva/go-datastructures v1.1.0 h1:hu20UpgZneBhQ3ZvwiOGlqJSKIosin2Rd github.com/Workiva/go-datastructures v1.1.0/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -178,7 +168,6 @@ github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6u github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -205,8 +194,6 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/awalterschulze/gographviz v2.0.3+incompatible h1:9sVEXJBJLwGX7EQVhLm2elIKCm7P2YHFC8v6096G09E= github.com/awalterschulze/gographviz v2.0.3+incompatible/go.mod h1:GEV5wmg4YquNw7v1kkyoX9etIk8yVmXj+AkDHuuETHs= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= @@ -264,7 +251,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= @@ -381,9 +367,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -394,7 +378,6 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -435,7 +418,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -449,28 +431,22 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/digitalocean/godo v1.118.0 h1:lkzGFQmACrVCp7UqH1sAi4JK/PWwlc5aaxubgorKmC4= github.com/digitalocean/godo v1.118.0/go.mod h1:Vk0vpCot2HOAJwc5WE8wljZGtJ3ZtWIc8MQ8rF38sdo= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= @@ -509,8 +485,7 @@ github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8nta github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= -github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= @@ -544,20 +519,16 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= github.com/gagliardetto/utilz v0.1.1/go.mod h1:b+rGFkRHz3HWJD0RYMzat47JyvbTtpE0iEcYTRJTLLA= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813/go.mod h1:P+oSoE9yhSRvsmYyZsshflcR6ePWYLql6UU1amW13IM= github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= @@ -672,15 +643,13 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -716,7 +685,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -801,7 +769,6 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= @@ -831,15 +798,12 @@ github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMN github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -912,7 +876,6 @@ github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -1017,10 +980,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -1031,7 +992,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -1056,7 +1016,6 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -1108,7 +1067,6 @@ github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -1209,7 +1167,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= @@ -1234,7 +1191,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -1326,7 +1282,6 @@ github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfW github.com/prometheus/alertmanager v0.27.0 h1:V6nTa2J5V4s8TG4C4HtrBP/WNSebCCTYGGv4qecA/+I= github.com/prometheus/alertmanager v0.27.0/go.mod h1:8Ia/R3urPmbzJ8OsdvmZvIprDwvwmYCmUbwBL+jlPOE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -1339,8 +1294,6 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= @@ -1353,7 +1306,6 @@ github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57J github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -1362,7 +1314,6 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1374,7 +1325,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= @@ -1494,7 +1444,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/sony/gobreaker v0.5.0 h1:dRCvqm0P490vZPmy7ppEk2qCnCieBooFJ+YoXGYB+yg= @@ -1513,7 +1462,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1523,15 +1471,10 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= -github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1552,8 +1495,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= @@ -1564,9 +1507,6 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/testcontainers/testcontainers-go v0.34.0 h1:5fbgF0vIN5u+nD3IWabQwRybuB4GY8G2HHgCkbMzMHo= @@ -1577,12 +1517,10 @@ github.com/thlib/go-timezone-local v0.0.0-20210907160436-ef149e42d28e h1:Buzhfgf github.com/thlib/go-timezone-local v0.0.0-20210907160436-ef149e42d28e/go.mod h1:/Tnicc6m/lsJE0irFMA0LfIwTBo4QP7A8IfyIv4zZKI= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1590,12 +1528,9 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= -github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= @@ -1617,10 +1552,8 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/vektah/gqlparser/v2 v2.5.11 h1:JJxLtXIoN7+3x6MBdtIP59TP1RANnY7pXOaDnADQSf8= github.com/vektah/gqlparser/v2 v2.5.11/go.mod h1:1rCcfwB2ekJofmluGWXMSEnPMZgbxzwj6FaZ/4OT8Cc= github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= @@ -1629,10 +1562,6 @@ github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/ github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= @@ -1640,7 +1569,6 @@ github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGC github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1667,7 +1595,6 @@ go.dedis.ch/kyber/v3 v3.1.0/go.mod h1:kXy7p3STAurkADD+/aZcsznZGKVHEqbtmdIzvPfrs1 go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRLo= go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= @@ -1679,12 +1606,10 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSv go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1758,15 +1683,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1797,7 +1719,6 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= @@ -1812,8 +1733,7 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1843,8 +1763,7 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1852,7 +1771,6 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1903,8 +1821,7 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1941,7 +1858,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1958,7 +1874,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2035,7 +1950,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -2084,7 +1998,6 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -2094,7 +2007,6 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2130,8 +2042,7 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2150,7 +2061,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -2175,7 +2085,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -2186,7 +2095,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -2236,7 +2144,6 @@ google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmE google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -2289,16 +2196,13 @@ gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From b988745c01ef757acaa2f45134127c566420583a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 16:51:32 -0600 Subject: [PATCH 022/232] fix lint --- core/capabilities/ccip/ccipsolana/executecodec.go | 4 ++-- core/capabilities/ccip/ccipsolana/executecodec_test.go | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 4b2ca112030..d791779627f 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -31,7 +31,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec var message ccip_router.Any2SolanaRampMessage chainReport := report.ChainReports[0] if len(chainReport.Messages) > 0 { - // currently only allow commiting one message at a time + // currently only allow committing one message at a time msg := chainReport.Messages[0] tokenAmounts := make([]ccip_router.Any2SolanaTokenTransfer, 0, len(msg.TokenAmounts)) for _, tokenAmount := range msg.TokenAmounts { @@ -96,7 +96,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec Message: message, OffchainTokenData: offchainTokenData, Proofs: solanaProofs, - //TODO: add TokenIndexes in the cciptypes.ExecutePluginReport + // TODO: add TokenIndexes in the cciptypes.ExecutePluginReport } var buf bytes.Buffer diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index a85655b1830..f4a28c57092 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -9,6 +9,7 @@ import ( agbinary "github.com/gagliardetto/binary" solanago "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" From 56d85d5a2040c2df3589ce5507a49238596711b7 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 3 Jan 2025 17:45:41 -0600 Subject: [PATCH 023/232] revert go mod --- core/scripts/go.mod | 9 ---- core/scripts/go.sum | 128 +++++--------------------------------------- 2 files changed, 12 insertions(+), 125 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 605771f4b09..9d06b868264 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -48,7 +48,6 @@ require ( ) require ( - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -119,7 +118,6 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -141,7 +139,6 @@ require ( github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect - github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/cors v1.7.2 // indirect @@ -178,7 +175,6 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect @@ -210,7 +206,6 @@ require ( github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-plugin v1.6.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect - github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect @@ -320,14 +315,12 @@ require ( github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/status-im/keycard-go v0.2.0 // indirect github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/test-go/testify v1.1.4 // indirect github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a // indirect github.com/tidwall/btree v1.6.0 // indirect @@ -338,7 +331,6 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/ulule/limiter/v3 v3.11.2 // indirect github.com/unrolled/secure v1.13.0 // indirect @@ -354,7 +346,6 @@ require ( go.dedis.ch/kyber/v3 v3.1.0 // indirect go.etcd.io/bbolt v1.3.9 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index e6786916a1b..90241e0d1ca 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -68,13 +63,11 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= -cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= -cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -101,8 +94,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -129,7 +120,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -139,7 +129,6 @@ github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1L github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -157,8 +146,6 @@ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c h1:cxQ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c/go.mod h1:3XzxudkrYVUvbduN/uI2fl4lSrMSzU0+3RCu2mpnfx8= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 h1:WWB576BN5zNSZc/M9d/10pqEx5VHNhaQ/yOVAkmj5Yo= @@ -179,7 +166,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= @@ -268,16 +254,13 @@ github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7b github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -315,7 +298,6 @@ github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJF github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -329,24 +311,18 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= @@ -381,13 +357,11 @@ github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8nta github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= -github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= +github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= @@ -406,20 +380,16 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= github.com/gagliardetto/utilz v0.1.1/go.mod h1:b+rGFkRHz3HWJD0RYMzat47JyvbTtpE0iEcYTRJTLLA= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813/go.mod h1:P+oSoE9yhSRvsmYyZsshflcR6ePWYLql6UU1amW13IM= github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= @@ -524,15 +494,13 @@ github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1 github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -568,7 +536,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -644,12 +611,10 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/pyroscope-go v1.1.2 h1:7vCfdORYQMCxIzI3NlYAs3FcBP760+gWuYWOyiVyYx8= @@ -660,15 +625,12 @@ github.com/graph-gophers/dataloader v5.0.0+incompatible h1:R+yjsbrNq1Mo3aPG+Z/EK github.com/graph-gophers/dataloader v5.0.0+incompatible/go.mod h1:jk4jk0c5ZISbKaMe8WsVopGB5/15GvGHMdMdPtwlRp4= github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -723,7 +685,6 @@ github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -813,10 +774,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -827,7 +786,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -847,7 +805,6 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -889,7 +846,6 @@ github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczG github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -905,7 +861,6 @@ github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo= github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -914,8 +869,6 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -970,7 +923,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= @@ -989,7 +941,6 @@ github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJm github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -997,7 +948,6 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= 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= @@ -1062,7 +1012,6 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/pressly/goose/v3 v3.21.1 h1:5SSAKKWej8LVVzNLuT6KIvP1eFDuPvxa+B6H0w78buQ= github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfWh8pHEe+vE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -1073,21 +1022,17 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1101,7 +1046,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1200,7 +1144,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1215,7 +1158,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1225,15 +1167,10 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= -github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1254,8 +1191,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= @@ -1266,22 +1203,17 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1291,12 +1223,9 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= -github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -1317,24 +1246,17 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1359,18 +1281,15 @@ go.dedis.ch/kyber/v3 v3.1.0/go.mod h1:kXy7p3STAurkADD+/aZcsznZGKVHEqbtmdIzvPfrs1 go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRLo= go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1442,15 +1361,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1477,7 +1393,6 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= @@ -1491,8 +1406,7 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1522,8 +1436,7 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1531,7 +1444,6 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1544,7 +1456,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1577,8 +1488,7 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1614,7 +1524,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1630,7 +1539,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1695,7 +1603,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= @@ -1740,7 +1647,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -1750,7 +1656,6 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1786,8 +1691,7 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1804,7 +1708,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -1829,7 +1732,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -1839,7 +1741,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1888,9 +1789,7 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go. google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1944,16 +1843,13 @@ gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 75ae059cfa4709d718eada8a4616b4f5bbfda7e0 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:19:07 -0600 Subject: [PATCH 024/232] fix --- integration-tests/go.mod | 2 +- test.go | 112 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 test.go diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 7e5ff359a6c..3f1ed933486 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -26,7 +26,7 @@ require ( github.com/chaos-mesh/chaos-mesh/api v0.0.0-20240821051457-da69c6d9617a github.com/cli/go-gh/v2 v2.0.0 github.com/deckarep/golang-set/v2 v2.6.0 - github.com/ethereum/go-ethereum v1.14.12 + github.com/ethereum/go-ethereum v1.14.11 github.com/fxamacker/cbor/v2 v2.7.0 github.com/go-resty/resty/v2 v2.15.3 github.com/google/go-cmp v0.6.0 diff --git a/test.go b/test.go new file mode 100644 index 00000000000..42978ee2cde --- /dev/null +++ b/test.go @@ -0,0 +1,112 @@ +package main + +import ( + "context" + "fmt" + "log" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/rpc" +) + +// Tx represents a transaction structure +type Tx struct { + TxAttempts []TxAttempt +} + +// TxAttempt represents a transaction attempt structure +type TxAttempt struct { + Hash common.Hash +} + +// zircuitResponse represents the response structure from zirc_isQuarantined +type zircuitResponse struct { + IsQuarantined bool `json:"isQuarantined"` +} + +// stuckTxDetector represents the structure for stuck transaction detection +type stuckTxDetector struct { + chainClient *rpc.Client + lggr Logger +} + +// Logger interface for logging (simplified here for demonstration) +type Logger struct{} + +func (l Logger) Debugf(format string, args ...interface{}) { + log.Printf(format, args...) +} + +// detectFraudTransactionsZircuit detects quarantined transactions +func (d *stuckTxDetector) detectFraudTransactionsZircuit(ctx context.Context, txs []Tx) ([]Tx, error) { + txReqs := make([]rpc.BatchElem, len(txs)) + txHashMap := make(map[common.Hash]Tx) + txRes := make([]*zircuitResponse, len(txs)) + + // Build batch request elements + for i, tx := range txs { + latestAttemptHash := tx.TxAttempts[0].Hash + var result zircuitResponse + txReqs[i] = rpc.BatchElem{ + Method: "zirc_isQuarantined", + Args: []interface{}{latestAttemptHash}, + Result: &result, + } + txHashMap[latestAttemptHash] = tx + txRes[i] = &result + } + + // Send batch request using the Ethereum client + err := d.chainClient.BatchCallContext(ctx, txReqs) + if err != nil { + return nil, fmt.Errorf("failed to check Quarantine transactions in batch: %w", err) + } + + // Process the results and check if any transactions are quarantined + var fraudTxs []Tx + for i, req := range txReqs { + txHash := req.Args[0].(common.Hash) + if req.Error != nil { + d.lggr.Debugf("failed to check fraud transaction by hash (%s): %v", txHash.String(), req.Error) + continue + } + + result := txRes[i] + if result != nil && result.IsQuarantined { + tx := txHashMap[txHash] + fraudTxs = append(fraudTxs, tx) + } + } + return fraudTxs, nil +} + +// +//func main() { +// // Create an Ethereum RPC client to communicate with the Zircuit endpoint +// client, err := rpc.Dial("https://zircuit1-mainnet.p2pify.com") +// if err != nil { +// log.Fatalf("Failed to create Ethereum RPC client: %v", err) +// } +// +// // Create the detector with the Ethereum client +// detector := &stuckTxDetector{ +// chainClient: client, +// lggr: Logger{}, +// } +// +// // Example transactions (replace with real data) +// txs := []Tx{ +// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0xbf7179cbeb760388d972b68dfeef0ee687dd1286d5b4cd534b6b75c42bbdf3c4")}}}, +// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0x3f9d8133af4ab1ca64c4a6fa572161995eb88fd942d71a61910a04e1639ee51e")}}}, +// } +// +// // Detect fraudulent transactions +// ctx := context.Background() +// fraudTxs, err := detector.detectFraudTransactionsZircuit(ctx, txs) +// if err != nil { +// log.Fatalf("Error detecting fraud transactions: %v", err) +// } +// +// // Print out the fraudulent transactions +// fmt.Printf("Fraudulent transactions: %+v\n", fraudTxs) +//} From 0272e7513d8bfa77e234762d34737d43c5238ab0 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:29:23 -0600 Subject: [PATCH 025/232] revert --- core/scripts/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 9d06b868264..dd04932f035 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -19,7 +19,7 @@ require ( require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 - github.com/ethereum/go-ethereum v1.14.12 + github.com/ethereum/go-ethereum v1.14.11 github.com/gkampitakis/go-snaps v0.5.4 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 From 465d69c127ea3fd27b9b29da8360e5ad247e8781 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:33:36 -0600 Subject: [PATCH 026/232] revert --- core/scripts/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index dd04932f035..9d06b868264 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -19,7 +19,7 @@ require ( require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 - github.com/ethereum/go-ethereum v1.14.11 + github.com/ethereum/go-ethereum v1.14.12 github.com/gkampitakis/go-snaps v0.5.4 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 From f314edca1e47c17f6c916315d5399c726224f785 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:34:30 -0600 Subject: [PATCH 027/232] again --- deployment/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/go.mod b/deployment/go.mod index 183cf6070c8..399dacd527d 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -17,7 +17,7 @@ require ( github.com/avast/retry-go/v4 v4.6.0 github.com/aws/aws-sdk-go v1.54.19 github.com/deckarep/golang-set/v2 v2.6.0 - github.com/ethereum/go-ethereum v1.14.12 + github.com/ethereum/go-ethereum v1.14.11 github.com/go-resty/resty/v2 v2.15.3 github.com/google/uuid v1.6.0 github.com/hashicorp/consul/sdk v0.16.1 From a712c88a6289edb7580d51a91333fcaa494a53fa Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:35:24 -0600 Subject: [PATCH 028/232] update --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 9d06b868264..dd04932f035 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -19,7 +19,7 @@ require ( require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 - github.com/ethereum/go-ethereum v1.14.12 + github.com/ethereum/go-ethereum v1.14.11 github.com/gkampitakis/go-snaps v0.5.4 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 90241e0d1ca..a4123f4f33a 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -357,6 +357,7 @@ github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8nta github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= From 8c02e8b76a968a00ed5c47330673ef0b50628434 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:37:01 -0600 Subject: [PATCH 029/232] remove file --- test.go | 112 -------------------------------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 test.go diff --git a/test.go b/test.go deleted file mode 100644 index 42978ee2cde..00000000000 --- a/test.go +++ /dev/null @@ -1,112 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/rpc" -) - -// Tx represents a transaction structure -type Tx struct { - TxAttempts []TxAttempt -} - -// TxAttempt represents a transaction attempt structure -type TxAttempt struct { - Hash common.Hash -} - -// zircuitResponse represents the response structure from zirc_isQuarantined -type zircuitResponse struct { - IsQuarantined bool `json:"isQuarantined"` -} - -// stuckTxDetector represents the structure for stuck transaction detection -type stuckTxDetector struct { - chainClient *rpc.Client - lggr Logger -} - -// Logger interface for logging (simplified here for demonstration) -type Logger struct{} - -func (l Logger) Debugf(format string, args ...interface{}) { - log.Printf(format, args...) -} - -// detectFraudTransactionsZircuit detects quarantined transactions -func (d *stuckTxDetector) detectFraudTransactionsZircuit(ctx context.Context, txs []Tx) ([]Tx, error) { - txReqs := make([]rpc.BatchElem, len(txs)) - txHashMap := make(map[common.Hash]Tx) - txRes := make([]*zircuitResponse, len(txs)) - - // Build batch request elements - for i, tx := range txs { - latestAttemptHash := tx.TxAttempts[0].Hash - var result zircuitResponse - txReqs[i] = rpc.BatchElem{ - Method: "zirc_isQuarantined", - Args: []interface{}{latestAttemptHash}, - Result: &result, - } - txHashMap[latestAttemptHash] = tx - txRes[i] = &result - } - - // Send batch request using the Ethereum client - err := d.chainClient.BatchCallContext(ctx, txReqs) - if err != nil { - return nil, fmt.Errorf("failed to check Quarantine transactions in batch: %w", err) - } - - // Process the results and check if any transactions are quarantined - var fraudTxs []Tx - for i, req := range txReqs { - txHash := req.Args[0].(common.Hash) - if req.Error != nil { - d.lggr.Debugf("failed to check fraud transaction by hash (%s): %v", txHash.String(), req.Error) - continue - } - - result := txRes[i] - if result != nil && result.IsQuarantined { - tx := txHashMap[txHash] - fraudTxs = append(fraudTxs, tx) - } - } - return fraudTxs, nil -} - -// -//func main() { -// // Create an Ethereum RPC client to communicate with the Zircuit endpoint -// client, err := rpc.Dial("https://zircuit1-mainnet.p2pify.com") -// if err != nil { -// log.Fatalf("Failed to create Ethereum RPC client: %v", err) -// } -// -// // Create the detector with the Ethereum client -// detector := &stuckTxDetector{ -// chainClient: client, -// lggr: Logger{}, -// } -// -// // Example transactions (replace with real data) -// txs := []Tx{ -// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0xbf7179cbeb760388d972b68dfeef0ee687dd1286d5b4cd534b6b75c42bbdf3c4")}}}, -// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0x3f9d8133af4ab1ca64c4a6fa572161995eb88fd942d71a61910a04e1639ee51e")}}}, -// } -// -// // Detect fraudulent transactions -// ctx := context.Background() -// fraudTxs, err := detector.detectFraudTransactionsZircuit(ctx, txs) -// if err != nil { -// log.Fatalf("Error detecting fraud transactions: %v", err) -// } -// -// // Print out the fraudulent transactions -// fmt.Printf("Fraudulent transactions: %+v\n", fraudTxs) -//} From bad1acba8375f1dd62c268f1e377e76927d035aa Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:40:55 -0600 Subject: [PATCH 030/232] revert --- core/scripts/go.mod | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index dd04932f035..8eb100acda0 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -37,7 +37,7 @@ require ( github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.9.0 github.com/umbracle/ethgo v0.1.3 github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 github.com/urfave/cli v1.22.14 @@ -139,6 +139,7 @@ require ( github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/cors v1.7.2 // indirect @@ -315,6 +316,7 @@ require ( github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect + github.com/status-im/keycard-go v0.2.0 // indirect github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect @@ -331,6 +333,7 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/ulule/limiter/v3 v3.11.2 // indirect github.com/unrolled/secure v1.13.0 // indirect From 6023de7ccd7b2b9a7eb543a2808a64fce0fcc0c1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:43:20 -0600 Subject: [PATCH 031/232] update --- deployment/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/go.mod b/deployment/go.mod index 399dacd527d..7d9d884fdeb 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.9.0 github.com/test-go/testify v1.1.4 github.com/testcontainers/testcontainers-go v0.34.0 go.uber.org/multierr v1.11.0 From 23d9c80f174f8b8cc95e6dcd4424645e5521734b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 21:44:19 -0600 Subject: [PATCH 032/232] update --- deployment/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/go.mod b/deployment/go.mod index 7d9d884fdeb..a78e140d9a2 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -38,7 +38,7 @@ require ( github.com/testcontainers/testcontainers-go v0.34.0 go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20241210194714-1829a127f884 + golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c golang.org/x/oauth2 v0.23.0 golang.org/x/sync v0.10.0 google.golang.org/grpc v1.67.1 From 82185a0172d04831dbb26f8038f3c913a24b79b3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 22:00:03 -0600 Subject: [PATCH 033/232] update version --- core/scripts/go.mod | 11 +++-------- core/scripts/go.sum | 9 +++++++-- deployment/go.mod | 2 +- deployment/go.sum | 10 +++------- go.mod | 2 +- go.sum | 4 ++-- 6 files changed, 17 insertions(+), 21 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 8eb100acda0..e4213755cd9 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -9,13 +9,6 @@ replace github.com/smartcontractkit/chainlink/v2 => ../../ replace github.com/smartcontractkit/chainlink/deployment => ../../deployment -// Using a separate `require` here to avoid surrounding line changes -// creating potential merge conflicts. -require ( - github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66 - github.com/smartcontractkit/chainlink/v2 v2.14.0-mercury-20240807.0.20241106193309-5560cd76211a -) - require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 @@ -34,10 +27,12 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550 + github.com/smartcontractkit/chainlink/deployment v0.0.0-00010101000000-000000000000 + github.com/smartcontractkit/chainlink/v2 v2.0.0-20241206210521-125d98cdaf66 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/umbracle/ethgo v0.1.3 github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 github.com/urfave/cli v1.22.14 diff --git a/core/scripts/go.sum b/core/scripts/go.sum index a4123f4f33a..cb0fc12701b 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -357,9 +357,8 @@ github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8nta github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= -github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= -github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -391,6 +390,8 @@ github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdF github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= github.com/gagliardetto/utilz v0.1.1/go.mod h1:b+rGFkRHz3HWJD0RYMzat47JyvbTtpE0iEcYTRJTLLA= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813/go.mod h1:P+oSoE9yhSRvsmYyZsshflcR6ePWYLql6UU1amW13IM= github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= @@ -1171,6 +1172,8 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1227,6 +1230,8 @@ github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9f github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= diff --git a/deployment/go.mod b/deployment/go.mod index a78e140d9a2..7d9d884fdeb 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -38,7 +38,7 @@ require ( github.com/testcontainers/testcontainers-go v0.34.0 go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 golang.org/x/oauth2 v0.23.0 golang.org/x/sync v0.10.0 google.golang.org/grpc v1.67.1 diff --git a/deployment/go.sum b/deployment/go.sum index 8e0278e2c4e..13f345052e0 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -63,8 +63,7 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= -cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= -cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= @@ -486,7 +485,6 @@ github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHE github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= -github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= @@ -643,8 +641,7 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= @@ -1478,9 +1475,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= diff --git a/go.mod b/go.mod index 7fefe4e9879..1664cd4308b 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20241223194433-f25773de7c0e + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 diff --git a/go.sum b/go.sum index 10d14078025..366c91d7b0a 100644 --- a/go.sum +++ b/go.sum @@ -1104,8 +1104,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20241223194433-f25773de7c0e h1:aZ9IMSlI3qxelcNqhkOIwK7Z8I5HpCmWvAeOdFzCKwE= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20241223194433-f25773de7c0e/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550 h1:rRs74zjDJ7do5aYEXSU/sOnLnlbYCNqM8BrvEx/0NH8= github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= From 8f42923fd4d5ca5ba1697370d73408483709acf9 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 22:05:15 -0600 Subject: [PATCH 034/232] revert --- core/scripts/go.mod | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index e4213755cd9..0ba95479886 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -9,6 +9,13 @@ replace github.com/smartcontractkit/chainlink/v2 => ../../ replace github.com/smartcontractkit/chainlink/deployment => ../../deployment +// Using a separate `require` here to avoid surrounding line changes +// creating potential merge conflicts. +require ( + github.com/smartcontractkit/chainlink/deployment v0.0.0-20241206210521-125d98cdaf66 + github.com/smartcontractkit/chainlink/v2 v2.14.0-mercury-20240807.0.20241106193309-5560cd76211a +) + require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 @@ -27,8 +34,6 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550 - github.com/smartcontractkit/chainlink/deployment v0.0.0-00010101000000-000000000000 - github.com/smartcontractkit/chainlink/v2 v2.0.0-20241206210521-125d98cdaf66 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 From 4fdf7f7b8e02ab299699a6c4e81b0afa01ed3f6d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 5 Jan 2025 22:12:29 -0600 Subject: [PATCH 035/232] downgrade version --- integration-tests/load/go.mod | 6 +- integration-tests/load/go.sum | 112 ++++------------------------------ 2 files changed, 12 insertions(+), 106 deletions(-) diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index a7494e1d38d..9915fad95f2 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -21,7 +21,7 @@ require ( require ( github.com/K-Phoen/grabana v0.22.2 - github.com/ethereum/go-ethereum v1.14.12 + github.com/ethereum/go-ethereum v1.14.11 github.com/go-resty/resty/v2 v2.15.3 github.com/pelletier/go-toml/v2 v2.2.3 github.com/pkg/errors v0.9.1 @@ -39,7 +39,6 @@ require ( ) require ( - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -155,7 +154,6 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dennwc/varint v1.0.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -435,7 +433,6 @@ require ( github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/test-go/testify v1.1.4 // indirect github.com/testcontainers/testcontainers-go v0.34.0 // indirect github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a // indirect @@ -469,7 +466,6 @@ require ( go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect go.etcd.io/etcd/client/v3 v3.5.14 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/collector/pdata v1.12.0 // indirect go.opentelemetry.io/collector/semconv v0.105.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index b93490eecc9..d38bff2bc59 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -68,15 +63,13 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= -cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= -cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -119,8 +112,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -164,7 +155,6 @@ github.com/Workiva/go-datastructures v1.1.0 h1:hu20UpgZneBhQ3ZvwiOGlqJSKIosin2Rd github.com/Workiva/go-datastructures v1.1.0/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -182,7 +172,6 @@ github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6u github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -209,8 +198,6 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/awalterschulze/gographviz v2.0.3+incompatible h1:9sVEXJBJLwGX7EQVhLm2elIKCm7P2YHFC8v6096G09E= github.com/awalterschulze/gographviz v2.0.3+incompatible/go.mod h1:GEV5wmg4YquNw7v1kkyoX9etIk8yVmXj+AkDHuuETHs= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= @@ -268,7 +255,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= @@ -375,9 +361,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -388,7 +372,6 @@ github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -429,7 +412,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -443,28 +425,22 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/digitalocean/godo v1.118.0 h1:lkzGFQmACrVCp7UqH1sAi4JK/PWwlc5aaxubgorKmC4= github.com/digitalocean/godo v1.118.0/go.mod h1:Vk0vpCot2HOAJwc5WE8wljZGtJ3ZtWIc8MQ8rF38sdo= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= @@ -505,7 +481,6 @@ github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHE github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= -github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= @@ -538,13 +513,11 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= @@ -666,15 +639,13 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -710,7 +681,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -795,7 +765,6 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= @@ -829,15 +798,12 @@ github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMN github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -910,7 +876,6 @@ github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -1013,10 +978,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -1027,7 +990,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -1052,7 +1014,6 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -1102,7 +1063,6 @@ github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/z github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -1203,7 +1163,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= @@ -1224,7 +1183,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -1316,7 +1274,6 @@ github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfW github.com/prometheus/alertmanager v0.27.0 h1:V6nTa2J5V4s8TG4C4HtrBP/WNSebCCTYGGv4qecA/+I= github.com/prometheus/alertmanager v0.27.0/go.mod h1:8Ia/R3urPmbzJ8OsdvmZvIprDwvwmYCmUbwBL+jlPOE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -1329,8 +1286,6 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= @@ -1343,7 +1298,6 @@ github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57J github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -1352,7 +1306,6 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1364,7 +1317,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= @@ -1485,7 +1437,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/sony/gobreaker v0.5.0 h1:dRCvqm0P490vZPmy7ppEk2qCnCieBooFJ+YoXGYB+yg= @@ -1504,7 +1455,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1514,15 +1464,12 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1543,8 +1490,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= @@ -1555,9 +1502,6 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/testcontainers/testcontainers-go v0.34.0 h1:5fbgF0vIN5u+nD3IWabQwRybuB4GY8G2HHgCkbMzMHo= @@ -1566,12 +1510,10 @@ github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrj github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1579,7 +1521,6 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= @@ -1606,10 +1547,8 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/vektah/gqlparser/v2 v2.5.11 h1:JJxLtXIoN7+3x6MBdtIP59TP1RANnY7pXOaDnADQSf8= github.com/vektah/gqlparser/v2 v2.5.11/go.mod h1:1rCcfwB2ekJofmluGWXMSEnPMZgbxzwj6FaZ/4OT8Cc= github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= @@ -1620,10 +1559,6 @@ github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/ github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= @@ -1631,7 +1566,6 @@ github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGC github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1658,7 +1592,6 @@ go.dedis.ch/kyber/v3 v3.1.0/go.mod h1:kXy7p3STAurkADD+/aZcsznZGKVHEqbtmdIzvPfrs1 go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRLo= go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= @@ -1670,12 +1603,10 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSv go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1749,15 +1680,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1788,7 +1716,6 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= @@ -1803,8 +1730,7 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1834,8 +1760,7 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1843,7 +1768,6 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1894,8 +1818,7 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1932,7 +1855,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1948,7 +1870,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2024,7 +1945,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -2073,7 +1993,6 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -2083,7 +2002,6 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2119,8 +2037,7 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2139,7 +2056,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -2164,7 +2080,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -2175,7 +2090,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -2225,7 +2139,6 @@ google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmE google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -2278,16 +2191,13 @@ gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From b0b8d31ed678b26a912c18066724ac23e09f4ec7 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 6 Jan 2025 08:41:53 -0600 Subject: [PATCH 036/232] go mod tidy --- integration-tests/go.mod | 3 +++ integration-tests/go.sum | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 3f1ed933486..0960d98e7fe 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -212,6 +212,7 @@ require ( github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect github.com/gin-contrib/sse v0.1.0 // indirect @@ -438,6 +439,7 @@ require ( github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect + github.com/status-im/keycard-go v0.2.0 // indirect github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/supranational/blst v0.3.13 // indirect @@ -451,6 +453,7 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/ugorji/go/codec v1.2.12 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 82c40ba03fe..00841d7ca17 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -485,8 +485,8 @@ github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8nta github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.14.12 h1:8hl57x77HSUo+cXExrURjU/w1VhL+ShCTJrTwcCQSe4= -github.com/ethereum/go-ethereum v1.14.12/go.mod h1:RAC2gVMWJ6FkxSPESfbshrcKpIokgQKsVKmAuqdekDY= +github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= +github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= @@ -529,6 +529,8 @@ github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdF github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= github.com/gagliardetto/utilz v0.1.1/go.mod h1:b+rGFkRHz3HWJD0RYMzat47JyvbTtpE0iEcYTRJTLLA= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813/go.mod h1:P+oSoE9yhSRvsmYyZsshflcR6ePWYLql6UU1amW13IM= github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= @@ -1474,6 +1476,8 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1531,6 +1535,8 @@ github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9f github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= From 85dfafdb1916fb4a00cf5e2c5cd55629cc6a7a2b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 6 Jan 2025 08:46:58 -0600 Subject: [PATCH 037/232] tidy --- deployment/go.mod | 2 +- deployment/go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/deployment/go.mod b/deployment/go.mod index 7d9d884fdeb..399dacd527d 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/test-go/testify v1.1.4 github.com/testcontainers/testcontainers-go v0.34.0 go.uber.org/multierr v1.11.0 diff --git a/deployment/go.sum b/deployment/go.sum index 13f345052e0..b4cc32f5371 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1475,8 +1475,9 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= From 9ec6505a5b2f9ed27fb00ac50204e66d756b11f3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 6 Jan 2025 15:19:53 -0600 Subject: [PATCH 038/232] add token indexes --- .../ccip/ccipsolana/executecodec.go | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index d791779627f..12064b014ea 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -96,7 +96,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec Message: message, OffchainTokenData: offchainTokenData, Proofs: solanaProofs, - // TODO: add TokenIndexes in the cciptypes.ExecutePluginReport + TokenIndexes: calculateTokenIndexes(message), } var buf bytes.Buffer @@ -183,6 +183,31 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } +// calculateTokenIndexes calculates TokenIndexes, which is a Solana specific value that marks each of the token transfer accounts starts within the list of accounts +func calculateTokenIndexes(msg ccip_router.Any2SolanaRampMessage) []byte { + // For example: + // accounts_for_message = [a, b, c] + // accounts per token T = [t1, t2, t3, t4] + // accounts per token J = [j1, j2, j3] + // So, the list of accounts will be [a, b, c, t1, t2, t3, t4, j1, j2, j3] and the indexes will be [3, 7] + + tokenIndexes := make([]byte, 0, len(msg.TokenAmounts)) + if len(msg.TokenAmounts) == 0 { + return tokenIndexes + } + + // accounts_for_message = [users_receiver_program_id] + extraArgs.Accounts + counter := len(msg.ExtraArgs.Accounts) + 1 + // TODO: for now it's fixed amount (https://github.com/smartcontractkit/chainlink-ccip/blob/a5e767b178659e220175008ca34a22237fd85195/chains/solana/utils/tokens/tokenpool.go#L170), and there's going to be a sdn provided for calculating accounts per token transfer soon + + for range msg.TokenAmounts { + tokenIndexes = append(tokenIndexes, byte(counter)) + // now fixed amount, later will be calculated using provided SDK + counter += 11 + } + return tokenIndexes +} + func bytesToUint32(b []byte) uint32 { if len(b) < 4 { var padded [4]byte From a5b661d0889c65d4a20dcd26643b43106b8bf267 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 6 Jan 2025 15:28:47 -0600 Subject: [PATCH 039/232] update comment --- core/capabilities/ccip/ccipsolana/executecodec.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 12064b014ea..9ef1f38426c 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -198,11 +198,9 @@ func calculateTokenIndexes(msg ccip_router.Any2SolanaRampMessage) []byte { // accounts_for_message = [users_receiver_program_id] + extraArgs.Accounts counter := len(msg.ExtraArgs.Accounts) + 1 - // TODO: for now it's fixed amount (https://github.com/smartcontractkit/chainlink-ccip/blob/a5e767b178659e220175008ca34a22237fd85195/chains/solana/utils/tokens/tokenpool.go#L170), and there's going to be a sdn provided for calculating accounts per token transfer soon - for range msg.TokenAmounts { + // TODO: for now it's fixed amount (https://github.com/smartcontractkit/chainlink-ccip/blob/a5e767b178659e220175008ca34a22237fd85195/chains/solana/utils/tokens/tokenpool.go#L170), and there's going to be a sdn provided for calculating accounts per token transfer later tokenIndexes = append(tokenIndexes, byte(counter)) - // now fixed amount, later will be calculated using provided SDK counter += 11 } return tokenIndexes From fea59dc6d2cf4adfbea51f6cdf8d5ac58808bfcd Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 6 Jan 2025 17:48:05 -0600 Subject: [PATCH 040/232] add solana and remove evm specific --- .../capabilities/ccip/oraclecreator/plugin.go | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index d4c5596aeaf..bff860cd573 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -12,6 +12,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" + "github.com/smartcontractkit/chainlink/v2/core/services/relay" chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3confighelper" @@ -491,25 +492,27 @@ func createChainWriter( execBatchGasLimit uint64, chainFamily string, ) (types.ContractWriter, error) { - var fromAddress common.Address transmitter, ok := transmitters[types.NewRelayID(chainFamily, chainID)] - if ok { - // TODO: remove EVM-specific stuff - fromAddress = common.HexToAddress(transmitter[0]) - } - - chainWriterRawConfig, err := evmconfig.ChainWriterConfigRaw( - fromAddress, - defaultCommitGasLimit, - execBatchGasLimit, - ) - if err != nil { - return nil, fmt.Errorf("failed to create chain writer config: %w", err) - } + chainWriterConfig := make([]byte, 0) + if chainFamily == relay.NetworkSolana { - chainWriterConfig, err := json.Marshal(chainWriterRawConfig) - if err != nil { - return nil, fmt.Errorf("failed to marshal chain writer config: %w", err) + } else { + var fromAddress common.Address + if ok { + fromAddress = common.HexToAddress(transmitter[0]) + } + chainWriterRawConfig, err := evmconfig.ChainWriterConfigRaw( + fromAddress, + defaultCommitGasLimit, + execBatchGasLimit, + ) + if err != nil { + return nil, fmt.Errorf("failed to create chain writer config: %w", err) + } + chainWriterConfig, err = json.Marshal(chainWriterRawConfig) + if err != nil { + return nil, fmt.Errorf("failed to marshal chain writer config: %w", err) + } } cw, err := relayer.NewContractWriter(ctx, chainWriterConfig) From b0e1bf192e8bb6ae28cc495c047e33f0b3804312 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 11:17:34 -0600 Subject: [PATCH 041/232] add solana config --- .../capabilities/ccip/oraclecreator/plugin.go | 20 ++++++++++++------- go.mod | 2 +- go.sum | 2 ++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index bff860cd573..c529d4825fd 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -41,6 +41,7 @@ import ( "github.com/smartcontractkit/chainlink-ccip/pluginconfig" "github.com/smartcontractkit/chainlink-common/pkg/types" + "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" "github.com/smartcontractkit/chainlink/v2/core/logger" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/services/keystore/keys/ocr2key" @@ -492,12 +493,18 @@ func createChainWriter( execBatchGasLimit uint64, chainFamily string, ) (types.ContractWriter, error) { + var err error transmitter, ok := transmitters[types.NewRelayID(chainFamily, chainID)] - chainWriterConfig := make([]byte, 0) - if chainFamily == relay.NetworkSolana { + var chainWriterConfig []byte + if chainFamily == relay.NetworkSolana { + // TODO once onchain account lookup address are available, create construct function that initialize the config + solConfig := chainwriter.ChainWriterConfig{} + if chainWriterConfig, err = json.Marshal(solConfig); err != nil { + return nil, fmt.Errorf("failed to marshal Solana chain writer config: %w", err) + } } else { - var fromAddress common.Address + fromAddress := common.Address{} if ok { fromAddress = common.HexToAddress(transmitter[0]) } @@ -507,11 +514,10 @@ func createChainWriter( execBatchGasLimit, ) if err != nil { - return nil, fmt.Errorf("failed to create chain writer config: %w", err) + return nil, fmt.Errorf("failed to create EVM chain writer config: %w", err) } - chainWriterConfig, err = json.Marshal(chainWriterRawConfig) - if err != nil { - return nil, fmt.Errorf("failed to marshal chain writer config: %w", err) + if chainWriterConfig, err = json.Marshal(chainWriterRawConfig); err != nil { + return nil, fmt.Errorf("failed to marshal EVM chain writer config: %w", err) } } diff --git a/go.mod b/go.mod index a0b4bca1a87..af96ca832e9 100644 --- a/go.mod +++ b/go.mod @@ -84,7 +84,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 github.com/smartcontractkit/chainlink-feeds v0.1.1 github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index 49520fd1845..525c18a0b57 100644 --- a/go.sum +++ b/go.sum @@ -1163,6 +1163,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 h1:Ea+cqrzM2EVVwcYTVtvlEZHlulo1xUOcKhY1zf9/hfU= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= From 30dcec61219902a7cb86498fd22ce0bbd4f27a67 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 15:19:16 -0600 Subject: [PATCH 042/232] grammar --- core/capabilities/ccip/oraclecreator/plugin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index c529d4825fd..afff69d7a39 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -498,7 +498,7 @@ func createChainWriter( var chainWriterConfig []byte if chainFamily == relay.NetworkSolana { - // TODO once onchain account lookup address are available, create construct function that initialize the config + // TODO once on-chain account lookup address are available, create construct function that initialize the config solConfig := chainwriter.ChainWriterConfig{} if chainWriterConfig, err = json.Marshal(solConfig); err != nil { return nil, fmt.Errorf("failed to marshal Solana chain writer config: %w", err) From ca65513fcfebb11116d7c19b332b0cc68c01600b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 16:43:39 -0600 Subject: [PATCH 043/232] update go mod --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 1 + deployment/go.mod | 2 +- deployment/go.sum | 1 + integration-tests/go.mod | 2 +- integration-tests/go.sum | 1 + integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 1 + 8 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index a9e5130db2c..8945ec36c38 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -309,7 +309,7 @@ require ( github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 7b004d6eae7..243da1aa019 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1176,6 +1176,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07Vb6xUyA9MIJZfErMgWseWi1zf7cYvRpoq7ug= diff --git a/deployment/go.mod b/deployment/go.mod index 34fbc7fd21d..b293d147629 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -411,7 +411,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index a364fc9b1ec..82eb64689a1 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1441,6 +1441,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07Vb6xUyA9MIJZfErMgWseWi1zf7cYvRpoq7ug= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 1c63ac6738e..680700dc584 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -428,7 +428,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 1baff05f3f1..c2f09025872 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1462,6 +1462,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 h1:GDGrC5OGiV0RyM1znYWehSQXyZQWTOzrEeJRYmysPCE= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 04f9b07f93b..b0ed7b4a6f8 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -412,7 +412,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 48bdf1cb5b1..b452bd5e1f5 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1453,6 +1453,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 h1:GDGrC5OGiV0RyM1znYWehSQXyZQWTOzrEeJRYmysPCE= From 7c65545f7b325c259362efcf6ff9bba33aa2c185 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 16:48:48 -0600 Subject: [PATCH 044/232] go mod --- go.mod | 6 ++++++ go.sum | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index af96ca832e9..63952109e8d 100644 --- a/go.mod +++ b/go.mod @@ -151,12 +151,14 @@ require ( github.com/apache/arrow-go/v18 v18.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -206,6 +208,7 @@ require ( github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/gin-contrib/sse v0.1.0 // indirect @@ -248,6 +251,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect @@ -287,6 +291,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mfridman/interpolate v0.0.2 // indirect + github.com/miekg/dns v1.1.61 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -314,6 +319,7 @@ require ( github.com/rivo/uniseg v0.4.4 // indirect github.com/rs/cors v1.9.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/go.sum b/go.sum index 525c18a0b57..55d0c2010c6 100644 --- a/go.sum +++ b/go.sum @@ -266,6 +266,8 @@ github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AK github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0 h1:icCHutJouWlQREayFwCc7lxDAhws08td+W3/gdqgZts= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0/go.mod h1:/VTy8iEpe6mD9pkCH5BhijlUl8ulUXymKv1Qig5Rgb8= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= @@ -406,6 +408,7 @@ github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyO github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -866,6 +869,8 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/linkedin/goavro/v2 v2.12.0 h1:rIQQSj8jdAUlKQh6DttK8wCRv4t4QO09g1C4aBWXslg= +github.com/linkedin/goavro/v2 v2.12.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= @@ -913,6 +918,7 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= @@ -1080,6 +1086,8 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5 github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/riferrei/srclient v0.5.4 h1:dfwyR5u23QF7beuVl2WemUY2KXh5+Sc4DHKyPXBNYuc= +github.com/riferrei/srclient v0.5.4/go.mod h1:vbkLmWcgYa7JgfPvuy/+K8fTS0p1bApqadxrxi/S1MI= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -1161,8 +1169,6 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 h1:Ea+cqrzM2EVVwcYTVtvlEZHlulo1xUOcKhY1zf9/hfU= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= @@ -1612,6 +1618,7 @@ golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From 33b0c11509a77c21ee84adc098dd52681262fcb8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 17:02:26 -0600 Subject: [PATCH 045/232] update --- integration-tests/load/go.mod | 5 +++++ integration-tests/load/go.sum | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index b0ed7b4a6f8..9cd2fdd0f05 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -96,6 +96,7 @@ require ( github.com/aws/constructs-go/constructs/v10 v10.4.2 // indirect github.com/aws/jsii-runtime-go v1.104.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect @@ -106,6 +107,7 @@ require ( github.com/blang/semver/v4 v4.0.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -185,6 +187,7 @@ require ( github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/solana-go v1.8.4 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect @@ -263,6 +266,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/api v1.29.2 // indirect github.com/hashicorp/consul/sdk v0.16.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -389,6 +393,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index b452bd5e1f5..023ad98998e 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -364,6 +364,8 @@ github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AK github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0 h1:icCHutJouWlQREayFwCc7lxDAhws08td+W3/gdqgZts= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0/go.mod h1:/VTy8iEpe6mD9pkCH5BhijlUl8ulUXymKv1Qig5Rgb8= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= @@ -539,6 +541,7 @@ github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyO github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -1085,6 +1088,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/linkedin/goavro/v2 v2.12.0 h1:rIQQSj8jdAUlKQh6DttK8wCRv4t4QO09g1C4aBWXslg= +github.com/linkedin/goavro/v2 v2.12.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= github.com/linode/linodego v1.37.0 h1:B/2Spzv9jYXzKA+p+GD8fVCNJ7Wuw6P91ZDD9eCkkso= github.com/linode/linodego v1.37.0/go.mod h1:L7GXKFD3PoN2xSEtFc04wIXP5WK65O10jYQx0PQISWQ= github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= @@ -1138,6 +1143,7 @@ github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6B github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= @@ -1353,6 +1359,8 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= +github.com/riferrei/srclient v0.5.4 h1:dfwyR5u23QF7beuVl2WemUY2KXh5+Sc4DHKyPXBNYuc= +github.com/riferrei/srclient v0.5.4/go.mod h1:vbkLmWcgYa7JgfPvuy/+K8fTS0p1bApqadxrxi/S1MI= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -1451,8 +1459,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 h1:Ea+cqrzM2EVVwcYTVtvlEZHlulo1xUOcKhY1zf9/hfU= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= From cedd67f5812c277300c86a93756e5449d5e3a6e0 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 17:06:04 -0600 Subject: [PATCH 046/232] update --- integration-tests/go.mod | 5 +++++ integration-tests/go.sum | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 680700dc584..c777346600f 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -127,6 +127,7 @@ require ( github.com/aws/constructs-go/constructs/v10 v10.4.2 // indirect github.com/aws/jsii-runtime-go v1.104.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/benbjohnson/clock v1.3.5 // indirect @@ -136,6 +137,7 @@ require ( github.com/blang/semver/v4 v4.0.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -214,6 +216,7 @@ require ( github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/solana-go v1.8.4 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect @@ -289,6 +292,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/api v1.29.2 // indirect github.com/hashicorp/consul/sdk v0.16.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -411,6 +415,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index c2f09025872..a77c791243b 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -370,6 +370,8 @@ github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AK github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0 h1:icCHutJouWlQREayFwCc7lxDAhws08td+W3/gdqgZts= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0/go.mod h1:/VTy8iEpe6mD9pkCH5BhijlUl8ulUXymKv1Qig5Rgb8= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= @@ -545,6 +547,7 @@ github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyO github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -1089,6 +1092,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/linkedin/goavro/v2 v2.12.0 h1:rIQQSj8jdAUlKQh6DttK8wCRv4t4QO09g1C4aBWXslg= +github.com/linkedin/goavro/v2 v2.12.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= github.com/linode/linodego v1.37.0 h1:B/2Spzv9jYXzKA+p+GD8fVCNJ7Wuw6P91ZDD9eCkkso= github.com/linode/linodego v1.37.0/go.mod h1:L7GXKFD3PoN2xSEtFc04wIXP5WK65O10jYQx0PQISWQ= github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= @@ -1144,6 +1149,7 @@ github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6B github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= @@ -1363,6 +1369,8 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= +github.com/riferrei/srclient v0.5.4 h1:dfwyR5u23QF7beuVl2WemUY2KXh5+Sc4DHKyPXBNYuc= +github.com/riferrei/srclient v0.5.4/go.mod h1:vbkLmWcgYa7JgfPvuy/+K8fTS0p1bApqadxrxi/S1MI= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -1460,8 +1468,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 h1:Ea+cqrzM2EVVwcYTVtvlEZHlulo1xUOcKhY1zf9/hfU= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= From 0034d01ebf1171b755e105bf405bcf566922b9b7 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 17:06:53 -0600 Subject: [PATCH 047/232] changeset --- .changeset/old-pets-divide.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/old-pets-divide.md diff --git a/.changeset/old-pets-divide.md b/.changeset/old-pets-divide.md new file mode 100644 index 00000000000..9586d283f42 --- /dev/null +++ b/.changeset/old-pets-divide.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +Add solana chain writer config initialization #added From 484f961cfd35f7e4d2c05b56e762b8e998510b1b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 17:14:50 -0600 Subject: [PATCH 048/232] update --- deployment/go.mod | 5 +++++ deployment/go.sum | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/deployment/go.mod b/deployment/go.mod index b293d147629..83a3a5096b7 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -104,6 +104,7 @@ require ( github.com/aws/constructs-go/constructs/v10 v10.4.2 // indirect github.com/aws/jsii-runtime-go v1.104.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/benbjohnson/clock v1.3.5 // indirect @@ -114,6 +115,7 @@ require ( github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -192,6 +194,7 @@ require ( github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/solana-go v1.8.4 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect @@ -268,6 +271,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/api v1.29.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect @@ -393,6 +397,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index 82eb64689a1..7020cfc692d 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -368,6 +368,8 @@ github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AK github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0 h1:icCHutJouWlQREayFwCc7lxDAhws08td+W3/gdqgZts= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0/go.mod h1:/VTy8iEpe6mD9pkCH5BhijlUl8ulUXymKv1Qig5Rgb8= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= @@ -543,6 +545,7 @@ github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyO github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -1082,6 +1085,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/linkedin/goavro/v2 v2.12.0 h1:rIQQSj8jdAUlKQh6DttK8wCRv4t4QO09g1C4aBWXslg= +github.com/linkedin/goavro/v2 v2.12.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= github.com/linode/linodego v1.37.0 h1:B/2Spzv9jYXzKA+p+GD8fVCNJ7Wuw6P91ZDD9eCkkso= github.com/linode/linodego v1.37.0/go.mod h1:L7GXKFD3PoN2xSEtFc04wIXP5WK65O10jYQx0PQISWQ= github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= @@ -1135,6 +1140,7 @@ github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6B github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= @@ -1346,6 +1352,8 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= +github.com/riferrei/srclient v0.5.4 h1:dfwyR5u23QF7beuVl2WemUY2KXh5+Sc4DHKyPXBNYuc= +github.com/riferrei/srclient v0.5.4/go.mod h1:vbkLmWcgYa7JgfPvuy/+K8fTS0p1bApqadxrxi/S1MI= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -1439,8 +1447,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 h1:Ea+cqrzM2EVVwcYTVtvlEZHlulo1xUOcKhY1zf9/hfU= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= @@ -1759,6 +1766,7 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= From e79f19e62a4a44e915aeab5a2041cfac5b2cf221 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 17:35:50 -0600 Subject: [PATCH 049/232] refactor --- core/capabilities/ccip/oraclecreator/plugin.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index afff69d7a39..ffe33861205 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -494,21 +494,23 @@ func createChainWriter( chainFamily string, ) (types.ContractWriter, error) { var err error - transmitter, ok := transmitters[types.NewRelayID(chainFamily, chainID)] var chainWriterConfig []byte + transmitter, ok := transmitters[types.NewRelayID(chainFamily, chainID)] - if chainFamily == relay.NetworkSolana { + switch chainFamily { + case relay.NetworkSolana: // TODO once on-chain account lookup address are available, create construct function that initialize the config solConfig := chainwriter.ChainWriterConfig{} if chainWriterConfig, err = json.Marshal(solConfig); err != nil { return nil, fmt.Errorf("failed to marshal Solana chain writer config: %w", err) } - } else { + case relay.NetworkEVM: + var evmConfig evmrelaytypes.ChainWriterConfig fromAddress := common.Address{} if ok { fromAddress = common.HexToAddress(transmitter[0]) } - chainWriterRawConfig, err := evmconfig.ChainWriterConfigRaw( + evmConfig, err = evmconfig.ChainWriterConfigRaw( fromAddress, defaultCommitGasLimit, execBatchGasLimit, @@ -516,9 +518,11 @@ func createChainWriter( if err != nil { return nil, fmt.Errorf("failed to create EVM chain writer config: %w", err) } - if chainWriterConfig, err = json.Marshal(chainWriterRawConfig); err != nil { + if chainWriterConfig, err = json.Marshal(evmConfig); err != nil { return nil, fmt.Errorf("failed to marshal EVM chain writer config: %w", err) } + default: + return nil, fmt.Errorf("unknown chain family %s", chainFamily) } cw, err := relayer.NewContractWriter(ctx, chainWriterConfig) From c89caa7078b072535c91bb3a4b43de27e01916fc Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 7 Jan 2025 17:41:07 -0600 Subject: [PATCH 050/232] update --- core/scripts/go.mod | 6 ++++++ core/scripts/go.sum | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 8945ec36c38..b28ee5a1bc1 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -74,6 +74,7 @@ require ( github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c // indirect github.com/avast/retry-go/v4 v4.6.0 // indirect github.com/aws/aws-sdk-go v1.54.19 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -81,6 +82,7 @@ require ( github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -141,6 +143,7 @@ require ( github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/solana-go v1.8.4 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect @@ -202,6 +205,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/sdk v0.16.1 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -256,6 +260,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mfridman/interpolate v0.0.2 // indirect + github.com/miekg/dns v1.1.61 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -292,6 +297,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 243da1aa019..b2c679f9d82 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -259,6 +259,8 @@ github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AK github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0 h1:icCHutJouWlQREayFwCc7lxDAhws08td+W3/gdqgZts= +github.com/confluentinc/confluent-kafka-go/v2 v2.3.0/go.mod h1:/VTy8iEpe6mD9pkCH5BhijlUl8ulUXymKv1Qig5Rgb8= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= @@ -407,6 +409,7 @@ github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyO github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -877,6 +880,8 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/linkedin/goavro/v2 v2.12.0 h1:rIQQSj8jdAUlKQh6DttK8wCRv4t4QO09g1C4aBWXslg= +github.com/linkedin/goavro/v2 v2.12.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= @@ -925,6 +930,7 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= @@ -1090,6 +1096,8 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5 github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/riferrei/srclient v0.5.4 h1:dfwyR5u23QF7beuVl2WemUY2KXh5+Sc4DHKyPXBNYuc= +github.com/riferrei/srclient v0.5.4/go.mod h1:vbkLmWcgYa7JgfPvuy/+K8fTS0p1bApqadxrxi/S1MI= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -1174,8 +1182,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798 h1:Ea+cqrzM2EVVwcYTVtvlEZHlulo1xUOcKhY1zf9/hfU= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250103164418-319e58e52798/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= @@ -1624,6 +1631,7 @@ golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From c0be8d47a82418f4ba7e0ec7122b209c8094f211 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 8 Jan 2025 15:49:25 -0600 Subject: [PATCH 051/232] refactor --- .../capabilities/ccip/oraclecreator/plugin.go | 57 +++++++------------ 1 file changed, 22 insertions(+), 35 deletions(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index ffe33861205..39d50c53204 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -5,7 +5,6 @@ import ( "encoding/json" "fmt" "io" - "math/big" "time" "github.com/ethereum/go-ethereum/common" @@ -21,8 +20,6 @@ import ( evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" cctypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/types" - "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" - "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" "github.com/smartcontractkit/chainlink/v2/core/services/ocr3/promwrapper" "github.com/smartcontractkit/libocr/commontypes" @@ -485,6 +482,23 @@ func isUSDCEnabled(ofc offChainConfig) bool { return ofc.exec().IsUSDCEnabled() } +// TODO once on-chain account lookup address are available, create construct function that initialize the config +func getSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { + solConfig := chainwriter.ChainWriterConfig{ + Programs: map[string]chainwriter.ProgramConfig{ + "ccip-router": { + Methods: map[string]chainwriter.MethodConfig{ + //"execute": executeConfig, + //"commit": commitConfig, + }, + //IDL: executionReportSingleChainIDL, + }, + }, + } + + return solConfig, nil +} + func createChainWriter( ctx context.Context, chainID string, @@ -499,8 +513,10 @@ func createChainWriter( switch chainFamily { case relay.NetworkSolana: - // TODO once on-chain account lookup address are available, create construct function that initialize the config solConfig := chainwriter.ChainWriterConfig{} + if solConfig, err = getSolanaChainWriterConfig(transmitter[0]); err == nil { + return nil, fmt.Errorf("failed to get Solana chain writer config: %w", err) + } if chainWriterConfig, err = json.Marshal(solConfig); err != nil { return nil, fmt.Errorf("failed to marshal Solana chain writer config: %w", err) } @@ -510,12 +526,10 @@ func createChainWriter( if ok { fromAddress = common.HexToAddress(transmitter[0]) } - evmConfig, err = evmconfig.ChainWriterConfigRaw( + if evmConfig, err = evmconfig.ChainWriterConfigRaw( fromAddress, defaultCommitGasLimit, - execBatchGasLimit, - ) - if err != nil { + execBatchGasLimit); err != nil { return nil, fmt.Errorf("failed to create EVM chain writer config: %w", err) } if chainWriterConfig, err = json.Marshal(evmConfig); err != nil { @@ -533,33 +547,6 @@ func createChainWriter( return cw, nil } -func getKeySpecificMaxGasPrice(evmConfigs toml.EVMConfigs, chainID *big.Int, fromAddress common.Address) *assets.Wei { - var maxGasPrice *assets.Wei - - // If a chain is enabled it should have some configuration in the TOML config - // of the chainlink node. - for _, config := range evmConfigs { - if config.ChainID.ToInt().Cmp(chainID) != 0 { - continue - } - - // find the key-specific max gas price for the given fromAddress. - for _, keySpecific := range config.KeySpecific { - if keySpecific.Key.Address() == fromAddress { - maxGasPrice = keySpecific.GasEstimator.PriceMax - } - } - - // if we didn't find a key-specific max gas price, use the one specified - // in the gas estimator config, which should have a default value. - if maxGasPrice == nil { - maxGasPrice = config.GasEstimator.PriceMax - } - } - - return maxGasPrice -} - type offChainConfig struct { commitOffchainConfig *pluginconfig.CommitOffchainConfig execOffchainConfig *pluginconfig.ExecuteOffchainConfig From 9bdf1eae0e8843ecb0de38d86cbb155bfdce86a8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 8 Jan 2025 16:23:32 -0600 Subject: [PATCH 052/232] update lint --- core/capabilities/ccip/oraclecreator/plugin.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 39d50c53204..4704b66972f 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -482,16 +482,23 @@ func isUSDCEnabled(ofc offChainConfig) bool { return ofc.exec().IsUSDCEnabled() } -// TODO once on-chain account lookup address are available, create construct function that initialize the config +// TODO once on-chain account lookup address are available, the config will be updated func getSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { solConfig := chainwriter.ChainWriterConfig{ Programs: map[string]chainwriter.ProgramConfig{ "ccip-router": { Methods: map[string]chainwriter.MethodConfig{ - //"execute": executeConfig, - //"commit": commitConfig, + "execute": { + FromAddress: fromAddress, + InputModifications: nil, + ChainSpecificName: "execute"}, + "commit": { + FromAddress: fromAddress, + InputModifications: nil, + ChainSpecificName: "commit"}, }, - //IDL: executionReportSingleChainIDL, + // TODO this IDL definition configured statically somewhere or passed in as parameter + IDL: `{"name":"ExecutionReportSingleChain","type":{"kind":"struct","fields":[{"name":"source_chain_selector","type":"u64"},{"name":"message","type":{"defined":"Any2SolanaRampMessage"}},{"name":"root","type":{"array":["u8",32]}},{"name":"proofs","type":{"vec":{"array":["u8",32]}}}]}},{"name":"Any2SolanaRampMessage","type":{"kind":"struct","fields":[{"name":"header","type":{"defined":"RampMessageHeader"}},{"name":"sender","type":{"vec":"u8"}},{"name":"data","type":{"vec":"u8"}},{"name":"receiver","type":{"array":["u8",32]}},{"name":"extra_args","type":{"defined":"SolanaExtraArgs"}}]}},{"name":"RampMessageHeader","type":{"kind":"struct","fields":[{"name":"message_id","type":{"array":["u8",32]}},{"name":"source_chain_selector","type":"u64"},{"name":"dest_chain_selector","type":"u64"},{"name":"sequence_number","type":"u64"},{"name":"nonce","type":"u64"}]}},{"name":"SolanaExtraArgs","type":{"kind":"struct","fields":[{"name":"compute_units","type":"u32"},{"name":"allow_out_of_order_execution","type":"bool"}]}}`, }, }, } From acf9592be4c44f7bc045a68e61d62fcd505c56b3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 8 Jan 2025 16:37:45 -0600 Subject: [PATCH 053/232] fix lint --- core/capabilities/ccip/oraclecreator/plugin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 4704b66972f..df2de8a609e 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -520,7 +520,7 @@ func createChainWriter( switch chainFamily { case relay.NetworkSolana: - solConfig := chainwriter.ChainWriterConfig{} + var solConfig chainwriter.ChainWriterConfig if solConfig, err = getSolanaChainWriterConfig(transmitter[0]); err == nil { return nil, fmt.Errorf("failed to get Solana chain writer config: %w", err) } From 609e7089de879d7a4c4e49ad8692a613b40be8f9 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 8 Jan 2025 18:07:16 -0600 Subject: [PATCH 054/232] add chain reader config to plugin creator --- .../capabilities/ccip/oraclecreator/plugin.go | 65 ++++++++++++------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index d4c5596aeaf..38fe423cb7a 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -12,6 +12,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" + "github.com/smartcontractkit/chainlink/v2/core/services/relay" chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3confighelper" @@ -40,6 +41,7 @@ import ( "github.com/smartcontractkit/chainlink-ccip/pluginconfig" "github.com/smartcontractkit/chainlink-common/pkg/types" + "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" "github.com/smartcontractkit/chainlink/v2/core/logger" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/services/keystore/keys/ocr2key" @@ -343,7 +345,7 @@ func (i *pluginOracleCreator) createReadersAndWriters( return nil, nil, fmt.Errorf("failed to get chain selector from chain ID %s: %w", chainID, err1) } - chainReaderConfig, err1 := getChainReaderConfig(i.lggr, chainID, destChainID, homeChainID, ofc, chainSelector) + chainReaderConfig, err1 := getChainReaderConfig(i.lggr, chainID, destChainID, homeChainID, ofc, chainSelector, destChainFamily) if err1 != nil { return nil, nil, fmt.Errorf("failed to get chain reader config: %w", err1) } @@ -444,35 +446,50 @@ func getChainReaderConfig( homeChainID string, ofc offChainConfig, chainSelector cciptypes.ChainSelector, + chainFamily string, ) ([]byte, error) { - var chainReaderConfig evmrelaytypes.ChainReaderConfig - if chainID == destChainID { - chainReaderConfig = evmconfig.DestReaderConfig - } else { - chainReaderConfig = evmconfig.SourceReaderConfig - } + switch chainFamily { + case relay.NetworkEVM: + var chainReaderConfig evmrelaytypes.ChainReaderConfig + if chainID == destChainID { + chainReaderConfig = evmconfig.DestReaderConfig + } else { + chainReaderConfig = evmconfig.SourceReaderConfig + } - if !ofc.commitEmpty() && ofc.commit().PriceFeedChainSelector == chainSelector { - lggr.Debugw("Adding feed reader config", "chainID", chainID) - chainReaderConfig = evmconfig.MergeReaderConfigs(chainReaderConfig, evmconfig.FeedReaderConfig) - } + if !ofc.commitEmpty() && ofc.commit().PriceFeedChainSelector == chainSelector { + lggr.Debugw("Adding feed reader config", "chainID", chainID) + chainReaderConfig = evmconfig.MergeReaderConfigs(chainReaderConfig, evmconfig.FeedReaderConfig) + } - if isUSDCEnabled(ofc) { - lggr.Debugw("Adding USDC reader config", "chainID", chainID) - chainReaderConfig = evmconfig.MergeReaderConfigs(chainReaderConfig, evmconfig.USDCReaderConfig) - } + if isUSDCEnabled(ofc) { + lggr.Debugw("Adding USDC reader config", "chainID", chainID) + chainReaderConfig = evmconfig.MergeReaderConfigs(chainReaderConfig, evmconfig.USDCReaderConfig) + } - if chainID == homeChainID { - lggr.Debugw("Adding home chain reader config", "chainID", chainID) - chainReaderConfig = evmconfig.MergeReaderConfigs(chainReaderConfig, evmconfig.HomeChainReaderConfigRaw) - } + if chainID == homeChainID { + lggr.Debugw("Adding home chain reader config", "chainID", chainID) + chainReaderConfig = evmconfig.MergeReaderConfigs(chainReaderConfig, evmconfig.HomeChainReaderConfigRaw) + } - marshaledConfig, err := json.Marshal(chainReaderConfig) - if err != nil { - return nil, fmt.Errorf("failed to marshal chain reader config: %w", err) - } + marshaledConfig, err := json.Marshal(chainReaderConfig) + if err != nil { + return nil, fmt.Errorf("failed to marshal chain reader config: %w", err) + } + + return marshaledConfig, nil + case relay.NetworkSolana: + // TODO initialize chain reader config + var cfg config.ChainReader + marshaledConfig, err := json.Marshal(cfg) + if err != nil { + return nil, fmt.Errorf("failed to marshal chain reader config: %w", err) + } - return marshaledConfig, nil + return marshaledConfig, nil + default: + return nil, fmt.Errorf("unsupported chain family %s", chainFamily) + } } func isUSDCEnabled(ofc offChainConfig) bool { From 447c09331f626097b4247b12fbc89743b555545d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 8 Jan 2025 18:10:28 -0600 Subject: [PATCH 055/232] update changeset --- .changeset/mighty-waves-change.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/mighty-waves-change.md diff --git a/.changeset/mighty-waves-change.md b/.changeset/mighty-waves-change.md new file mode 100644 index 00000000000..f84a1932bb2 --- /dev/null +++ b/.changeset/mighty-waves-change.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +add solana chain reader config support to plugin creator, remove evm specific code #added From f48bb971621254cdcb78cfa9b40655e9415c0643 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 9 Jan 2025 10:26:26 -0600 Subject: [PATCH 056/232] Part 1 for Prashant comments --- .../ccip/configs/solana/ccip_router.json | 3383 +++++++++++++++++ .../ccip/configs/solana/chain_writer.go | 49 + .../ccip/configs/solana/chain_writer_test.go | 37 + .../capabilities/ccip/oraclecreator/plugin.go | 27 +- 4 files changed, 3471 insertions(+), 25 deletions(-) create mode 100644 core/capabilities/ccip/configs/solana/ccip_router.json create mode 100644 core/capabilities/ccip/configs/solana/chain_writer.go create mode 100644 core/capabilities/ccip/configs/solana/chain_writer_test.go diff --git a/core/capabilities/ccip/configs/solana/ccip_router.json b/core/capabilities/ccip/configs/solana/ccip_router.json new file mode 100644 index 00000000000..a0448397703 --- /dev/null +++ b/core/capabilities/ccip/configs/solana/ccip_router.json @@ -0,0 +1,3383 @@ +{ + "version": "0.1.0-dev", + "name": "ccip_router", + "docs": [ + "The `ccip_router` module contains the implementation of the Cross-Chain Interoperability Protocol (CCIP) Router.", + "", + "This is the Collapsed Router Program for CCIP.", + "As it's upgradable persisting the same program id, there is no need to have an indirection of a Proxy Program.", + "This Router handles both the OnRamp and OffRamp flow of the CCIP Messages." + ], + "constants": [ + { + "name": "MAX_ORACLES", + "type": { + "defined": "usize" + }, + "value": "16" + } + ], + "instructions": [ + { + "name": "initialize", + "docs": [ + "Initializes the CCIP Router.", + "", + "The initialization of the Router is responsibility of Admin, nothing more than calling this method should be done first.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for initialization.", + "* `solana_chain_selector` - The chain selector for Solana.", + "* `default_gas_limit` - The default gas limit for other destination chains.", + "* `default_allow_out_of_order_execution` - Whether out-of-order execution is allowed by default for other destination chains.", + "* `enable_execution_after` - The minimum amount of time required between a message has been committed and can be manually executed." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "state", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + }, + { + "name": "programData", + "isMut": false, + "isSigner": false + }, + { + "name": "externalExecutionConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenPoolsSigner", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "solanaChainSelector", + "type": "u64" + }, + { + "name": "defaultGasLimit", + "type": "u128" + }, + { + "name": "defaultAllowOutOfOrderExecution", + "type": "bool" + }, + { + "name": "enableExecutionAfter", + "type": "i64" + }, + { + "name": "feeAggregator", + "type": "publicKey" + } + ] + }, + { + "name": "transferOwnership", + "docs": [ + "Transfers the ownership of the router to a new proposed owner.", + "", + "Shared func signature with other programs", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for the transfer.", + "* `proposed_owner` - The public key of the new proposed owner." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "proposedOwner", + "type": "publicKey" + } + ] + }, + { + "name": "acceptOwnership", + "docs": [ + "Accepts the ownership of the router by the proposed owner.", + "", + "Shared func signature with other programs", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for accepting ownership.", + "The new owner must be a signer of the transaction." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [] + }, + { + "name": "updateFeeAggregator", + "docs": [ + "Updates the fee aggregator in the router configuration.", + "The Admin is the only one able to update the fee aggregator.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the configuration.", + "* `fee_aggregator` - The new fee aggregator address (ATAs will be derived for it for each token)." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "feeAggregator", + "type": "publicKey" + } + ] + }, + { + "name": "addChainSelector", + "docs": [ + "Adds a new chain selector to the router.", + "", + "The Admin needs to add any new chain supported (this means both OnRamp and OffRamp).", + "When adding a new chain, the Admin needs to specify if it's enabled or not.", + "They may enable only source, or only destination, or neither, or both.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for adding the chain selector.", + "* `new_chain_selector` - The new chain selector to be added.", + "* `source_chain_config` - The configuration for the chain as source.", + "* `dest_chain_config` - The configuration for the chain as destination." + ], + "accounts": [ + { + "name": "sourceChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "destChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "newChainSelector", + "type": "u64" + }, + { + "name": "sourceChainConfig", + "type": { + "defined": "SourceChainConfig" + } + }, + { + "name": "destChainConfig", + "type": { + "defined": "DestChainConfig" + } + } + ] + }, + { + "name": "disableSourceChainSelector", + "docs": [ + "Disables the source chain selector.", + "", + "The Admin is the only one able to disable the chain selector as source. This method is thought of as an emergency kill-switch.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for disabling the chain selector.", + "* `source_chain_selector` - The source chain selector to be disabled." + ], + "accounts": [ + { + "name": "sourceChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "sourceChainSelector", + "type": "u64" + } + ] + }, + { + "name": "disableDestChainSelector", + "docs": [ + "Disables the destination chain selector.", + "", + "The Admin is the only one able to disable the chain selector as destination. This method is thought of as an emergency kill-switch.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for disabling the chain selector.", + "* `dest_chain_selector` - The destination chain selector to be disabled." + ], + "accounts": [ + { + "name": "destChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "destChainSelector", + "type": "u64" + } + ] + }, + { + "name": "updateSourceChainConfig", + "docs": [ + "Updates the configuration of the source chain selector.", + "", + "The Admin is the only one able to update the source chain config.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the chain selector.", + "* `source_chain_selector` - The source chain selector to be updated.", + "* `source_chain_config` - The new configuration for the source chain." + ], + "accounts": [ + { + "name": "sourceChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "sourceChainSelector", + "type": "u64" + }, + { + "name": "sourceChainConfig", + "type": { + "defined": "SourceChainConfig" + } + } + ] + }, + { + "name": "updateDestChainConfig", + "docs": [ + "Updates the configuration of the destination chain selector.", + "", + "The Admin is the only one able to update the destination chain config.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the chain selector.", + "* `dest_chain_selector` - The destination chain selector to be updated.", + "* `dest_chain_config` - The new configuration for the destination chain." + ], + "accounts": [ + { + "name": "destChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "destChainSelector", + "type": "u64" + }, + { + "name": "destChainConfig", + "type": { + "defined": "DestChainConfig" + } + } + ] + }, + { + "name": "updateSolanaChainSelector", + "docs": [ + "Updates the Solana chain selector in the router configuration.", + "", + "This method should only be used if there was an error with the initial configuration or if the solana chain selector changes.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the configuration.", + "* `new_chain_selector` - The new chain selector for Solana." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "newChainSelector", + "type": "u64" + } + ] + }, + { + "name": "updateDefaultGasLimit", + "docs": [ + "Updates the default gas limit in the router configuration.", + "", + "This change affects the default value for gas limit on every other destination chain.", + "The Admin is the only one able to update the default gas limit.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the configuration.", + "* `new_gas_limit` - The new default gas limit." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "newGasLimit", + "type": "u128" + } + ] + }, + { + "name": "updateDefaultAllowOutOfOrderExecution", + "docs": [ + "Updates the default setting for allowing out-of-order execution for other destination chains.", + "The Admin is the only one able to update this config.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the configuration.", + "* `new_allow_out_of_order_execution` - The new setting for allowing out-of-order execution." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "newAllowOutOfOrderExecution", + "type": "bool" + } + ] + }, + { + "name": "updateEnableManualExecutionAfter", + "docs": [ + "Updates the minimum amount of time required between a message being committed and when it can be manually executed.", + "", + "This is part of the OffRamp Configuration for Solana.", + "The Admin is the only one able to update this config.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the configuration.", + "* `new_enable_manual_execution_after` - The new minimum amount of time required." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "newEnableManualExecutionAfter", + "type": "i64" + } + ] + }, + { + "name": "registerTokenAdminRegistryViaGetCcipAdmin", + "docs": [ + "Registers the Token Admin Registry via the CCIP Admin", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for registration.", + "* `mint` - The public key of the token mint.", + "* `token_admin_registry_admin` - The public key of the token admin registry admin." + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenAdminRegistry", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "tokenAdminRegistryAdmin", + "type": "publicKey" + } + ] + }, + { + "name": "registerTokenAdminRegistryViaOwner", + "docs": [ + "Registers the Token Admin Registry via the token owner.", + "", + "The Authority of the Mint Token can claim the registry of the token.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for registration." + ], + "accounts": [ + { + "name": "tokenAdminRegistry", + "isMut": true, + "isSigner": false + }, + { + "name": "mint", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setPool", + "docs": [ + "Sets the pool lookup table for a given token mint.", + "", + "The administrator of the token admin registry can set the pool lookup table for a given token mint.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for setting the pool.", + "* `mint` - The public key of the token mint.", + "* `pool_lookup_table` - The public key of the pool lookup table, this address will be used for validations when interacting with the pool." + ], + "accounts": [ + { + "name": "tokenAdminRegistry", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "poolLookupTable", + "type": "publicKey" + } + ] + }, + { + "name": "transferAdminRoleTokenAdminRegistry", + "docs": [ + "Transfers the admin role of the token admin registry to a new admin.", + "", + "Only the Admin can transfer the Admin Role of the Token Admin Registry, this setups the Pending Admin and then it's their responsibility to accept the role.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for the transfer.", + "* `mint` - The public key of the token mint.", + "* `new_admin` - The public key of the new admin." + ], + "accounts": [ + { + "name": "tokenAdminRegistry", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "newAdmin", + "type": "publicKey" + } + ] + }, + { + "name": "acceptAdminRoleTokenAdminRegistry", + "docs": [ + "Accepts the admin role of the token admin registry.", + "", + "The Pending Admin must call this function to accept the admin role of the Token Admin Registry.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for accepting the admin role.", + "* `mint` - The public key of the token mint." + ], + "accounts": [ + { + "name": "tokenAdminRegistry", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "mint", + "type": "publicKey" + } + ] + }, + { + "name": "setTokenBilling", + "docs": [ + "Sets the token billing configuration.", + "", + "Only CCIP Admin can set the token billing configuration.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for setting the token billing configuration.", + "* `_chain_selector` - The chain selector.", + "* `_mint` - The public key of the token mint.", + "* `cfg` - The token billing configuration." + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "perChainPerTokenConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "chainSelector", + "type": "u64" + }, + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "cfg", + "type": { + "defined": "TokenBilling" + } + } + ] + }, + { + "name": "setOcrConfig", + "docs": [ + "Sets the OCR configuration.", + "Only CCIP Admin can set the OCR configuration.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for setting the OCR configuration.", + "* `plugin_type` - The type of OCR plugin [0: Commit, 1: Execution].", + "* `config_info` - The OCR configuration information.", + "* `signers` - The list of signers.", + "* `transmitters` - The list of transmitters." + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "state", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "pluginType", + "type": "u8" + }, + { + "name": "configInfo", + "type": { + "defined": "Ocr3ConfigInfo" + } + }, + { + "name": "signers", + "type": { + "vec": { + "array": [ + "u8", + 20 + ] + } + } + }, + { + "name": "transmitters", + "type": { + "vec": "publicKey" + } + } + ] + }, + { + "name": "addBillingTokenConfig", + "docs": [ + "Adds a billing token configuration.", + "Only CCIP Admin can add a billing token configuration.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for adding the billing token configuration.", + "* `config` - The billing token configuration to be added." + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "billingTokenConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "feeBillingSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "config", + "type": { + "defined": "BillingTokenConfig" + } + } + ] + }, + { + "name": "updateBillingTokenConfig", + "docs": [ + "Updates the billing token configuration.", + "Only CCIP Admin can update a billing token configuration.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for updating the billing token configuration.", + "* `config` - The new billing token configuration." + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "billingTokenConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "config", + "type": { + "defined": "BillingTokenConfig" + } + } + ] + }, + { + "name": "removeBillingTokenConfig", + "docs": [ + "Removes the billing token configuration.", + "Only CCIP Admin can remove a billing token configuration.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for removing the billing token configuration." + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "billingTokenConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "feeBillingSigner", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "getFee", + "docs": [ + "Calculates the fee for sending a message to the destination chain.", + "", + "# Arguments", + "", + "* `_ctx` - The context containing the accounts required for the fee calculation.", + "* `dest_chain_selector` - The chain selector for the destination chain.", + "* `message` - The message to be sent.", + "", + "# Returns", + "", + "The fee amount in u64." + ], + "accounts": [ + { + "name": "destChainState", + "isMut": false, + "isSigner": false + }, + { + "name": "billingTokenConfig", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "destChainSelector", + "type": "u64" + }, + { + "name": "message", + "type": { + "defined": "Solana2AnyMessage" + } + } + ], + "returns": "u64" + }, + { + "name": "withdrawBilledFunds", + "docs": [ + "Transfers the accumulated billed fees in a particular token to an arbitrary token account.", + "Only the CCIP Admin can withdraw billed funds.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for the transfer of billed fees.", + "* `transfer_all` - A flag indicating whether to transfer all the accumulated fees in that token or not.", + "* `desired_amount` - The amount to transfer. If `transfer_all` is true, this value must be 0." + ], + "accounts": [ + { + "name": "feeTokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenAccum", + "isMut": true, + "isSigner": false + }, + { + "name": "recipient", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "feeBillingSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "transferAll", + "type": "bool" + }, + { + "name": "desiredAmount", + "type": "u64" + } + ] + }, + { + "name": "ccipSend", + "docs": [ + "ON RAMP FLOW", + "Sends a message to the destination chain.", + "", + "Request a message to be sent to the destination chain.", + "The method name needs to be ccip_send with Anchor encoding.", + "This function is called by the CCIP Sender Contract (or final user) to send a message to the CCIP Router.", + "The message will be sent to the receiver on the destination chain selector.", + "This message emits the event CCIPSendRequested with all the necessary data to be retrieved by the OffChain Code", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for sending the message.", + "* `dest_chain_selector` - The chain selector for the destination chain.", + "* `message` - The message to be sent. The size limit of data is 256 bytes." + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "destChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "nonce", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTokenUserAssociatedAccount", + "isMut": false, + "isSigner": false, + "docs": [ + "CHECK this is the associated token account for the user paying the fee.", + "If paying with native SOL, this must be the zero address." + ] + }, + { + "name": "feeTokenReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "feeBillingSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenPoolsSigner", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "destChainSelector", + "type": "u64" + }, + { + "name": "message", + "type": { + "defined": "Solana2AnyMessage" + } + } + ] + }, + { + "name": "commit", + "docs": [ + "OFF RAMP FLOW", + "Commits a report to the router.", + "", + "The method name needs to be commit with Anchor encoding.", + "", + "This function is called by the OffChain when committing one Report to the Solana Router.", + "In this Flow only one report is sent, the Commit Report. This is different as EVM does,", + "this is because here all the chain state is stored in one account per Merkle Tree Root.", + "So, to avoid having to send a dynamic size array of accounts, in this message only one Commit Report Account is sent.", + "This message validates the signatures of the report and stores the Merkle Root in the Commit Report Account.", + "The Report must contain an interval of messages, and the min of them must be the next sequence number expected.", + "The max size of the interval is 64.", + "This message emits two events: CommitReportAccepted and Transmitted.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for the commit.", + "* `report_context_byte_words` - consists of:", + "* report_context_byte_words[0]: ConfigDigest", + "* report_context_byte_words[1]: 24 byte padding, 8 byte sequence number", + "* report_context_byte_words[2]: ExtraHash", + "* `report` - The commit input report, single merkle root with RMN signatures and price updates", + "* `signatures` - The list of signatures. v0.29.0 - anchor idl does not build with ocr3base::SIGNATURE_LENGTH" + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "sourceChainState", + "isMut": true, + "isSigner": false + }, + { + "name": "commitReport", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "sysvarInstructions", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "reportContextByteWords", + "type": { + "array": [ + { + "array": [ + "u8", + 32 + ] + }, + 3 + ] + } + }, + { + "name": "report", + "type": { + "defined": "CommitInput" + } + }, + { + "name": "signatures", + "type": { + "vec": { + "array": [ + "u8", + 65 + ] + } + } + } + ] + }, + { + "name": "execute", + "docs": [ + "OFF RAMP FLOW", + "Executes a message on the destination chain.", + "", + "The method name needs to be execute with Anchor encoding.", + "", + "This function is called by the OffChain when executing one Report to the Solana Router.", + "In this Flow only one message is sent, the Execution Report. This is different as EVM does,", + "this is because there is no try/catch mechanism to allow batch execution.", + "This message validates that the Merkle Tree Proof of the given message is correct and is stored in the Commit Report Account.", + "The message must be untouched to be executed.", + "This message emits the event ExecutionStateChanged with the new state of the message.", + "Finally, executes the CPI instruction to the receiver program in the ccip_receive message.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for the execute.", + "* `execution_report` - the execution report containing only one message and proofs", + "* `report_context_byte_words` - report_context after execution_report to match context for manually execute (proper decoding order)", + "* consists of:", + "* report_context_byte_words[0]: ConfigDigest", + "* report_context_byte_words[1]: 24 byte padding, 8 byte sequence number", + "* report_context_byte_words[2]: ExtraHash" + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "sourceChainState", + "isMut": false, + "isSigner": false + }, + { + "name": "commitReport", + "isMut": true, + "isSigner": false + }, + { + "name": "externalExecutionConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "sysvarInstructions", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenPoolsSigner", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "executionReport", + "type": { + "defined": "ExecutionReportSingleChain" + } + }, + { + "name": "reportContextByteWords", + "type": { + "array": [ + { + "array": [ + "u8", + 32 + ] + }, + 3 + ] + } + } + ] + }, + { + "name": "manuallyExecute", + "docs": [ + "Manually executes a report to the router.", + "", + "When a message is not being executed, then the user can trigger the execution manually.", + "No verification over the transmitter, but the message needs to be in some commit report.", + "It validates that the required time has passed since the commit and then executes the report.", + "", + "# Arguments", + "", + "* `ctx` - The context containing the accounts required for the execution.", + "* `execution_report` - The execution report containing the message and proofs." + ], + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "sourceChainState", + "isMut": false, + "isSigner": false + }, + { + "name": "commitReport", + "isMut": true, + "isSigner": false + }, + { + "name": "externalExecutionConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "sysvarInstructions", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenPoolsSigner", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "executionReport", + "type": { + "defined": "ExecutionReportSingleChain" + } + } + ] + } + ], + "accounts": [ + { + "name": "Config", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "defaultAllowOutOfOrderExecution", + "type": "u8" + }, + { + "name": "padding0", + "type": { + "array": [ + "u8", + 6 + ] + } + }, + { + "name": "solanaChainSelector", + "type": "u64" + }, + { + "name": "defaultGasLimit", + "type": "u128" + }, + { + "name": "padding1", + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "owner", + "type": "publicKey" + }, + { + "name": "proposedOwner", + "type": "publicKey" + }, + { + "name": "enableManualExecutionAfter", + "type": "i64" + }, + { + "name": "padding2", + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "ocr3", + "type": { + "array": [ + { + "defined": "Ocr3Config" + }, + 2 + ] + } + }, + { + "name": "feeAggregator", + "type": "publicKey" + } + ] + } + }, + { + "name": "GlobalState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "latestPriceSequenceNumber", + "type": "u64" + } + ] + } + }, + { + "name": "SourceChain", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "chainSelector", + "type": "u64" + }, + { + "name": "state", + "type": { + "defined": "SourceChainState" + } + }, + { + "name": "config", + "type": { + "defined": "SourceChainConfig" + } + } + ] + } + }, + { + "name": "DestChain", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "chainSelector", + "type": "u64" + }, + { + "name": "state", + "type": { + "defined": "DestChainState" + } + }, + { + "name": "config", + "type": { + "defined": "DestChainConfig" + } + } + ] + } + }, + { + "name": "Nonce", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "counter", + "type": "u64" + } + ] + } + }, + { + "name": "ExternalExecutionConfig", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "CommitReport", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "chainSelector", + "type": "u64" + }, + { + "name": "merkleRoot", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "timestamp", + "type": "i64" + }, + { + "name": "minMsgNr", + "type": "u64" + }, + { + "name": "maxMsgNr", + "type": "u64" + }, + { + "name": "executionStates", + "type": "u128" + } + ] + } + }, + { + "name": "PerChainPerTokenConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "chainSelector", + "type": "u64" + }, + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "billing", + "type": { + "defined": "TokenBilling" + } + } + ] + } + }, + { + "name": "BillingTokenConfigWrapper", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "config", + "type": { + "defined": "BillingTokenConfig" + } + } + ] + } + }, + { + "name": "TokenAdminRegistry", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "administrator", + "type": "publicKey" + }, + { + "name": "pendingAdministrator", + "type": "publicKey" + }, + { + "name": "lookupTable", + "type": "publicKey" + } + ] + } + } + ], + "types": [ + { + "name": "CommitInput", + "type": { + "kind": "struct", + "fields": [ + { + "name": "priceUpdates", + "type": { + "defined": "PriceUpdates" + } + }, + { + "name": "merkleRoot", + "type": { + "defined": "MerkleRoot" + } + } + ] + } + }, + { + "name": "PriceUpdates", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tokenPriceUpdates", + "type": { + "vec": { + "defined": "TokenPriceUpdate" + } + } + }, + { + "name": "gasPriceUpdates", + "type": { + "vec": { + "defined": "GasPriceUpdate" + } + } + } + ] + } + }, + { + "name": "TokenPriceUpdate", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sourceToken", + "type": "publicKey" + }, + { + "name": "usdPerToken", + "type": { + "array": [ + "u8", + 28 + ] + } + } + ] + } + }, + { + "name": "GasPriceUpdate", + "type": { + "kind": "struct", + "fields": [ + { + "name": "destChainSelector", + "type": "u64" + }, + { + "name": "usdPerUnitGas", + "type": { + "array": [ + "u8", + 28 + ] + } + } + ] + } + }, + { + "name": "MerkleRoot", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sourceChainSelector", + "type": "u64" + }, + { + "name": "onRampAddress", + "type": "bytes" + }, + { + "name": "minSeqNr", + "type": "u64" + }, + { + "name": "maxSeqNr", + "type": "u64" + }, + { + "name": "merkleRoot", + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "RampMessageHeader", + "type": { + "kind": "struct", + "fields": [ + { + "name": "messageId", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "sourceChainSelector", + "type": "u64" + }, + { + "name": "destChainSelector", + "type": "u64" + }, + { + "name": "sequenceNumber", + "type": "u64" + }, + { + "name": "nonce", + "type": "u64" + } + ] + } + }, + { + "name": "ExecutionReportSingleChain", + "docs": [ + "Report that is submitted by the execution DON at the execution phase. (including chain selector data)" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "sourceChainSelector", + "type": "u64" + }, + { + "name": "message", + "type": { + "defined": "Any2SolanaRampMessage" + } + }, + { + "name": "offchainTokenData", + "type": { + "vec": "bytes" + } + }, + { + "name": "root", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "proofs", + "type": { + "vec": { + "array": [ + "u8", + 32 + ] + } + } + }, + { + "name": "tokenIndexes", + "type": "bytes" + } + ] + } + }, + { + "name": "SolanaAccountMeta", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pubkey", + "type": "publicKey" + }, + { + "name": "isWritable", + "type": "bool" + } + ] + } + }, + { + "name": "SolanaExtraArgs", + "type": { + "kind": "struct", + "fields": [ + { + "name": "computeUnits", + "type": "u32" + }, + { + "name": "accounts", + "type": { + "vec": { + "defined": "SolanaAccountMeta" + } + } + } + ] + } + }, + { + "name": "AnyExtraArgs", + "type": { + "kind": "struct", + "fields": [ + { + "name": "gasLimit", + "type": "u128" + }, + { + "name": "allowOutOfOrderExecution", + "type": "bool" + } + ] + } + }, + { + "name": "Any2SolanaRampMessage", + "type": { + "kind": "struct", + "fields": [ + { + "name": "header", + "type": { + "defined": "RampMessageHeader" + } + }, + { + "name": "sender", + "type": "bytes" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "receiver", + "type": "publicKey" + }, + { + "name": "tokenAmounts", + "type": { + "vec": { + "defined": "Any2SolanaTokenTransfer" + } + } + }, + { + "name": "extraArgs", + "type": { + "defined": "SolanaExtraArgs" + } + } + ] + } + }, + { + "name": "Solana2AnyRampMessage", + "type": { + "kind": "struct", + "fields": [ + { + "name": "header", + "type": { + "defined": "RampMessageHeader" + } + }, + { + "name": "sender", + "type": "publicKey" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "receiver", + "type": "bytes" + }, + { + "name": "extraArgs", + "type": { + "defined": "AnyExtraArgs" + } + }, + { + "name": "feeToken", + "type": "publicKey" + }, + { + "name": "tokenAmounts", + "type": { + "vec": { + "defined": "Solana2AnyTokenTransfer" + } + } + } + ] + } + }, + { + "name": "Solana2AnyTokenTransfer", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sourcePoolAddress", + "type": "publicKey" + }, + { + "name": "destTokenAddress", + "type": "bytes" + }, + { + "name": "extraData", + "type": "bytes" + }, + { + "name": "amount", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "destExecData", + "type": "bytes" + } + ] + } + }, + { + "name": "Any2SolanaTokenTransfer", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sourcePoolAddress", + "type": "bytes" + }, + { + "name": "destTokenAddress", + "type": "publicKey" + }, + { + "name": "destGasAmount", + "type": "u32" + }, + { + "name": "extraData", + "type": "bytes" + }, + { + "name": "amount", + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "LockOrBurnInV1", + "type": { + "kind": "struct", + "fields": [ + { + "name": "receiver", + "type": "bytes" + }, + { + "name": "remoteChainSelector", + "type": "u64" + }, + { + "name": "originalSender", + "type": "publicKey" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "localToken", + "type": "publicKey" + } + ] + } + }, + { + "name": "ReleaseOrMintInV1", + "type": { + "kind": "struct", + "fields": [ + { + "name": "originalSender", + "type": "bytes" + }, + { + "name": "remoteChainSelector", + "type": "u64" + }, + { + "name": "receiver", + "type": "publicKey" + }, + { + "name": "amount", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "localToken", + "type": "publicKey" + }, + { + "name": "sourcePoolAddress", + "docs": [ + "@dev WARNING: sourcePoolAddress should be checked prior to any processing of funds. Make sure it matches the", + "expected pool address for the given remoteChainSelector." + ], + "type": "bytes" + }, + { + "name": "sourcePoolData", + "type": "bytes" + }, + { + "name": "offchainTokenData", + "docs": [ + "@dev WARNING: offchainTokenData is untrusted data." + ], + "type": "bytes" + } + ] + } + }, + { + "name": "LockOrBurnOutV1", + "type": { + "kind": "struct", + "fields": [ + { + "name": "destTokenAddress", + "type": "bytes" + }, + { + "name": "destPoolData", + "type": "bytes" + } + ] + } + }, + { + "name": "ReleaseOrMintOutV1", + "type": { + "kind": "struct", + "fields": [ + { + "name": "destinationAmount", + "type": "u64" + } + ] + } + }, + { + "name": "Solana2AnyMessage", + "type": { + "kind": "struct", + "fields": [ + { + "name": "receiver", + "type": "bytes" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "tokenAmounts", + "type": { + "vec": { + "defined": "SolanaTokenAmount" + } + } + }, + { + "name": "feeToken", + "type": "publicKey" + }, + { + "name": "extraArgs", + "type": { + "defined": "ExtraArgsInput" + } + }, + { + "name": "tokenIndexes", + "type": "bytes" + } + ] + } + }, + { + "name": "SolanaTokenAmount", + "type": { + "kind": "struct", + "fields": [ + { + "name": "token", + "type": "publicKey" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "ExtraArgsInput", + "type": { + "kind": "struct", + "fields": [ + { + "name": "gasLimit", + "type": { + "option": "u128" + } + }, + { + "name": "allowOutOfOrderExecution", + "type": { + "option": "bool" + } + } + ] + } + }, + { + "name": "Any2SolanaMessage", + "type": { + "kind": "struct", + "fields": [ + { + "name": "messageId", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "sourceChainSelector", + "type": "u64" + }, + { + "name": "sender", + "type": "bytes" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "tokenAmounts", + "type": { + "vec": { + "defined": "SolanaTokenAmount" + } + } + } + ] + } + }, + { + "name": "ReportContext", + "type": { + "kind": "struct", + "fields": [ + { + "name": "byteWords", + "type": { + "array": [ + { + "array": [ + "u8", + 32 + ] + }, + 3 + ] + } + } + ] + } + }, + { + "name": "Ocr3Config", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pluginType", + "type": "u8" + }, + { + "name": "configInfo", + "type": { + "defined": "Ocr3ConfigInfo" + } + }, + { + "name": "signers", + "type": { + "array": [ + { + "array": [ + "u8", + 20 + ] + }, + 16 + ] + } + }, + { + "name": "transmitters", + "type": { + "array": [ + { + "array": [ + "u8", + 32 + ] + }, + 16 + ] + } + } + ] + } + }, + { + "name": "Ocr3ConfigInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "configDigest", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "f", + "type": "u8" + }, + { + "name": "n", + "type": "u8" + }, + { + "name": "isSignatureVerificationEnabled", + "type": "u8" + } + ] + } + }, + { + "name": "SourceChainConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "isEnabled", + "type": "bool" + }, + { + "name": "onRamp", + "type": "bytes" + } + ] + } + }, + { + "name": "SourceChainState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "minSeqNr", + "type": "u64" + } + ] + } + }, + { + "name": "DestChainState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sequenceNumber", + "type": "u64" + }, + { + "name": "usdPerUnitGas", + "type": { + "defined": "TimestampedPackedU224" + } + } + ] + } + }, + { + "name": "DestChainConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "isEnabled", + "type": "bool" + }, + { + "name": "maxNumberOfTokensPerMsg", + "type": "u16" + }, + { + "name": "maxDataBytes", + "type": "u32" + }, + { + "name": "maxPerMsgGasLimit", + "type": "u32" + }, + { + "name": "destGasOverhead", + "type": "u32" + }, + { + "name": "destGasPerPayloadByte", + "type": "u16" + }, + { + "name": "destDataAvailabilityOverheadGas", + "type": "u32" + }, + { + "name": "destGasPerDataAvailabilityByte", + "type": "u16" + }, + { + "name": "destDataAvailabilityMultiplierBps", + "type": "u16" + }, + { + "name": "defaultTokenFeeUsdcents", + "type": "u16" + }, + { + "name": "defaultTokenDestGasOverhead", + "type": "u32" + }, + { + "name": "defaultTxGasLimit", + "type": "u32" + }, + { + "name": "gasMultiplierWeiPerEth", + "type": "u64" + }, + { + "name": "networkFeeUsdcents", + "type": "u32" + }, + { + "name": "gasPriceStalenessThreshold", + "type": "u32" + }, + { + "name": "enforceOutOfOrder", + "type": "bool" + }, + { + "name": "chainFamilySelector", + "type": { + "array": [ + "u8", + 4 + ] + } + } + ] + } + }, + { + "name": "TokenBilling", + "type": { + "kind": "struct", + "fields": [ + { + "name": "minFeeUsdcents", + "type": "u32" + }, + { + "name": "maxFeeUsdcents", + "type": "u32" + }, + { + "name": "deciBps", + "type": "u16" + }, + { + "name": "destGasOverhead", + "type": "u32" + }, + { + "name": "destBytesOverhead", + "type": "u32" + }, + { + "name": "isEnabled", + "type": "bool" + } + ] + } + }, + { + "name": "RateLimitTokenBucket", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tokens", + "type": "u128" + }, + { + "name": "lastUpdated", + "type": "u32" + }, + { + "name": "isEnabled", + "type": "bool" + }, + { + "name": "capacity", + "type": "u128" + }, + { + "name": "rate", + "type": "u128" + } + ] + } + }, + { + "name": "BillingTokenConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "usdPerToken", + "type": { + "defined": "TimestampedPackedU224" + } + }, + { + "name": "premiumMultiplierWeiPerEth", + "type": "u64" + } + ] + } + }, + { + "name": "TimestampedPackedU224", + "type": { + "kind": "struct", + "fields": [ + { + "name": "value", + "type": { + "array": [ + "u8", + 28 + ] + } + }, + { + "name": "timestamp", + "type": "i64" + } + ] + } + }, + { + "name": "OcrPluginType", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Commit" + }, + { + "name": "Execution" + } + ] + } + }, + { + "name": "MerkleError", + "type": { + "kind": "enum", + "variants": [ + { + "name": "InvalidProof" + } + ] + } + }, + { + "name": "MessageExecutionState", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Untouched" + }, + { + "name": "InProgress" + }, + { + "name": "Success" + }, + { + "name": "Failure" + } + ] + } + }, + { + "name": "CcipRouterError", + "type": { + "kind": "enum", + "variants": [ + { + "name": "InvalidSequenceInterval" + }, + { + "name": "RootNotCommitted" + }, + { + "name": "ExistingMerkleRoot" + }, + { + "name": "Unauthorized" + }, + { + "name": "InvalidInputs" + }, + { + "name": "UnsupportedSourceChainSelector" + }, + { + "name": "UnsupportedDestinationChainSelector" + }, + { + "name": "InvalidProof" + }, + { + "name": "InvalidMessage" + }, + { + "name": "ReachedMaxSequenceNumber" + }, + { + "name": "ManualExecutionNotAllowed" + }, + { + "name": "InvalidInputsTokenIndices" + }, + { + "name": "InvalidInputsPoolAccounts" + }, + { + "name": "InvalidInputsTokenAccounts" + }, + { + "name": "InvalidInputsConfigAccounts" + }, + { + "name": "InvalidInputsTokenAdminRegistryAccounts" + }, + { + "name": "InvalidInputsLookupTableAccounts" + }, + { + "name": "InvalidInputsTokenAmount" + }, + { + "name": "OfframpReleaseMintBalanceMismatch" + }, + { + "name": "OfframpInvalidDataLength" + }, + { + "name": "StaleCommitReport" + }, + { + "name": "DestinationChainDisabled" + }, + { + "name": "FeeTokenDisabled" + }, + { + "name": "MessageTooLarge" + }, + { + "name": "UnsupportedNumberOfTokens" + }, + { + "name": "UnsupportedChainFamilySelector" + }, + { + "name": "InvalidEVMAddress" + }, + { + "name": "InvalidEncoding" + }, + { + "name": "InvalidInputsAtaAddress" + }, + { + "name": "InvalidInputsAtaWritable" + }, + { + "name": "InvalidTokenPrice" + }, + { + "name": "StaleGasPrice" + }, + { + "name": "InsufficientLamports" + }, + { + "name": "InsufficientFunds" + } + ] + } + } + ], + "events": [ + { + "name": "CCIPMessageSent", + "fields": [ + { + "name": "destChainSelector", + "type": "u64", + "index": false + }, + { + "name": "sequenceNumber", + "type": "u64", + "index": false + }, + { + "name": "message", + "type": { + "defined": "Solana2AnyRampMessage" + }, + "index": false + } + ] + }, + { + "name": "CommitReportAccepted", + "fields": [ + { + "name": "merkleRoot", + "type": { + "defined": "MerkleRoot" + }, + "index": false + }, + { + "name": "priceUpdates", + "type": { + "defined": "PriceUpdates" + }, + "index": false + } + ] + }, + { + "name": "SkippedAlreadyExecutedMessage", + "fields": [ + { + "name": "sourceChainSelector", + "type": "u64", + "index": false + }, + { + "name": "sequenceNumber", + "type": "u64", + "index": false + } + ] + }, + { + "name": "AlreadyAttempted", + "fields": [ + { + "name": "sourceChainSelector", + "type": "u64", + "index": false + }, + { + "name": "sequenceNumber", + "type": "u64", + "index": false + } + ] + }, + { + "name": "ExecutionStateChanged", + "fields": [ + { + "name": "sourceChainSelector", + "type": "u64", + "index": false + }, + { + "name": "sequenceNumber", + "type": "u64", + "index": false + }, + { + "name": "messageId", + "type": { + "array": [ + "u8", + 32 + ] + }, + "index": false + }, + { + "name": "messageHash", + "type": { + "array": [ + "u8", + 32 + ] + }, + "index": false + }, + { + "name": "state", + "type": { + "defined": "MessageExecutionState" + }, + "index": false + } + ] + }, + { + "name": "PoolSet", + "fields": [ + { + "name": "token", + "type": "publicKey", + "index": false + }, + { + "name": "previousPoolLookupTable", + "type": "publicKey", + "index": false + }, + { + "name": "newPoolLookupTable", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AdministratorTransferRequested", + "fields": [ + { + "name": "token", + "type": "publicKey", + "index": false + }, + { + "name": "currentAdmin", + "type": "publicKey", + "index": false + }, + { + "name": "newAdmin", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AdministratorTransferred", + "fields": [ + { + "name": "token", + "type": "publicKey", + "index": false + }, + { + "name": "newAdmin", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "FeeTokenAdded", + "fields": [ + { + "name": "feeToken", + "type": "publicKey", + "index": false + }, + { + "name": "enabled", + "type": "bool", + "index": false + } + ] + }, + { + "name": "FeeTokenEnabled", + "fields": [ + { + "name": "feeToken", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "FeeTokenDisabled", + "fields": [ + { + "name": "feeToken", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "FeeTokenRemoved", + "fields": [ + { + "name": "feeToken", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "UsdPerUnitGasUpdated", + "fields": [ + { + "name": "destChain", + "type": "u64", + "index": false + }, + { + "name": "value", + "type": { + "array": [ + "u8", + 28 + ] + }, + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "UsdPerTokenUpdated", + "fields": [ + { + "name": "token", + "type": "publicKey", + "index": false + }, + { + "name": "value", + "type": { + "array": [ + "u8", + 28 + ] + }, + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "TokenTransferFeeConfigUpdated", + "fields": [ + { + "name": "destChainSelector", + "type": "u64", + "index": false + }, + { + "name": "token", + "type": "publicKey", + "index": false + }, + { + "name": "tokenTransferFeeConfig", + "type": { + "defined": "TokenBilling" + }, + "index": false + } + ] + }, + { + "name": "PremiumMultiplierWeiPerEthUpdated", + "fields": [ + { + "name": "token", + "type": "publicKey", + "index": false + }, + { + "name": "premiumMultiplierWeiPerEth", + "type": "u64", + "index": false + } + ] + }, + { + "name": "SourceChainConfigUpdated", + "fields": [ + { + "name": "sourceChainSelector", + "type": "u64", + "index": false + }, + { + "name": "sourceChainConfig", + "type": { + "defined": "SourceChainConfig" + }, + "index": false + } + ] + }, + { + "name": "SourceChainAdded", + "fields": [ + { + "name": "sourceChainSelector", + "type": "u64", + "index": false + }, + { + "name": "sourceChainConfig", + "type": { + "defined": "SourceChainConfig" + }, + "index": false + } + ] + }, + { + "name": "DestChainConfigUpdated", + "fields": [ + { + "name": "destChainSelector", + "type": "u64", + "index": false + }, + { + "name": "destChainConfig", + "type": { + "defined": "DestChainConfig" + }, + "index": false + } + ] + }, + { + "name": "DestChainAdded", + "fields": [ + { + "name": "destChainSelector", + "type": "u64", + "index": false + }, + { + "name": "destChainConfig", + "type": { + "defined": "DestChainConfig" + }, + "index": false + } + ] + }, + { + "name": "AdministratorRegistered", + "fields": [ + { + "name": "tokenMint", + "type": "publicKey", + "index": false + }, + { + "name": "administrator", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "ConfigSet", + "fields": [ + { + "name": "ocrPluginType", + "type": "u8", + "index": false + }, + { + "name": "configDigest", + "type": { + "array": [ + "u8", + 32 + ] + }, + "index": false + }, + { + "name": "signers", + "type": { + "vec": { + "array": [ + "u8", + 20 + ] + } + }, + "index": false + }, + { + "name": "transmitters", + "type": { + "vec": "publicKey" + }, + "index": false + }, + { + "name": "f", + "type": "u8", + "index": false + } + ] + }, + { + "name": "Transmitted", + "fields": [ + { + "name": "ocrPluginType", + "type": "u8", + "index": false + }, + { + "name": "configDigest", + "type": { + "array": [ + "u8", + 32 + ] + }, + "index": false + }, + { + "name": "sequenceNumber", + "type": "u64", + "index": false + } + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidConfigFMustBePositive", + "msg": "Invalid config: F must be positive" + }, + { + "code": 6001, + "name": "InvalidConfigTooManyTransmitters", + "msg": "Invalid config: Too many transmitters" + }, + { + "code": 6002, + "name": "InvalidConfigTooManySigners", + "msg": "Invalid config: Too many signers" + }, + { + "code": 6003, + "name": "InvalidConfigFIsTooHigh", + "msg": "Invalid config: F is too high" + }, + { + "code": 6004, + "name": "InvalidConfigRepeatedOracle", + "msg": "Invalid config: Repeated oracle address" + }, + { + "code": 6005, + "name": "WrongMessageLength", + "msg": "Wrong message length" + }, + { + "code": 6006, + "name": "ConfigDigestMismatch", + "msg": "Config digest mismatch" + }, + { + "code": 6007, + "name": "WrongNumberOfSignatures", + "msg": "Wrong number signatures" + }, + { + "code": 6008, + "name": "UnauthorizedTransmitter", + "msg": "Unauthorized transmitter" + }, + { + "code": 6009, + "name": "UnauthorizedSigner", + "msg": "Unauthorized signer" + }, + { + "code": 6010, + "name": "NonUniqueSignatures", + "msg": "Non unique signatures" + }, + { + "code": 6011, + "name": "OracleCannotBeZeroAddress", + "msg": "Oracle cannot be zero address" + }, + { + "code": 6012, + "name": "StaticConfigCannotBeChanged", + "msg": "Static config cannot be changed" + }, + { + "code": 6013, + "name": "InvalidPluginType", + "msg": "Incorrect plugin type" + }, + { + "code": 6014, + "name": "InvalidSignature", + "msg": "Invalid signature" + } + ] +} \ No newline at end of file diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go new file mode 100644 index 00000000000..817ab0a17c1 --- /dev/null +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -0,0 +1,49 @@ +package solana + +import ( + _ "embed" + "encoding/json" + "fmt" + + "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" + "github.com/smartcontractkit/chainlink-solana/pkg/solana/codec" +) + +//go:embed ccip_router.json +var ccipRouter string + +func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { + //TODO once on-chain account lookup address are available, the config will be updated + + // check fromAddress + _, err := solana.PublicKeyFromBase58(fromAddress) + if err != nil { + return chainwriter.ChainWriterConfig{}, fmt.Errorf("invalid from address %s: %w", fromAddress, err) + } + + // validate CCIP Router IDL, errors not expected + var idl codec.IDL + if err = json.Unmarshal([]byte(ccipRouter), &idl); err != nil { + return chainwriter.ChainWriterConfig{}, fmt.Errorf("unexpected error: invalid CCIP Router IDL, error: %w", err) + } + + solConfig := chainwriter.ChainWriterConfig{ + Programs: map[string]chainwriter.ProgramConfig{ + "ccip-router": { + Methods: map[string]chainwriter.MethodConfig{ + "execute": { + FromAddress: fromAddress, + InputModifications: nil, + ChainSpecificName: "execute"}, + "commit": { + FromAddress: fromAddress, + InputModifications: nil, + ChainSpecificName: "commit"}, + }, + IDL: ccipRouter}, + }, + } + + return solConfig, nil +} diff --git a/core/capabilities/ccip/configs/solana/chain_writer_test.go b/core/capabilities/ccip/configs/solana/chain_writer_test.go new file mode 100644 index 00000000000..96086f0faa3 --- /dev/null +++ b/core/capabilities/ccip/configs/solana/chain_writer_test.go @@ -0,0 +1,37 @@ +package solana + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestChainWriterConfigRaw(t *testing.T) { + tests := []struct { + name string + fromAddress string + expectedError string + }{ + { + name: "valid input", + fromAddress: "4Nn9dsYBcSTzRbK9hg9kzCUdrCSkMZq1UR6Vw1Tkaf6A", + expectedError: "", + }, + { + name: "zero fromAddress", + fromAddress: "", + expectedError: "invalid from address : decode: zero length string", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + _, err := GetSolanaChainWriterConfig(tt.fromAddress) + if tt.expectedError != "" { + assert.EqualError(t, err, tt.expectedError) + } else { + assert.NoError(t, err) + } + }) + } +} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index df2de8a609e..427da234d24 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -18,6 +18,7 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" + solanaconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/solana" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" cctypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/types" "github.com/smartcontractkit/chainlink/v2/core/services/ocr3/promwrapper" @@ -482,30 +483,6 @@ func isUSDCEnabled(ofc offChainConfig) bool { return ofc.exec().IsUSDCEnabled() } -// TODO once on-chain account lookup address are available, the config will be updated -func getSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { - solConfig := chainwriter.ChainWriterConfig{ - Programs: map[string]chainwriter.ProgramConfig{ - "ccip-router": { - Methods: map[string]chainwriter.MethodConfig{ - "execute": { - FromAddress: fromAddress, - InputModifications: nil, - ChainSpecificName: "execute"}, - "commit": { - FromAddress: fromAddress, - InputModifications: nil, - ChainSpecificName: "commit"}, - }, - // TODO this IDL definition configured statically somewhere or passed in as parameter - IDL: `{"name":"ExecutionReportSingleChain","type":{"kind":"struct","fields":[{"name":"source_chain_selector","type":"u64"},{"name":"message","type":{"defined":"Any2SolanaRampMessage"}},{"name":"root","type":{"array":["u8",32]}},{"name":"proofs","type":{"vec":{"array":["u8",32]}}}]}},{"name":"Any2SolanaRampMessage","type":{"kind":"struct","fields":[{"name":"header","type":{"defined":"RampMessageHeader"}},{"name":"sender","type":{"vec":"u8"}},{"name":"data","type":{"vec":"u8"}},{"name":"receiver","type":{"array":["u8",32]}},{"name":"extra_args","type":{"defined":"SolanaExtraArgs"}}]}},{"name":"RampMessageHeader","type":{"kind":"struct","fields":[{"name":"message_id","type":{"array":["u8",32]}},{"name":"source_chain_selector","type":"u64"},{"name":"dest_chain_selector","type":"u64"},{"name":"sequence_number","type":"u64"},{"name":"nonce","type":"u64"}]}},{"name":"SolanaExtraArgs","type":{"kind":"struct","fields":[{"name":"compute_units","type":"u32"},{"name":"allow_out_of_order_execution","type":"bool"}]}}`, - }, - }, - } - - return solConfig, nil -} - func createChainWriter( ctx context.Context, chainID string, @@ -521,7 +498,7 @@ func createChainWriter( switch chainFamily { case relay.NetworkSolana: var solConfig chainwriter.ChainWriterConfig - if solConfig, err = getSolanaChainWriterConfig(transmitter[0]); err == nil { + if solConfig, err = solanaconfig.GetSolanaChainWriterConfig(transmitter[0]); err == nil { return nil, fmt.Errorf("failed to get Solana chain writer config: %w", err) } if chainWriterConfig, err = json.Marshal(solConfig); err != nil { From bde6fa42026fd4c155566d169bdf675e0e4473bd Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 9 Jan 2025 10:40:07 -0600 Subject: [PATCH 057/232] refactor getTransmitterKeys --- core/capabilities/ccip/delegate.go | 35 ++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index 536622978f6..ed16039b20a 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -278,17 +278,34 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela return nil, fmt.Errorf("error parsing chain ID, expected big int: %s", relayID.ChainID) } - ethKeys, err := d.keystore.Eth().EnabledAddressesForChain(ctx, chainID) - if err != nil { - return nil, fmt.Errorf("error getting enabled addresses for chain: %s %w", chainID.String(), err) - } + switch relayID.Network { + case relay.NetworkEVM: + ethKeys, err := d.keystore.Eth().EnabledAddressesForChain(ctx, chainID) + if err != nil { + return nil, fmt.Errorf("error getting enabled addresses for chain: %s %w", chainID.String(), err) + } - transmitterKeys[relayID] = func() (r []string) { - for _, key := range ethKeys { - r = append(r, key.Hex()) + transmitterKeys[relayID] = func() (r []string) { + for _, key := range ethKeys { + r = append(r, key.Hex()) + } + return + }() + case relay.NetworkSolana: + solKeys, err := d.keystore.Solana().GetAll() + if err != nil { + return nil, fmt.Errorf("error getting enabled addresses for chain: %s %w", chainID.String(), err) } - return - }() + + transmitterKeys[relayID] = func() (r []string) { + for _, key := range solKeys { + r = append(r, key.PublicKeyStr()) + } + return + }() + default: + return nil, fmt.Errorf("unsupported network: %s", relayID.Network) + } } return transmitterKeys, nil } From 3e78cb831344ead822f382f5e85785b5d905a77d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 9 Jan 2025 10:46:59 -0600 Subject: [PATCH 058/232] go mod tidy --- core/scripts/go.sum | 2 ++ deployment/go.sum | 1 + integration-tests/go.sum | 1 + integration-tests/load/go.sum | 1 + 4 files changed, 5 insertions(+) diff --git a/core/scripts/go.sum b/core/scripts/go.sum index d57b3888a75..94c5b8abcf8 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1473,6 +1473,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1674,6 +1675,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= diff --git a/deployment/go.sum b/deployment/go.sum index 35d0982876d..aa4a249ce40 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1996,6 +1996,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 44052f0e478..f334693b78d 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -2024,6 +2024,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 8fc8a159ba0..4beec227e66 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -2013,6 +2013,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= From df7ef825a7ae79e7c3cec9df30b7b6cb22327897 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 9 Jan 2025 10:57:43 -0600 Subject: [PATCH 059/232] minor --- core/capabilities/ccip/delegate.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index ed16039b20a..efcd8e119e1 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -292,9 +292,10 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela return }() case relay.NetworkSolana: + // Implement EnabledAddressesForChain for Solana as well ? solKeys, err := d.keystore.Solana().GetAll() if err != nil { - return nil, fmt.Errorf("error getting enabled addresses for chain: %s %w", chainID.String(), err) + return nil, fmt.Errorf("error getting all keys Solana: %w", err) } transmitterKeys[relayID] = func() (r []string) { From c8bb4acdba853cffb4e5f9c8437b28ecd20eec0b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 9 Jan 2025 11:10:46 -0600 Subject: [PATCH 060/232] fix lint --- core/capabilities/ccip/configs/solana/chain_writer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 817ab0a17c1..f07608f113d 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -14,7 +14,7 @@ import ( var ccipRouter string func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { - //TODO once on-chain account lookup address are available, the config will be updated + // TODO once on-chain account lookup address are available, the config will be updated // check fromAddress _, err := solana.PublicKeyFromBase58(fromAddress) From f4735fa903cbb07db166b711a015954c1cbfd902 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 9 Jan 2025 11:17:37 -0600 Subject: [PATCH 061/232] go import --- core/capabilities/ccip/configs/solana/chain_writer.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index f07608f113d..d7924173150 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" "github.com/smartcontractkit/chainlink-solana/pkg/solana/codec" ) From a52044d26774c756e965e56274cd06f1ec6fb460 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 9 Jan 2025 13:57:59 -0600 Subject: [PATCH 062/232] gomod --- deployment/go.mod | 1 - go.mod | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/deployment/go.mod b/deployment/go.mod index 35b9d1aab83..26a2c764cb7 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -190,7 +190,6 @@ require ( github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gagliardetto/binary v0.8.0 // indirect - github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect diff --git a/go.mod b/go.mod index a98c4077b62..b7133607923 100644 --- a/go.mod +++ b/go.mod @@ -79,8 +79,8 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 From 66d8e032c82ee56093a3699068f78569fa1f1b8b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 10 Jan 2025 10:08:57 -0600 Subject: [PATCH 063/232] =?UTF-8?q?Bla=C5=BE=20comments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/capabilities/ccip/delegate.go | 41 ++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index efcd8e119e1..889b385f179 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -292,10 +292,10 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela return }() case relay.NetworkSolana: - // Implement EnabledAddressesForChain for Solana as well ? + // TODO Implement EnabledAddressesForChain for Solana as well solKeys, err := d.keystore.Solana().GetAll() if err != nil { - return nil, fmt.Errorf("error getting all keys Solana: %w", err) + return nil, fmt.Errorf("error getting all Solana keys: %w", err) } transmitterKeys[relayID] = func() (r []string) { @@ -304,6 +304,43 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela } return }() + case relay.NetworkAptos: + aptosKeys, err := d.keystore.Aptos().GetAll() + if err != nil { + return nil, fmt.Errorf("error getting all Aptos keys: %w", err) + } + + transmitterKeys[relayID] = func() (r []string) { + for _, key := range aptosKeys { + r = append(r, key.PublicKeyStr()) + } + return + }() + case relay.NetworkCosmos: + cosmosKeys, err := d.keystore.Cosmos().GetAll() + if err != nil { + return nil, fmt.Errorf("error getting all Cosmos keys: %w", err) + } + + transmitterKeys[relayID] = func() (r []string) { + for _, key := range cosmosKeys { + r = append(r, key.PublicKeyStr()) + } + return + }() + case relay.NetworkStarkNet: + startNetKeys, err := d.keystore.StarkNet().GetAll() + if err != nil { + return nil, fmt.Errorf("error getting all startNet keys: %w", err) + } + + transmitterKeys[relayID] = func() (r []string) { + for _, key := range startNetKeys { + r = append(r, key.StarkKeyStr()) + } + return + }() + default: return nil, fmt.Errorf("unsupported network: %s", relayID.Network) } From 3f4929a3098bd780906a587e6e4749078f908012 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 10 Jan 2025 12:56:33 -0600 Subject: [PATCH 064/232] part 1 --- .../ccip/ccipsolana/commitcodec.go | 22 ++++++++++++------- .../ccip/ccipsolana/commitcodec_test.go | 22 +++++++++++++++++++ 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index 5daee5817a1..fc1d7ac3c74 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -28,14 +28,16 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi encoder := agbinary.NewBorshEncoder(&buf) mr := ccip_router.MerkleRoot{} - if len(report.MerkleRoots) != 0 { - mr = ccip_router.MerkleRoot{ - SourceChainSelector: uint64(report.MerkleRoots[0].ChainSel), - OnRampAddress: report.MerkleRoots[0].OnRampAddress, - MinSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.Start()), - MaxSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.End()), - MerkleRoot: report.MerkleRoots[0].MerkleRoot, - } + if len(report.MerkleRoots) == 0 || len(report.MerkleRoots) > 1 { + return nil, fmt.Errorf("unexpected merkle root length in report: %d", len(report.MerkleRoots)) + } + + mr = ccip_router.MerkleRoot{ + SourceChainSelector: uint64(report.MerkleRoots[0].ChainSel), + OnRampAddress: report.MerkleRoots[0].OnRampAddress, + MinSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.Start()), + MaxSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.End()), + MerkleRoot: report.MerkleRoots[0].MerkleRoot, } tpu := make([]ccip_router.TokenPriceUpdate, 0, len(report.PriceUpdates.TokenPriceUpdates)) @@ -55,6 +57,10 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi gpu := make([]ccip_router.GasPriceUpdate, 0, len(report.PriceUpdates.GasPriceUpdates)) for _, update := range report.PriceUpdates.GasPriceUpdates { + if update.GasPrice.IsEmpty() { + return nil, fmt.Errorf("empty gas price for chain: %d", update.ChainSel) + } + gpu = append(gpu, ccip_router.GasPriceUpdate{ DestChainSelector: uint64(update.ChainSel), UsdPerUnitGas: common.To28BytesBE(update.GasPrice.Int.Uint64()), diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go index 3938db9d63a..ea72c2dae2e 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec_test.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -89,6 +89,14 @@ func TestCommitPluginCodecV1(t *testing.T) { return report }, }, + { + name: "empty gas price", + report: func(report cciptypes.CommitPluginReport) cciptypes.CommitPluginReport { + report.PriceUpdates.GasPriceUpdates[0].GasPrice = cciptypes.NewBigInt(nil) + return report + }, + expErr: true, + }, } for _, tc := range testCases { @@ -131,3 +139,17 @@ func BenchmarkCommitPluginCodecV1_Decode(b *testing.B) { require.NoError(b, err) } } + +func BenchmarkCommitPluginCodecV1_Encode_Decode(b *testing.B) { + commitCodec := NewCommitPluginCodecV1() + ctx := testutils.Context(b) + + rep := randomCommitReport() + for i := 0; i < b.N; i++ { + encodedReport, err := commitCodec.Encode(ctx, rep) + require.NoError(b, err) + decodedReport, err := commitCodec.Decode(ctx, encodedReport) + require.NoError(b, err) + require.Equal(b, rep, decodedReport) + } +} From d5413ae276abcc5c18b7c974b04da583d0b3e674 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 10 Jan 2025 13:55:42 -0600 Subject: [PATCH 065/232] fix lint --- core/capabilities/ccip/ccipsolana/commitcodec.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index fc1d7ac3c74..cb4f5186381 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -26,13 +26,11 @@ func NewCommitPluginCodecV1() *CommitPluginCodecV1 { func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.CommitPluginReport) ([]byte, error) { var buf bytes.Buffer encoder := agbinary.NewBorshEncoder(&buf) - mr := ccip_router.MerkleRoot{} - if len(report.MerkleRoots) == 0 || len(report.MerkleRoots) > 1 { return nil, fmt.Errorf("unexpected merkle root length in report: %d", len(report.MerkleRoots)) } - mr = ccip_router.MerkleRoot{ + mr := ccip_router.MerkleRoot{ SourceChainSelector: uint64(report.MerkleRoots[0].ChainSel), OnRampAddress: report.MerkleRoots[0].OnRampAddress, MinSeqNr: uint64(report.MerkleRoots[0].SeqNumsRange.Start()), From 03ae3ee5b796fc764ff38fd5796badf92faa4422 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 10 Jan 2025 14:13:36 -0600 Subject: [PATCH 066/232] data type --- .../ccip/ccipsolana/executecodec.go | 18 ++++++++---------- .../ccip/ccipsolana/executecodec_test.go | 4 ++-- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 9ef1f38426c..2fe8bea3025 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -39,14 +39,13 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("empty amount for token: %s", tokenAmount.DestTokenAddress) } - DestTokenAddress, err := solana.PublicKeyFromBase58(string(tokenAmount.DestTokenAddress)) - if err != nil { - return nil, fmt.Errorf("invalid destTokenAddress address: %w", err) + if len(tokenAmount.DestTokenAddress) != solana.PublicKeyLength { + return nil, fmt.Errorf("invalid destTokenAddress address: %v", tokenAmount.DestTokenAddress) } tokenAmounts = append(tokenAmounts, ccip_router.Any2SolanaTokenTransfer{ SourcePoolAddress: tokenAmount.SourcePoolAddress, - DestTokenAddress: DestTokenAddress, + DestTokenAddress: solana.PublicKeyFromBytes(tokenAmount.DestTokenAddress), ExtraData: tokenAmount.ExtraData, Amount: bigIntToBytes32(tokenAmount.Amount), DestGasAmount: bytesToUint32(tokenAmount.DestExecData), @@ -60,9 +59,8 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("invalid extra arguments: %w", err) } - receiver, err := solana.PublicKeyFromBase58(string(msg.Receiver)) - if err != nil { - return nil, fmt.Errorf("invalid receiver address: %s, %w", string(msg.Receiver), err) + if len(msg.Receiver) != solana.PublicKeyLength { + return nil, fmt.Errorf("invalid receiver address: %v", msg.Receiver) } message = ccip_router.Any2SolanaRampMessage{ @@ -75,7 +73,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec }, Sender: msg.Sender, Data: msg.Data, - Receiver: receiver, + Receiver: solana.PublicKeyFromBytes(msg.Receiver), TokenAmounts: tokenAmounts, ExtraArgs: extraArgs, } @@ -124,7 +122,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) tokenAmounts = append(tokenAmounts, cciptypes.RampTokenAmount{ SourcePoolAddress: tokenAmount.SourcePoolAddress, - DestTokenAddress: cciptypes.UnknownAddress(tokenAmount.DestTokenAddress.String()), + DestTokenAddress: tokenAmount.DestTokenAddress.Bytes(), ExtraData: tokenAmount.ExtraData, Amount: priceHelper(tokenAmount.Amount[:]), DestExecData: destData, @@ -151,7 +149,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) }, Sender: executeReport.Message.Sender, Data: executeReport.Message.Data, - Receiver: cciptypes.UnknownAddress(executeReport.Message.Receiver.String()), + Receiver: executeReport.Message.Receiver.Bytes(), ExtraArgs: buf.Bytes(), FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index f4a28c57092..703e0f9435f 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -46,7 +46,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { for z := 0; z < numTokensPerMsg; z++ { tokenAmounts[z] = cciptypes.RampTokenAmount{ SourcePoolAddress: cciptypes.UnknownAddress(key.PublicKey().String()), - DestTokenAddress: cciptypes.UnknownAddress(key.PublicKey().String()), + DestTokenAddress: key.PublicKey().Bytes(), ExtraData: extraData, Amount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), DestExecData: destExecData, @@ -79,7 +79,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { }, Sender: cciptypes.UnknownAddress(key.PublicKey().String()), Data: extraData, - Receiver: cciptypes.UnknownAddress(key.PublicKey().String()), + Receiver: key.PublicKey().Bytes(), ExtraArgs: buf.Bytes(), FeeToken: cciptypes.UnknownAddress(key.PublicKey().String()), FeeTokenAmount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), From 87861252426cad134830ad9c2481db2ec4b74e77 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 10 Jan 2025 23:05:07 -0600 Subject: [PATCH 067/232] add solana home chain merge func --- .../ccip/configs/solana/contract_reader.go | 18 ++++++++++++++++++ core/capabilities/ccip/oraclecreator/plugin.go | 7 +++++++ 2 files changed, 25 insertions(+) create mode 100644 core/capabilities/ccip/configs/solana/contract_reader.go diff --git a/core/capabilities/ccip/configs/solana/contract_reader.go b/core/capabilities/ccip/configs/solana/contract_reader.go new file mode 100644 index 00000000000..b360297985c --- /dev/null +++ b/core/capabilities/ccip/configs/solana/contract_reader.go @@ -0,0 +1,18 @@ +package solana + +import ( + "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" +) + +var HomeChainReaderConfigRaw = config.ChainReader{} // TODO update the home chain configuration + +func MergeReaderConfigs(configs ...config.ChainReader) config.ChainReader { + allNamespaces := make(map[string]config.ChainReaderMethods) + for _, c := range configs { + for namespace, method := range c.Namespaces { + allNamespaces[namespace] = method + } + } + + return config.ChainReader{Namespaces: allNamespaces} +} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 38fe423cb7a..4c30f8e1f64 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -19,6 +19,7 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" + solanaconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/solana" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" cctypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" @@ -481,6 +482,12 @@ func getChainReaderConfig( case relay.NetworkSolana: // TODO initialize chain reader config var cfg config.ChainReader + + if chainID == homeChainID { + lggr.Debugw("Adding home chain reader config", "chainID", chainID) + cfg = solanaconfig.MergeReaderConfigs(cfg, solanaconfig.HomeChainReaderConfigRaw) + } + marshaledConfig, err := json.Marshal(cfg) if err != nil { return nil, fmt.Errorf("failed to marshal chain reader config: %w", err) From 7fddbf812a0b9b6e9eb1b696497ee9dc3bf0f882 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 10 Jan 2025 23:17:57 -0600 Subject: [PATCH 068/232] rephrase --- core/capabilities/ccip/configs/solana/contract_reader.go | 4 +++- core/capabilities/ccip/oraclecreator/plugin.go | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/contract_reader.go b/core/capabilities/ccip/configs/solana/contract_reader.go index b360297985c..0783e9ab0ae 100644 --- a/core/capabilities/ccip/configs/solana/contract_reader.go +++ b/core/capabilities/ccip/configs/solana/contract_reader.go @@ -4,7 +4,9 @@ import ( "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" ) -var HomeChainReaderConfigRaw = config.ChainReader{} // TODO update the home chain configuration +var HomeChainReaderConfigRaw = config.ChainReader{} // TODO update the home chain reader configuration +var DestReaderConfig = config.ChainReader{} // TODO update the Dest chain reader configuration +var SourceReaderConfig = config.ChainReader{} // TODO update the Source chain reader configuration func MergeReaderConfigs(configs ...config.ChainReader) config.ChainReader { allNamespaces := make(map[string]config.ChainReaderMethods) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 4c30f8e1f64..7ab26339e34 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -480,8 +480,13 @@ func getChainReaderConfig( return marshaledConfig, nil case relay.NetworkSolana: - // TODO initialize chain reader config + // TODO update chain reader config in contract_reader.go var cfg config.ChainReader + if chainID == destChainID { + cfg = solanaconfig.DestReaderConfig + } else { + cfg = solanaconfig.SourceReaderConfig + } if chainID == homeChainID { lggr.Debugw("Adding home chain reader config", "chainID", chainID) From f8ccae36aeb42e602292091a6103805685401314 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 13:07:17 -0600 Subject: [PATCH 069/232] add entire config from example --- .../ccip/configs/solana/chain_writer.go | 353 +++++++++++++++++- 1 file changed, 350 insertions(+), 3 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index d7924173150..d55dfc21999 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -15,7 +15,12 @@ import ( var ccipRouter string func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { - // TODO once on-chain account lookup address are available, the config will be updated + // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be updated + routerProgramAddress := "" + var commonAddressesLookupTable []byte + + computeBudgetProgramAddress := solana.ComputeBudget.String() + sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() // check fromAddress _, err := solana.PublicKeyFromBase58(fromAddress) @@ -29,6 +34,7 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf return chainwriter.ChainWriterConfig{}, fmt.Errorf("unexpected error: invalid CCIP Router IDL, error: %w", err) } + // solConfig references the ccip_example_config.go from github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter, which is currently subject to change solConfig := chainwriter.ChainWriterConfig{ Programs: map[string]chainwriter.ProgramConfig{ "ccip-router": { @@ -36,11 +42,352 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf "execute": { FromAddress: fromAddress, InputModifications: nil, - ChainSpecificName: "execute"}, + ChainSpecificName: "execute", + LookupTables: chainwriter.LookupTables{ + // DerivedLookupTables are useful in both the ways described above. + // a. The user can configure any type of look up to get a list of lookupTables to read from. + // b. The ChainWriter reads from this lookup table and store the internal addresses in memory + // c. Later, in the []Accounts the user can specify which accounts to include in the TX with an chainwriter.AccountsFromLookupTable lookup. + // d. Lastly, the lookup table is used to compress the size of the transaction. + DerivedLookupTables: []chainwriter.DerivedLookupTable{ + { + Name: "RegistryTokenState", + // In this case, the user configured the lookup table accounts to use a PDALookup, which + // generates a list of one of more PDA accounts based on the input parameters. Specifically, + // there will be multiple PDA accounts if there are multiple addresses in the message, otherwise, + // there will only be one PDA account to read from. The PDA account corresponds to the lookup table. + Accounts: chainwriter.PDALookups{ + Name: "RegistryTokenState", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + // Seeds would be used if the user needed to look up addresses to use as seeds, which isn't the case here. + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, + }, + IsSigner: false, + IsWritable: false, + }, + }, + }, + // Static lookup tables are the traditional use case (point 2 above) of Lookup tables. These are lookup + // tables which contain commonly used addresses in all CCIP execute transactions. The ChainWriter reads + // these lookup tables and appends them to the transaction to reduce the size of the transaction. + StaticLookupTables: []solana.PublicKey{ + solana.PublicKey(commonAddressesLookupTable), + }, + }, + // The Accounts field is where the user specifies which accounts to include in the transaction. Each Lookup + // resolves to one or more on-chain addresses. + Accounts: []chainwriter.Lookup{ + // The accounts can be of any of the following types: + // 1. Account constant + // 2. Account Lookup - Based on data from input parameters + // 3. Lookup Table content - Get all the accounts from a lookup table + // 4. PDA Account Lookup - Based on another account and a seed/s + // Nested PDA Account with seeds from: + // -> input parameters + // -> constant + // PDALookups can resolve to multiple addresses if: + // A) The PublicKey lookup resolves to multiple addresses (i.e. multiple token addresses) + // B) The Seeds or ValueSeeds resolve to multiple values + // PDA lokoup with constant seed + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "SourceChainState", + // PublicKey is a constant account in this case, not a lookup. + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + // Similar to the RegistryTokenState above, the user is looking up PDA accounts based on the dest tokens. + Seeds: []chainwriter.Seed{ + {Static: []byte("source_chain_state")}, + {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, + }, + IsSigner: false, + IsWritable: false, + }, + // PDA lookup to get the Router Report Accounts. + chainwriter.PDALookups{ + Name: "CommitReport", + // The public key is a constant Router address. + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("commit_report")}, + {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, + {Dynamic: chainwriter.AccountLookup{ + // The seed is the merkle root of the report, as passed into the input params. + Location: "Info.MerkleRoot", + }}, + }, + IsSigner: false, + IsWritable: true, + }, + // Static PDA lookup + chainwriter.PDALookups{ + Name: "ExternalExecutionConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("external_execution_config")}, + }, + IsSigner: false, + IsWritable: false, + }, + // feePayer/authority address + chainwriter.AccountConstant{ + Name: "Authority", + Address: fromAddress, + IsSigner: true, + IsWritable: true, + }, + // Account constant + chainwriter.AccountConstant{ + Name: "SystemProgram", + Address: solana.SystemProgramID.String(), + IsSigner: false, + IsWritable: false, + }, + // Account constant + chainwriter.AccountConstant{ + Name: "SysvarInstructions", + Address: sysvarInstructionsAddress, + IsSigner: true, + IsWritable: false, + }, + // Static PDA lookup + chainwriter.PDALookups{ + Name: "ExternalTokenPoolsSigner", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("external_token_pools_signer")}, + }, + IsSigner: false, + IsWritable: false, + }, + // User specified accounts - formatted as AccountMeta + chainwriter.AccountLookup{ + Name: "UserAccounts", + Location: "Message.ExtraArgs.Accounts", + }, + // PDA Account Lookup - Based on an account lookup and an address lookup + chainwriter.PDALookups{ + Name: "ReceiverAssociatedTokenAccount", + PublicKey: chainwriter.AccountConstant{ + Address: solana.SPLAssociatedTokenAccountProgramID.String(), + }, + Seeds: []chainwriter.Seed{ + // receiver address + {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, + // token program + {Dynamic: chainwriter.AccountsFromLookupTable{ + LookupTableName: "RegistryTokenState", + IncludeIndexes: []int{5}, + }}, + // mint + {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, + }, + }, + chainwriter.PDALookups{ + Name: "PerChainTokenConfig", + // PublicKey is a constant account in this case, not a lookup. + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + // Similar to the RegistryTokenState above, the user is looking up PDA accounts based on the dest tokens. + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, + {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, + }, + IsSigner: false, + IsWritable: false, + }, + // Lookup Table content - Get the accounts from the derived lookup table above + chainwriter.AccountsFromLookupTable{ + LookupTableName: "RegistryTokenState", + IncludeIndexes: []int{}, // If left empty, all addresses will be included. Otherwise, only the specified indexes will be included. + }, + // PDA Lookup for the RegistryTokenConfig. + chainwriter.PDALookups{ + Name: "RegistryTokenConfig", + // constant public key + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + // The seed, once again, is the destination token address. + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, + }, + IsSigner: false, + IsWritable: false, + }, + // PDA lookup to get UserNoncePerChain + chainwriter.PDALookups{ + Name: "UserNoncePerChain", + // The public key is a constant Router address. + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + // In this case, the user configured multiple seeds. These will be used in conjunction + // with the public key to generate one or multiple PDA accounts. + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, + {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, + }, + }, + // PDA lokoup with constant seed + chainwriter.PDALookups{ + Name: "CPISigner", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("external_token_pools_signer")}, + }, + IsSigner: false, + IsWritable: false, + }, + // Account constant + chainwriter.AccountConstant{ + Name: "ComputeBudgetProgram", + Address: computeBudgetProgramAddress, + IsSigner: true, + IsWritable: false, + }, + }, + // TBD where this will be in the report + // This will be appended to every error message + DebugIDLocation: "Message.MessageID", + }, "commit": { FromAddress: fromAddress, InputModifications: nil, - ChainSpecificName: "commit"}, + ChainSpecificName: "commit", + LookupTables: chainwriter.LookupTables{ + StaticLookupTables: []solana.PublicKey{ + solana.PublicKey(commonAddressesLookupTable), + }, + }, + Accounts: []chainwriter.Lookup{ + // Static PDA lookup + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "SourceChainState", + // PublicKey is a constant account in this case, not a lookup. + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + // Similar to the RegistryTokenState above, the user is looking up PDA accounts based on the dest tokens. + Seeds: []chainwriter.Seed{ + {Static: []byte("source_chain_state")}, + {Dynamic: chainwriter.AccountLookup{Location: "MerkleRoot.DestChainSelector"}}, + }, + IsSigner: false, + IsWritable: false, + }, + // Account constant + chainwriter.AccountConstant{ + Name: "RouterProgram", + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + // PDA lokoup with constant seed + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, + // PDA lokoup with constant seed + chainwriter.PDALookups{ + Name: "RouterAccountState", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("state")}, + }, + IsSigner: false, + IsWritable: false, + }, + // PDA lookup to get the Router Report Accounts. + chainwriter.PDALookups{ + Name: "RouterReportAccount", + // The public key is a constant Router address. + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{ + // The seed is the merkle root of the report, as passed into the input params. + Location: "args.MerkleRoots", + }}, + }, + IsSigner: false, + IsWritable: false, + }, + // Account constant + chainwriter.AccountConstant{ + Name: "ComputeBudgetProgram", + Address: computeBudgetProgramAddress, + IsSigner: true, + IsWritable: false, + }, + // Account constant + chainwriter.AccountConstant{ + Name: "SysvarInstructions", + Address: sysvarInstructionsAddress, + IsSigner: true, + IsWritable: false, + }, + }, + DebugIDLocation: "", + }, }, IDL: ccipRouter}, }, From 18cdd6484d60d81ac3a92e3424b52bd37992a539 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 13:15:49 -0600 Subject: [PATCH 070/232] rm comments --- .../ccip/configs/solana/chain_writer.go | 69 +------------------ 1 file changed, 1 insertion(+), 68 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index d55dfc21999..a09cdf24cf5 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -44,18 +44,9 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf InputModifications: nil, ChainSpecificName: "execute", LookupTables: chainwriter.LookupTables{ - // DerivedLookupTables are useful in both the ways described above. - // a. The user can configure any type of look up to get a list of lookupTables to read from. - // b. The ChainWriter reads from this lookup table and store the internal addresses in memory - // c. Later, in the []Accounts the user can specify which accounts to include in the TX with an chainwriter.AccountsFromLookupTable lookup. - // d. Lastly, the lookup table is used to compress the size of the transaction. DerivedLookupTables: []chainwriter.DerivedLookupTable{ { Name: "RegistryTokenState", - // In this case, the user configured the lookup table accounts to use a PDALookup, which - // generates a list of one of more PDA accounts based on the input parameters. Specifically, - // there will be multiple PDA accounts if there are multiple addresses in the message, otherwise, - // there will only be one PDA account to read from. The PDA account corresponds to the lookup table. Accounts: chainwriter.PDALookups{ Name: "RegistryTokenState", PublicKey: chainwriter.AccountConstant{ @@ -63,7 +54,6 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // Seeds would be used if the user needed to look up addresses to use as seeds, which isn't the case here. Seeds: []chainwriter.Seed{ {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, }, @@ -72,28 +62,11 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf }, }, }, - // Static lookup tables are the traditional use case (point 2 above) of Lookup tables. These are lookup - // tables which contain commonly used addresses in all CCIP execute transactions. The ChainWriter reads - // these lookup tables and appends them to the transaction to reduce the size of the transaction. StaticLookupTables: []solana.PublicKey{ solana.PublicKey(commonAddressesLookupTable), }, }, - // The Accounts field is where the user specifies which accounts to include in the transaction. Each Lookup - // resolves to one or more on-chain addresses. Accounts: []chainwriter.Lookup{ - // The accounts can be of any of the following types: - // 1. Account constant - // 2. Account Lookup - Based on data from input parameters - // 3. Lookup Table content - Get all the accounts from a lookup table - // 4. PDA Account Lookup - Based on another account and a seed/s - // Nested PDA Account with seeds from: - // -> input parameters - // -> constant - // PDALookups can resolve to multiple addresses if: - // A) The PublicKey lookup resolves to multiple addresses (i.e. multiple token addresses) - // B) The Seeds or ValueSeeds resolve to multiple values - // PDA lokoup with constant seed chainwriter.PDALookups{ Name: "RouterAccountConfig", PublicKey: chainwriter.AccountConstant{ @@ -107,11 +80,9 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf }, chainwriter.PDALookups{ Name: "SourceChainState", - // PublicKey is a constant account in this case, not a lookup. PublicKey: chainwriter.AccountConstant{ Address: routerProgramAddress, }, - // Similar to the RegistryTokenState above, the user is looking up PDA accounts based on the dest tokens. Seeds: []chainwriter.Seed{ {Static: []byte("source_chain_state")}, {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, @@ -119,10 +90,8 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // PDA lookup to get the Router Report Accounts. chainwriter.PDALookups{ Name: "CommitReport", - // The public key is a constant Router address. PublicKey: chainwriter.AccountConstant{ Address: routerProgramAddress, }, @@ -130,14 +99,12 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf {Static: []byte("commit_report")}, {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, {Dynamic: chainwriter.AccountLookup{ - // The seed is the merkle root of the report, as passed into the input params. Location: "Info.MerkleRoot", }}, }, IsSigner: false, IsWritable: true, }, - // Static PDA lookup chainwriter.PDALookups{ Name: "ExternalExecutionConfig", PublicKey: chainwriter.AccountConstant{ @@ -149,28 +116,24 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // feePayer/authority address chainwriter.AccountConstant{ Name: "Authority", Address: fromAddress, IsSigner: true, IsWritable: true, }, - // Account constant chainwriter.AccountConstant{ Name: "SystemProgram", Address: solana.SystemProgramID.String(), IsSigner: false, IsWritable: false, }, - // Account constant chainwriter.AccountConstant{ Name: "SysvarInstructions", Address: sysvarInstructionsAddress, IsSigner: true, IsWritable: false, }, - // Static PDA lookup chainwriter.PDALookups{ Name: "ExternalTokenPoolsSigner", PublicKey: chainwriter.AccountConstant{ @@ -182,36 +145,29 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // User specified accounts - formatted as AccountMeta chainwriter.AccountLookup{ Name: "UserAccounts", Location: "Message.ExtraArgs.Accounts", }, - // PDA Account Lookup - Based on an account lookup and an address lookup chainwriter.PDALookups{ Name: "ReceiverAssociatedTokenAccount", PublicKey: chainwriter.AccountConstant{ Address: solana.SPLAssociatedTokenAccountProgramID.String(), }, Seeds: []chainwriter.Seed{ - // receiver address {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, - // token program {Dynamic: chainwriter.AccountsFromLookupTable{ LookupTableName: "RegistryTokenState", IncludeIndexes: []int{5}, }}, - // mint {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, }, }, chainwriter.PDALookups{ Name: "PerChainTokenConfig", - // PublicKey is a constant account in this case, not a lookup. PublicKey: chainwriter.AccountConstant{ Address: routerProgramAddress, }, - // Similar to the RegistryTokenState above, the user is looking up PDA accounts based on the dest tokens. Seeds: []chainwriter.Seed{ {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, @@ -219,44 +175,35 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // Lookup Table content - Get the accounts from the derived lookup table above chainwriter.AccountsFromLookupTable{ LookupTableName: "RegistryTokenState", - IncludeIndexes: []int{}, // If left empty, all addresses will be included. Otherwise, only the specified indexes will be included. + IncludeIndexes: []int{}, }, - // PDA Lookup for the RegistryTokenConfig. chainwriter.PDALookups{ Name: "RegistryTokenConfig", - // constant public key PublicKey: chainwriter.AccountConstant{ Address: routerProgramAddress, IsSigner: false, IsWritable: false, }, - // The seed, once again, is the destination token address. Seeds: []chainwriter.Seed{ {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, }, IsSigner: false, IsWritable: false, }, - // PDA lookup to get UserNoncePerChain chainwriter.PDALookups{ Name: "UserNoncePerChain", - // The public key is a constant Router address. PublicKey: chainwriter.AccountConstant{ Address: routerProgramAddress, IsSigner: false, IsWritable: false, }, - // In this case, the user configured multiple seeds. These will be used in conjunction - // with the public key to generate one or multiple PDA accounts. Seeds: []chainwriter.Seed{ {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, }, }, - // PDA lokoup with constant seed chainwriter.PDALookups{ Name: "CPISigner", PublicKey: chainwriter.AccountConstant{ @@ -270,7 +217,6 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // Account constant chainwriter.AccountConstant{ Name: "ComputeBudgetProgram", Address: computeBudgetProgramAddress, @@ -278,8 +224,6 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsWritable: false, }, }, - // TBD where this will be in the report - // This will be appended to every error message DebugIDLocation: "Message.MessageID", }, "commit": { @@ -292,7 +236,6 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf }, }, Accounts: []chainwriter.Lookup{ - // Static PDA lookup chainwriter.PDALookups{ Name: "RouterAccountConfig", PublicKey: chainwriter.AccountConstant{ @@ -306,11 +249,9 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf }, chainwriter.PDALookups{ Name: "SourceChainState", - // PublicKey is a constant account in this case, not a lookup. PublicKey: chainwriter.AccountConstant{ Address: routerProgramAddress, }, - // Similar to the RegistryTokenState above, the user is looking up PDA accounts based on the dest tokens. Seeds: []chainwriter.Seed{ {Static: []byte("source_chain_state")}, {Dynamic: chainwriter.AccountLookup{Location: "MerkleRoot.DestChainSelector"}}, @@ -318,14 +259,12 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // Account constant chainwriter.AccountConstant{ Name: "RouterProgram", Address: routerProgramAddress, IsSigner: false, IsWritable: false, }, - // PDA lokoup with constant seed chainwriter.PDALookups{ Name: "RouterAccountConfig", PublicKey: chainwriter.AccountConstant{ @@ -339,7 +278,6 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // PDA lokoup with constant seed chainwriter.PDALookups{ Name: "RouterAccountState", PublicKey: chainwriter.AccountConstant{ @@ -353,10 +291,8 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf IsSigner: false, IsWritable: false, }, - // PDA lookup to get the Router Report Accounts. chainwriter.PDALookups{ Name: "RouterReportAccount", - // The public key is a constant Router address. PublicKey: chainwriter.AccountConstant{ Address: routerProgramAddress, IsSigner: false, @@ -364,21 +300,18 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf }, Seeds: []chainwriter.Seed{ {Dynamic: chainwriter.AccountLookup{ - // The seed is the merkle root of the report, as passed into the input params. Location: "args.MerkleRoots", }}, }, IsSigner: false, IsWritable: false, }, - // Account constant chainwriter.AccountConstant{ Name: "ComputeBudgetProgram", Address: computeBudgetProgramAddress, IsSigner: true, IsWritable: false, }, - // Account constant chainwriter.AccountConstant{ Name: "SysvarInstructions", Address: sysvarInstructionsAddress, From 44d709e843d19fafb3fa4fb94df1bb4a13a528c9 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 13:50:08 -0600 Subject: [PATCH 071/232] lint --- .../ccip/configs/solana/chain_writer.go | 577 +++++++++--------- 1 file changed, 295 insertions(+), 282 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index a09cdf24cf5..706eeecb718 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -14,6 +14,299 @@ import ( //go:embed ccip_router.json var ccipRouter string +const ( + destChainSelectorPath = "Message.Header.DestChainSelector" + destTokenAddress = "Message.TokenAmounts.DestTokenAddress" +) + +func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte) chainwriter.MethodConfig { + return chainwriter.MethodConfig{ + FromAddress: fromAddress, + InputModifications: nil, + ChainSpecificName: "commit", + LookupTables: chainwriter.LookupTables{ + StaticLookupTables: []solana.PublicKey{ + solana.PublicKey(commonAddressesLookupTable), + }, + }, + Accounts: []chainwriter.Lookup{ + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "SourceChainState", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("source_chain_state")}, + {Dynamic: chainwriter.AccountLookup{Location: "MerkleRoot.DestChainSelector"}}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.AccountConstant{ + Name: "RouterProgram", + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "RouterAccountState", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("state")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "RouterReportAccount", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{ + Location: "args.MerkleRoots", + }}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.AccountConstant{ + Name: "ComputeBudgetProgram", + Address: computeBudgetProgramAddress, + IsSigner: true, + IsWritable: false, + }, + chainwriter.AccountConstant{ + Name: "SysvarInstructions", + Address: sysvarInstructionsAddress, + IsSigner: true, + IsWritable: false, + }, + }, + DebugIDLocation: "", + } +} + +func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte) chainwriter.MethodConfig { + return chainwriter.MethodConfig{ + FromAddress: fromAddress, + InputModifications: nil, + ChainSpecificName: "execute", + LookupTables: chainwriter.LookupTables{ + DerivedLookupTables: []chainwriter.DerivedLookupTable{ + { + Name: "RegistryTokenState", + Accounts: chainwriter.PDALookups{ + Name: "RegistryTokenState", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, + }, + IsSigner: false, + IsWritable: false, + }, + }, + }, + StaticLookupTables: []solana.PublicKey{ + solana.PublicKey(commonAddressesLookupTable), + }, + }, + Accounts: []chainwriter.Lookup{ + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "SourceChainState", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("source_chain_state")}, + {Dynamic: chainwriter.AccountLookup{Location: destChainSelectorPath}}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "CommitReport", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("commit_report")}, + {Dynamic: chainwriter.AccountLookup{Location: destChainSelectorPath}}, + {Dynamic: chainwriter.AccountLookup{ + Location: "Info.MerkleRoot", + }}, + }, + IsSigner: false, + IsWritable: true, + }, + chainwriter.PDALookups{ + Name: "ExternalExecutionConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("external_execution_config")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.AccountConstant{ + Name: "Authority", + Address: fromAddress, + IsSigner: true, + IsWritable: true, + }, + chainwriter.AccountConstant{ + Name: "SystemProgram", + Address: solana.SystemProgramID.String(), + IsSigner: false, + IsWritable: false, + }, + chainwriter.AccountConstant{ + Name: "SysvarInstructions", + Address: sysvarInstructionsAddress, + IsSigner: true, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "ExternalTokenPoolsSigner", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("external_token_pools_signer")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.AccountLookup{ + Name: "UserAccounts", + Location: "Message.ExtraArgs.Accounts", + }, + chainwriter.PDALookups{ + Name: "ReceiverAssociatedTokenAccount", + PublicKey: chainwriter.AccountConstant{ + Address: solana.SPLAssociatedTokenAccountProgramID.String(), + }, + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, + {Dynamic: chainwriter.AccountsFromLookupTable{ + LookupTableName: "RegistryTokenState", + IncludeIndexes: []int{5}, + }}, + {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, + }, + }, + chainwriter.PDALookups{ + Name: "PerChainTokenConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, + {Dynamic: chainwriter.AccountLookup{Location: destChainSelectorPath}}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.AccountsFromLookupTable{ + LookupTableName: "RegistryTokenState", + IncludeIndexes: []int{}, + }, + chainwriter.PDALookups{ + Name: "RegistryTokenConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "UserNoncePerChain", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, + {Dynamic: chainwriter.AccountLookup{Location: destChainSelectorPath}}, + }, + }, + chainwriter.PDALookups{ + Name: "CPISigner", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + IsSigner: false, + IsWritable: false, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("external_token_pools_signer")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.AccountConstant{ + Name: "ComputeBudgetProgram", + Address: computeBudgetProgramAddress, + IsSigner: true, + IsWritable: false, + }, + }, + DebugIDLocation: "Message.MessageID", + } +} + func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be updated routerProgramAddress := "" @@ -39,288 +332,8 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf Programs: map[string]chainwriter.ProgramConfig{ "ccip-router": { Methods: map[string]chainwriter.MethodConfig{ - "execute": { - FromAddress: fromAddress, - InputModifications: nil, - ChainSpecificName: "execute", - LookupTables: chainwriter.LookupTables{ - DerivedLookupTables: []chainwriter.DerivedLookupTable{ - { - Name: "RegistryTokenState", - Accounts: chainwriter.PDALookups{ - Name: "RegistryTokenState", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, - }, - IsSigner: false, - IsWritable: false, - }, - }, - }, - StaticLookupTables: []solana.PublicKey{ - solana.PublicKey(commonAddressesLookupTable), - }, - }, - Accounts: []chainwriter.Lookup{ - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "SourceChainState", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("source_chain_state")}, - {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "CommitReport", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("commit_report")}, - {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, - {Dynamic: chainwriter.AccountLookup{ - Location: "Info.MerkleRoot", - }}, - }, - IsSigner: false, - IsWritable: true, - }, - chainwriter.PDALookups{ - Name: "ExternalExecutionConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("external_execution_config")}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountConstant{ - Name: "Authority", - Address: fromAddress, - IsSigner: true, - IsWritable: true, - }, - chainwriter.AccountConstant{ - Name: "SystemProgram", - Address: solana.SystemProgramID.String(), - IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountConstant{ - Name: "SysvarInstructions", - Address: sysvarInstructionsAddress, - IsSigner: true, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "ExternalTokenPoolsSigner", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("external_token_pools_signer")}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountLookup{ - Name: "UserAccounts", - Location: "Message.ExtraArgs.Accounts", - }, - chainwriter.PDALookups{ - Name: "ReceiverAssociatedTokenAccount", - PublicKey: chainwriter.AccountConstant{ - Address: solana.SPLAssociatedTokenAccountProgramID.String(), - }, - Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, - {Dynamic: chainwriter.AccountsFromLookupTable{ - LookupTableName: "RegistryTokenState", - IncludeIndexes: []int{5}, - }}, - {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, - }, - }, - chainwriter.PDALookups{ - Name: "PerChainTokenConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, - {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountsFromLookupTable{ - LookupTableName: "RegistryTokenState", - IncludeIndexes: []int{}, - }, - chainwriter.PDALookups{ - Name: "RegistryTokenConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{Location: "Message.TokenAmounts.DestTokenAddress"}}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "UserNoncePerChain", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, - {Dynamic: chainwriter.AccountLookup{Location: "Message.Header.DestChainSelector"}}, - }, - }, - chainwriter.PDALookups{ - Name: "CPISigner", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("external_token_pools_signer")}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountConstant{ - Name: "ComputeBudgetProgram", - Address: computeBudgetProgramAddress, - IsSigner: true, - IsWritable: false, - }, - }, - DebugIDLocation: "Message.MessageID", - }, - "commit": { - FromAddress: fromAddress, - InputModifications: nil, - ChainSpecificName: "commit", - LookupTables: chainwriter.LookupTables{ - StaticLookupTables: []solana.PublicKey{ - solana.PublicKey(commonAddressesLookupTable), - }, - }, - Accounts: []chainwriter.Lookup{ - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "SourceChainState", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("source_chain_state")}, - {Dynamic: chainwriter.AccountLookup{Location: "MerkleRoot.DestChainSelector"}}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountConstant{ - Name: "RouterProgram", - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "RouterAccountState", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("state")}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "RouterReportAccount", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{ - Location: "args.MerkleRoots", - }}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountConstant{ - Name: "ComputeBudgetProgram", - Address: computeBudgetProgramAddress, - IsSigner: true, - IsWritable: false, - }, - chainwriter.AccountConstant{ - Name: "SysvarInstructions", - Address: sysvarInstructionsAddress, - IsSigner: true, - IsWritable: false, - }, - }, - DebugIDLocation: "", - }, + "execute": getExecuteProgramConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable), + "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable), }, IDL: ccipRouter}, }, From 0cdf5837d1c6abb9e6e70b61ee94bc8856c2e7ee Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 14:21:11 -0600 Subject: [PATCH 072/232] lint --- .../ccip/configs/solana/chain_writer.go | 44 ++++++++----------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 706eeecb718..5fe5c261e86 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -19,7 +19,7 @@ const ( destTokenAddress = "Message.TokenAmounts.DestTokenAddress" ) -func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte) chainwriter.MethodConfig { +func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { return chainwriter.MethodConfig{ FromAddress: fromAddress, InputModifications: nil, @@ -30,17 +30,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysv }, }, Accounts: []chainwriter.Lookup{ - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, + routerAccountConfig, chainwriter.PDALookups{ Name: "SourceChainState", PublicKey: chainwriter.AccountConstant{ @@ -117,7 +107,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysv } } -func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte) chainwriter.MethodConfig { +func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { return chainwriter.MethodConfig{ FromAddress: fromAddress, InputModifications: nil, @@ -146,17 +136,7 @@ func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sy }, }, Accounts: []chainwriter.Lookup{ - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, + routerAccountConfig, chainwriter.PDALookups{ Name: "SourceChainState", PublicKey: chainwriter.AccountConstant{ @@ -327,13 +307,25 @@ func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConf return chainwriter.ChainWriterConfig{}, fmt.Errorf("unexpected error: invalid CCIP Router IDL, error: %w", err) } + routeAccountConfig := chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + } + // solConfig references the ccip_example_config.go from github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter, which is currently subject to change solConfig := chainwriter.ChainWriterConfig{ Programs: map[string]chainwriter.ProgramConfig{ "ccip-router": { Methods: map[string]chainwriter.MethodConfig{ - "execute": getExecuteProgramConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable), - "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable), + "execute": getExecuteProgramConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable, routeAccountConfig), + "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable, routeAccountConfig), }, IDL: ccipRouter}, }, From 05c1b753fbc4b6e44911a3fdf88db47471dbec93 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 15:05:30 -0600 Subject: [PATCH 073/232] refactor --- core/capabilities/ccip/configs/solana/chain_writer.go | 10 +++------- .../ccip/configs/solana/chain_writer_test.go | 4 +++- core/capabilities/ccip/oraclecreator/plugin.go | 4 +++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 5fe5c261e86..103946e3406 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -19,7 +19,7 @@ const ( destTokenAddress = "Message.TokenAmounts.DestTokenAddress" ) -func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { +func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { return chainwriter.MethodConfig{ FromAddress: fromAddress, InputModifications: nil, @@ -107,7 +107,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysv } } -func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable []byte, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { +func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { return chainwriter.MethodConfig{ FromAddress: fromAddress, InputModifications: nil, @@ -287,11 +287,7 @@ func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sy } } -func GetSolanaChainWriterConfig(fromAddress string) (chainwriter.ChainWriterConfig, error) { - // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be updated - routerProgramAddress := "" - var commonAddressesLookupTable []byte - +func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, fromAddress string) (chainwriter.ChainWriterConfig, error) { computeBudgetProgramAddress := solana.ComputeBudget.String() sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() diff --git a/core/capabilities/ccip/configs/solana/chain_writer_test.go b/core/capabilities/ccip/configs/solana/chain_writer_test.go index 96086f0faa3..3915185ab06 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer_test.go +++ b/core/capabilities/ccip/configs/solana/chain_writer_test.go @@ -3,6 +3,7 @@ package solana import ( "testing" + "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/assert" ) @@ -24,9 +25,10 @@ func TestChainWriterConfigRaw(t *testing.T) { }, } + commonAddressesLookupTable := solana.MustPublicKeyFromBase58("4Nn9dsYBcSTzRbK9hg9kzCUdrCSkMZq1UR6Vw1Tkaf6H") for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - _, err := GetSolanaChainWriterConfig(tt.fromAddress) + _, err := GetSolanaChainWriterConfig("4Nn9dsYBcSTzRbK9hg9kzCUdrCSkMZq1UR6Vw1Tkaf6H", commonAddressesLookupTable, tt.fromAddress) if tt.expectedError != "" { assert.EqualError(t, err, tt.expectedError) } else { diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 427da234d24..3dc0c72a64a 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -9,6 +9,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" + "github.com/gagliardetto/solana-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" "github.com/smartcontractkit/chainlink/v2/core/services/relay" @@ -498,7 +499,8 @@ func createChainWriter( switch chainFamily { case relay.NetworkSolana: var solConfig chainwriter.ChainWriterConfig - if solConfig, err = solanaconfig.GetSolanaChainWriterConfig(transmitter[0]); err == nil { + // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be updated + if solConfig, err = solanaconfig.GetSolanaChainWriterConfig("", solana.PublicKey{}, transmitter[0]); err == nil { return nil, fmt.Errorf("failed to get Solana chain writer config: %w", err) } if chainWriterConfig, err = json.Marshal(solConfig); err != nil { From fbfff6af4ff7bd9c34df2d31b07d796dbecd4f7a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 15:06:39 -0600 Subject: [PATCH 074/232] update comments --- core/capabilities/ccip/oraclecreator/plugin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 3dc0c72a64a..aaebac15e14 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -499,7 +499,7 @@ func createChainWriter( switch chainFamily { case relay.NetworkSolana: var solConfig chainwriter.ChainWriterConfig - // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be updated + // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be provided from tooling config, and populated here for the params if solConfig, err = solanaconfig.GetSolanaChainWriterConfig("", solana.PublicKey{}, transmitter[0]); err == nil { return nil, fmt.Errorf("failed to get Solana chain writer config: %w", err) } From c2a604b524b4b36dbfd8bbe045ce1d0016518209 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 15:34:56 -0600 Subject: [PATCH 075/232] fix lint --- core/capabilities/ccip/configs/solana/chain_writer.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 103946e3406..87649ef5984 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -26,7 +26,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysv ChainSpecificName: "commit", LookupTables: chainwriter.LookupTables{ StaticLookupTables: []solana.PublicKey{ - solana.PublicKey(commonAddressesLookupTable), + commonAddressesLookupTable, }, }, Accounts: []chainwriter.Lookup{ @@ -132,7 +132,7 @@ func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sy }, }, StaticLookupTables: []solana.PublicKey{ - solana.PublicKey(commonAddressesLookupTable), + commonAddressesLookupTable, }, }, Accounts: []chainwriter.Lookup{ From 6ecbec231c95ee3daa3152c5eac4d356adf119a3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 13 Jan 2025 16:49:59 -0600 Subject: [PATCH 076/232] make generate --- go.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/go.md b/go.md index ed41edee2b0..87bfabe78a7 100644 --- a/go.md +++ b/go.md @@ -28,6 +28,8 @@ flowchart LR chainlink-ccip --> chain-selectors chainlink-ccip --> chainlink-common click chainlink-ccip href "https://github.com/smartcontractkit/chainlink-ccip" + chainlink-ccip/chains/solana --> chainlink-common + click chainlink-ccip/chains/solana href "https://github.com/smartcontractkit/chainlink-ccip" chainlink-common --> grpc-proxy chainlink-common --> libocr click chainlink-common href "https://github.com/smartcontractkit/chainlink-common" @@ -47,6 +49,7 @@ flowchart LR click chainlink-starknet/relayer href "https://github.com/smartcontractkit/chainlink-starknet" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds @@ -68,6 +71,12 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" + subgraph chainlink-ccip-repo[chainlink-ccip] + chainlink-ccip + chainlink-ccip/chains/solana + end + click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" + subgraph tdh2-repo[tdh2] tdh2/go/ocr2/decryptionplugin tdh2/go/tdh2 @@ -75,7 +84,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; - class tdh2-repo outline + class chainlink-ccip-repo,tdh2-repo outline ``` ## All modules ```mermaid @@ -143,7 +152,6 @@ flowchart LR chainlink/core/scripts --> chainlink/deployment click chainlink/core/scripts href "https://github.com/smartcontractkit/chainlink" chainlink/deployment --> ccip-owner-contracts - chainlink/deployment --> chainlink-ccip/chains/solana chainlink/deployment --> chainlink-protos/job-distributor chainlink/deployment --> chainlink-testing-framework/lib chainlink/deployment --> chainlink/v2 @@ -155,6 +163,7 @@ flowchart LR click chainlink/load-tests href "https://github.com/smartcontractkit/chainlink" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds From 016f5a608114c904b64a215ad04fd284fb2794eb Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 14 Jan 2025 01:19:29 -0600 Subject: [PATCH 077/232] Add solana support to contract transmitter (#15869) * add solana support to contract transmitter * add changeset * one more place * address unsupported chain family * encode offramp addr * fix breaking change * rename * test * revert --- .changeset/wise-items-brush.md | 5 +++ .../capabilities/ccip/oraclecreator/plugin.go | 39 ++++++++++++++----- 2 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 .changeset/wise-items-brush.md diff --git a/.changeset/wise-items-brush.md b/.changeset/wise-items-brush.md new file mode 100644 index 00000000000..715f08f6ccc --- /dev/null +++ b/.changeset/wise-items-brush.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +Add solana support for contract transmitter and remove evm depdendency for address encoding #added diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index d4c5596aeaf..99196d70b97 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -10,8 +10,10 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" + "github.com/gagliardetto/solana-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" + "github.com/smartcontractkit/chainlink/v2/core/services/relay" chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3confighelper" @@ -170,7 +172,7 @@ func (i *pluginOracleCreator) Create(ctx context.Context, donID uint32, config c // TODO: Extract the correct transmitter address from the destsFromAccount factory, transmitter, err := i.createFactoryAndTransmitter( - donID, config, destRelayID, contractReaders, chainWriters, destChainWriter, destFromAccounts, publicConfig) + donID, config, destRelayID, contractReaders, chainWriters, destChainWriter, destFromAccounts, publicConfig, destChainFamily) if err != nil { return nil, fmt.Errorf("failed to create factory and transmitter: %w", err) } @@ -188,7 +190,7 @@ func (i *pluginOracleCreator) Create(ctx context.Context, donID uint32, config c i.lggr. Named(fmt.Sprintf("CCIP%sOCR3", pluginType.String())). Named(destRelayID.String()). - Named(hexutil.Encode(config.Config.OfframpAddress)), + Named(encodeOffRampAddr(config.Config.OfframpAddress, destChainFamily, false)), false, func(ctx context.Context, msg string) {}), MetricsRegisterer: prometheus.WrapRegistererWith(map[string]string{"name": fmt.Sprintf("commit-%d", config.Config.ChainSelector)}, prometheus.DefaultRegisterer), @@ -218,6 +220,24 @@ func (i *pluginOracleCreator) Create(ctx context.Context, donID uint32, config c return newWrappedOracle(oracle, closers), nil } +func encodeOffRampAddr(addr []byte, chainFamily string, checkSum bool) string { + var offRampAddr string + switch chainFamily { + case relay.NetworkEVM: + if checkSum { + offRampAddr = common.BytesToAddress(addr).Hex() + } else { + offRampAddr = hexutil.Encode(addr) + } + case relay.NetworkSolana: + offRampAddr = solana.PublicKeyFromBytes(addr).String() + default: + panic(fmt.Errorf("unsupported chain family: %s", chainFamily)) + } + + return offRampAddr +} + func (i *pluginOracleCreator) createFactoryAndTransmitter( donID uint32, config cctypes.OCR3ConfigWithMeta, @@ -227,6 +247,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( destChainWriter types.ContractWriter, destFromAccounts []string, publicConfig ocr3confighelper.PublicConfig, + destChainFamily string, ) (ocr3types.ReportingPluginFactory[[]byte], ocr3types.ContractTransmitter[[]byte], error) { var factory ocr3types.ReportingPluginFactory[[]byte] var transmitter ocr3types.ContractTransmitter[[]byte] @@ -258,7 +279,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( Named("CCIPCommitPlugin"). Named(destRelayID.String()). Named(fmt.Sprintf("%d", config.Config.ChainSelector)). - Named(hexutil.Encode(config.Config.OfframpAddress)), + Named(encodeOffRampAddr(config.Config.OfframpAddress, destChainFamily, false)), donID, ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewCommitPluginCodecV1(), @@ -273,14 +294,14 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( factory = promwrapper.NewReportingPluginFactory[[]byte](factory, i.lggr, chainID, "CCIPCommit") transmitter = ocrimpls.NewCommitContractTransmitter(destChainWriter, ocrtypes.Account(destFromAccounts[0]), - hexutil.Encode(config.Config.OfframpAddress), // TODO: this works for evm only, how about non-evm? + encodeOffRampAddr(config.Config.OfframpAddress, destChainFamily, false), ) } else if config.Config.PluginType == uint8(cctypes.PluginTypeCCIPExec) { factory = execocr3.NewPluginFactory( i.lggr. Named("CCIPExecPlugin"). Named(destRelayID.String()). - Named(hexutil.Encode(config.Config.OfframpAddress)), + Named(encodeOffRampAddr(config.Config.OfframpAddress, destChainFamily, false)), donID, ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewExecutePluginCodecV1(), @@ -294,7 +315,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( factory = promwrapper.NewReportingPluginFactory[[]byte](factory, i.lggr, chainID, "CCIPExec") transmitter = ocrimpls.NewExecContractTransmitter(destChainWriter, ocrtypes.Account(destFromAccounts[0]), - hexutil.Encode(config.Config.OfframpAddress), // TODO: this works for evm only, how about non-evm? + encodeOffRampAddr(config.Config.OfframpAddress, destChainFamily, false), ) } else { return nil, nil, fmt.Errorf("unsupported plugin type %d", config.Config.PluginType) @@ -354,15 +375,15 @@ func (i *pluginOracleCreator) createReadersAndWriters( } if chainID == destChainID && destChainFamily == relayChainFamily { - offrampAddressHex := common.BytesToAddress(config.Config.OfframpAddress).Hex() + offrampAddress := encodeOffRampAddr(config.Config.OfframpAddress, relayChainFamily, true) err2 := cr.Bind(ctx, []types.BoundContract{ { - Address: offrampAddressHex, + Address: offrampAddress, Name: consts.ContractNameOffRamp, }, }) if err2 != nil { - return nil, nil, fmt.Errorf("failed to bind chain reader for dest chain %s's offramp at %s: %w", chainID, offrampAddressHex, err) + return nil, nil, fmt.Errorf("failed to bind chain reader for dest chain %s's offramp at %s: %w", chainID, offrampAddress, err) } } From b85cffd52e0be5f935d717d76f7c662284a4b062 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 14 Jan 2025 16:38:44 -0600 Subject: [PATCH 078/232] update version --- .../ccip/configs/solana/contract_reader.go | 12 ++++++------ core/capabilities/ccip/oraclecreator/plugin.go | 2 +- go.mod | 8 +++++++- go.sum | 7 +++++++ 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/contract_reader.go b/core/capabilities/ccip/configs/solana/contract_reader.go index 0783e9ab0ae..d53506b4f75 100644 --- a/core/capabilities/ccip/configs/solana/contract_reader.go +++ b/core/capabilities/ccip/configs/solana/contract_reader.go @@ -4,17 +4,17 @@ import ( "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" ) -var HomeChainReaderConfigRaw = config.ChainReader{} // TODO update the home chain reader configuration -var DestReaderConfig = config.ChainReader{} // TODO update the Dest chain reader configuration -var SourceReaderConfig = config.ChainReader{} // TODO update the Source chain reader configuration +var HomeChainReaderConfigRaw = config.ContractReader{} // TODO update the home chain reader configuration +var DestReaderConfig = config.ContractReader{} // TODO update the Dest chain reader configuration +var SourceReaderConfig = config.ContractReader{} // TODO update the Source chain reader configuration -func MergeReaderConfigs(configs ...config.ChainReader) config.ChainReader { - allNamespaces := make(map[string]config.ChainReaderMethods) +func MergeReaderConfigs(configs ...config.ContractReader) config.ContractReader { + allNamespaces := make(map[string]config.ChainContractReader) for _, c := range configs { for namespace, method := range c.Namespaces { allNamespaces[namespace] = method } } - return config.ChainReader{Namespaces: allNamespaces} + return config.ContractReader{Namespaces: allNamespaces} } diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 7ab26339e34..4ccf6b1c2bb 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -481,7 +481,7 @@ func getChainReaderConfig( return marshaledConfig, nil case relay.NetworkSolana: // TODO update chain reader config in contract_reader.go - var cfg config.ChainReader + var cfg config.ContractReader if chainID == destChainID { cfg = solanaconfig.DestReaderConfig } else { diff --git a/go.mod b/go.mod index c12790b12c7..25b1f6606d7 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/smartcontractkit/chainlink-feeds v0.1.1 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418-09e17ddbeb20 github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de @@ -152,12 +152,14 @@ require ( github.com/apache/arrow-go/v18 v18.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -207,6 +209,7 @@ require ( github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/gin-contrib/sse v0.1.0 // indirect @@ -249,6 +252,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect @@ -288,6 +292,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mfridman/interpolate v0.0.2 // indirect + github.com/miekg/dns v1.1.61 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -315,6 +320,7 @@ require ( github.com/rivo/uniseg v0.4.4 // indirect github.com/rs/cors v1.9.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/go.sum b/go.sum index c8778ab3532..49dee918165 100644 --- a/go.sum +++ b/go.sum @@ -406,6 +406,7 @@ github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyO github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -913,6 +914,7 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= @@ -1162,8 +1164,12 @@ github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418- github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418-09e17ddbeb20/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= +github.com/smartcontractkit/chainlink-solana v1.1.0 h1:+xBeVqx2x0Sx3CBbF8RLSblczsxJDYTkta8h7i8+23I= +github.com/smartcontractkit/chainlink-solana v1.1.0/go.mod h1:Ml88TJTwZCj6yHDkAEN/EhxVutzSlk+kDZgfibRIqF0= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 h1:DJhniirSjGGUcNHRgapJGLPw7T4fhUjvZQEjwPsOtQ4= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= @@ -1612,6 +1618,7 @@ golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From 73b4d0b3ecd2b047718f36005373c9d526a95e27 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 09:20:37 -0600 Subject: [PATCH 079/232] go mod --- go.mod | 22 +++++------ go.sum | 123 +++++++++------------------------------------------------ 2 files changed, 27 insertions(+), 118 deletions(-) diff --git a/go.mod b/go.mod index 25b1f6606d7..49c8aaf786a 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/ethereum/go-ethereum v1.14.11 github.com/fatih/color v1.17.0 github.com/fxamacker/cbor/v2 v2.7.0 - github.com/gagliardetto/solana-go v1.8.4 + github.com/gagliardetto/solana-go v1.12.0 github.com/getsentry/sentry-go v0.27.0 github.com/gin-contrib/cors v1.7.2 github.com/gin-contrib/expvar v0.0.1 @@ -79,6 +79,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 @@ -112,13 +113,13 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c - golang.org/x/mod v0.21.0 + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 + golang.org/x/mod v0.22.0 golang.org/x/sync v0.10.0 golang.org/x/term v0.27.0 golang.org/x/text v0.21.0 golang.org/x/time v0.7.0 - golang.org/x/tools v0.26.0 + golang.org/x/tools v0.28.0 gonum.org/v1/gonum v0.15.1 google.golang.org/grpc v1.67.1 google.golang.org/protobuf v1.35.1 @@ -131,7 +132,6 @@ require ( cel.dev/expr v0.17.0 // indirect cloud.google.com/go/auth v0.9.9 // indirect cloud.google.com/go/storage v1.45.0 // indirect - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -194,8 +194,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -207,7 +206,7 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect + github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect @@ -234,7 +233,6 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect @@ -335,13 +333,12 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect @@ -361,7 +358,6 @@ require ( go.dedis.ch/protobuf v1.0.11 // indirect go.etcd.io/bbolt v1.3.9 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.31.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect @@ -381,7 +377,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/ratelimit v0.3.1 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.202.0 // indirect diff --git a/go.sum b/go.sum index 49dee918165..a2783b5a6b7 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -73,7 +68,6 @@ cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -100,8 +94,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -133,7 +125,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -143,7 +134,6 @@ github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1L github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -163,8 +153,6 @@ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c h1:cxQ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c/go.mod h1:3XzxudkrYVUvbduN/uI2fl4lSrMSzU0+3RCu2mpnfx8= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 h1:WWB576BN5zNSZc/M9d/10pqEx5VHNhaQ/yOVAkmj5Yo= @@ -185,7 +173,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= @@ -272,9 +259,7 @@ github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -282,7 +267,6 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -319,7 +303,6 @@ github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJF github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -333,23 +316,18 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= @@ -383,7 +361,6 @@ github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2 github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= @@ -402,13 +379,13 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= @@ -514,7 +491,6 @@ github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVI github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -550,7 +526,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -625,12 +600,10 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/pyroscope-go v1.1.2 h1:7vCfdORYQMCxIzI3NlYAs3FcBP760+gWuYWOyiVyYx8= @@ -641,15 +614,12 @@ github.com/graph-gophers/dataloader v5.0.0+incompatible h1:R+yjsbrNq1Mo3aPG+Z/EK github.com/graph-gophers/dataloader v5.0.0+incompatible/go.mod h1:jk4jk0c5ZISbKaMe8WsVopGB5/15GvGHMdMdPtwlRp4= github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -704,7 +674,6 @@ github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -798,10 +767,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= @@ -810,7 +777,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= @@ -831,7 +797,6 @@ github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -873,7 +838,6 @@ github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczG github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -887,7 +851,6 @@ github.com/marcboeker/go-duckdb v1.8.3 h1:ZkYwiIZhbYsT6MmJsZ3UPTHrTZccDdM4ztoqSl github.com/marcboeker/go-duckdb v1.8.3/go.mod h1:C9bYRE1dPYb1hhfu/SSomm78B0FXmNgRvv6YBW/Hooc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -896,8 +859,6 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -960,7 +921,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1 h1:mPMvm6X6tf4w8y7j9YIt6V9jfWhL6QlbEc7CCmeQlWk= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1/go.mod h1:ye2e/VUEtE2BHE+G/QcKkcLQVAEJoYRFj5VUOQatCRE= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= @@ -975,7 +935,6 @@ github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJm github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -983,7 +942,6 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= 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= @@ -1047,7 +1005,6 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/pressly/goose/v3 v3.21.1 h1:5SSAKKWej8LVVzNLuT6KIvP1eFDuPvxa+B6H0w78buQ= github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfWh8pHEe+vE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -1058,21 +1015,17 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1086,7 +1039,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1152,6 +1104,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550 h1:rRs74zjDJ7do5aYEXSU/sOnLnlbYCNqM8BrvEx/0NH8= github.com/smartcontractkit/chainlink-common v0.4.1-0.20241223143929-db7919d60550/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1164,10 +1118,6 @@ github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418- github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418-09e17ddbeb20/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.0 h1:+xBeVqx2x0Sx3CBbF8RLSblczsxJDYTkta8h7i8+23I= -github.com/smartcontractkit/chainlink-solana v1.1.0/go.mod h1:Ml88TJTwZCj6yHDkAEN/EhxVutzSlk+kDZgfibRIqF0= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 h1:DJhniirSjGGUcNHRgapJGLPw7T4fhUjvZQEjwPsOtQ4= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= @@ -1186,7 +1136,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1201,7 +1150,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1211,15 +1159,13 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1251,21 +1197,16 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1273,7 +1214,6 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= @@ -1299,24 +1239,17 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= 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/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1344,18 +1277,15 @@ go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRL go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11 h1:FTYVIEzY/bfl37lu3pR4lIj+F9Vp1jE8oh91VmxKgLo= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1427,15 +1357,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1462,7 +1389,6 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= @@ -1477,8 +1403,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1507,15 +1433,14 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1562,8 +1487,8 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1598,7 +1523,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1614,7 +1538,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1681,7 +1604,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -1728,7 +1650,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -1774,8 +1695,8 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1791,7 +1712,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -1816,7 +1736,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -1826,7 +1745,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1875,9 +1793,7 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go. google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1929,16 +1845,13 @@ gopkg.in/guregu/null.v2 v2.1.2/go.mod h1:XORrx8tyS5ZDcyUboCIxQtta/Aujk/6pfWrn9Xe gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 2ce1b993a3611410a3f29e8b2a2f161d5092a0d3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 09:29:30 -0600 Subject: [PATCH 080/232] go mod tidy --- core/scripts/go.mod | 4 ++-- core/scripts/go.sum | 2 ++ deployment/go.mod | 4 ++-- deployment/go.sum | 2 ++ go.mod | 2 +- integration-tests/go.mod | 4 ++-- integration-tests/go.sum | 2 ++ integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 1 + 9 files changed, 15 insertions(+), 8 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index dcef0492207..7578cd2b3c1 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -301,14 +301,14 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418-09e17ddbeb20 // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 779360c646d..bf52a804873 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1115,6 +1115,7 @@ github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1131,6 +1132,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07Vb6xUyA9MIJZfErMgWseWi1zf7cYvRpoq7ug= diff --git a/deployment/go.mod b/deployment/go.mod index 813acf2ec05..ee347801ed8 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -30,7 +30,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 @@ -411,7 +411,7 @@ require ( github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418-09e17ddbeb20 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index d7a410108c0..e0e4f5f0075 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1385,6 +1385,7 @@ github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1401,6 +1402,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07Vb6xUyA9MIJZfErMgWseWi1zf7cYvRpoq7ug= diff --git a/go.mod b/go.mod index b9650fe5957..8a5eeaa794f 100644 --- a/go.mod +++ b/go.mod @@ -79,7 +79,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 diff --git a/integration-tests/go.mod b/integration-tests/go.mod index b5cf870b900..898e056c61e 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -422,13 +422,13 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418-09e17ddbeb20 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index b0f5879cb11..429bef44c0e 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1407,6 +1407,7 @@ github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1423,6 +1424,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 h1:GDGrC5OGiV0RyM1znYWehSQXyZQWTOzrEeJRYmysPCE= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index ddcf26ebb71..b5468c575d9 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -411,7 +411,7 @@ require ( github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20241220173418-09e17ddbeb20 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 // indirect github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index c5dff273180..08e8e545f7b 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1414,6 +1414,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 h1:GDGrC5OGiV0RyM1znYWehSQXyZQWTOzrEeJRYmysPCE= From 468463cbca798bd6673d4bcbe545b0184708b54c Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 09:36:19 -0600 Subject: [PATCH 081/232] go mod --- core/scripts/go.mod | 6 ++++++ core/scripts/go.sum | 11 +++++++---- deployment/go.mod | 5 +++++ deployment/go.sum | 10 ++++++---- integration-tests/go.mod | 5 +++++ integration-tests/go.sum | 9 +++++---- integration-tests/load/go.mod | 5 +++++ integration-tests/load/go.sum | 10 ++++++---- 8 files changed, 45 insertions(+), 16 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 7578cd2b3c1..c03ae3a006c 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -73,6 +73,7 @@ require ( github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c // indirect github.com/avast/retry-go/v4 v4.6.0 // indirect github.com/aws/aws-sdk-go v1.54.19 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -80,6 +81,7 @@ require ( github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -139,6 +141,7 @@ require ( github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect @@ -199,6 +202,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/sdk v0.16.1 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -253,6 +257,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mfridman/interpolate v0.0.2 // indirect + github.com/miekg/dns v1.1.61 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -289,6 +294,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index bf52a804873..93afcb06e22 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -384,6 +384,7 @@ github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7 github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -886,6 +887,7 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= @@ -1113,8 +1115,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= @@ -1130,8 +1131,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 h1:DJhniirSjGGUcNHRgapJGLPw7T4fhUjvZQEjwPsOtQ4= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= @@ -1467,6 +1467,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1553,6 +1554,7 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1667,6 +1669,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= diff --git a/deployment/go.mod b/deployment/go.mod index ee347801ed8..f1daf146089 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -105,6 +105,7 @@ require ( github.com/aws/constructs-go/constructs/v10 v10.4.2 // indirect github.com/aws/jsii-runtime-go v1.104.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/benbjohnson/clock v1.3.5 // indirect @@ -115,6 +116,7 @@ require ( github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -191,6 +193,7 @@ require ( github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect @@ -267,6 +270,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/api v1.29.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect @@ -392,6 +396,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index e0e4f5f0075..d9803c42ae4 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -521,6 +521,7 @@ github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7 github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -1100,6 +1101,7 @@ github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6B github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= @@ -1383,8 +1385,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= @@ -1400,8 +1401,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 h1:DJhniirSjGGUcNHRgapJGLPw7T4fhUjvZQEjwPsOtQ4= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= @@ -1698,6 +1698,7 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -1989,6 +1990,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 898e056c61e..348f7b14089 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -126,6 +126,7 @@ require ( github.com/aws/constructs-go/constructs/v10 v10.4.2 // indirect github.com/aws/jsii-runtime-go v1.104.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/benbjohnson/clock v1.3.5 // indirect @@ -135,6 +136,7 @@ require ( github.com/blang/semver/v4 v4.0.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -212,6 +214,7 @@ require ( github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect @@ -287,6 +290,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/api v1.29.2 // indirect github.com/hashicorp/consul/sdk v0.16.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -409,6 +413,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 429bef44c0e..ea08dab318e 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -523,6 +523,7 @@ github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7 github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -1110,6 +1111,7 @@ github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6B github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= @@ -1405,8 +1407,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= @@ -1422,8 +1423,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 h1:DJhniirSjGGUcNHRgapJGLPw7T4fhUjvZQEjwPsOtQ4= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= @@ -2018,6 +2018,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index b5468c575d9..baff266ef35 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -95,6 +95,7 @@ require ( github.com/aws/constructs-go/constructs/v10 v10.4.2 // indirect github.com/aws/jsii-runtime-go v1.104.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect + github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect @@ -105,6 +106,7 @@ require ( github.com/blang/semver/v4 v4.0.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect @@ -183,6 +185,7 @@ require ( github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/solana-go v1.12.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect + github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/gin-contrib/sessions v0.0.5 // indirect @@ -261,6 +264,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 // indirect github.com/hashicorp/consul/api v1.29.2 // indirect github.com/hashicorp/consul/sdk v0.16.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -387,6 +391,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/cors v1.10.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 08e8e545f7b..40a1b0f15a6 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -517,6 +517,7 @@ github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7 github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= +github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= @@ -1104,6 +1105,7 @@ github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6B github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= @@ -1396,8 +1398,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1412,8 +1414,7 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce h1:Mvpbr/Fi2IdU2EcmqCxhlCzs5ncnx+BwV80YweA4DZs= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241223151630-eac4f1508dce/go.mod h1:qq+nW0JDnCCGMf2c38ZHjH8xgkAQnXKighjJr5JdDNE= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 h1:DJhniirSjGGUcNHRgapJGLPw7T4fhUjvZQEjwPsOtQ4= github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706/go.mod h1:52U0UH8K0Qwu+HB1LMc+5V27ru2Tgy29YPT+2HkMevY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8 h1:tNS7U9lrxkFvEuyxQv11HHOiV9LPDGC9wYEy+yM/Jv4= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241202202529-2033490e77b8/go.mod h1:EBrEgcdIbwepqguClkv8Ohy7CbyWSJaE4EC9aBJlQK0= @@ -2006,6 +2007,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= From b0e3b10617671c9c3d75f18325e1f86183e0439a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 10:00:31 -0600 Subject: [PATCH 082/232] go.md --- go.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/go.md b/go.md index ed41edee2b0..87bfabe78a7 100644 --- a/go.md +++ b/go.md @@ -28,6 +28,8 @@ flowchart LR chainlink-ccip --> chain-selectors chainlink-ccip --> chainlink-common click chainlink-ccip href "https://github.com/smartcontractkit/chainlink-ccip" + chainlink-ccip/chains/solana --> chainlink-common + click chainlink-ccip/chains/solana href "https://github.com/smartcontractkit/chainlink-ccip" chainlink-common --> grpc-proxy chainlink-common --> libocr click chainlink-common href "https://github.com/smartcontractkit/chainlink-common" @@ -47,6 +49,7 @@ flowchart LR click chainlink-starknet/relayer href "https://github.com/smartcontractkit/chainlink-starknet" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds @@ -68,6 +71,12 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" + subgraph chainlink-ccip-repo[chainlink-ccip] + chainlink-ccip + chainlink-ccip/chains/solana + end + click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" + subgraph tdh2-repo[tdh2] tdh2/go/ocr2/decryptionplugin tdh2/go/tdh2 @@ -75,7 +84,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; - class tdh2-repo outline + class chainlink-ccip-repo,tdh2-repo outline ``` ## All modules ```mermaid @@ -143,7 +152,6 @@ flowchart LR chainlink/core/scripts --> chainlink/deployment click chainlink/core/scripts href "https://github.com/smartcontractkit/chainlink" chainlink/deployment --> ccip-owner-contracts - chainlink/deployment --> chainlink-ccip/chains/solana chainlink/deployment --> chainlink-protos/job-distributor chainlink/deployment --> chainlink-testing-framework/lib chainlink/deployment --> chainlink/v2 @@ -155,6 +163,7 @@ flowchart LR click chainlink/load-tests href "https://github.com/smartcontractkit/chainlink" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds From 64758d1858e1edc8ebd48f9871e39f4317516d4a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 10:22:25 -0600 Subject: [PATCH 083/232] go md --- go.md | 13 ++----------- go.mod | 1 - go.sum | 2 -- 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/go.md b/go.md index 87bfabe78a7..ed41edee2b0 100644 --- a/go.md +++ b/go.md @@ -28,8 +28,6 @@ flowchart LR chainlink-ccip --> chain-selectors chainlink-ccip --> chainlink-common click chainlink-ccip href "https://github.com/smartcontractkit/chainlink-ccip" - chainlink-ccip/chains/solana --> chainlink-common - click chainlink-ccip/chains/solana href "https://github.com/smartcontractkit/chainlink-ccip" chainlink-common --> grpc-proxy chainlink-common --> libocr click chainlink-common href "https://github.com/smartcontractkit/chainlink-common" @@ -49,7 +47,6 @@ flowchart LR click chainlink-starknet/relayer href "https://github.com/smartcontractkit/chainlink-starknet" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip - chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds @@ -71,12 +68,6 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" - subgraph chainlink-ccip-repo[chainlink-ccip] - chainlink-ccip - chainlink-ccip/chains/solana - end - click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" - subgraph tdh2-repo[tdh2] tdh2/go/ocr2/decryptionplugin tdh2/go/tdh2 @@ -84,7 +75,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; - class chainlink-ccip-repo,tdh2-repo outline + class tdh2-repo outline ``` ## All modules ```mermaid @@ -152,6 +143,7 @@ flowchart LR chainlink/core/scripts --> chainlink/deployment click chainlink/core/scripts href "https://github.com/smartcontractkit/chainlink" chainlink/deployment --> ccip-owner-contracts + chainlink/deployment --> chainlink-ccip/chains/solana chainlink/deployment --> chainlink-protos/job-distributor chainlink/deployment --> chainlink-testing-framework/lib chainlink/deployment --> chainlink/v2 @@ -163,7 +155,6 @@ flowchart LR click chainlink/load-tests href "https://github.com/smartcontractkit/chainlink" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip - chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds diff --git a/go.mod b/go.mod index 8a5eeaa794f..d4b3b9cd00f 100644 --- a/go.mod +++ b/go.mod @@ -79,7 +79,6 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 diff --git a/go.sum b/go.sum index bf36f6add21..abd6c752b03 100644 --- a/go.sum +++ b/go.sum @@ -1104,8 +1104,6 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= From b1423f395d107fa54d4268c96827550ed09e4706 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 13:48:45 -0600 Subject: [PATCH 084/232] remove hard coded --- .../ccip/configs/solana/ccip_router.json | 3383 ----------------- .../ccip/configs/solana/chain_writer.go | 9 +- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- deployment/go.mod | 2 +- deployment/go.sum | 4 +- go.mod | 22 +- go.sum | 119 +- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 1 + integration-tests/load/go.sum | 4 +- 12 files changed, 43 insertions(+), 3513 deletions(-) delete mode 100644 core/capabilities/ccip/configs/solana/ccip_router.json diff --git a/core/capabilities/ccip/configs/solana/ccip_router.json b/core/capabilities/ccip/configs/solana/ccip_router.json deleted file mode 100644 index a0448397703..00000000000 --- a/core/capabilities/ccip/configs/solana/ccip_router.json +++ /dev/null @@ -1,3383 +0,0 @@ -{ - "version": "0.1.0-dev", - "name": "ccip_router", - "docs": [ - "The `ccip_router` module contains the implementation of the Cross-Chain Interoperability Protocol (CCIP) Router.", - "", - "This is the Collapsed Router Program for CCIP.", - "As it's upgradable persisting the same program id, there is no need to have an indirection of a Proxy Program.", - "This Router handles both the OnRamp and OffRamp flow of the CCIP Messages." - ], - "constants": [ - { - "name": "MAX_ORACLES", - "type": { - "defined": "usize" - }, - "value": "16" - } - ], - "instructions": [ - { - "name": "initialize", - "docs": [ - "Initializes the CCIP Router.", - "", - "The initialization of the Router is responsibility of Admin, nothing more than calling this method should be done first.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for initialization.", - "* `solana_chain_selector` - The chain selector for Solana.", - "* `default_gas_limit` - The default gas limit for other destination chains.", - "* `default_allow_out_of_order_execution` - Whether out-of-order execution is allowed by default for other destination chains.", - "* `enable_execution_after` - The minimum amount of time required between a message has been committed and can be manually executed." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "state", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "program", - "isMut": false, - "isSigner": false - }, - { - "name": "programData", - "isMut": false, - "isSigner": false - }, - { - "name": "externalExecutionConfig", - "isMut": true, - "isSigner": false - }, - { - "name": "tokenPoolsSigner", - "isMut": true, - "isSigner": false - } - ], - "args": [ - { - "name": "solanaChainSelector", - "type": "u64" - }, - { - "name": "defaultGasLimit", - "type": "u128" - }, - { - "name": "defaultAllowOutOfOrderExecution", - "type": "bool" - }, - { - "name": "enableExecutionAfter", - "type": "i64" - }, - { - "name": "feeAggregator", - "type": "publicKey" - } - ] - }, - { - "name": "transferOwnership", - "docs": [ - "Transfers the ownership of the router to a new proposed owner.", - "", - "Shared func signature with other programs", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for the transfer.", - "* `proposed_owner` - The public key of the new proposed owner." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "proposedOwner", - "type": "publicKey" - } - ] - }, - { - "name": "acceptOwnership", - "docs": [ - "Accepts the ownership of the router by the proposed owner.", - "", - "Shared func signature with other programs", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for accepting ownership.", - "The new owner must be a signer of the transaction." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - } - ], - "args": [] - }, - { - "name": "updateFeeAggregator", - "docs": [ - "Updates the fee aggregator in the router configuration.", - "The Admin is the only one able to update the fee aggregator.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the configuration.", - "* `fee_aggregator` - The new fee aggregator address (ATAs will be derived for it for each token)." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "feeAggregator", - "type": "publicKey" - } - ] - }, - { - "name": "addChainSelector", - "docs": [ - "Adds a new chain selector to the router.", - "", - "The Admin needs to add any new chain supported (this means both OnRamp and OffRamp).", - "When adding a new chain, the Admin needs to specify if it's enabled or not.", - "They may enable only source, or only destination, or neither, or both.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for adding the chain selector.", - "* `new_chain_selector` - The new chain selector to be added.", - "* `source_chain_config` - The configuration for the chain as source.", - "* `dest_chain_config` - The configuration for the chain as destination." - ], - "accounts": [ - { - "name": "sourceChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "destChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "newChainSelector", - "type": "u64" - }, - { - "name": "sourceChainConfig", - "type": { - "defined": "SourceChainConfig" - } - }, - { - "name": "destChainConfig", - "type": { - "defined": "DestChainConfig" - } - } - ] - }, - { - "name": "disableSourceChainSelector", - "docs": [ - "Disables the source chain selector.", - "", - "The Admin is the only one able to disable the chain selector as source. This method is thought of as an emergency kill-switch.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for disabling the chain selector.", - "* `source_chain_selector` - The source chain selector to be disabled." - ], - "accounts": [ - { - "name": "sourceChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "sourceChainSelector", - "type": "u64" - } - ] - }, - { - "name": "disableDestChainSelector", - "docs": [ - "Disables the destination chain selector.", - "", - "The Admin is the only one able to disable the chain selector as destination. This method is thought of as an emergency kill-switch.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for disabling the chain selector.", - "* `dest_chain_selector` - The destination chain selector to be disabled." - ], - "accounts": [ - { - "name": "destChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "destChainSelector", - "type": "u64" - } - ] - }, - { - "name": "updateSourceChainConfig", - "docs": [ - "Updates the configuration of the source chain selector.", - "", - "The Admin is the only one able to update the source chain config.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the chain selector.", - "* `source_chain_selector` - The source chain selector to be updated.", - "* `source_chain_config` - The new configuration for the source chain." - ], - "accounts": [ - { - "name": "sourceChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "sourceChainSelector", - "type": "u64" - }, - { - "name": "sourceChainConfig", - "type": { - "defined": "SourceChainConfig" - } - } - ] - }, - { - "name": "updateDestChainConfig", - "docs": [ - "Updates the configuration of the destination chain selector.", - "", - "The Admin is the only one able to update the destination chain config.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the chain selector.", - "* `dest_chain_selector` - The destination chain selector to be updated.", - "* `dest_chain_config` - The new configuration for the destination chain." - ], - "accounts": [ - { - "name": "destChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "destChainSelector", - "type": "u64" - }, - { - "name": "destChainConfig", - "type": { - "defined": "DestChainConfig" - } - } - ] - }, - { - "name": "updateSolanaChainSelector", - "docs": [ - "Updates the Solana chain selector in the router configuration.", - "", - "This method should only be used if there was an error with the initial configuration or if the solana chain selector changes.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the configuration.", - "* `new_chain_selector` - The new chain selector for Solana." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "newChainSelector", - "type": "u64" - } - ] - }, - { - "name": "updateDefaultGasLimit", - "docs": [ - "Updates the default gas limit in the router configuration.", - "", - "This change affects the default value for gas limit on every other destination chain.", - "The Admin is the only one able to update the default gas limit.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the configuration.", - "* `new_gas_limit` - The new default gas limit." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "newGasLimit", - "type": "u128" - } - ] - }, - { - "name": "updateDefaultAllowOutOfOrderExecution", - "docs": [ - "Updates the default setting for allowing out-of-order execution for other destination chains.", - "The Admin is the only one able to update this config.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the configuration.", - "* `new_allow_out_of_order_execution` - The new setting for allowing out-of-order execution." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "newAllowOutOfOrderExecution", - "type": "bool" - } - ] - }, - { - "name": "updateEnableManualExecutionAfter", - "docs": [ - "Updates the minimum amount of time required between a message being committed and when it can be manually executed.", - "", - "This is part of the OffRamp Configuration for Solana.", - "The Admin is the only one able to update this config.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the configuration.", - "* `new_enable_manual_execution_after` - The new minimum amount of time required." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "newEnableManualExecutionAfter", - "type": "i64" - } - ] - }, - { - "name": "registerTokenAdminRegistryViaGetCcipAdmin", - "docs": [ - "Registers the Token Admin Registry via the CCIP Admin", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for registration.", - "* `mint` - The public key of the token mint.", - "* `token_admin_registry_admin` - The public key of the token admin registry admin." - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenAdminRegistry", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "tokenAdminRegistryAdmin", - "type": "publicKey" - } - ] - }, - { - "name": "registerTokenAdminRegistryViaOwner", - "docs": [ - "Registers the Token Admin Registry via the token owner.", - "", - "The Authority of the Mint Token can claim the registry of the token.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for registration." - ], - "accounts": [ - { - "name": "tokenAdminRegistry", - "isMut": true, - "isSigner": false - }, - { - "name": "mint", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [] - }, - { - "name": "setPool", - "docs": [ - "Sets the pool lookup table for a given token mint.", - "", - "The administrator of the token admin registry can set the pool lookup table for a given token mint.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for setting the pool.", - "* `mint` - The public key of the token mint.", - "* `pool_lookup_table` - The public key of the pool lookup table, this address will be used for validations when interacting with the pool." - ], - "accounts": [ - { - "name": "tokenAdminRegistry", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "poolLookupTable", - "type": "publicKey" - } - ] - }, - { - "name": "transferAdminRoleTokenAdminRegistry", - "docs": [ - "Transfers the admin role of the token admin registry to a new admin.", - "", - "Only the Admin can transfer the Admin Role of the Token Admin Registry, this setups the Pending Admin and then it's their responsibility to accept the role.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for the transfer.", - "* `mint` - The public key of the token mint.", - "* `new_admin` - The public key of the new admin." - ], - "accounts": [ - { - "name": "tokenAdminRegistry", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "newAdmin", - "type": "publicKey" - } - ] - }, - { - "name": "acceptAdminRoleTokenAdminRegistry", - "docs": [ - "Accepts the admin role of the token admin registry.", - "", - "The Pending Admin must call this function to accept the admin role of the Token Admin Registry.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for accepting the admin role.", - "* `mint` - The public key of the token mint." - ], - "accounts": [ - { - "name": "tokenAdminRegistry", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "mint", - "type": "publicKey" - } - ] - }, - { - "name": "setTokenBilling", - "docs": [ - "Sets the token billing configuration.", - "", - "Only CCIP Admin can set the token billing configuration.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for setting the token billing configuration.", - "* `_chain_selector` - The chain selector.", - "* `_mint` - The public key of the token mint.", - "* `cfg` - The token billing configuration." - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "perChainPerTokenConfig", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "chainSelector", - "type": "u64" - }, - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "cfg", - "type": { - "defined": "TokenBilling" - } - } - ] - }, - { - "name": "setOcrConfig", - "docs": [ - "Sets the OCR configuration.", - "Only CCIP Admin can set the OCR configuration.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for setting the OCR configuration.", - "* `plugin_type` - The type of OCR plugin [0: Commit, 1: Execution].", - "* `config_info` - The OCR configuration information.", - "* `signers` - The list of signers.", - "* `transmitters` - The list of transmitters." - ], - "accounts": [ - { - "name": "config", - "isMut": true, - "isSigner": false - }, - { - "name": "state", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "pluginType", - "type": "u8" - }, - { - "name": "configInfo", - "type": { - "defined": "Ocr3ConfigInfo" - } - }, - { - "name": "signers", - "type": { - "vec": { - "array": [ - "u8", - 20 - ] - } - } - }, - { - "name": "transmitters", - "type": { - "vec": "publicKey" - } - } - ] - }, - { - "name": "addBillingTokenConfig", - "docs": [ - "Adds a billing token configuration.", - "Only CCIP Admin can add a billing token configuration.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for adding the billing token configuration.", - "* `config` - The billing token configuration to be added." - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "billingTokenConfig", - "isMut": true, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenMint", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenReceiver", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "feeBillingSigner", - "isMut": false, - "isSigner": false - }, - { - "name": "associatedTokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "config", - "type": { - "defined": "BillingTokenConfig" - } - } - ] - }, - { - "name": "updateBillingTokenConfig", - "docs": [ - "Updates the billing token configuration.", - "Only CCIP Admin can update a billing token configuration.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for updating the billing token configuration.", - "* `config` - The new billing token configuration." - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "billingTokenConfig", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "config", - "type": { - "defined": "BillingTokenConfig" - } - } - ] - }, - { - "name": "removeBillingTokenConfig", - "docs": [ - "Removes the billing token configuration.", - "Only CCIP Admin can remove a billing token configuration.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for removing the billing token configuration." - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "billingTokenConfig", - "isMut": true, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenMint", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenReceiver", - "isMut": true, - "isSigner": false - }, - { - "name": "feeBillingSigner", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [] - }, - { - "name": "getFee", - "docs": [ - "Calculates the fee for sending a message to the destination chain.", - "", - "# Arguments", - "", - "* `_ctx` - The context containing the accounts required for the fee calculation.", - "* `dest_chain_selector` - The chain selector for the destination chain.", - "* `message` - The message to be sent.", - "", - "# Returns", - "", - "The fee amount in u64." - ], - "accounts": [ - { - "name": "destChainState", - "isMut": false, - "isSigner": false - }, - { - "name": "billingTokenConfig", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "destChainSelector", - "type": "u64" - }, - { - "name": "message", - "type": { - "defined": "Solana2AnyMessage" - } - } - ], - "returns": "u64" - }, - { - "name": "withdrawBilledFunds", - "docs": [ - "Transfers the accumulated billed fees in a particular token to an arbitrary token account.", - "Only the CCIP Admin can withdraw billed funds.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for the transfer of billed fees.", - "* `transfer_all` - A flag indicating whether to transfer all the accumulated fees in that token or not.", - "* `desired_amount` - The amount to transfer. If `transfer_all` is true, this value must be 0." - ], - "accounts": [ - { - "name": "feeTokenMint", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenAccum", - "isMut": true, - "isSigner": false - }, - { - "name": "recipient", - "isMut": true, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "feeBillingSigner", - "isMut": false, - "isSigner": false - }, - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - } - ], - "args": [ - { - "name": "transferAll", - "type": "bool" - }, - { - "name": "desiredAmount", - "type": "u64" - } - ] - }, - { - "name": "ccipSend", - "docs": [ - "ON RAMP FLOW", - "Sends a message to the destination chain.", - "", - "Request a message to be sent to the destination chain.", - "The method name needs to be ccip_send with Anchor encoding.", - "This function is called by the CCIP Sender Contract (or final user) to send a message to the CCIP Router.", - "The message will be sent to the receiver on the destination chain selector.", - "This message emits the event CCIPSendRequested with all the necessary data to be retrieved by the OffChain Code", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for sending the message.", - "* `dest_chain_selector` - The chain selector for the destination chain.", - "* `message` - The message to be sent. The size limit of data is 256 bytes." - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "destChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "nonce", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenMint", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenConfig", - "isMut": false, - "isSigner": false - }, - { - "name": "feeTokenUserAssociatedAccount", - "isMut": false, - "isSigner": false, - "docs": [ - "CHECK this is the associated token account for the user paying the fee.", - "If paying with native SOL, this must be the zero address." - ] - }, - { - "name": "feeTokenReceiver", - "isMut": true, - "isSigner": false - }, - { - "name": "feeBillingSigner", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenPoolsSigner", - "isMut": true, - "isSigner": false - } - ], - "args": [ - { - "name": "destChainSelector", - "type": "u64" - }, - { - "name": "message", - "type": { - "defined": "Solana2AnyMessage" - } - } - ] - }, - { - "name": "commit", - "docs": [ - "OFF RAMP FLOW", - "Commits a report to the router.", - "", - "The method name needs to be commit with Anchor encoding.", - "", - "This function is called by the OffChain when committing one Report to the Solana Router.", - "In this Flow only one report is sent, the Commit Report. This is different as EVM does,", - "this is because here all the chain state is stored in one account per Merkle Tree Root.", - "So, to avoid having to send a dynamic size array of accounts, in this message only one Commit Report Account is sent.", - "This message validates the signatures of the report and stores the Merkle Root in the Commit Report Account.", - "The Report must contain an interval of messages, and the min of them must be the next sequence number expected.", - "The max size of the interval is 64.", - "This message emits two events: CommitReportAccepted and Transmitted.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for the commit.", - "* `report_context_byte_words` - consists of:", - "* report_context_byte_words[0]: ConfigDigest", - "* report_context_byte_words[1]: 24 byte padding, 8 byte sequence number", - "* report_context_byte_words[2]: ExtraHash", - "* `report` - The commit input report, single merkle root with RMN signatures and price updates", - "* `signatures` - The list of signatures. v0.29.0 - anchor idl does not build with ocr3base::SIGNATURE_LENGTH" - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "sourceChainState", - "isMut": true, - "isSigner": false - }, - { - "name": "commitReport", - "isMut": true, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "sysvarInstructions", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "reportContextByteWords", - "type": { - "array": [ - { - "array": [ - "u8", - 32 - ] - }, - 3 - ] - } - }, - { - "name": "report", - "type": { - "defined": "CommitInput" - } - }, - { - "name": "signatures", - "type": { - "vec": { - "array": [ - "u8", - 65 - ] - } - } - } - ] - }, - { - "name": "execute", - "docs": [ - "OFF RAMP FLOW", - "Executes a message on the destination chain.", - "", - "The method name needs to be execute with Anchor encoding.", - "", - "This function is called by the OffChain when executing one Report to the Solana Router.", - "In this Flow only one message is sent, the Execution Report. This is different as EVM does,", - "this is because there is no try/catch mechanism to allow batch execution.", - "This message validates that the Merkle Tree Proof of the given message is correct and is stored in the Commit Report Account.", - "The message must be untouched to be executed.", - "This message emits the event ExecutionStateChanged with the new state of the message.", - "Finally, executes the CPI instruction to the receiver program in the ccip_receive message.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for the execute.", - "* `execution_report` - the execution report containing only one message and proofs", - "* `report_context_byte_words` - report_context after execution_report to match context for manually execute (proper decoding order)", - "* consists of:", - "* report_context_byte_words[0]: ConfigDigest", - "* report_context_byte_words[1]: 24 byte padding, 8 byte sequence number", - "* report_context_byte_words[2]: ExtraHash" - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "sourceChainState", - "isMut": false, - "isSigner": false - }, - { - "name": "commitReport", - "isMut": true, - "isSigner": false - }, - { - "name": "externalExecutionConfig", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "sysvarInstructions", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenPoolsSigner", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "executionReport", - "type": { - "defined": "ExecutionReportSingleChain" - } - }, - { - "name": "reportContextByteWords", - "type": { - "array": [ - { - "array": [ - "u8", - 32 - ] - }, - 3 - ] - } - } - ] - }, - { - "name": "manuallyExecute", - "docs": [ - "Manually executes a report to the router.", - "", - "When a message is not being executed, then the user can trigger the execution manually.", - "No verification over the transmitter, but the message needs to be in some commit report.", - "It validates that the required time has passed since the commit and then executes the report.", - "", - "# Arguments", - "", - "* `ctx` - The context containing the accounts required for the execution.", - "* `execution_report` - The execution report containing the message and proofs." - ], - "accounts": [ - { - "name": "config", - "isMut": false, - "isSigner": false - }, - { - "name": "sourceChainState", - "isMut": false, - "isSigner": false - }, - { - "name": "commitReport", - "isMut": true, - "isSigner": false - }, - { - "name": "externalExecutionConfig", - "isMut": false, - "isSigner": false - }, - { - "name": "authority", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "sysvarInstructions", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenPoolsSigner", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "executionReport", - "type": { - "defined": "ExecutionReportSingleChain" - } - } - ] - } - ], - "accounts": [ - { - "name": "Config", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "defaultAllowOutOfOrderExecution", - "type": "u8" - }, - { - "name": "padding0", - "type": { - "array": [ - "u8", - 6 - ] - } - }, - { - "name": "solanaChainSelector", - "type": "u64" - }, - { - "name": "defaultGasLimit", - "type": "u128" - }, - { - "name": "padding1", - "type": { - "array": [ - "u8", - 8 - ] - } - }, - { - "name": "owner", - "type": "publicKey" - }, - { - "name": "proposedOwner", - "type": "publicKey" - }, - { - "name": "enableManualExecutionAfter", - "type": "i64" - }, - { - "name": "padding2", - "type": { - "array": [ - "u8", - 8 - ] - } - }, - { - "name": "ocr3", - "type": { - "array": [ - { - "defined": "Ocr3Config" - }, - 2 - ] - } - }, - { - "name": "feeAggregator", - "type": "publicKey" - } - ] - } - }, - { - "name": "GlobalState", - "type": { - "kind": "struct", - "fields": [ - { - "name": "latestPriceSequenceNumber", - "type": "u64" - } - ] - } - }, - { - "name": "SourceChain", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "chainSelector", - "type": "u64" - }, - { - "name": "state", - "type": { - "defined": "SourceChainState" - } - }, - { - "name": "config", - "type": { - "defined": "SourceChainConfig" - } - } - ] - } - }, - { - "name": "DestChain", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "chainSelector", - "type": "u64" - }, - { - "name": "state", - "type": { - "defined": "DestChainState" - } - }, - { - "name": "config", - "type": { - "defined": "DestChainConfig" - } - } - ] - } - }, - { - "name": "Nonce", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "counter", - "type": "u64" - } - ] - } - }, - { - "name": "ExternalExecutionConfig", - "type": { - "kind": "struct", - "fields": [] - } - }, - { - "name": "CommitReport", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "chainSelector", - "type": "u64" - }, - { - "name": "merkleRoot", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "timestamp", - "type": "i64" - }, - { - "name": "minMsgNr", - "type": "u64" - }, - { - "name": "maxMsgNr", - "type": "u64" - }, - { - "name": "executionStates", - "type": "u128" - } - ] - } - }, - { - "name": "PerChainPerTokenConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "chainSelector", - "type": "u64" - }, - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "billing", - "type": { - "defined": "TokenBilling" - } - } - ] - } - }, - { - "name": "BillingTokenConfigWrapper", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "config", - "type": { - "defined": "BillingTokenConfig" - } - } - ] - } - }, - { - "name": "TokenAdminRegistry", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u8" - }, - { - "name": "administrator", - "type": "publicKey" - }, - { - "name": "pendingAdministrator", - "type": "publicKey" - }, - { - "name": "lookupTable", - "type": "publicKey" - } - ] - } - } - ], - "types": [ - { - "name": "CommitInput", - "type": { - "kind": "struct", - "fields": [ - { - "name": "priceUpdates", - "type": { - "defined": "PriceUpdates" - } - }, - { - "name": "merkleRoot", - "type": { - "defined": "MerkleRoot" - } - } - ] - } - }, - { - "name": "PriceUpdates", - "type": { - "kind": "struct", - "fields": [ - { - "name": "tokenPriceUpdates", - "type": { - "vec": { - "defined": "TokenPriceUpdate" - } - } - }, - { - "name": "gasPriceUpdates", - "type": { - "vec": { - "defined": "GasPriceUpdate" - } - } - } - ] - } - }, - { - "name": "TokenPriceUpdate", - "type": { - "kind": "struct", - "fields": [ - { - "name": "sourceToken", - "type": "publicKey" - }, - { - "name": "usdPerToken", - "type": { - "array": [ - "u8", - 28 - ] - } - } - ] - } - }, - { - "name": "GasPriceUpdate", - "type": { - "kind": "struct", - "fields": [ - { - "name": "destChainSelector", - "type": "u64" - }, - { - "name": "usdPerUnitGas", - "type": { - "array": [ - "u8", - 28 - ] - } - } - ] - } - }, - { - "name": "MerkleRoot", - "type": { - "kind": "struct", - "fields": [ - { - "name": "sourceChainSelector", - "type": "u64" - }, - { - "name": "onRampAddress", - "type": "bytes" - }, - { - "name": "minSeqNr", - "type": "u64" - }, - { - "name": "maxSeqNr", - "type": "u64" - }, - { - "name": "merkleRoot", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "RampMessageHeader", - "type": { - "kind": "struct", - "fields": [ - { - "name": "messageId", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "sourceChainSelector", - "type": "u64" - }, - { - "name": "destChainSelector", - "type": "u64" - }, - { - "name": "sequenceNumber", - "type": "u64" - }, - { - "name": "nonce", - "type": "u64" - } - ] - } - }, - { - "name": "ExecutionReportSingleChain", - "docs": [ - "Report that is submitted by the execution DON at the execution phase. (including chain selector data)" - ], - "type": { - "kind": "struct", - "fields": [ - { - "name": "sourceChainSelector", - "type": "u64" - }, - { - "name": "message", - "type": { - "defined": "Any2SolanaRampMessage" - } - }, - { - "name": "offchainTokenData", - "type": { - "vec": "bytes" - } - }, - { - "name": "root", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "proofs", - "type": { - "vec": { - "array": [ - "u8", - 32 - ] - } - } - }, - { - "name": "tokenIndexes", - "type": "bytes" - } - ] - } - }, - { - "name": "SolanaAccountMeta", - "type": { - "kind": "struct", - "fields": [ - { - "name": "pubkey", - "type": "publicKey" - }, - { - "name": "isWritable", - "type": "bool" - } - ] - } - }, - { - "name": "SolanaExtraArgs", - "type": { - "kind": "struct", - "fields": [ - { - "name": "computeUnits", - "type": "u32" - }, - { - "name": "accounts", - "type": { - "vec": { - "defined": "SolanaAccountMeta" - } - } - } - ] - } - }, - { - "name": "AnyExtraArgs", - "type": { - "kind": "struct", - "fields": [ - { - "name": "gasLimit", - "type": "u128" - }, - { - "name": "allowOutOfOrderExecution", - "type": "bool" - } - ] - } - }, - { - "name": "Any2SolanaRampMessage", - "type": { - "kind": "struct", - "fields": [ - { - "name": "header", - "type": { - "defined": "RampMessageHeader" - } - }, - { - "name": "sender", - "type": "bytes" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "receiver", - "type": "publicKey" - }, - { - "name": "tokenAmounts", - "type": { - "vec": { - "defined": "Any2SolanaTokenTransfer" - } - } - }, - { - "name": "extraArgs", - "type": { - "defined": "SolanaExtraArgs" - } - } - ] - } - }, - { - "name": "Solana2AnyRampMessage", - "type": { - "kind": "struct", - "fields": [ - { - "name": "header", - "type": { - "defined": "RampMessageHeader" - } - }, - { - "name": "sender", - "type": "publicKey" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "receiver", - "type": "bytes" - }, - { - "name": "extraArgs", - "type": { - "defined": "AnyExtraArgs" - } - }, - { - "name": "feeToken", - "type": "publicKey" - }, - { - "name": "tokenAmounts", - "type": { - "vec": { - "defined": "Solana2AnyTokenTransfer" - } - } - } - ] - } - }, - { - "name": "Solana2AnyTokenTransfer", - "type": { - "kind": "struct", - "fields": [ - { - "name": "sourcePoolAddress", - "type": "publicKey" - }, - { - "name": "destTokenAddress", - "type": "bytes" - }, - { - "name": "extraData", - "type": "bytes" - }, - { - "name": "amount", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "destExecData", - "type": "bytes" - } - ] - } - }, - { - "name": "Any2SolanaTokenTransfer", - "type": { - "kind": "struct", - "fields": [ - { - "name": "sourcePoolAddress", - "type": "bytes" - }, - { - "name": "destTokenAddress", - "type": "publicKey" - }, - { - "name": "destGasAmount", - "type": "u32" - }, - { - "name": "extraData", - "type": "bytes" - }, - { - "name": "amount", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "LockOrBurnInV1", - "type": { - "kind": "struct", - "fields": [ - { - "name": "receiver", - "type": "bytes" - }, - { - "name": "remoteChainSelector", - "type": "u64" - }, - { - "name": "originalSender", - "type": "publicKey" - }, - { - "name": "amount", - "type": "u64" - }, - { - "name": "localToken", - "type": "publicKey" - } - ] - } - }, - { - "name": "ReleaseOrMintInV1", - "type": { - "kind": "struct", - "fields": [ - { - "name": "originalSender", - "type": "bytes" - }, - { - "name": "remoteChainSelector", - "type": "u64" - }, - { - "name": "receiver", - "type": "publicKey" - }, - { - "name": "amount", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "localToken", - "type": "publicKey" - }, - { - "name": "sourcePoolAddress", - "docs": [ - "@dev WARNING: sourcePoolAddress should be checked prior to any processing of funds. Make sure it matches the", - "expected pool address for the given remoteChainSelector." - ], - "type": "bytes" - }, - { - "name": "sourcePoolData", - "type": "bytes" - }, - { - "name": "offchainTokenData", - "docs": [ - "@dev WARNING: offchainTokenData is untrusted data." - ], - "type": "bytes" - } - ] - } - }, - { - "name": "LockOrBurnOutV1", - "type": { - "kind": "struct", - "fields": [ - { - "name": "destTokenAddress", - "type": "bytes" - }, - { - "name": "destPoolData", - "type": "bytes" - } - ] - } - }, - { - "name": "ReleaseOrMintOutV1", - "type": { - "kind": "struct", - "fields": [ - { - "name": "destinationAmount", - "type": "u64" - } - ] - } - }, - { - "name": "Solana2AnyMessage", - "type": { - "kind": "struct", - "fields": [ - { - "name": "receiver", - "type": "bytes" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "tokenAmounts", - "type": { - "vec": { - "defined": "SolanaTokenAmount" - } - } - }, - { - "name": "feeToken", - "type": "publicKey" - }, - { - "name": "extraArgs", - "type": { - "defined": "ExtraArgsInput" - } - }, - { - "name": "tokenIndexes", - "type": "bytes" - } - ] - } - }, - { - "name": "SolanaTokenAmount", - "type": { - "kind": "struct", - "fields": [ - { - "name": "token", - "type": "publicKey" - }, - { - "name": "amount", - "type": "u64" - } - ] - } - }, - { - "name": "ExtraArgsInput", - "type": { - "kind": "struct", - "fields": [ - { - "name": "gasLimit", - "type": { - "option": "u128" - } - }, - { - "name": "allowOutOfOrderExecution", - "type": { - "option": "bool" - } - } - ] - } - }, - { - "name": "Any2SolanaMessage", - "type": { - "kind": "struct", - "fields": [ - { - "name": "messageId", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "sourceChainSelector", - "type": "u64" - }, - { - "name": "sender", - "type": "bytes" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "tokenAmounts", - "type": { - "vec": { - "defined": "SolanaTokenAmount" - } - } - } - ] - } - }, - { - "name": "ReportContext", - "type": { - "kind": "struct", - "fields": [ - { - "name": "byteWords", - "type": { - "array": [ - { - "array": [ - "u8", - 32 - ] - }, - 3 - ] - } - } - ] - } - }, - { - "name": "Ocr3Config", - "type": { - "kind": "struct", - "fields": [ - { - "name": "pluginType", - "type": "u8" - }, - { - "name": "configInfo", - "type": { - "defined": "Ocr3ConfigInfo" - } - }, - { - "name": "signers", - "type": { - "array": [ - { - "array": [ - "u8", - 20 - ] - }, - 16 - ] - } - }, - { - "name": "transmitters", - "type": { - "array": [ - { - "array": [ - "u8", - 32 - ] - }, - 16 - ] - } - } - ] - } - }, - { - "name": "Ocr3ConfigInfo", - "type": { - "kind": "struct", - "fields": [ - { - "name": "configDigest", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "f", - "type": "u8" - }, - { - "name": "n", - "type": "u8" - }, - { - "name": "isSignatureVerificationEnabled", - "type": "u8" - } - ] - } - }, - { - "name": "SourceChainConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "isEnabled", - "type": "bool" - }, - { - "name": "onRamp", - "type": "bytes" - } - ] - } - }, - { - "name": "SourceChainState", - "type": { - "kind": "struct", - "fields": [ - { - "name": "minSeqNr", - "type": "u64" - } - ] - } - }, - { - "name": "DestChainState", - "type": { - "kind": "struct", - "fields": [ - { - "name": "sequenceNumber", - "type": "u64" - }, - { - "name": "usdPerUnitGas", - "type": { - "defined": "TimestampedPackedU224" - } - } - ] - } - }, - { - "name": "DestChainConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "isEnabled", - "type": "bool" - }, - { - "name": "maxNumberOfTokensPerMsg", - "type": "u16" - }, - { - "name": "maxDataBytes", - "type": "u32" - }, - { - "name": "maxPerMsgGasLimit", - "type": "u32" - }, - { - "name": "destGasOverhead", - "type": "u32" - }, - { - "name": "destGasPerPayloadByte", - "type": "u16" - }, - { - "name": "destDataAvailabilityOverheadGas", - "type": "u32" - }, - { - "name": "destGasPerDataAvailabilityByte", - "type": "u16" - }, - { - "name": "destDataAvailabilityMultiplierBps", - "type": "u16" - }, - { - "name": "defaultTokenFeeUsdcents", - "type": "u16" - }, - { - "name": "defaultTokenDestGasOverhead", - "type": "u32" - }, - { - "name": "defaultTxGasLimit", - "type": "u32" - }, - { - "name": "gasMultiplierWeiPerEth", - "type": "u64" - }, - { - "name": "networkFeeUsdcents", - "type": "u32" - }, - { - "name": "gasPriceStalenessThreshold", - "type": "u32" - }, - { - "name": "enforceOutOfOrder", - "type": "bool" - }, - { - "name": "chainFamilySelector", - "type": { - "array": [ - "u8", - 4 - ] - } - } - ] - } - }, - { - "name": "TokenBilling", - "type": { - "kind": "struct", - "fields": [ - { - "name": "minFeeUsdcents", - "type": "u32" - }, - { - "name": "maxFeeUsdcents", - "type": "u32" - }, - { - "name": "deciBps", - "type": "u16" - }, - { - "name": "destGasOverhead", - "type": "u32" - }, - { - "name": "destBytesOverhead", - "type": "u32" - }, - { - "name": "isEnabled", - "type": "bool" - } - ] - } - }, - { - "name": "RateLimitTokenBucket", - "type": { - "kind": "struct", - "fields": [ - { - "name": "tokens", - "type": "u128" - }, - { - "name": "lastUpdated", - "type": "u32" - }, - { - "name": "isEnabled", - "type": "bool" - }, - { - "name": "capacity", - "type": "u128" - }, - { - "name": "rate", - "type": "u128" - } - ] - } - }, - { - "name": "BillingTokenConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "enabled", - "type": "bool" - }, - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "usdPerToken", - "type": { - "defined": "TimestampedPackedU224" - } - }, - { - "name": "premiumMultiplierWeiPerEth", - "type": "u64" - } - ] - } - }, - { - "name": "TimestampedPackedU224", - "type": { - "kind": "struct", - "fields": [ - { - "name": "value", - "type": { - "array": [ - "u8", - 28 - ] - } - }, - { - "name": "timestamp", - "type": "i64" - } - ] - } - }, - { - "name": "OcrPluginType", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Commit" - }, - { - "name": "Execution" - } - ] - } - }, - { - "name": "MerkleError", - "type": { - "kind": "enum", - "variants": [ - { - "name": "InvalidProof" - } - ] - } - }, - { - "name": "MessageExecutionState", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Untouched" - }, - { - "name": "InProgress" - }, - { - "name": "Success" - }, - { - "name": "Failure" - } - ] - } - }, - { - "name": "CcipRouterError", - "type": { - "kind": "enum", - "variants": [ - { - "name": "InvalidSequenceInterval" - }, - { - "name": "RootNotCommitted" - }, - { - "name": "ExistingMerkleRoot" - }, - { - "name": "Unauthorized" - }, - { - "name": "InvalidInputs" - }, - { - "name": "UnsupportedSourceChainSelector" - }, - { - "name": "UnsupportedDestinationChainSelector" - }, - { - "name": "InvalidProof" - }, - { - "name": "InvalidMessage" - }, - { - "name": "ReachedMaxSequenceNumber" - }, - { - "name": "ManualExecutionNotAllowed" - }, - { - "name": "InvalidInputsTokenIndices" - }, - { - "name": "InvalidInputsPoolAccounts" - }, - { - "name": "InvalidInputsTokenAccounts" - }, - { - "name": "InvalidInputsConfigAccounts" - }, - { - "name": "InvalidInputsTokenAdminRegistryAccounts" - }, - { - "name": "InvalidInputsLookupTableAccounts" - }, - { - "name": "InvalidInputsTokenAmount" - }, - { - "name": "OfframpReleaseMintBalanceMismatch" - }, - { - "name": "OfframpInvalidDataLength" - }, - { - "name": "StaleCommitReport" - }, - { - "name": "DestinationChainDisabled" - }, - { - "name": "FeeTokenDisabled" - }, - { - "name": "MessageTooLarge" - }, - { - "name": "UnsupportedNumberOfTokens" - }, - { - "name": "UnsupportedChainFamilySelector" - }, - { - "name": "InvalidEVMAddress" - }, - { - "name": "InvalidEncoding" - }, - { - "name": "InvalidInputsAtaAddress" - }, - { - "name": "InvalidInputsAtaWritable" - }, - { - "name": "InvalidTokenPrice" - }, - { - "name": "StaleGasPrice" - }, - { - "name": "InsufficientLamports" - }, - { - "name": "InsufficientFunds" - } - ] - } - } - ], - "events": [ - { - "name": "CCIPMessageSent", - "fields": [ - { - "name": "destChainSelector", - "type": "u64", - "index": false - }, - { - "name": "sequenceNumber", - "type": "u64", - "index": false - }, - { - "name": "message", - "type": { - "defined": "Solana2AnyRampMessage" - }, - "index": false - } - ] - }, - { - "name": "CommitReportAccepted", - "fields": [ - { - "name": "merkleRoot", - "type": { - "defined": "MerkleRoot" - }, - "index": false - }, - { - "name": "priceUpdates", - "type": { - "defined": "PriceUpdates" - }, - "index": false - } - ] - }, - { - "name": "SkippedAlreadyExecutedMessage", - "fields": [ - { - "name": "sourceChainSelector", - "type": "u64", - "index": false - }, - { - "name": "sequenceNumber", - "type": "u64", - "index": false - } - ] - }, - { - "name": "AlreadyAttempted", - "fields": [ - { - "name": "sourceChainSelector", - "type": "u64", - "index": false - }, - { - "name": "sequenceNumber", - "type": "u64", - "index": false - } - ] - }, - { - "name": "ExecutionStateChanged", - "fields": [ - { - "name": "sourceChainSelector", - "type": "u64", - "index": false - }, - { - "name": "sequenceNumber", - "type": "u64", - "index": false - }, - { - "name": "messageId", - "type": { - "array": [ - "u8", - 32 - ] - }, - "index": false - }, - { - "name": "messageHash", - "type": { - "array": [ - "u8", - 32 - ] - }, - "index": false - }, - { - "name": "state", - "type": { - "defined": "MessageExecutionState" - }, - "index": false - } - ] - }, - { - "name": "PoolSet", - "fields": [ - { - "name": "token", - "type": "publicKey", - "index": false - }, - { - "name": "previousPoolLookupTable", - "type": "publicKey", - "index": false - }, - { - "name": "newPoolLookupTable", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "AdministratorTransferRequested", - "fields": [ - { - "name": "token", - "type": "publicKey", - "index": false - }, - { - "name": "currentAdmin", - "type": "publicKey", - "index": false - }, - { - "name": "newAdmin", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "AdministratorTransferred", - "fields": [ - { - "name": "token", - "type": "publicKey", - "index": false - }, - { - "name": "newAdmin", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "FeeTokenAdded", - "fields": [ - { - "name": "feeToken", - "type": "publicKey", - "index": false - }, - { - "name": "enabled", - "type": "bool", - "index": false - } - ] - }, - { - "name": "FeeTokenEnabled", - "fields": [ - { - "name": "feeToken", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "FeeTokenDisabled", - "fields": [ - { - "name": "feeToken", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "FeeTokenRemoved", - "fields": [ - { - "name": "feeToken", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "UsdPerUnitGasUpdated", - "fields": [ - { - "name": "destChain", - "type": "u64", - "index": false - }, - { - "name": "value", - "type": { - "array": [ - "u8", - 28 - ] - }, - "index": false - }, - { - "name": "timestamp", - "type": "i64", - "index": false - } - ] - }, - { - "name": "UsdPerTokenUpdated", - "fields": [ - { - "name": "token", - "type": "publicKey", - "index": false - }, - { - "name": "value", - "type": { - "array": [ - "u8", - 28 - ] - }, - "index": false - }, - { - "name": "timestamp", - "type": "i64", - "index": false - } - ] - }, - { - "name": "TokenTransferFeeConfigUpdated", - "fields": [ - { - "name": "destChainSelector", - "type": "u64", - "index": false - }, - { - "name": "token", - "type": "publicKey", - "index": false - }, - { - "name": "tokenTransferFeeConfig", - "type": { - "defined": "TokenBilling" - }, - "index": false - } - ] - }, - { - "name": "PremiumMultiplierWeiPerEthUpdated", - "fields": [ - { - "name": "token", - "type": "publicKey", - "index": false - }, - { - "name": "premiumMultiplierWeiPerEth", - "type": "u64", - "index": false - } - ] - }, - { - "name": "SourceChainConfigUpdated", - "fields": [ - { - "name": "sourceChainSelector", - "type": "u64", - "index": false - }, - { - "name": "sourceChainConfig", - "type": { - "defined": "SourceChainConfig" - }, - "index": false - } - ] - }, - { - "name": "SourceChainAdded", - "fields": [ - { - "name": "sourceChainSelector", - "type": "u64", - "index": false - }, - { - "name": "sourceChainConfig", - "type": { - "defined": "SourceChainConfig" - }, - "index": false - } - ] - }, - { - "name": "DestChainConfigUpdated", - "fields": [ - { - "name": "destChainSelector", - "type": "u64", - "index": false - }, - { - "name": "destChainConfig", - "type": { - "defined": "DestChainConfig" - }, - "index": false - } - ] - }, - { - "name": "DestChainAdded", - "fields": [ - { - "name": "destChainSelector", - "type": "u64", - "index": false - }, - { - "name": "destChainConfig", - "type": { - "defined": "DestChainConfig" - }, - "index": false - } - ] - }, - { - "name": "AdministratorRegistered", - "fields": [ - { - "name": "tokenMint", - "type": "publicKey", - "index": false - }, - { - "name": "administrator", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "ConfigSet", - "fields": [ - { - "name": "ocrPluginType", - "type": "u8", - "index": false - }, - { - "name": "configDigest", - "type": { - "array": [ - "u8", - 32 - ] - }, - "index": false - }, - { - "name": "signers", - "type": { - "vec": { - "array": [ - "u8", - 20 - ] - } - }, - "index": false - }, - { - "name": "transmitters", - "type": { - "vec": "publicKey" - }, - "index": false - }, - { - "name": "f", - "type": "u8", - "index": false - } - ] - }, - { - "name": "Transmitted", - "fields": [ - { - "name": "ocrPluginType", - "type": "u8", - "index": false - }, - { - "name": "configDigest", - "type": { - "array": [ - "u8", - 32 - ] - }, - "index": false - }, - { - "name": "sequenceNumber", - "type": "u64", - "index": false - } - ] - } - ], - "errors": [ - { - "code": 6000, - "name": "InvalidConfigFMustBePositive", - "msg": "Invalid config: F must be positive" - }, - { - "code": 6001, - "name": "InvalidConfigTooManyTransmitters", - "msg": "Invalid config: Too many transmitters" - }, - { - "code": 6002, - "name": "InvalidConfigTooManySigners", - "msg": "Invalid config: Too many signers" - }, - { - "code": 6003, - "name": "InvalidConfigFIsTooHigh", - "msg": "Invalid config: F is too high" - }, - { - "code": 6004, - "name": "InvalidConfigRepeatedOracle", - "msg": "Invalid config: Repeated oracle address" - }, - { - "code": 6005, - "name": "WrongMessageLength", - "msg": "Wrong message length" - }, - { - "code": 6006, - "name": "ConfigDigestMismatch", - "msg": "Config digest mismatch" - }, - { - "code": 6007, - "name": "WrongNumberOfSignatures", - "msg": "Wrong number signatures" - }, - { - "code": 6008, - "name": "UnauthorizedTransmitter", - "msg": "Unauthorized transmitter" - }, - { - "code": 6009, - "name": "UnauthorizedSigner", - "msg": "Unauthorized signer" - }, - { - "code": 6010, - "name": "NonUniqueSignatures", - "msg": "Non unique signatures" - }, - { - "code": 6011, - "name": "OracleCannotBeZeroAddress", - "msg": "Oracle cannot be zero address" - }, - { - "code": 6012, - "name": "StaticConfigCannotBeChanged", - "msg": "Static config cannot be changed" - }, - { - "code": 6013, - "name": "InvalidPluginType", - "msg": "Incorrect plugin type" - }, - { - "code": 6014, - "name": "InvalidSignature", - "msg": "Invalid signature" - } - ] -} \ No newline at end of file diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 87649ef5984..51660f33dbf 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -6,13 +6,12 @@ import ( "fmt" "github.com/gagliardetto/solana-go" - + idl "github.com/smartcontractkit/chainlink-ccip/chains/solana" "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" "github.com/smartcontractkit/chainlink-solana/pkg/solana/codec" ) -//go:embed ccip_router.json -var ccipRouter string +var ccipRouterIDL = idl.FetchCCIPRouterIDL() const ( destChainSelectorPath = "Message.Header.DestChainSelector" @@ -299,7 +298,7 @@ func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLook // validate CCIP Router IDL, errors not expected var idl codec.IDL - if err = json.Unmarshal([]byte(ccipRouter), &idl); err != nil { + if err = json.Unmarshal([]byte(ccipRouterIDL), &idl); err != nil { return chainwriter.ChainWriterConfig{}, fmt.Errorf("unexpected error: invalid CCIP Router IDL, error: %w", err) } @@ -323,7 +322,7 @@ func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLook "execute": getExecuteProgramConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable, routeAccountConfig), "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable, routeAccountConfig), }, - IDL: ccipRouter}, + IDL: ccipRouterIDL}, }, } diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 8ddae4f236d..0f707937831 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -307,7 +307,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 94c5b8abcf8..dd447d0e8ef 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1121,8 +1121,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/deployment/go.mod b/deployment/go.mod index b17dfffd0c3..7e732463205 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -30,7 +30,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 diff --git a/deployment/go.sum b/deployment/go.sum index aa4a249ce40..ef6ce323ac5 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1391,8 +1391,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/go.mod b/go.mod index 2beb38aac3a..9ba95443098 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/ethereum/go-ethereum v1.14.11 github.com/fatih/color v1.17.0 github.com/fxamacker/cbor/v2 v2.7.0 - github.com/gagliardetto/solana-go v1.8.4 + github.com/gagliardetto/solana-go v1.12.0 github.com/getsentry/sentry-go v0.27.0 github.com/gin-contrib/cors v1.7.2 github.com/gin-contrib/expvar v0.0.1 @@ -79,6 +79,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 @@ -113,13 +114,13 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c - golang.org/x/mod v0.21.0 + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 + golang.org/x/mod v0.22.0 golang.org/x/sync v0.10.0 golang.org/x/term v0.27.0 golang.org/x/text v0.21.0 golang.org/x/time v0.7.0 - golang.org/x/tools v0.26.0 + golang.org/x/tools v0.28.0 gonum.org/v1/gonum v0.15.1 google.golang.org/grpc v1.67.1 google.golang.org/protobuf v1.35.1 @@ -132,7 +133,6 @@ require ( cel.dev/expr v0.17.0 // indirect cloud.google.com/go/auth v0.9.9 // indirect cloud.google.com/go/storage v1.45.0 // indirect - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -195,8 +195,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -208,7 +207,7 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect + github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect @@ -235,7 +234,6 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect @@ -336,13 +334,12 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect @@ -362,7 +359,6 @@ require ( go.dedis.ch/protobuf v1.0.11 // indirect go.etcd.io/bbolt v1.3.9 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.31.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect @@ -382,7 +378,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/ratelimit v0.3.1 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.202.0 // indirect diff --git a/go.sum b/go.sum index 515734762c8..f28369b6725 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -73,7 +68,6 @@ cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -100,8 +94,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -133,7 +125,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -143,7 +134,6 @@ github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1L github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -163,8 +153,6 @@ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c h1:cxQ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c/go.mod h1:3XzxudkrYVUvbduN/uI2fl4lSrMSzU0+3RCu2mpnfx8= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 h1:WWB576BN5zNSZc/M9d/10pqEx5VHNhaQ/yOVAkmj5Yo= @@ -185,7 +173,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= @@ -274,9 +261,7 @@ github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -284,7 +269,6 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -321,7 +305,6 @@ github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJF github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -335,23 +318,18 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= @@ -385,7 +363,6 @@ github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2 github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= @@ -404,13 +381,13 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= @@ -516,7 +493,6 @@ github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVI github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -552,7 +528,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -627,12 +602,10 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/pyroscope-go v1.1.2 h1:7vCfdORYQMCxIzI3NlYAs3FcBP760+gWuYWOyiVyYx8= @@ -643,15 +616,12 @@ github.com/graph-gophers/dataloader v5.0.0+incompatible h1:R+yjsbrNq1Mo3aPG+Z/EK github.com/graph-gophers/dataloader v5.0.0+incompatible/go.mod h1:jk4jk0c5ZISbKaMe8WsVopGB5/15GvGHMdMdPtwlRp4= github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -706,7 +676,6 @@ github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -800,10 +769,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= @@ -812,7 +779,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= @@ -833,7 +799,6 @@ github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -877,7 +842,6 @@ github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczG github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -891,7 +855,6 @@ github.com/marcboeker/go-duckdb v1.8.3 h1:ZkYwiIZhbYsT6MmJsZ3UPTHrTZccDdM4ztoqSl github.com/marcboeker/go-duckdb v1.8.3/go.mod h1:C9bYRE1dPYb1hhfu/SSomm78B0FXmNgRvv6YBW/Hooc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -900,8 +863,6 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -964,7 +925,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1 h1:mPMvm6X6tf4w8y7j9YIt6V9jfWhL6QlbEc7CCmeQlWk= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1/go.mod h1:ye2e/VUEtE2BHE+G/QcKkcLQVAEJoYRFj5VUOQatCRE= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= @@ -979,7 +939,6 @@ github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJm github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -987,7 +946,6 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= 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= @@ -1051,7 +1009,6 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/pressly/goose/v3 v3.21.1 h1:5SSAKKWej8LVVzNLuT6KIvP1eFDuPvxa+B6H0w78buQ= github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfWh8pHEe+vE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -1062,21 +1019,17 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1092,7 +1045,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1158,6 +1110,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1188,7 +1142,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1203,7 +1156,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1213,15 +1165,13 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1253,21 +1203,16 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1275,7 +1220,6 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= @@ -1301,24 +1245,17 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= 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/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1346,18 +1283,15 @@ go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRL go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11 h1:FTYVIEzY/bfl37lu3pR4lIj+F9Vp1jE8oh91VmxKgLo= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1429,15 +1363,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1464,7 +1395,6 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= @@ -1479,8 +1409,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1509,15 +1439,14 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1564,8 +1493,8 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1600,7 +1529,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1616,7 +1544,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1683,7 +1610,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -1730,7 +1656,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -1776,8 +1701,8 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1793,7 +1718,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -1818,7 +1742,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -1828,7 +1751,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1877,9 +1799,7 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go. google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1931,16 +1851,13 @@ gopkg.in/guregu/null.v2 v2.1.2/go.mod h1:XORrx8tyS5ZDcyUboCIxQtta/Aujk/6pfWrn9Xe gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 10d2279f6eb..07bf50271f4 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -427,7 +427,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index f334693b78d..d0b7a5d78ae 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1413,8 +1413,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index cdca446d5c0..686078d3334 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -411,6 +411,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 4beec227e66..11c43beb4f9 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1404,8 +1404,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000 h1:6Zzr/R1j6P7bbvcUlt5WUIbItvrrGdGzIsiAzQezcwo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20241218114855-f74219171000/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= From 057172d79ad45d8223adee65c665b5bc917b9e9d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 14:22:17 -0600 Subject: [PATCH 085/232] go.md --- go.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/go.md b/go.md index ed41edee2b0..87bfabe78a7 100644 --- a/go.md +++ b/go.md @@ -28,6 +28,8 @@ flowchart LR chainlink-ccip --> chain-selectors chainlink-ccip --> chainlink-common click chainlink-ccip href "https://github.com/smartcontractkit/chainlink-ccip" + chainlink-ccip/chains/solana --> chainlink-common + click chainlink-ccip/chains/solana href "https://github.com/smartcontractkit/chainlink-ccip" chainlink-common --> grpc-proxy chainlink-common --> libocr click chainlink-common href "https://github.com/smartcontractkit/chainlink-common" @@ -47,6 +49,7 @@ flowchart LR click chainlink-starknet/relayer href "https://github.com/smartcontractkit/chainlink-starknet" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds @@ -68,6 +71,12 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" + subgraph chainlink-ccip-repo[chainlink-ccip] + chainlink-ccip + chainlink-ccip/chains/solana + end + click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" + subgraph tdh2-repo[tdh2] tdh2/go/ocr2/decryptionplugin tdh2/go/tdh2 @@ -75,7 +84,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; - class tdh2-repo outline + class chainlink-ccip-repo,tdh2-repo outline ``` ## All modules ```mermaid @@ -143,7 +152,6 @@ flowchart LR chainlink/core/scripts --> chainlink/deployment click chainlink/core/scripts href "https://github.com/smartcontractkit/chainlink" chainlink/deployment --> ccip-owner-contracts - chainlink/deployment --> chainlink-ccip/chains/solana chainlink/deployment --> chainlink-protos/job-distributor chainlink/deployment --> chainlink-testing-framework/lib chainlink/deployment --> chainlink/v2 @@ -155,6 +163,7 @@ flowchart LR click chainlink/load-tests href "https://github.com/smartcontractkit/chainlink" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds From a89a392d40d70ec9ce1eaeae2bfe6e9d50b480ac Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 14:27:39 -0600 Subject: [PATCH 086/232] go import --- core/capabilities/ccip/configs/solana/chain_writer.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 51660f33dbf..5503f897f3c 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/gagliardetto/solana-go" + idl "github.com/smartcontractkit/chainlink-ccip/chains/solana" "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" "github.com/smartcontractkit/chainlink-solana/pkg/solana/codec" From 91f4dcadd450cb09efb5417bc2e3c45ea5433550 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 15 Jan 2025 14:37:10 -0600 Subject: [PATCH 087/232] remove unused --- core/capabilities/ccip/configs/solana/chain_writer.go | 1 - 1 file changed, 1 deletion(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 5503f897f3c..875a14e4827 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -1,7 +1,6 @@ package solana import ( - _ "embed" "encoding/json" "fmt" From cbb6b9391e977825eb4fc5c4fdcdc09a189c8f0f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 16 Jan 2025 10:09:06 -0600 Subject: [PATCH 088/232] update mod --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 0b839afe4dd..7da80be0047 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -307,7 +307,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index ecd7936048a..98d0e13de4b 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1121,8 +1121,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/deployment/go.mod b/deployment/go.mod index 14f987ff38a..75828272d70 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -30,7 +30,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 diff --git a/deployment/go.sum b/deployment/go.sum index a008115c85d..95ecc645e65 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1391,8 +1391,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/go.mod b/go.mod index 356fbc53483..cc7c432126d 100644 --- a/go.mod +++ b/go.mod @@ -79,7 +79,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 diff --git a/go.sum b/go.sum index 81463d353f3..696d2840762 100644 --- a/go.sum +++ b/go.sum @@ -1110,8 +1110,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 3c4c2fb49c1..d26722933ea 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -427,7 +427,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 3297379e4d2..1f061dcfa65 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1413,8 +1413,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 2b845234fd6..c508a1c3300 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -411,7 +411,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 7ce47e942ec..c66d3ae1b25 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1404,8 +1404,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836 h1:R/rOLq8axuLFcUMUMcmpetHJIpn3AUh8x62gnSzRiU4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250115193813-064df4d77836/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= From 67d689c133f311af0a0d77c77980cce8134be844 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 16 Jan 2025 10:30:02 -0600 Subject: [PATCH 089/232] update with new generated go binding --- .../ccip/ccipsolana/executecodec.go | 24 ------------------- .../ccip/ccipsolana/executecodec_test.go | 11 +++++---- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.sum | 4 ++-- 11 files changed, 20 insertions(+), 43 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 2fe8bea3025..7eab0a36ed4 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -94,7 +94,6 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec Message: message, OffchainTokenData: offchainTokenData, Proofs: solanaProofs, - TokenIndexes: calculateTokenIndexes(message), } var buf bytes.Buffer @@ -181,29 +180,6 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } -// calculateTokenIndexes calculates TokenIndexes, which is a Solana specific value that marks each of the token transfer accounts starts within the list of accounts -func calculateTokenIndexes(msg ccip_router.Any2SolanaRampMessage) []byte { - // For example: - // accounts_for_message = [a, b, c] - // accounts per token T = [t1, t2, t3, t4] - // accounts per token J = [j1, j2, j3] - // So, the list of accounts will be [a, b, c, t1, t2, t3, t4, j1, j2, j3] and the indexes will be [3, 7] - - tokenIndexes := make([]byte, 0, len(msg.TokenAmounts)) - if len(msg.TokenAmounts) == 0 { - return tokenIndexes - } - - // accounts_for_message = [users_receiver_program_id] + extraArgs.Accounts - counter := len(msg.ExtraArgs.Accounts) + 1 - for range msg.TokenAmounts { - // TODO: for now it's fixed amount (https://github.com/smartcontractkit/chainlink-ccip/blob/a5e767b178659e220175008ca34a22237fd85195/chains/solana/utils/tokens/tokenpool.go#L170), and there's going to be a sdn provided for calculating accounts per token transfer later - tokenIndexes = append(tokenIndexes, byte(counter)) - counter += 11 - } - return tokenIndexes -} - func bytesToUint32(b []byte) uint32 { if len(b) < 4 { var padded [4]byte diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 703e0f9435f..179df9445b4 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -54,11 +54,12 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { } extraArgs := ccip_router.SolanaExtraArgs{ - ComputeUnits: 1000, - Accounts: []ccip_router.SolanaAccountMeta{ - {Pubkey: config.CcipReceiverProgram}, - {Pubkey: config.ReceiverTargetAccountPDA, IsWritable: true}, - {Pubkey: solana.SystemProgramID, IsWritable: false}, + ComputeUnits: 1000, + IsWritableBitmap: 2, + Accounts: []solana.PublicKey{ + config.CcipReceiverProgram, + config.ReceiverTargetAccountPDA, + solana.SystemProgramID, }, } diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 660239a00e2..93399612815 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -300,7 +300,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index a948a5d61d6..2ea65435ff6 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1113,8 +1113,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/deployment/go.mod b/deployment/go.mod index 26a2c764cb7..bf2be613767 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -30,7 +30,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 diff --git a/deployment/go.sum b/deployment/go.sum index 6e4186d1926..0f5f4cbb19f 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1383,8 +1383,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/go.mod b/go.mod index b7133607923..05650a820ec 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 diff --git a/go.sum b/go.sum index 0ec7edcb205..810b4fb2410 100644 --- a/go.sum +++ b/go.sum @@ -1101,10 +1101,10 @@ github.com/smartcontractkit/chain-selectors v1.0.34 h1:MJ17OGu8+jjl426pcKrJkCf3f github.com/smartcontractkit/chain-selectors v1.0.34/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/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index a263ece624f..c7186e11230 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -422,7 +422,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241216163550-fa030d178ba3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 6119f25d446..5ee88380bf6 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1405,8 +1405,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index e8f79690431..d743e095746 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1396,8 +1396,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba h1:gisAer1YxKKui6LhxDgfuZ3OyrHVjHm/oK/0idusFeI= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250109124515-ff9d86b874ba/go.mod h1:ncjd6mPZSRlelEqH/2KeLE1pU3UlqzBSn8RYkEoECzY= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e h1:8BStiP1F4W8AvjBRga0TYtjvAtkwN8oHYnHJztAlSF4= github.com/smartcontractkit/chainlink-common v0.4.1-0.20250108194320-2ebd63bbb16e/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= From 7f6aa25569249522d039143626c43c63b1f62b63 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 16 Jan 2025 17:40:57 -0600 Subject: [PATCH 090/232] Amit comments --- .../ccip/configs/solana/chain_writer.go | 35 ++++++++----------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 875a14e4827..38bdead660c 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -2,6 +2,7 @@ package solana import ( "encoding/json" + "errors" "fmt" "github.com/gagliardetto/solana-go" @@ -18,7 +19,9 @@ const ( destTokenAddress = "Message.TokenAmounts.DestTokenAddress" ) -func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { +func getCommitMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { + computeBudgetProgramAddress := solana.ComputeBudget.String() + sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() return chainwriter.MethodConfig{ FromAddress: fromAddress, InputModifications: nil, @@ -48,19 +51,6 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysv IsSigner: false, IsWritable: false, }, - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, chainwriter.PDALookups{ Name: "RouterAccountState", PublicKey: chainwriter.AccountConstant{ @@ -106,7 +96,9 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, sysv } } -func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sysvarInstructionsAddress string, computeBudgetProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { +func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { + computeBudgetProgramAddress := solana.ComputeBudget.String() + sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() return chainwriter.MethodConfig{ FromAddress: fromAddress, InputModifications: nil, @@ -287,15 +279,16 @@ func getExecuteProgramConfig(fromAddress string, routerProgramAddress string, sy } func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, fromAddress string) (chainwriter.ChainWriterConfig, error) { - computeBudgetProgramAddress := solana.ComputeBudget.String() - sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() - // check fromAddress - _, err := solana.PublicKeyFromBase58(fromAddress) + pk, err := solana.PublicKeyFromBase58(fromAddress) if err != nil { return chainwriter.ChainWriterConfig{}, fmt.Errorf("invalid from address %s: %w", fromAddress, err) } + if pk.IsZero() { + return chainwriter.ChainWriterConfig{}, errors.New("from address cannot be empty") + } + // validate CCIP Router IDL, errors not expected var idl codec.IDL if err = json.Unmarshal([]byte(ccipRouterIDL), &idl); err != nil { @@ -319,8 +312,8 @@ func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLook Programs: map[string]chainwriter.ProgramConfig{ "ccip-router": { Methods: map[string]chainwriter.MethodConfig{ - "execute": getExecuteProgramConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable, routeAccountConfig), - "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, sysvarInstructionsAddress, computeBudgetProgramAddress, commonAddressesLookupTable, routeAccountConfig), + "execute": getExecuteMethodConfig(fromAddress, routerProgramAddress, commonAddressesLookupTable, routeAccountConfig), + "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, commonAddressesLookupTable, routeAccountConfig), }, IDL: ccipRouterIDL}, }, From d1c58587bb651c49e600a35b5f4eaca6c4089e73 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 16 Jan 2025 22:50:11 -0600 Subject: [PATCH 091/232] Solana estimate providers no-op (#15909) * no-op for solana estimate providers * add changeset * token data noop * noop for solana rmn * fix lint --- .changeset/twelve-games-sneeze.md | 5 +++++ .../ccip/ccipsolana/gas_helpers.go | 22 +++++++++++++++++++ .../capabilities/ccip/ccipsolana/rmncrypto.go | 20 +++++++++++++++++ .../capabilities/ccip/ccipsolana/tokendata.go | 18 +++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 .changeset/twelve-games-sneeze.md create mode 100644 core/capabilities/ccip/ccipsolana/gas_helpers.go create mode 100644 core/capabilities/ccip/ccipsolana/rmncrypto.go create mode 100644 core/capabilities/ccip/ccipsolana/tokendata.go diff --git a/.changeset/twelve-games-sneeze.md b/.changeset/twelve-games-sneeze.md new file mode 100644 index 00000000000..ccee0e508c9 --- /dev/null +++ b/.changeset/twelve-games-sneeze.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +add Solana estimate provider as a no-op #added diff --git a/core/capabilities/ccip/ccipsolana/gas_helpers.go b/core/capabilities/ccip/ccipsolana/gas_helpers.go new file mode 100644 index 00000000000..59ab4ff9dcb --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/gas_helpers.go @@ -0,0 +1,22 @@ +package ccipsolana + +import ( + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +func NewGasEstimateProvider() EstimateProvider { + return EstimateProvider{} +} + +type EstimateProvider struct { +} + +// CalculateMerkleTreeGas is not implemented +func (gp EstimateProvider) CalculateMerkleTreeGas(numRequests int) uint64 { + return 0 +} + +// CalculateMessageMaxGas is not implemented. +func (gp EstimateProvider) CalculateMessageMaxGas(msg cciptypes.Message) uint64 { + return 0 +} diff --git a/core/capabilities/ccip/ccipsolana/rmncrypto.go b/core/capabilities/ccip/ccipsolana/rmncrypto.go new file mode 100644 index 00000000000..95987eb09ff --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/rmncrypto.go @@ -0,0 +1,20 @@ +package ccipsolana + +import ( + "context" + "errors" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +// SolanaRMNCrypto is the RMNCrypto implementation for Solana chains. +type SolanaRMNCrypto struct{} + +func (r *SolanaRMNCrypto) VerifyReportSignatures( + _ context.Context, + _ []cciptypes.RMNECDSASignature, + _ cciptypes.RMNReport, + _ []cciptypes.UnknownAddress, +) error { + return errors.New("not implemented") +} diff --git a/core/capabilities/ccip/ccipsolana/tokendata.go b/core/capabilities/ccip/ccipsolana/tokendata.go new file mode 100644 index 00000000000..009b66aedb4 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/tokendata.go @@ -0,0 +1,18 @@ +package ccipsolana + +import ( + "context" + "errors" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +type SolanaTokenDataEncoder struct{} + +func NewSolanaTokenDataEncoder() SolanaTokenDataEncoder { + return SolanaTokenDataEncoder{} +} + +func (e SolanaTokenDataEncoder) EncodeUSDC(_ context.Context, message cciptypes.Bytes, attestation cciptypes.Bytes) (cciptypes.Bytes, error) { + return nil, errors.New("not implemented") +} From 9497f40c5f0c942cf91a3ed55b627bba08636975 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 17 Jan 2025 16:41:53 -0600 Subject: [PATCH 092/232] mod tidy --- go.mod | 1 - go.sum | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 5ddc682cb06..82c8f09fa9e 100644 --- a/go.mod +++ b/go.mod @@ -208,7 +208,6 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect diff --git a/go.sum b/go.sum index a3d8e486772..b93f024777b 100644 --- a/go.sum +++ b/go.sum @@ -1454,6 +1454,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1659,6 +1660,7 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= From a757a6ec7d945177cc1f021e7c9ca6c3519f0a1b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 12:54:58 -0600 Subject: [PATCH 093/232] Use SVM ABI, needs to check test --- .../ccip/ccipevm/extraargscodec.go | 47 ++++++++++++- core/capabilities/ccip/ccipevm/helpers.go | 66 ++++++++++++++++++- .../capabilities/ccip/ccipevm/helpers_test.go | 23 ++++++- core/capabilities/ccip/ccipevm/msghasher.go | 3 + 4 files changed, 133 insertions(+), 6 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/extraargscodec.go b/core/capabilities/ccip/ccipevm/extraargscodec.go index 8cd8bda48f7..066d49884e9 100644 --- a/core/capabilities/ccip/ccipevm/extraargscodec.go +++ b/core/capabilities/ccip/ccipevm/extraargscodec.go @@ -1,9 +1,21 @@ package ccipevm import ( + "fmt" + + chainsel "github.com/smartcontractkit/chain-selectors" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) +const ( + EVMExtraArgsKey = "gasLimit" + SVMComputeUnitKey = "ComputeUnits" + SVMAccountBitmapKey = "AccountIsWritableBitmap" + SVMAllowOOEKey = "AllowOutOfOrderExecution" + SVMTokenReceiverKey = "TokenReceiver" + SVMAccountListKey = "Accounts" +) + type ExtraArgsCodec struct{} func NewExtraArgsCodec() ExtraArgsCodec { @@ -11,6 +23,37 @@ func NewExtraArgsCodec() ExtraArgsCodec { } func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - // Not implemented and not return error - return nil, nil + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to decode extra data, %w", err) + } + + switch family { + case chainsel.FamilyEVM: + gas, err1 := decodeExtraArgsV1V2(extraArgs) + if err1 != nil { + return nil, fmt.Errorf("failed to decode EVM extra data, %w", err) + } + + return map[string]any{ + EVMExtraArgsKey: gas, + }, nil + + case chainsel.FamilySolana: + v1, err1 := decodeExtraArgsSVMV1(extraArgs) + if err1 != nil { + return nil, fmt.Errorf("failed to decode SVM extra data, %w", err) + } + + return map[string]any{ + SVMComputeUnitKey: v1.ComputeUnits, + SVMAccountBitmapKey: v1.AccountIsWritableBitmap, + SVMAllowOOEKey: v1.AllowOutOfOrderExecution, + SVMTokenReceiverKey: v1.TokenReceiver, + SVMAccountListKey: v1.Accounts, + }, nil + + default: + return nil, fmt.Errorf("unsupported family for extra args type %s", family) + } } diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index 3406421b915..c16a00a20db 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -6,6 +6,13 @@ import ( "math/big" "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/message_hasher" +) + +const ( + svmV1DecodeName = "decodeSVMExtraArgsV1" + evmV1DecodeName = "decodeEVMExtraArgsV1" + evmV2DecodeName = "decodeEVMExtraArgsV2" ) var ( @@ -24,9 +31,9 @@ func decodeExtraArgsV1V2(extraArgs []byte) (gasLimit *big.Int, err error) { var method string if bytes.Equal(extraArgs[:4], evmExtraArgsV1Tag) { - method = "decodeEVMExtraArgsV1" + method = evmV1DecodeName } else if bytes.Equal(extraArgs[:4], evmExtraArgsV2Tag) { - method = "decodeEVMExtraArgsV2" + method = evmV2DecodeName } else { return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) } @@ -43,6 +50,61 @@ func decodeExtraArgsV1V2(extraArgs []byte) (gasLimit *big.Int, err error) { return ifaces[0].(*big.Int), nil } +func decodeExtraArgsSVMV1(extraArgs []byte) (*message_hasher.ClientSVMExtraArgsV1, error) { + if len(extraArgs) < 4 { + return nil, fmt.Errorf("extra args too short: %d, should be at least 4 (i.e the extraArgs tag)", len(extraArgs)) + } + + if !bytes.Equal(extraArgs[:4], svmExtraArgsV1Tag) { + return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) + } + + ifaces, err := messageHasherABI.Methods[svmV1DecodeName].Inputs.UnpackValues(extraArgs[4:]) + if err != nil { + return nil, fmt.Errorf("abi decode extra args v1: %w", err) + } + + if len(ifaces) != 5 { + return nil, fmt.Errorf("expected 5 inputs, got %d", len(ifaces)) + } + + _, ok := ifaces[0].(uint32) + if !ok { + return nil, fmt.Errorf("expected uint32, got %T", ifaces[0]) + } + + _, ok = ifaces[1].(uint64) + if !ok { + return nil, fmt.Errorf("expected uint64, got %T", ifaces[1]) + } + + _, ok = ifaces[2].(bool) + if !ok { + return nil, fmt.Errorf("expected bool, got %T", ifaces[2]) + } + + tokenReceiver, ok := ifaces[3].([]byte) + if !ok || len(tokenReceiver) != 32 { + return nil, fmt.Errorf("expected [32]byte, got %T or incorrect length %d", ifaces[3], len(tokenReceiver)) + } + + var tokenReceiverArray [32]byte + copy(tokenReceiverArray[:], tokenReceiver) + + accounts, ok := ifaces[4].([][32]byte) + if !ok { + return nil, fmt.Errorf("expected [][32]byte, got %T", ifaces[4]) + } + + return &message_hasher.ClientSVMExtraArgsV1{ + ComputeUnits: ifaces[0].(uint32), + AccountIsWritableBitmap: ifaces[1].(uint64), + AllowOutOfOrderExecution: ifaces[2].(bool), + TokenReceiver: tokenReceiverArray, + Accounts: accounts, + }, nil +} + // abiEncodeMethodInputs encodes the inputs for a method call. // example abi: `[{ "name" : "method", "type": "function", "inputs": [{"name": "a", "type": "uint256"}]}]` func abiEncodeMethodInputs(abiDef abi.ABI, inputs ...interface{}) ([]byte, error) { diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index e0de0572226..6c6d3879305 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -5,6 +5,7 @@ import ( "math/rand" "testing" + "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/message_hasher" @@ -14,7 +15,7 @@ func Test_decodeExtraArgs(t *testing.T) { d := testSetup(t) gasLimit := big.NewInt(rand.Int63()) - t.Run("v1", func(t *testing.T) { + t.Run("EVMv1", func(t *testing.T) { encoded, err := d.contract.EncodeEVMExtraArgsV1(nil, message_hasher.ClientEVMExtraArgsV1{ GasLimit: gasLimit, }) @@ -26,7 +27,7 @@ func Test_decodeExtraArgs(t *testing.T) { require.Equal(t, gasLimit, decodedGasLimit) }) - t.Run("v2", func(t *testing.T) { + t.Run("EVMv2", func(t *testing.T) { encoded, err := d.contract.EncodeEVMExtraArgsV2(nil, message_hasher.ClientEVMExtraArgsV2{ GasLimit: gasLimit, AllowOutOfOrderExecution: true, @@ -38,4 +39,22 @@ func Test_decodeExtraArgs(t *testing.T) { require.Equal(t, gasLimit, decodedGasLimit) }) + + t.Run("SVMv1", func(t *testing.T) { + key, err := solana.NewRandomPrivateKey() + require.NoError(t, err) + encoded, err := d.contract.EncodeSVMExtraArgsV1(nil, message_hasher.ClientSVMExtraArgsV1{ + ComputeUnits: 10000, + AccountIsWritableBitmap: 4, + AllowOutOfOrderExecution: false, + TokenReceiver: [32]byte(key.PublicKey().Bytes()), + Accounts: [][32]byte{ + [32]byte(key.PublicKey().Bytes()), + }, + }) + require.NoError(t, err) + + _, err = decodeExtraArgsSVMV1(encoded) + require.NoError(t, err) + }) } diff --git a/core/capabilities/ccip/ccipevm/msghasher.go b/core/capabilities/ccip/ccipevm/msghasher.go index f98e5d12640..cdad4fe0149 100644 --- a/core/capabilities/ccip/ccipevm/msghasher.go +++ b/core/capabilities/ccip/ccipevm/msghasher.go @@ -31,6 +31,9 @@ var ( // bytes4 public constant EVM_EXTRA_ARGS_V2_TAG = 0x181dcf10; evmExtraArgsV2Tag = hexutil.MustDecode("0x181dcf10") + + // bytes4 public constant SVM_EXTRA_EXTRA_ARGS_V1_TAG = 0x1f3b3aba + svmExtraArgsV1Tag = hexutil.MustDecode("0x1f3b3aba") ) // MessageHasherV1 implements the MessageHasher interface. From e9ae48d08457a4222d2985c0bab410c79f1ac755 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 13:18:16 -0600 Subject: [PATCH 094/232] add comment --- .../ccip/ccipsolana/executecodec.go | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 7eab0a36ed4..25ae5b5a8be 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -8,7 +8,7 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" - + chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) @@ -52,11 +52,23 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec }) } - var extraArgs ccip_router.SolanaExtraArgs - decoder := agbinary.NewBorshDecoder(msg.ExtraArgs) - err := extraArgs.UnmarshalWithDecoder(decoder) + family, err := chainsel.GetSelectorFamily(uint64(chainReport.SourceChainSelector)) if err != nil { - return nil, fmt.Errorf("invalid extra arguments: %w", err) + return nil, fmt.Errorf("invalid source chain selector: %w", err) + } + + var extraArgs ccip_router.SolanaExtraArgs + switch family { + case chainsel.FamilySolana: + decoder := agbinary.NewBorshDecoder(msg.ExtraArgs) + err = extraArgs.UnmarshalWithDecoder(decoder) + if err != nil { + return nil, fmt.Errorf("invalid extra arguments: %w", err) + } + case chainsel.FamilyEVM: + // TODO once https://github.com/smartcontractkit/chainlink/pull/16016 merged, use extraDataMap to construct extra args here + default: + return nil, fmt.Errorf("unsupported source chain family: %s", family) } if len(msg.Receiver) != solana.PublicKeyLength { From 7253bbad64fcf2eda872b90cefb7b856e5c2f5f0 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 13:45:43 -0600 Subject: [PATCH 095/232] goimport --- core/capabilities/ccip/ccipevm/extraargscodec.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/ccipevm/extraargscodec.go b/core/capabilities/ccip/ccipevm/extraargscodec.go index 066d49884e9..78954e4b8ff 100644 --- a/core/capabilities/ccip/ccipevm/extraargscodec.go +++ b/core/capabilities/ccip/ccipevm/extraargscodec.go @@ -4,6 +4,7 @@ import ( "fmt" chainsel "github.com/smartcontractkit/chain-selectors" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) From 0ec8119dfb36c5fedbd40f4dcc6d5048cb1a6d55 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 14:57:45 -0600 Subject: [PATCH 096/232] update --- .../ccip/ccipevm/extraargscodec.go | 60 --------- core/capabilities/ccip/ccipevm/helpers.go | 57 +++------ .../capabilities/ccip/ccipevm/helpers_test.go | 31 ++++- core/capabilities/ccip/ccipsolana/helpers.go | 30 +++++ .../ccip/ccipsolana/helpers_test.go | 34 +++++ core/capabilities/ccip/extraargscodec.go | 35 ++++++ .../capabilities/ccip/oraclecreator/plugin.go | 5 +- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- deployment/go.mod | 2 +- deployment/go.sum | 4 +- go.mod | 22 ++-- go.sum | 119 +++--------------- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 1 + integration-tests/load/go.sum | 2 + .../smoke/ccip/ccip_reader_test.go | 8 +- 18 files changed, 187 insertions(+), 235 deletions(-) delete mode 100644 core/capabilities/ccip/ccipevm/extraargscodec.go create mode 100644 core/capabilities/ccip/ccipsolana/helpers.go create mode 100644 core/capabilities/ccip/ccipsolana/helpers_test.go create mode 100644 core/capabilities/ccip/extraargscodec.go diff --git a/core/capabilities/ccip/ccipevm/extraargscodec.go b/core/capabilities/ccip/ccipevm/extraargscodec.go deleted file mode 100644 index 78954e4b8ff..00000000000 --- a/core/capabilities/ccip/ccipevm/extraargscodec.go +++ /dev/null @@ -1,60 +0,0 @@ -package ccipevm - -import ( - "fmt" - - chainsel "github.com/smartcontractkit/chain-selectors" - - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" -) - -const ( - EVMExtraArgsKey = "gasLimit" - SVMComputeUnitKey = "ComputeUnits" - SVMAccountBitmapKey = "AccountIsWritableBitmap" - SVMAllowOOEKey = "AllowOutOfOrderExecution" - SVMTokenReceiverKey = "TokenReceiver" - SVMAccountListKey = "Accounts" -) - -type ExtraArgsCodec struct{} - -func NewExtraArgsCodec() ExtraArgsCodec { - return ExtraArgsCodec{} -} - -func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to decode extra data, %w", err) - } - - switch family { - case chainsel.FamilyEVM: - gas, err1 := decodeExtraArgsV1V2(extraArgs) - if err1 != nil { - return nil, fmt.Errorf("failed to decode EVM extra data, %w", err) - } - - return map[string]any{ - EVMExtraArgsKey: gas, - }, nil - - case chainsel.FamilySolana: - v1, err1 := decodeExtraArgsSVMV1(extraArgs) - if err1 != nil { - return nil, fmt.Errorf("failed to decode SVM extra data, %w", err) - } - - return map[string]any{ - SVMComputeUnitKey: v1.ComputeUnits, - SVMAccountBitmapKey: v1.AccountIsWritableBitmap, - SVMAllowOOEKey: v1.AllowOutOfOrderExecution, - SVMTokenReceiverKey: v1.TokenReceiver, - SVMAccountListKey: v1.Accounts, - }, nil - - default: - return nil, fmt.Errorf("unsupported family for extra args type %s", family) - } -} diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index c16a00a20db..d3bce9f454f 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -6,7 +6,6 @@ import ( "math/big" "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/message_hasher" ) const ( @@ -50,59 +49,33 @@ func decodeExtraArgsV1V2(extraArgs []byte) (gasLimit *big.Int, err error) { return ifaces[0].(*big.Int), nil } -func decodeExtraArgsSVMV1(extraArgs []byte) (*message_hasher.ClientSVMExtraArgsV1, error) { +func DecodeExtraArgs(extraArgs []byte) (map[string]any, error) { if len(extraArgs) < 4 { return nil, fmt.Errorf("extra args too short: %d, should be at least 4 (i.e the extraArgs tag)", len(extraArgs)) } - if !bytes.Equal(extraArgs[:4], svmExtraArgsV1Tag) { + var method string + if bytes.Equal(extraArgs[:4], evmExtraArgsV1Tag) { + method = evmV1DecodeName + } else if bytes.Equal(extraArgs[:4], evmExtraArgsV2Tag) { + method = evmV2DecodeName + } else if bytes.Equal(extraArgs[:4], svmExtraArgsV1Tag) { + method = svmV1DecodeName + } else { return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) } - ifaces, err := messageHasherABI.Methods[svmV1DecodeName].Inputs.UnpackValues(extraArgs[4:]) + output := make(map[string]any) + args := make(map[string]interface{}) + err := messageHasherABI.Methods[method].Inputs.UnpackIntoMap(args, extraArgs[4:]) if err != nil { return nil, fmt.Errorf("abi decode extra args v1: %w", err) } - if len(ifaces) != 5 { - return nil, fmt.Errorf("expected 5 inputs, got %d", len(ifaces)) + for k, val := range args { + output[k] = val } - - _, ok := ifaces[0].(uint32) - if !ok { - return nil, fmt.Errorf("expected uint32, got %T", ifaces[0]) - } - - _, ok = ifaces[1].(uint64) - if !ok { - return nil, fmt.Errorf("expected uint64, got %T", ifaces[1]) - } - - _, ok = ifaces[2].(bool) - if !ok { - return nil, fmt.Errorf("expected bool, got %T", ifaces[2]) - } - - tokenReceiver, ok := ifaces[3].([]byte) - if !ok || len(tokenReceiver) != 32 { - return nil, fmt.Errorf("expected [32]byte, got %T or incorrect length %d", ifaces[3], len(tokenReceiver)) - } - - var tokenReceiverArray [32]byte - copy(tokenReceiverArray[:], tokenReceiver) - - accounts, ok := ifaces[4].([][32]byte) - if !ok { - return nil, fmt.Errorf("expected [][32]byte, got %T", ifaces[4]) - } - - return &message_hasher.ClientSVMExtraArgsV1{ - ComputeUnits: ifaces[0].(uint32), - AccountIsWritableBitmap: ifaces[1].(uint64), - AllowOutOfOrderExecution: ifaces[2].(bool), - TokenReceiver: tokenReceiverArray, - Accounts: accounts, - }, nil + return output, nil } // abiEncodeMethodInputs encodes the inputs for a method call. diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index 6c6d3879305..ff3dab70fbc 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -15,7 +15,7 @@ func Test_decodeExtraArgs(t *testing.T) { d := testSetup(t) gasLimit := big.NewInt(rand.Int63()) - t.Run("EVMv1", func(t *testing.T) { + t.Run("v1", func(t *testing.T) { encoded, err := d.contract.EncodeEVMExtraArgsV1(nil, message_hasher.ClientEVMExtraArgsV1{ GasLimit: gasLimit, }) @@ -27,7 +27,7 @@ func Test_decodeExtraArgs(t *testing.T) { require.Equal(t, gasLimit, decodedGasLimit) }) - t.Run("EVMv2", func(t *testing.T) { + t.Run("v2", func(t *testing.T) { encoded, err := d.contract.EncodeEVMExtraArgsV2(nil, message_hasher.ClientEVMExtraArgsV2{ GasLimit: gasLimit, AllowOutOfOrderExecution: true, @@ -40,7 +40,30 @@ func Test_decodeExtraArgs(t *testing.T) { require.Equal(t, gasLimit, decodedGasLimit) }) - t.Run("SVMv1", func(t *testing.T) { + t.Run("decode extra args into map evm v1", func(t *testing.T) { + encoded, err := d.contract.EncodeEVMExtraArgsV1(nil, message_hasher.ClientEVMExtraArgsV1{ + GasLimit: gasLimit, + }) + require.NoError(t, err) + + m, err := DecodeExtraArgs(encoded) + require.NoError(t, err) + require.Equal(t, 1, len(m)) + }) + + t.Run("decode extra args into map evm v2", func(t *testing.T) { + encoded, err := d.contract.EncodeEVMExtraArgsV2(nil, message_hasher.ClientEVMExtraArgsV2{ + GasLimit: gasLimit, + AllowOutOfOrderExecution: true, + }) + require.NoError(t, err) + + m, err := DecodeExtraArgs(encoded) + require.NoError(t, err) + require.Equal(t, 2, len(m)) + }) + + t.Run("decode extra args into map svm", func(t *testing.T) { key, err := solana.NewRandomPrivateKey() require.NoError(t, err) encoded, err := d.contract.EncodeSVMExtraArgsV1(nil, message_hasher.ClientSVMExtraArgsV1{ @@ -54,7 +77,7 @@ func Test_decodeExtraArgs(t *testing.T) { }) require.NoError(t, err) - _, err = decodeExtraArgsSVMV1(encoded) + _, err = DecodeExtraArgs(encoded) require.NoError(t, err) }) } diff --git a/core/capabilities/ccip/ccipsolana/helpers.go b/core/capabilities/ccip/ccipsolana/helpers.go new file mode 100644 index 00000000000..86efb1796f9 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/helpers.go @@ -0,0 +1,30 @@ +package ccipsolana + +import ( + "fmt" + "reflect" + + agbinary "github.com/gagliardetto/binary" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" +) + +func DecodeExtraArgs(extraArgs []byte) (map[string]any, error) { + outputMap := make(map[string]any) + var args ccip_router.SVMExtraArgs + decoder := agbinary.NewBorshDecoder(extraArgs) + err := args.UnmarshalWithDecoder(decoder) + if err != nil { + return outputMap, fmt.Errorf("failed to decode extra args: %w", err) + } + + val := reflect.ValueOf(args) + typ := reflect.TypeOf(args) + + for i := 0; i < val.NumField(); i++ { + field := typ.Field(i) + fieldValue := val.Field(i).Interface() + outputMap[field.Name] = fieldValue + } + + return outputMap, nil +} diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/helpers_test.go new file mode 100644 index 00000000000..f9192c76075 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/helpers_test.go @@ -0,0 +1,34 @@ +package ccipsolana + +import ( + "bytes" + "testing" + + agbinary "github.com/gagliardetto/binary" + "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" + "github.com/stretchr/testify/require" +) + +func Test_decodeExtraArgs(t *testing.T) { + t.Run("decode extra args into map svm", func(t *testing.T) { + extraArgs := ccip_router.SVMExtraArgs{ + ComputeUnits: 1000, + IsWritableBitmap: 2, + Accounts: []solana.PublicKey{ + config.ReceiverExternalExecutionConfigPDA, + config.ReceiverTargetAccountPDA, + solana.SystemProgramID, + }, + } + + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + err := extraArgs.MarshalWithEncoder(encoder) + require.NoError(t, err) + output, err := DecodeExtraArgs(buf.Bytes()) + require.NoError(t, err) + require.Equal(t, 3, len(output)) + }) +} diff --git a/core/capabilities/ccip/extraargscodec.go b/core/capabilities/ccip/extraargscodec.go new file mode 100644 index 00000000000..1861ce576c9 --- /dev/null +++ b/core/capabilities/ccip/extraargscodec.go @@ -0,0 +1,35 @@ +package ccip + +import ( + "fmt" + + chainsel "github.com/smartcontractkit/chain-selectors" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +type ExtraArgsCodec struct{} + +func NewExtraArgsCodec() ExtraArgsCodec { + return ExtraArgsCodec{} +} + +func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to decode extra data, %w", err) + } + + switch family { + case chainsel.FamilyEVM: + return ccipevm.DecodeExtraArgs(extraArgs) + + case chainsel.FamilySolana: + return ccipsolana.DecodeExtraArgs(extraArgs) + + default: + return nil, fmt.Errorf("unsupported family for extra args type %s", family) + } +} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index f791a804586..97e2bd8a317 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -12,6 +12,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip" chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3confighelper" @@ -263,7 +264,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewCommitPluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - ccipevm.NewExtraArgsCodec(), + ccip.NewExtraArgsCodec(), i.homeChainReader, i.homeChainSelector, contractReaders, @@ -286,7 +287,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewExecutePluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - ccipevm.NewExtraArgsCodec(), + ccip.NewExtraArgsCodec(), i.homeChainReader, ccipevm.NewEVMTokenDataEncoder(), ccipevm.NewGasEstimateProvider(), diff --git a/core/scripts/go.mod b/core/scripts/go.mod index a5f0f5e0234..939081f423c 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -312,7 +312,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250115203616-a2ea5e50b260 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index ee84543f0ab..d2ce22a1679 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1162,8 +1162,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1:ZEOlcleVdT0/y9V5yjgFJF0j7MpvdrFmKis/xmFNIgE= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 h1:cf7mgbR8OelUnq49x0vYLy1XWddw4t1Q1YsBPxUQY4M= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/deployment/go.mod b/deployment/go.mod index 714bbcb5f9b..d9e2316ecc2 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -30,7 +30,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250117195512-81a855ec1fc6 diff --git a/deployment/go.sum b/deployment/go.sum index f0c88772e1d..980afbb08a3 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1388,8 +1388,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1:ZEOlcleVdT0/y9V5yjgFJF0j7MpvdrFmKis/xmFNIgE= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 h1:cf7mgbR8OelUnq49x0vYLy1XWddw4t1Q1YsBPxUQY4M= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/go.mod b/go.mod index e3fde6531b7..6b6418982c8 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,8 @@ require ( github.com/ethereum/go-ethereum v1.14.11 github.com/fatih/color v1.17.0 github.com/fxamacker/cbor/v2 v2.7.0 - github.com/gagliardetto/solana-go v1.8.4 + github.com/gagliardetto/binary v0.8.0 + github.com/gagliardetto/solana-go v1.12.0 github.com/getsentry/sentry-go v0.27.0 github.com/gin-contrib/cors v1.7.2 github.com/gin-contrib/expvar v0.0.1 @@ -80,6 +81,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.34 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 @@ -114,13 +116,13 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c - golang.org/x/mod v0.21.0 + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 + golang.org/x/mod v0.22.0 golang.org/x/sync v0.10.0 golang.org/x/term v0.27.0 golang.org/x/text v0.21.0 golang.org/x/time v0.7.0 - golang.org/x/tools v0.26.0 + golang.org/x/tools v0.28.0 gonum.org/v1/gonum v0.15.1 google.golang.org/grpc v1.67.1 google.golang.org/protobuf v1.35.1 @@ -133,7 +135,6 @@ require ( cel.dev/expr v0.17.0 // indirect cloud.google.com/go/auth v0.9.9 // indirect cloud.google.com/go/storage v1.45.0 // indirect - contrib.go.opencensus.io/exporter/stackdriver v0.13.5 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -196,8 +197,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect - github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect @@ -209,7 +209,6 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect @@ -236,7 +235,6 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect @@ -337,13 +335,12 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/status-im/keycard-go v0.2.0 // indirect - github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect + github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect @@ -363,7 +360,6 @@ require ( go.dedis.ch/protobuf v1.0.11 // indirect go.etcd.io/bbolt v1.3.9 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.31.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect @@ -383,7 +379,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/ratelimit v0.3.1 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.202.0 // indirect diff --git a/go.sum b/go.sum index e7fc31914d5..cebe69c75bb 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ cel.dev/expr v0.17.0/go.mod h1:HCwbrn+qQoHPXgfz6cl2J0hDybnX2N1sQQkl9EggXx8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= @@ -54,10 +53,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= -contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5 h1:TNaexHK16gPUoc7uzELKOU7JULqccn1NDuqUxmxSqfo= -contrib.go.opencensus.io/exporter/stackdriver v0.13.5/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -73,7 +68,6 @@ cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= @@ -100,8 +94,6 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= @@ -133,7 +125,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -143,7 +134,6 @@ github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1L github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -163,8 +153,6 @@ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c h1:cxQ github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c/go.mod h1:3XzxudkrYVUvbduN/uI2fl4lSrMSzU0+3RCu2mpnfx8= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59 h1:WWB576BN5zNSZc/M9d/10pqEx5VHNhaQ/yOVAkmj5Yo= @@ -185,7 +173,6 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= @@ -272,9 +259,7 @@ github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -282,7 +267,6 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= @@ -319,7 +303,6 @@ github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJF github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= @@ -333,23 +316,18 @@ github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80N github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 h1:CuJS05R9jmNlUK8GOxrEELPbfXm0EuGh/30LjkjN5vo= -github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70/go.mod h1:EoK/8RFbMEteaCaz89uessDTnCWjbbcr+DXcBh4el5o= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= @@ -385,7 +363,6 @@ github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2 github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= @@ -404,13 +381,13 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= -github.com/gagliardetto/binary v0.7.7/go.mod h1:mUuay5LL8wFVnIlecHakSZMvcdqfs+CsotR5n77kyjM= +github.com/gagliardetto/binary v0.8.0 h1:U9ahc45v9HW0d15LoN++vIXSJyqR/pWw8DDlhd7zvxg= +github.com/gagliardetto/binary v0.8.0/go.mod h1:2tfj51g5o9dnvsc+fL3Jxr22MuWzYXwx9wEoN0XQ7/c= github.com/gagliardetto/gofuzz v1.2.2 h1:XL/8qDMzcgvR4+CyRQW9UGdwPRPMHVJfqQ/uMvSUuQw= github.com/gagliardetto/gofuzz v1.2.2/go.mod h1:bkH/3hYLZrMLbfYWA0pWzXmi5TTRZnu4pMGZBkqMKvY= github.com/gagliardetto/hashsearch v0.0.0-20191005111333-09dd671e19f9/go.mod h1:513DXpQPzeRo7d4dsCP3xO3XI8hgvruMl9njxyQeraQ= -github.com/gagliardetto/solana-go v1.8.4 h1:vmD/JmTlonyXGy39bAo0inMhmbdAwV7rXZtLDMZeodE= -github.com/gagliardetto/solana-go v1.8.4/go.mod h1:i+7aAyNDTHG0jK8GZIBSI4OVvDqkt2Qx+LklYclRNG8= +github.com/gagliardetto/solana-go v1.12.0 h1:rzsbilDPj6p+/DOPXBMLhwMZeBgeRuXjm5zQFCoXgsg= +github.com/gagliardetto/solana-go v1.12.0/go.mod h1:l/qqqIN6qJJPtxW/G1PF4JtcE3Zg2vD2EliZrr9Gn5k= github.com/gagliardetto/treeout v0.1.4 h1:ozeYerrLCmCubo1TcIjFiOWTTGteOOHND1twdFpgwaw= github.com/gagliardetto/treeout v0.1.4/go.mod h1:loUefvXTrlRG5rYmJmExNryyBRh8f89VZhmMOyCyqok= github.com/gagliardetto/utilz v0.1.1 h1:/etW4hl607emKg6R6Lj9jRJ9d6ue2AQOyjhuAwjzs1U= @@ -516,7 +493,6 @@ github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVI github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -552,7 +528,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx 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.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= @@ -627,12 +602,10 @@ github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/pyroscope-go v1.1.2 h1:7vCfdORYQMCxIzI3NlYAs3FcBP760+gWuYWOyiVyYx8= @@ -643,15 +616,12 @@ github.com/graph-gophers/dataloader v5.0.0+incompatible h1:R+yjsbrNq1Mo3aPG+Z/EK github.com/graph-gophers/dataloader v5.0.0+incompatible/go.mod h1:jk4jk0c5ZISbKaMe8WsVopGB5/15GvGHMdMdPtwlRp4= github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= @@ -706,7 +676,6 @@ github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -800,10 +769,8 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= @@ -812,7 +779,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= @@ -833,7 +799,6 @@ github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -875,7 +840,6 @@ github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczG github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -889,7 +853,6 @@ github.com/marcboeker/go-duckdb v1.8.3 h1:ZkYwiIZhbYsT6MmJsZ3UPTHrTZccDdM4ztoqSl github.com/marcboeker/go-duckdb v1.8.3/go.mod h1:C9bYRE1dPYb1hhfu/SSomm78B0FXmNgRvv6YBW/Hooc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -898,8 +861,6 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -962,7 +923,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1 h1:mPMvm6X6tf4w8y7j9YIt6V9jfWhL6QlbEc7CCmeQlWk= github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1/go.mod h1:ye2e/VUEtE2BHE+G/QcKkcLQVAEJoYRFj5VUOQatCRE= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= @@ -977,7 +937,6 @@ github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJm github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -985,7 +944,6 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= 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= @@ -1049,7 +1007,6 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/pressly/goose/v3 v3.21.1 h1:5SSAKKWej8LVVzNLuT6KIvP1eFDuPvxa+B6H0w78buQ= github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfWh8pHEe+vE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -1060,21 +1017,17 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -1088,7 +1041,6 @@ github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1154,6 +1106,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1:ZEOlcleVdT0/y9V5yjgFJF0j7MpvdrFmKis/xmFNIgE= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 h1:cf7mgbR8OelUnq49x0vYLy1XWddw4t1Q1YsBPxUQY4M= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= @@ -1184,7 +1138,6 @@ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1199,7 +1152,6 @@ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -1209,15 +1161,13 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= -github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091 h1:RN5mrigyirb8anBEtdjtHFIufXdacyTi6i4KBfeNXeo= +github.com/streamingfast/logging v0.0.0-20230608130331-f22c91403091/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1249,21 +1199,16 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB1JpVZouslJpI3GBNoiqW7+wb0Rz7w= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= @@ -1271,7 +1216,6 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= @@ -1297,24 +1241,17 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= 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/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1342,18 +1279,15 @@ go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRL go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11 h1:FTYVIEzY/bfl37lu3pR4lIj+F9Vp1jE8oh91VmxKgLo= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1425,15 +1359,12 @@ go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKY go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0= go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -1460,7 +1391,6 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= @@ -1475,8 +1405,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1505,15 +1435,14 @@ golang.org/x/mod v0.4.2/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/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1560,8 +1489,8 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1596,7 +1525,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1612,7 +1540,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1679,7 +1606,6 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -1726,7 +1652,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -1772,8 +1697,8 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= 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/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1789,7 +1714,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -1814,7 +1738,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -1824,7 +1747,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1873,9 +1795,7 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go. google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1927,16 +1847,13 @@ gopkg.in/guregu/null.v2 v2.1.2/go.mod h1:XORrx8tyS5ZDcyUboCIxQtta/Aujk/6pfWrn9Xe gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index a26c222b333..f141ccb7618 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -428,7 +428,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 818218ea346..e742a0a135b 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1412,8 +1412,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1:ZEOlcleVdT0/y9V5yjgFJF0j7MpvdrFmKis/xmFNIgE= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 h1:cf7mgbR8OelUnq49x0vYLy1XWddw4t1Q1YsBPxUQY4M= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 0a4add1c4d0..186a414a96b 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -412,6 +412,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 72eb3a750d4..bdc19827caf 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1399,6 +1399,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1:ZEOlcleVdT0/y9V5yjgFJF0j7MpvdrFmKis/xmFNIgE= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 h1:cf7mgbR8OelUnq49x0vYLy1XWddw4t1Q1YsBPxUQY4M= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 4345bd4d894..5260e1647fd 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -14,12 +14,12 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/jmoiron/sqlx" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" "github.com/smartcontractkit/chainlink/v2/core/utils/testutils/heavyweight" "github.com/smartcontractkit/chainlink-ccip/plugintypes" @@ -291,7 +291,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), - ccipevm.NewExtraArgsCodec(), + ccip.NewExtraArgsCodec(), ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1411,7 +1411,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraArgsCodec() + edc := ccip.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1527,7 +1527,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraArgsCodec() + edc := ccip.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() { From 82a162f8ec5c13b8f795b9ff04eb21f8153a258f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 15:02:54 -0600 Subject: [PATCH 097/232] rename --- core/capabilities/ccip/ccipevm/helpers.go | 4 ++-- core/capabilities/ccip/ccipevm/helpers_test.go | 6 +++--- core/capabilities/ccip/ccipsolana/helpers.go | 2 +- core/capabilities/ccip/ccipsolana/helpers_test.go | 2 +- core/capabilities/ccip/extraargscodec.go | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index d3bce9f454f..a1373032102 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -49,7 +49,7 @@ func decodeExtraArgsV1V2(extraArgs []byte) (gasLimit *big.Int, err error) { return ifaces[0].(*big.Int), nil } -func DecodeExtraArgs(extraArgs []byte) (map[string]any, error) { +func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { if len(extraArgs) < 4 { return nil, fmt.Errorf("extra args too short: %d, should be at least 4 (i.e the extraArgs tag)", len(extraArgs)) } @@ -69,7 +69,7 @@ func DecodeExtraArgs(extraArgs []byte) (map[string]any, error) { args := make(map[string]interface{}) err := messageHasherABI.Methods[method].Inputs.UnpackIntoMap(args, extraArgs[4:]) if err != nil { - return nil, fmt.Errorf("abi decode extra args v1: %w", err) + return nil, fmt.Errorf("abi decode extra args %v: %w", method, err) } for k, val := range args { diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index ff3dab70fbc..25078852e3a 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -46,7 +46,7 @@ func Test_decodeExtraArgs(t *testing.T) { }) require.NoError(t, err) - m, err := DecodeExtraArgs(encoded) + m, err := DecodeExtraArgsToMap(encoded) require.NoError(t, err) require.Equal(t, 1, len(m)) }) @@ -58,7 +58,7 @@ func Test_decodeExtraArgs(t *testing.T) { }) require.NoError(t, err) - m, err := DecodeExtraArgs(encoded) + m, err := DecodeExtraArgsToMap(encoded) require.NoError(t, err) require.Equal(t, 2, len(m)) }) @@ -77,7 +77,7 @@ func Test_decodeExtraArgs(t *testing.T) { }) require.NoError(t, err) - _, err = DecodeExtraArgs(encoded) + _, err = DecodeExtraArgsToMap(encoded) require.NoError(t, err) }) } diff --git a/core/capabilities/ccip/ccipsolana/helpers.go b/core/capabilities/ccip/ccipsolana/helpers.go index 86efb1796f9..1d3d976dfda 100644 --- a/core/capabilities/ccip/ccipsolana/helpers.go +++ b/core/capabilities/ccip/ccipsolana/helpers.go @@ -8,7 +8,7 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) -func DecodeExtraArgs(extraArgs []byte) (map[string]any, error) { +func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { outputMap := make(map[string]any) var args ccip_router.SVMExtraArgs decoder := agbinary.NewBorshDecoder(extraArgs) diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/helpers_test.go index f9192c76075..fd701f0c72f 100644 --- a/core/capabilities/ccip/ccipsolana/helpers_test.go +++ b/core/capabilities/ccip/ccipsolana/helpers_test.go @@ -27,7 +27,7 @@ func Test_decodeExtraArgs(t *testing.T) { encoder := agbinary.NewBorshEncoder(&buf) err := extraArgs.MarshalWithEncoder(encoder) require.NoError(t, err) - output, err := DecodeExtraArgs(buf.Bytes()) + output, err := DecodeExtraArgsToMap(buf.Bytes()) require.NoError(t, err) require.Equal(t, 3, len(output)) }) diff --git a/core/capabilities/ccip/extraargscodec.go b/core/capabilities/ccip/extraargscodec.go index 1861ce576c9..2208941fbe4 100644 --- a/core/capabilities/ccip/extraargscodec.go +++ b/core/capabilities/ccip/extraargscodec.go @@ -24,10 +24,10 @@ func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSele switch family { case chainsel.FamilyEVM: - return ccipevm.DecodeExtraArgs(extraArgs) + return ccipevm.DecodeExtraArgsToMap(extraArgs) case chainsel.FamilySolana: - return ccipsolana.DecodeExtraArgs(extraArgs) + return ccipsolana.DecodeExtraArgsToMap(extraArgs) default: return nil, fmt.Errorf("unsupported family for extra args type %s", family) From 18f578cebec0f4722a079c6dbfc3c23b6d1a1d32 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 15:20:13 -0600 Subject: [PATCH 098/232] go mod tidy --- deployment/go.mod | 3 +-- go.sum | 1 - integration-tests/load/go.sum | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/deployment/go.mod b/deployment/go.mod index 5e0115c8baa..013e8c480ea 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -423,8 +423,7 @@ require ( github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250115203616-a2ea5e50b260 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20250114010532-74b7a72c2706 // indirect - github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect + github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 // indirect github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 // indirect diff --git a/go.sum b/go.sum index e80f8e45f64..ec756d7c5d5 100644 --- a/go.sum +++ b/go.sum @@ -125,7 +125,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/XSAM/otelsql v0.29.0 h1:pEw9YXXs8ZrGRYfDc0cmArIz9lci5b42gmP5+tA1Huc= github.com/XSAM/otelsql v0.29.0/go.mod h1:d3/0xGIGC5RVEE+Ld7KotwaLy6zDeaF3fLJHOPpdN2w= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 1cb81004fde..6cb1f8f3524 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1407,8 +1407,6 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1:ZEOlcleVdT0/y9V5yjgFJF0j7MpvdrFmKis/xmFNIgE= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30 h1:cLqp7DciHn7MXX3Y2QAiBHjuNPUFfTRreXfjWbUcM6o= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= From 9c4fff2f42c0adf3e93fef66004a377efdf69a7a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 15:23:30 -0600 Subject: [PATCH 099/232] goimport --- core/capabilities/ccip/ccipsolana/executecodec.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 25ae5b5a8be..23350970ff7 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -9,6 +9,7 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" chainsel "github.com/smartcontractkit/chain-selectors" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) From e8bbe9a3ebc36f20d07aadd999b514c014020bf0 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 16:29:23 -0600 Subject: [PATCH 100/232] tidy --- core/scripts/go.sum | 4 ++-- go.mod | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 19b613a4eb8..d29d9894bb0 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1172,8 +1172,8 @@ github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= -github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4 h1:cf7mgbR8OelUnq49x0vYLy1XWddw4t1Q1YsBPxUQY4M= -github.com/smartcontractkit/chainlink-common v0.4.2-0.20250117101554-1922eef0bdd4/go.mod h1:yti7e1+G9hhkYhj+L5sVUULn9Bn3bBL5/AxaNqdJ5YQ= +github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30 h1:cLqp7DciHn7MXX3Y2QAiBHjuNPUFfTRreXfjWbUcM6o= +github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e/go.mod h1:mUh5/woemsVaHgTorA080hrYmO3syBCmPdnWc/5dOqk= github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 h1:GcPYNVFYjB065CNq0h8nK/VeU08nUkHgBX0cJIEpuHY= diff --git a/go.mod b/go.mod index 0e334abeb25..3ea947724fd 100644 --- a/go.mod +++ b/go.mod @@ -81,7 +81,7 @@ require ( github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a - github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30 + github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 github.com/smartcontractkit/chainlink-feeds v0.1.1 @@ -209,7 +209,6 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect From 36a5ad1a2e8283dd2610de4bd6806a4f1f7f6bf7 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 16:58:52 -0600 Subject: [PATCH 101/232] refactor --- core/capabilities/ccip/{ => common}/extraargscodec.go | 2 +- core/capabilities/ccip/oraclecreator/plugin.go | 6 +++--- integration-tests/smoke/ccip/ccip_reader_test.go | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) rename core/capabilities/ccip/{ => common}/extraargscodec.go (98%) diff --git a/core/capabilities/ccip/extraargscodec.go b/core/capabilities/ccip/common/extraargscodec.go similarity index 98% rename from core/capabilities/ccip/extraargscodec.go rename to core/capabilities/ccip/common/extraargscodec.go index 2208941fbe4..4914fc9b924 100644 --- a/core/capabilities/ccip/extraargscodec.go +++ b/core/capabilities/ccip/common/extraargscodec.go @@ -1,4 +1,4 @@ -package ccip +package common import ( "fmt" diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index db5e7a794bb..2f603a8aed2 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -13,7 +13,7 @@ import ( "github.com/gagliardetto/solana-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip" + common2 "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/smartcontractkit/chainlink/v2/core/services/relay" chainsel "github.com/smartcontractkit/chain-selectors" @@ -287,7 +287,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewCommitPluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - ccip.NewExtraArgsCodec(), + common2.NewExtraArgsCodec(), i.homeChainReader, i.homeChainSelector, contractReaders, @@ -310,7 +310,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewExecutePluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - ccip.NewExtraArgsCodec(), + common2.NewExtraArgsCodec(), i.homeChainReader, ccipevm.NewEVMTokenDataEncoder(), ccipevm.NewGasEstimateProvider(), diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 5260e1647fd..69cf2bfc9f7 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -14,7 +14,7 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/jmoiron/sqlx" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip" + common2 "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" @@ -291,7 +291,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), - ccip.NewExtraArgsCodec(), + common2.NewExtraArgsCodec(), ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1411,7 +1411,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccip.NewExtraArgsCodec() + edc := common2.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1527,7 +1527,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccip.NewExtraArgsCodec() + edc := common2.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() { From 3fa671b671bfb2b10b3a6cef0c5b3d0eb02f4026 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 21 Jan 2025 21:05:34 -0600 Subject: [PATCH 102/232] fix lint --- core/capabilities/ccip/ccipevm/helpers.go | 9 +++++---- core/capabilities/ccip/ccipevm/helpers_test.go | 4 ++-- core/capabilities/ccip/ccipsolana/helpers.go | 1 + core/capabilities/ccip/ccipsolana/helpers_test.go | 5 +++-- core/capabilities/ccip/common/extraargscodec.go | 1 + 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index a1373032102..8079b934b12 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -55,13 +55,14 @@ func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { } var method string - if bytes.Equal(extraArgs[:4], evmExtraArgsV1Tag) { + switch string(extraArgs[:4]) { + case string(evmExtraArgsV1Tag): method = evmV1DecodeName - } else if bytes.Equal(extraArgs[:4], evmExtraArgsV2Tag) { + case string(evmExtraArgsV2Tag): method = evmV2DecodeName - } else if bytes.Equal(extraArgs[:4], svmExtraArgsV1Tag) { + case string(svmExtraArgsV1Tag): method = svmV1DecodeName - } else { + default: return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) } diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index 25078852e3a..dc7593a5213 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -48,7 +48,7 @@ func Test_decodeExtraArgs(t *testing.T) { m, err := DecodeExtraArgsToMap(encoded) require.NoError(t, err) - require.Equal(t, 1, len(m)) + require.Len(t, m, 1) }) t.Run("decode extra args into map evm v2", func(t *testing.T) { @@ -60,7 +60,7 @@ func Test_decodeExtraArgs(t *testing.T) { m, err := DecodeExtraArgsToMap(encoded) require.NoError(t, err) - require.Equal(t, 2, len(m)) + require.Len(t, m, 2) }) t.Run("decode extra args into map svm", func(t *testing.T) { diff --git a/core/capabilities/ccip/ccipsolana/helpers.go b/core/capabilities/ccip/ccipsolana/helpers.go index 1d3d976dfda..d1896fe0035 100644 --- a/core/capabilities/ccip/ccipsolana/helpers.go +++ b/core/capabilities/ccip/ccipsolana/helpers.go @@ -5,6 +5,7 @@ import ( "reflect" agbinary "github.com/gagliardetto/binary" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/helpers_test.go index fd701f0c72f..ae765e87406 100644 --- a/core/capabilities/ccip/ccipsolana/helpers_test.go +++ b/core/capabilities/ccip/ccipsolana/helpers_test.go @@ -6,9 +6,10 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" + "github.com/stretchr/testify/require" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" - "github.com/stretchr/testify/require" ) func Test_decodeExtraArgs(t *testing.T) { @@ -29,6 +30,6 @@ func Test_decodeExtraArgs(t *testing.T) { require.NoError(t, err) output, err := DecodeExtraArgsToMap(buf.Bytes()) require.NoError(t, err) - require.Equal(t, 3, len(output)) + require.Len(t, output, 3) }) } diff --git a/core/capabilities/ccip/common/extraargscodec.go b/core/capabilities/ccip/common/extraargscodec.go index 4914fc9b924..dd168084a2d 100644 --- a/core/capabilities/ccip/common/extraargscodec.go +++ b/core/capabilities/ccip/common/extraargscodec.go @@ -4,6 +4,7 @@ import ( "fmt" chainsel "github.com/smartcontractkit/chain-selectors" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" From 443cfe1397bf2f3cd358d90bfdb906ed6416c351 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 10:49:06 -0600 Subject: [PATCH 103/232] step 1 for parse extra args map --- core/capabilities/ccip/ccipsolana/executecodec.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 23350970ff7..e2e94c20070 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -67,7 +67,10 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("invalid extra arguments: %w", err) } case chainsel.FamilyEVM: - // TODO once https://github.com/smartcontractkit/chainlink/pull/16016 merged, use extraDataMap to construct extra args here + extraArgs, err = parseExtraArgsMap(msg.ExtraArgsDecoded) + if err != nil { + return nil, fmt.Errorf("invalid extra args map: %w", err) + } default: return nil, fmt.Errorf("unsupported source chain family: %s", family) } @@ -193,6 +196,11 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } +func parseExtraArgsMap(input map[string]any) (ccip_router.SolanaExtraArgs, error) { + var out ccip_router.SolanaExtraArgs + return out, nil +} + func bytesToUint32(b []byte) uint32 { if len(b) < 4 { var padded [4]byte From c60a92502d2a4ba334d9c856ed02c4fcef557682 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 10:53:33 -0600 Subject: [PATCH 104/232] add comment --- core/capabilities/ccip/ccipsolana/executecodec.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index e2e94c20070..04722dc9c09 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -58,6 +58,8 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("invalid source chain selector: %w", err) } + // if source chain is Solana the Borsh decoder will be used, for EVM we will construct the extra args from + // the chain agnostic extra args map var extraArgs ccip_router.SolanaExtraArgs switch family { case chainsel.FamilySolana: From 24e9fa360e5cd14f33e139f7b6ddbbb875accb6e Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 10:58:39 -0600 Subject: [PATCH 105/232] fix test --- core/capabilities/ccip/ccipsolana/executecodec_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 179df9445b4..09b554e39e6 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -94,7 +94,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { } chainReports[i] = cciptypes.ExecutePluginReportSingleChain{ - SourceChainSelector: cciptypes.ChainSelector(rand.Uint64()), + SourceChainSelector: cciptypes.ChainSelector(124615329519749607), // Solana mainnet chain selector Messages: reportMessages, OffchainTokenData: tokenData, Proofs: []cciptypes.Bytes32{utils.RandomBytes32(), utils.RandomBytes32()}, From af29932ad1c408866bc47135e622eb85b7097b3f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 11:02:21 -0600 Subject: [PATCH 106/232] fix --- core/capabilities/ccip/ccipsolana/helpers.go | 2 +- .../ccip/ccipsolana/helpers_test.go | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/helpers.go b/core/capabilities/ccip/ccipsolana/helpers.go index d1896fe0035..7d5e861067b 100644 --- a/core/capabilities/ccip/ccipsolana/helpers.go +++ b/core/capabilities/ccip/ccipsolana/helpers.go @@ -11,7 +11,7 @@ import ( func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { outputMap := make(map[string]any) - var args ccip_router.SVMExtraArgs + var args ccip_router.AnyExtraArgs decoder := agbinary.NewBorshDecoder(extraArgs) err := args.UnmarshalWithDecoder(decoder) if err != nil { diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/helpers_test.go index ae765e87406..7affa0ff5b9 100644 --- a/core/capabilities/ccip/ccipsolana/helpers_test.go +++ b/core/capabilities/ccip/ccipsolana/helpers_test.go @@ -5,23 +5,22 @@ import ( "testing" agbinary "github.com/gagliardetto/binary" - "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/require" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) func Test_decodeExtraArgs(t *testing.T) { t.Run("decode extra args into map svm", func(t *testing.T) { - extraArgs := ccip_router.SVMExtraArgs{ - ComputeUnits: 1000, - IsWritableBitmap: 2, - Accounts: []solana.PublicKey{ - config.ReceiverExternalExecutionConfigPDA, - config.ReceiverTargetAccountPDA, - solana.SystemProgramID, - }, + extraArgs := ccip_router.AnyExtraArgs{ + // TODO wait for onchain team fix this AnyExtraArgs + //ComputeUnits: 1000, + //IsWritableBitmap: 2, + //Accounts: []solana.PublicKey{ + // config.ReceiverExternalExecutionConfigPDA, + // config.ReceiverTargetAccountPDA, + // solana.SystemProgramID, + //}, } var buf bytes.Buffer From 912b91cd7c363f4fb947a51e04bd662242737465 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 15:09:52 -0600 Subject: [PATCH 107/232] update --- .../ccip/ccipsolana/executecodec.go | 35 +++++++++++++++++++ .../ccip/ccipsolana/executecodec_test.go | 32 +++++++++++------ 2 files changed, 56 insertions(+), 11 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 04722dc9c09..82bf35f09db 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -4,10 +4,12 @@ import ( "bytes" "context" "encoding/binary" + "errors" "fmt" agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" + ag_solanago "github.com/gagliardetto/solana-go" chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" @@ -199,7 +201,40 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) } func parseExtraArgsMap(input map[string]any) (ccip_router.SolanaExtraArgs, error) { + // Parse input map into SolanaExtraArgs var out ccip_router.SolanaExtraArgs + + // Iterate through the expected fields in the struct + for fieldName, fieldValue := range input { + switch fieldName { + case "ComputeUnits": + // Expect uint32 + if v, ok := fieldValue.(uint32); ok { + out.ComputeUnits = v + } else { + return out, errors.New("invalid type for ComputeUnits, expected uint32") + } + case "IsWritableBitmap": + // Expect uint64 + if v, ok := fieldValue.(uint64); ok { + out.IsWritableBitmap = v + } else { + return out, errors.New("invalid type for IsWritableBitmap, expected uint64") + } + case "Accounts": + // Expect [][32]byte + if v, ok := fieldValue.([][32]byte); ok { + accounts := make([]ag_solanago.PublicKey, len(v)) + for i, val := range v { + accounts[i] = val + } + out.Accounts = accounts + } else { + return out, errors.New("invalid type for Accounts, expected [][32]byte") + } + } + } + return out, nil } diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 09b554e39e6..22ec702d109 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -22,7 +22,7 @@ import ( "github.com/stretchr/testify/require" ) -var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { +var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptypes.ExecutePluginReport { const numChainReports = 1 const msgsPerReport = 1 const numTokensPerMsg = 1 @@ -71,7 +71,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { reportMessages[j] = cciptypes.Message{ Header: cciptypes.RampMessageHeader{ MessageID: utils.RandomBytes32(), - SourceChainSelector: cciptypes.ChainSelector(rand.Uint64()), + SourceChainSelector: cciptypes.ChainSelector(sourceChainSelector), DestChainSelector: cciptypes.ChainSelector(rand.Uint64()), SequenceNumber: cciptypes.SeqNum(rand.Uint64()), Nonce: rand.Uint64(), @@ -94,7 +94,7 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { } chainReports[i] = cciptypes.ExecutePluginReportSingleChain{ - SourceChainSelector: cciptypes.ChainSelector(124615329519749607), // Solana mainnet chain selector + SourceChainSelector: cciptypes.ChainSelector(sourceChainSelector), Messages: reportMessages, OffchainTokenData: tokenData, Proofs: []cciptypes.Bytes32{utils.RandomBytes32(), utils.RandomBytes32()}, @@ -106,15 +106,24 @@ var randomExecuteReport = func(t *testing.T) cciptypes.ExecutePluginReport { func TestExecutePluginCodecV1(t *testing.T) { testCases := []struct { - name string - report func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport - expErr bool + name string + report func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport + expErr bool + chainSelector uint64 }{ { - name: "base report", - report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, - expErr: false, + name: "base report with Solana as source chain", + report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, + expErr: false, + chainSelector: 124615329519749607, // Solana mainnet chain selector }, + // TODO uncomment when extraargs codec implemented, right now the map is empty + //{ + // name: "base report with EVM as source chain", + // report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, + // expErr: false, + // chainSelector: 5009297550715157269, // ETH mainnet chain selector + //}, // TODO: check if empty msg if necessary since there is only single msg in solana execute report // { // name: "reports have empty msgs", @@ -130,7 +139,8 @@ func TestExecutePluginCodecV1(t *testing.T) { report.ChainReports[0].OffchainTokenData = [][][]byte{} return report }, - expErr: false, + expErr: false, + chainSelector: 124615329519749607, // Solana mainnet chain selector }, } @@ -139,7 +149,7 @@ func TestExecutePluginCodecV1(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { cd := NewExecutePluginCodecV1() - report := tc.report(randomExecuteReport(t)) + report := tc.report(randomExecuteReport(t, tc.chainSelector)) bytes, err := cd.Encode(ctx, report) if tc.expErr { assert.Error(t, err) From 03787a8b944559bc962899b1ce53df85b5be3889 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 15:17:10 -0600 Subject: [PATCH 108/232] improvement --- core/capabilities/ccip/ccipsolana/executecodec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 82bf35f09db..f89d6563df5 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -226,7 +226,7 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SolanaExtraArgs, error if v, ok := fieldValue.([][32]byte); ok { accounts := make([]ag_solanago.PublicKey, len(v)) for i, val := range v { - accounts[i] = val + accounts[i] = ag_solanago.PublicKeyFromBytes(val[:]) } out.Accounts = accounts } else { From 25d2acd7fa18cfaf986f75f1fb2b36b2f9e3fe93 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 15:21:54 -0600 Subject: [PATCH 109/232] update --- .../ccip/ccipsolana/executecodec_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 22ec702d109..14241f4ac4e 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -118,12 +118,12 @@ func TestExecutePluginCodecV1(t *testing.T) { chainSelector: 124615329519749607, // Solana mainnet chain selector }, // TODO uncomment when extraargs codec implemented, right now the map is empty - //{ - // name: "base report with EVM as source chain", - // report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, - // expErr: false, - // chainSelector: 5009297550715157269, // ETH mainnet chain selector - //}, + // { + // ame: "base report with EVM as source chain", + // report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, + // expErr: false, + // chainSelector: 5009297550715157269, // ETH mainnet chain selector + // }, // TODO: check if empty msg if necessary since there is only single msg in solana execute report // { // name: "reports have empty msgs", From 2597b48a02c8b74dd75af526a2590843fa374921 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 15:50:48 -0600 Subject: [PATCH 110/232] update --- go.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/go.md b/go.md index 5a9081747f2..d5a7b56b5fc 100644 --- a/go.md +++ b/go.md @@ -28,6 +28,8 @@ flowchart LR chainlink-ccip --> chain-selectors chainlink-ccip --> chainlink-common click chainlink-ccip href "https://github.com/smartcontractkit/chainlink-ccip" + chainlink-ccip/chains/solana --> chainlink-common + click chainlink-ccip/chains/solana href "https://github.com/smartcontractkit/chainlink-ccip" chainlink-common --> grpc-proxy chainlink-common --> libocr click chainlink-common href "https://github.com/smartcontractkit/chainlink-common" @@ -47,6 +49,7 @@ flowchart LR click chainlink-starknet/relayer href "https://github.com/smartcontractkit/chainlink-starknet" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds @@ -68,6 +71,12 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" + subgraph chainlink-ccip-repo[chainlink-ccip] + chainlink-ccip + chainlink-ccip/chains/solana + end + click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" + subgraph tdh2-repo[tdh2] tdh2/go/ocr2/decryptionplugin tdh2/go/tdh2 @@ -75,7 +84,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; - class tdh2-repo outline + class chainlink-ccip-repo,tdh2-repo outline ``` ## All modules ```mermaid @@ -145,7 +154,6 @@ flowchart LR chainlink/core/scripts --> chainlink/deployment click chainlink/core/scripts href "https://github.com/smartcontractkit/chainlink" chainlink/deployment --> ccip-owner-contracts - chainlink/deployment --> chainlink-ccip/chains/solana chainlink/deployment --> chainlink-protos/job-distributor chainlink/deployment --> chainlink-testing-framework/framework chainlink/deployment --> chainlink-testing-framework/lib @@ -158,6 +166,7 @@ flowchart LR click chainlink/load-tests href "https://github.com/smartcontractkit/chainlink" chainlink/v2 --> chainlink-automation chainlink/v2 --> chainlink-ccip + chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds From 48464b02d01797049f73f45b71584616dfecd7fe Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 15:53:17 -0600 Subject: [PATCH 111/232] tidy --- integration-tests/load/go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index d59874f7ca4..3d7785de8a0 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1407,8 +1407,6 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff h1:ZEOlcleVdT0/y9V5yjgFJF0j7MpvdrFmKis/xmFNIgE= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250120130359-cc025272bbff/go.mod h1:JJZMCB75aVSAiPNW032F9WUKTlLztTd8bbQB5MEaZa4= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30 h1:cLqp7DciHn7MXX3Y2QAiBHjuNPUFfTRreXfjWbUcM6o= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121141917-62443f4b3c30/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241202195413-82468150ac1e h1:PRoeby6ZlTuTkv2f+7tVU4+zboTfRzI+beECynF4JQ0= From a99bdcc6085c2d5141842863ffb88ca9dc5f038c Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 15:56:28 -0600 Subject: [PATCH 112/232] update --- core/capabilities/ccip/ccipsolana/helpers_test.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/helpers_test.go index 7affa0ff5b9..cf6944cb62b 100644 --- a/core/capabilities/ccip/ccipsolana/helpers_test.go +++ b/core/capabilities/ccip/ccipsolana/helpers_test.go @@ -13,14 +13,8 @@ import ( func Test_decodeExtraArgs(t *testing.T) { t.Run("decode extra args into map svm", func(t *testing.T) { extraArgs := ccip_router.AnyExtraArgs{ - // TODO wait for onchain team fix this AnyExtraArgs - //ComputeUnits: 1000, - //IsWritableBitmap: 2, - //Accounts: []solana.PublicKey{ - // config.ReceiverExternalExecutionConfigPDA, - // config.ReceiverTargetAccountPDA, - // solana.SystemProgramID, - //}, + GasLimit: agbinary.Uint128{Lo: 5000, Hi: 0}, + AllowOutOfOrderExecution: false, } var buf bytes.Buffer @@ -29,6 +23,6 @@ func Test_decodeExtraArgs(t *testing.T) { require.NoError(t, err) output, err := DecodeExtraArgsToMap(buf.Bytes()) require.NoError(t, err) - require.Len(t, output, 3) + require.Len(t, output, 2) }) } From 6f80799ae2741903c80c7c8c6cd72221c2f21e1b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 16:37:30 -0600 Subject: [PATCH 113/232] fix test --- .../ccip/ccipsolana/executecodec_test.go | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 14241f4ac4e..de5b11aa99e 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -63,6 +63,16 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp }, } + extraArgsMap := map[string]any{ + "ComputeUnits": uint32(1000), + "IsWritableBitmap": uint64(2), + "Accounts": [][32]byte{ + [32]byte(config.CcipReceiverProgram.Bytes()), + [32]byte(config.ReceiverTargetAccountPDA.Bytes()), + [32]byte(solana.SystemProgramID.Bytes()), + }, + } + var buf bytes.Buffer encoder := agbinary.NewBorshEncoder(&buf) err = extraArgs.MarshalWithEncoder(encoder) @@ -78,13 +88,14 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp MsgHash: utils.RandomBytes32(), OnRamp: cciptypes.UnknownAddress(key.PublicKey().String()), }, - Sender: cciptypes.UnknownAddress(key.PublicKey().String()), - Data: extraData, - Receiver: key.PublicKey().Bytes(), - ExtraArgs: buf.Bytes(), - FeeToken: cciptypes.UnknownAddress(key.PublicKey().String()), - FeeTokenAmount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), - TokenAmounts: tokenAmounts, + Sender: cciptypes.UnknownAddress(key.PublicKey().String()), + Data: extraData, + Receiver: key.PublicKey().Bytes(), + ExtraArgs: buf.Bytes(), + FeeToken: cciptypes.UnknownAddress(key.PublicKey().String()), + FeeTokenAmount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), + TokenAmounts: tokenAmounts, + ExtraArgsDecoded: extraArgsMap, } } @@ -117,13 +128,12 @@ func TestExecutePluginCodecV1(t *testing.T) { expErr: false, chainSelector: 124615329519749607, // Solana mainnet chain selector }, - // TODO uncomment when extraargs codec implemented, right now the map is empty - // { - // ame: "base report with EVM as source chain", - // report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, - // expErr: false, - // chainSelector: 5009297550715157269, // ETH mainnet chain selector - // }, + { + name: "base report with EVM as source chain", + report: func(report cciptypes.ExecutePluginReport) cciptypes.ExecutePluginReport { return report }, + expErr: false, + chainSelector: 5009297550715157269, // ETH mainnet chain selector + }, // TODO: check if empty msg if necessary since there is only single msg in solana execute report // { // name: "reports have empty msgs", @@ -157,13 +167,14 @@ func TestExecutePluginCodecV1(t *testing.T) { } require.NoError(t, err) - // ignore msg hash in comparison + // ignore msg hash and extraArgsDecoded map in comparison for i := range report.ChainReports { for j := range report.ChainReports[i].Messages { report.ChainReports[i].Messages[j].Header.MsgHash = cciptypes.Bytes32{} report.ChainReports[i].Messages[j].Header.OnRamp = cciptypes.UnknownAddress{} report.ChainReports[i].Messages[j].FeeToken = cciptypes.UnknownAddress{} report.ChainReports[i].Messages[j].FeeTokenAmount = cciptypes.BigInt{} + report.ChainReports[i].Messages[j].ExtraArgsDecoded = nil } } From 58a94974ccf9aa9e733e6c394986a5b26320e28f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 22 Jan 2025 17:33:37 -0600 Subject: [PATCH 114/232] Matt comments --- core/capabilities/ccip/ccipsolana/commitcodec.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index cb4f5186381..f099c7711bf 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -10,7 +10,6 @@ import ( "github.com/gagliardetto/solana-go" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/common" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) @@ -49,7 +48,7 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi } tpu = append(tpu, ccip_router.TokenPriceUpdate{ SourceToken: token, - UsdPerToken: common.To28BytesBE(update.Price.Int.Uint64()), + UsdPerToken: [28]uint8(update.Price.FillBytes(make([]byte, 28))), }) } @@ -61,7 +60,7 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi gpu = append(gpu, ccip_router.GasPriceUpdate{ DestChainSelector: uint64(update.ChainSel), - UsdPerUnitGas: common.To28BytesBE(update.GasPrice.Int.Uint64()), + UsdPerUnitGas: [28]uint8(update.GasPrice.FillBytes(make([]byte, 28))), }) } From 5fe01d2f6da94d2986b3b2a508af44b722f70503 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 10:53:32 -0600 Subject: [PATCH 115/232] address Makram comments --- core/capabilities/ccip/ccipevm/helpers_test.go | 12 ++++++++++++ core/capabilities/ccip/ccipsolana/helpers.go | 1 + core/capabilities/ccip/ccipsolana/helpers_test.go | 8 ++++++++ core/capabilities/ccip/common/extraargscodec.go | 2 +- core/capabilities/ccip/oraclecreator/plugin.go | 6 +++--- integration-tests/smoke/ccip/ccip_reader_test.go | 8 ++++---- 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index dc7593a5213..425174b24f3 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -49,6 +49,10 @@ func Test_decodeExtraArgs(t *testing.T) { m, err := DecodeExtraArgsToMap(encoded) require.NoError(t, err) require.Len(t, m, 1) + + gl, exist := m["gasLimit"] + require.True(t, exist) + require.Equal(t, gl, gasLimit) }) t.Run("decode extra args into map evm v2", func(t *testing.T) { @@ -61,6 +65,14 @@ func Test_decodeExtraArgs(t *testing.T) { m, err := DecodeExtraArgsToMap(encoded) require.NoError(t, err) require.Len(t, m, 2) + + gl, exist := m["gasLimit"] + require.True(t, exist) + require.Equal(t, gl, gasLimit) + + ooe, exist := m["allowOutOfOrderExecution"] + require.True(t, exist) + require.Equal(t, ooe, true) }) t.Run("decode extra args into map svm", func(t *testing.T) { diff --git a/core/capabilities/ccip/ccipsolana/helpers.go b/core/capabilities/ccip/ccipsolana/helpers.go index 7d5e861067b..aee3a76d353 100644 --- a/core/capabilities/ccip/ccipsolana/helpers.go +++ b/core/capabilities/ccip/ccipsolana/helpers.go @@ -9,6 +9,7 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) +// DecodeExtraArgsToMap is a helper function for converting Borsh encoded extra args bytes into map[string]any, which will be saved in ocr report.message.ExtraArgsDecoded func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { outputMap := make(map[string]any) var args ccip_router.AnyExtraArgs diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/helpers_test.go index cf6944cb62b..cab221d2106 100644 --- a/core/capabilities/ccip/ccipsolana/helpers_test.go +++ b/core/capabilities/ccip/ccipsolana/helpers_test.go @@ -24,5 +24,13 @@ func Test_decodeExtraArgs(t *testing.T) { output, err := DecodeExtraArgsToMap(buf.Bytes()) require.NoError(t, err) require.Len(t, output, 2) + + gasLimit, exist := output["GasLimit"] + require.True(t, exist) + require.Equal(t, agbinary.Uint128{Lo: 5000, Hi: 0}, gasLimit) + + ooe, exist := output["AllowOutOfOrderExecution"] + require.True(t, exist) + require.Equal(t, false, ooe) }) } diff --git a/core/capabilities/ccip/common/extraargscodec.go b/core/capabilities/ccip/common/extraargscodec.go index dd168084a2d..7805b6d3f91 100644 --- a/core/capabilities/ccip/common/extraargscodec.go +++ b/core/capabilities/ccip/common/extraargscodec.go @@ -20,7 +20,7 @@ func NewExtraArgsCodec() ExtraArgsCodec { func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) if err != nil { - return nil, fmt.Errorf("failed to decode extra data, %w", err) + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) } switch family { diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 2f603a8aed2..a227715530d 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -13,7 +13,7 @@ import ( "github.com/gagliardetto/solana-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" - common2 "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/smartcontractkit/chainlink/v2/core/services/relay" chainsel "github.com/smartcontractkit/chain-selectors" @@ -287,7 +287,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewCommitPluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - common2.NewExtraArgsCodec(), + ccipcommon.NewExtraArgsCodec(), i.homeChainReader, i.homeChainSelector, contractReaders, @@ -310,7 +310,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewExecutePluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - common2.NewExtraArgsCodec(), + ccipcommon.NewExtraArgsCodec(), i.homeChainReader, ccipevm.NewEVMTokenDataEncoder(), ccipevm.NewGasEstimateProvider(), diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 69cf2bfc9f7..486ed6ab15f 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -14,7 +14,7 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/jmoiron/sqlx" - common2 "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" @@ -291,7 +291,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), - common2.NewExtraArgsCodec(), + ccipcommon.NewExtraArgsCodec(), ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1411,7 +1411,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := common2.NewExtraArgsCodec() + edc := ccipcommon.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1527,7 +1527,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := common2.NewExtraArgsCodec() + edc := ccipcommon.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() { From 6ea469d0f24647589877d1ea75bd6e35aedcfd73 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 11:26:58 -0600 Subject: [PATCH 116/232] Makram comments part1 --- .../ccip/ccipsolana/commitcodec.go | 2 +- .../ccip/ccipsolana/executecodec.go | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index f099c7711bf..d72bf8e44bb 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -25,7 +25,7 @@ func NewCommitPluginCodecV1() *CommitPluginCodecV1 { func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.CommitPluginReport) ([]byte, error) { var buf bytes.Buffer encoder := agbinary.NewBorshEncoder(&buf) - if len(report.MerkleRoots) == 0 || len(report.MerkleRoots) > 1 { + if len(report.MerkleRoots) != 1 { return nil, fmt.Errorf("unexpected merkle root length in report: %d", len(report.MerkleRoots)) } diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index f89d6563df5..a9abd6e38ef 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -9,7 +9,6 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" - ag_solanago "github.com/gagliardetto/solana-go" chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" @@ -27,14 +26,15 @@ func NewExecutePluginCodecV1() *ExecutePluginCodecV1 { } func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.ExecutePluginReport) ([]byte, error) { - if len(report.ChainReports) == 0 || len(report.ChainReports) > 1 { + if len(report.ChainReports) != 1 { return nil, fmt.Errorf("unexpected chain report length: %d", len(report.ChainReports)) } var message ccip_router.Any2SolanaRampMessage + var offchainTokenData [][]byte chainReport := report.ChainReports[0] if len(chainReport.Messages) > 0 { - // currently only allow committing one message at a time + // currently only allow executing one message at a time msg := chainReport.Messages[0] tokenAmounts := make([]ccip_router.Any2SolanaTokenTransfer, 0, len(msg.TokenAmounts)) for _, tokenAmount := range msg.TokenAmounts { @@ -97,11 +97,11 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec TokenAmounts: tokenAmounts, ExtraArgs: extraArgs, } - } - var offchainTokenData [][]byte - if len(chainReport.OffchainTokenData) > 0 { - offchainTokenData = chainReport.OffchainTokenData[0] + // should only have an offchain token data if there are tokens as part of the message + if len(chainReport.OffchainTokenData) > 0 { + offchainTokenData = chainReport.OffchainTokenData[0] + } } solanaProofs := make([][32]byte, 0, len(chainReport.Proofs)) @@ -224,9 +224,9 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SolanaExtraArgs, error case "Accounts": // Expect [][32]byte if v, ok := fieldValue.([][32]byte); ok { - accounts := make([]ag_solanago.PublicKey, len(v)) + accounts := make([]solana.PublicKey, len(v)) for i, val := range v { - accounts[i] = ag_solanago.PublicKeyFromBytes(val[:]) + accounts[i] = solana.PublicKeyFromBytes(val[:]) } out.Accounts = accounts } else { From fee6bb696ddaef0be334522651d004eee276c249 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 11:32:57 -0600 Subject: [PATCH 117/232] refactor --- core/capabilities/ccip/ccipsolana/executecodec.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index a9abd6e38ef..e3b7cd9045f 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -30,9 +30,13 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("unexpected chain report length: %d", len(report.ChainReports)) } - var message ccip_router.Any2SolanaRampMessage - var offchainTokenData [][]byte chainReport := report.ChainReports[0] + if len(chainReport.Messages) > 1 { + return nil, fmt.Errorf("unexpected report message length: %d", len(chainReport.Messages)) + } + + var message ccip_router.Any2SolanaRampMessage + var offChainTokenData [][]byte if len(chainReport.Messages) > 0 { // currently only allow executing one message at a time msg := chainReport.Messages[0] @@ -100,7 +104,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec // should only have an offchain token data if there are tokens as part of the message if len(chainReport.OffchainTokenData) > 0 { - offchainTokenData = chainReport.OffchainTokenData[0] + offChainTokenData = chainReport.OffchainTokenData[0] } } @@ -112,7 +116,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec solanaReport := ccip_router.ExecutionReportSingleChain{ SourceChainSelector: uint64(chainReport.SourceChainSelector), Message: message, - OffchainTokenData: offchainTokenData, + OffchainTokenData: offChainTokenData, Proofs: solanaProofs, } From c49c04b9ef9fec6f64aab71f068734fc7aebe712 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 12:40:23 -0600 Subject: [PATCH 118/232] lint --- core/capabilities/ccip/ccipevm/helpers_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index 425174b24f3..fe298d2bfe5 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -72,7 +72,7 @@ func Test_decodeExtraArgs(t *testing.T) { ooe, exist := m["allowOutOfOrderExecution"] require.True(t, exist) - require.Equal(t, ooe, true) + require.Equal(t, true, ooe) }) t.Run("decode extra args into map svm", func(t *testing.T) { From a95004cbd9f5b77591f2ceca786ea67a73667b3c Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 13:21:17 -0600 Subject: [PATCH 119/232] go mod --- go.sum | 1 + integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.sum b/go.sum index 7bcfc83e0a6..3de07bb9aa0 100644 --- a/go.sum +++ b/go.sum @@ -1203,6 +1203,7 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= +github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 9f102b8317c..3196b755799 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -418,7 +418,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 3e7b6f7336c..7162cc0597c 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1411,6 +1411,7 @@ github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From 0e532610d389934a6a7dfa30599fd8eef4af1155 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 13:29:06 -0600 Subject: [PATCH 120/232] update --- .../ccip/configs/solana/contract_reader.go | 5 ++--- core/capabilities/ccip/oraclecreator/plugin.go | 13 ++----------- go.mod | 1 - go.sum | 2 -- integration-tests/load/go.sum | 3 +-- 5 files changed, 5 insertions(+), 19 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/contract_reader.go b/core/capabilities/ccip/configs/solana/contract_reader.go index d53506b4f75..39d9efbfbf7 100644 --- a/core/capabilities/ccip/configs/solana/contract_reader.go +++ b/core/capabilities/ccip/configs/solana/contract_reader.go @@ -4,9 +4,8 @@ import ( "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" ) -var HomeChainReaderConfigRaw = config.ContractReader{} // TODO update the home chain reader configuration -var DestReaderConfig = config.ContractReader{} // TODO update the Dest chain reader configuration -var SourceReaderConfig = config.ContractReader{} // TODO update the Source chain reader configuration +var DestReaderConfig = config.ContractReader{} // TODO update the Dest chain reader configuration +var SourceReaderConfig = config.ContractReader{} // TODO update the Source chain reader configuration func MergeReaderConfigs(configs ...config.ContractReader) config.ContractReader { allNamespaces := make(map[string]config.ChainContractReader) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 29029452684..772562888a1 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -23,10 +23,8 @@ import ( solanaconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/solana" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" cctypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/types" - "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" "github.com/smartcontractkit/chainlink/v2/core/services/ocr3/promwrapper" - "github.com/smartcontractkit/libocr/commontypes" libocr3 "github.com/smartcontractkit/libocr/offchainreporting2plus" "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3types" @@ -45,7 +43,6 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/logger" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/services/keystore/keys/ocr2key" - "github.com/smartcontractkit/chainlink/v2/core/services/ocr3/promwrapper" "github.com/smartcontractkit/chainlink/v2/core/services/ocrcommon" evmrelaytypes "github.com/smartcontractkit/chainlink/v2/core/services/relay/evm/types" "github.com/smartcontractkit/chainlink/v2/core/services/synchronization" @@ -226,9 +223,8 @@ func encodeOffRampAddr(addr []byte, chainFamily string, checkSum bool) string { var offRampAddr string switch chainFamily { case relay.NetworkEVM: - if checkSum { - offRampAddr = common.BytesToAddress(addr).Hex() - } else { + offRampAddr = common.BytesToAddress(addr).Hex() + if !checkSum { offRampAddr = hexutil.Encode(addr) } case relay.NetworkSolana: @@ -510,11 +506,6 @@ func getChainReaderConfig( cfg = solanaconfig.SourceReaderConfig } - if chainID == homeChainID { - lggr.Debugw("Adding home chain reader config", "chainID", chainID) - cfg = solanaconfig.MergeReaderConfigs(cfg, solanaconfig.HomeChainReaderConfigRaw) - } - marshaledConfig, err := json.Marshal(cfg) if err != nil { return nil, fmt.Errorf("failed to marshal chain reader config: %w", err) diff --git a/go.mod b/go.mod index 9cef3a61229..94dd4f47275 100644 --- a/go.mod +++ b/go.mod @@ -341,7 +341,6 @@ require ( github.com/supranational/blst v0.3.13 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/test-go/testify v1.1.4 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/match v1.1.1 // indirect diff --git a/go.sum b/go.sum index 3de07bb9aa0..e8eb57ad783 100644 --- a/go.sum +++ b/go.sum @@ -1203,7 +1203,6 @@ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDd github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= 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/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= @@ -1246,7 +1245,6 @@ github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 7162cc0597c..a132a93367d 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1409,8 +1409,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= From 80496c93f072f8130c8299c4d3545219cd909430 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 13:54:52 -0600 Subject: [PATCH 121/232] fix --- core/capabilities/ccip/ccipsolana/commitcodec_test.go | 2 +- core/capabilities/ccip/ccipsolana/executecodec_test.go | 2 +- go.mod | 3 +-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go index ea72c2dae2e..ec89ab2f65a 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec_test.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -10,8 +10,8 @@ import ( "github.com/stretchr/testify/require" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" - "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" + "github.com/smartcontractkit/chainlink/v2/evm/utils" ) var randomCommitReport = func() cciptypes.CommitPluginReport { diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index de5b11aa99e..3ca3776c049 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -14,8 +14,8 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" - "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" + "github.com/smartcontractkit/chainlink/v2/evm/utils" "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/assert" diff --git a/go.mod b/go.mod index f0475dc58c7..df6ed315906 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 @@ -209,7 +209,6 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.6 // indirect - github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 9d2c3d75d02..71a3892d1e2 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -418,7 +418,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 86a8219dd73..93be018cc61 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1409,8 +1409,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From a9033101ea21bc6d618a487aae25576324524c2d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 15:00:11 -0600 Subject: [PATCH 122/232] mod tidy --- go.mod | 3 +-- integration-tests/load/go.mod | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 2680af6ddc7..1cce704fcad 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 @@ -209,7 +209,6 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.6 // indirect - github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index f46313663b9..5e944b831f2 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -418,8 +418,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect From d8561475f09c6bb997df3d5a9ff31ed89c4d72f9 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 15:56:42 -0600 Subject: [PATCH 123/232] go md --- go.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/go.md b/go.md index 6f5106604aa..d361331b328 100644 --- a/go.md +++ b/go.md @@ -76,6 +76,12 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" + subgraph chainlink-ccip-repo[chainlink-ccip] + chainlink-ccip + chainlink-ccip/chains/solana + end + click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" + subgraph chainlink-framework-repo[chainlink-framework] chainlink-framework/chains chainlink-framework/multinode @@ -95,7 +101,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; - class chainlink-framework-repo,chainlink-protos-repo,tdh2-repo outline + class chainlink-ccip-repo,chainlink-framework-repo,chainlink-protos-repo,tdh2-repo outline ``` ## All modules ```mermaid From 80b3e3bb5e3c8fb109f3268e92dd0e3c4826404a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 16:02:58 -0600 Subject: [PATCH 124/232] gomd --- go.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/go.md b/go.md index 6f5106604aa..d361331b328 100644 --- a/go.md +++ b/go.md @@ -76,6 +76,12 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" + subgraph chainlink-ccip-repo[chainlink-ccip] + chainlink-ccip + chainlink-ccip/chains/solana + end + click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" + subgraph chainlink-framework-repo[chainlink-framework] chainlink-framework/chains chainlink-framework/multinode @@ -95,7 +101,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; - class chainlink-framework-repo,chainlink-protos-repo,tdh2-repo outline + class chainlink-ccip-repo,chainlink-framework-repo,chainlink-protos-repo,tdh2-repo outline ``` ## All modules ```mermaid From afcd808fa7f4e45297d053c16571c350c8a02edf Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 23 Jan 2025 20:51:35 -0600 Subject: [PATCH 125/232] fix import --- integration-tests/smoke/ccip/ccip_reader_test.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 4f1c3453814..92317850096 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -14,18 +14,16 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/jmoiron/sqlx" - ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" + "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" "github.com/smartcontractkit/chainlink/v2/core/utils/testutils/heavyweight" - "github.com/smartcontractkit/chainlink-ccip/plugintypes" - "github.com/smartcontractkit/chainlink/deployment/ccip/changeset" - "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" "github.com/smartcontractkit/chainlink/deployment/environment/memory" "github.com/smartcontractkit/chainlink/integration-tests/utils/pgtest" @@ -39,7 +37,6 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/types" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/headtracker" @@ -52,7 +49,6 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/logger" "github.com/smartcontractkit/chainlink/v2/core/services/relay/evm" evmtypes "github.com/smartcontractkit/chainlink/v2/core/services/relay/evm/types" - "github.com/smartcontractkit/chainlink/v2/core/utils/testutils/heavyweight" "github.com/smartcontractkit/chainlink/v2/evm/assets" "github.com/smartcontractkit/chainlink/v2/evm/utils" ubig "github.com/smartcontractkit/chainlink/v2/evm/utils/big" From 6bc6b291ba477a7cd562584b4a8ba2030838b9e1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 10:52:11 -0600 Subject: [PATCH 126/232] fix broken integration test --- deployment/ccip/changeset/cs_deploy_chain.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployment/ccip/changeset/cs_deploy_chain.go b/deployment/ccip/changeset/cs_deploy_chain.go index ab67e70caa3..546e0e29a2e 100644 --- a/deployment/ccip/changeset/cs_deploy_chain.go +++ b/deployment/ccip/changeset/cs_deploy_chain.go @@ -633,6 +633,8 @@ func deployChainContractsSolana( true, // allow out of order execution EnableExecutionAfter, // period to wait before allowing manual execution solana.PublicKey{}, + solana.PublicKey{}, + solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, GetRouterConfigPDA(ccipRouterProgram), GetRouterStatePDA(ccipRouterProgram), chain.DeployerKey.PublicKey(), From ed8cd1cb18a3c930e1ba93c5d6e862b6ec2f2487 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 14:10:32 -0600 Subject: [PATCH 127/232] change commit to little endian, to do for execute --- .../ccip/ccipsolana/commitcodec.go | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index d72bf8e44bb..4e237e0ba2d 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -48,7 +48,7 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi } tpu = append(tpu, ccip_router.TokenPriceUpdate{ SourceToken: token, - UsdPerToken: [28]uint8(update.Price.FillBytes(make([]byte, 28))), + UsdPerToken: [28]uint8(encodeBigIntToFixedLengthLE(update.Price.Int, 28)), }) } @@ -60,7 +60,7 @@ func (c *CommitPluginCodecV1) Encode(ctx context.Context, report cciptypes.Commi gpu = append(gpu, ccip_router.GasPriceUpdate{ DestChainSelector: uint64(update.ChainSel), - UsdPerUnitGas: [28]uint8(update.GasPrice.FillBytes(make([]byte, 28))), + UsdPerUnitGas: [28]uint8(encodeBigIntToFixedLengthLE(update.GasPrice.Int, 28)), }) } @@ -104,14 +104,14 @@ func (c *CommitPluginCodecV1) Decode(ctx context.Context, bytes []byte) (cciptyp for _, update := range commitReport.PriceUpdates.TokenPriceUpdates { tokenPriceUpdates = append(tokenPriceUpdates, cciptypes.TokenPrice{ TokenID: cciptypes.UnknownEncodedAddress(update.SourceToken.String()), - Price: priceHelper(update.UsdPerToken[:]), + Price: decodeLEToBigInt(update.UsdPerToken[:]), }) } gasPriceUpdates := make([]cciptypes.GasPriceChain, 0, len(commitReport.PriceUpdates.GasPriceUpdates)) for _, update := range commitReport.PriceUpdates.GasPriceUpdates { gasPriceUpdates = append(gasPriceUpdates, cciptypes.GasPriceChain{ - GasPrice: priceHelper(update.UsdPerUnitGas[:]), + GasPrice: decodeLEToBigInt(update.UsdPerUnitGas[:]), ChainSel: cciptypes.ChainSelector(update.DestChainSelector), }) } @@ -137,5 +137,35 @@ func priceHelper(input []byte) cciptypes.BigInt { return tokenPrice } +func encodeBigIntToFixedLengthLE(bi *big.Int, length int) []byte { + // Create a fixed-length byte array + paddedBytes := make([]byte, length) + + // Use FillBytes to fill the array with big-endian data, zero-padded + bi.FillBytes(paddedBytes) + + // Reverse the array for little-endian encoding + for i, j := 0, len(paddedBytes)-1; i < j; i, j = i+1, j-1 { + paddedBytes[i], paddedBytes[j] = paddedBytes[j], paddedBytes[i] + } + + return paddedBytes +} + +func decodeLEToBigInt(data []byte) cciptypes.BigInt { + // Reverse the byte array to convert it from little-endian to big-endian + for i, j := 0, len(data)-1; i < j; i, j = i+1, j-1 { + data[i], data[j] = data[j], data[i] + } + + // Use big.Int.SetBytes to construct the big.Int + bi := new(big.Int).SetBytes(data) + if bi.Int64() == 0 { + return cciptypes.NewBigInt(big.NewInt(0)) + } + + return cciptypes.NewBigInt(bi) +} + // Ensure CommitPluginCodec implements the CommitPluginCodec interface var _ cciptypes.CommitPluginCodec = (*CommitPluginCodecV1)(nil) From a5f84ac40eb3478eb61dd85082d20a7dfc8dda43 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 16:47:59 -0600 Subject: [PATCH 128/232] update --- core/capabilities/ccip/ccipevm/helpers_test.go | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index fe298d2bfe5..e9c9a73add0 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -78,15 +78,13 @@ func Test_decodeExtraArgs(t *testing.T) { t.Run("decode extra args into map svm", func(t *testing.T) { key, err := solana.NewRandomPrivateKey() require.NoError(t, err) - encoded, err := d.contract.EncodeSVMExtraArgsV1(nil, message_hasher.ClientSVMExtraArgsV1{ - ComputeUnits: 10000, - AccountIsWritableBitmap: 4, - AllowOutOfOrderExecution: false, - TokenReceiver: [32]byte(key.PublicKey().Bytes()), - Accounts: [][32]byte{ - [32]byte(key.PublicKey().Bytes()), - }, + decoded, err := d.contract.DecodeSVMExtraArgsV1(nil, 10000, 4, false, [32]byte(key.PublicKey().Bytes()), [][32]byte{ + [32]byte(key.PublicKey().Bytes()), }) + if err != nil { + return + } + encoded, err := d.contract.EncodeSVMExtraArgsV1(nil, decoded) require.NoError(t, err) _, err = DecodeExtraArgsToMap(encoded) From 1bcb32090b4aac0c3f0aa003c05e1fd3f721b8a5 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 17:31:41 -0600 Subject: [PATCH 129/232] use LE --- .../ccip/ccipsolana/commitcodec.go | 12 ---------- .../ccip/ccipsolana/executecodec.go | 23 +++++++------------ 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec.go b/core/capabilities/ccip/ccipsolana/commitcodec.go index 4e237e0ba2d..3868d82d8e1 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec.go @@ -125,18 +125,6 @@ func (c *CommitPluginCodecV1) Decode(ctx context.Context, bytes []byte) (cciptyp }, nil } -func priceHelper(input []byte) cciptypes.BigInt { - var tokenPrice cciptypes.BigInt - price := new(big.Int).SetBytes(input) - if price.Int64() == 0 { - tokenPrice = cciptypes.NewBigInt(big.NewInt(0)) - } else { - tokenPrice = cciptypes.NewBigInt(price) - } - - return tokenPrice -} - func encodeBigIntToFixedLengthLE(bi *big.Int, length int) []byte { // Create a fixed-length byte array paddedBytes := make([]byte, length) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index e3b7cd9045f..78449f22172 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -54,8 +54,8 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: solana.PublicKeyFromBytes(tokenAmount.DestTokenAddress), ExtraData: tokenAmount.ExtraData, - Amount: bigIntToBytes32(tokenAmount.Amount), - DestGasAmount: bytesToUint32(tokenAmount.DestExecData), + Amount: [32]uint8(encodeBigIntToFixedLengthLE(tokenAmount.Amount.Int, 32)), + DestGasAmount: bytesToUint32LE(tokenAmount.DestExecData), }) } @@ -141,13 +141,13 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) tokenAmounts := make([]cciptypes.RampTokenAmount, 0, len(executeReport.Message.TokenAmounts)) for _, tokenAmount := range executeReport.Message.TokenAmounts { destData := make([]byte, 4) - binary.BigEndian.PutUint32(destData, tokenAmount.DestGasAmount) + binary.LittleEndian.PutUint32(destData, tokenAmount.DestGasAmount) tokenAmounts = append(tokenAmounts, cciptypes.RampTokenAmount{ SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: tokenAmount.DestTokenAddress.Bytes(), ExtraData: tokenAmount.ExtraData, - Amount: priceHelper(tokenAmount.Amount[:]), + Amount: decodeLEToBigInt(tokenAmount.Amount[:]), DestExecData: destData, }) } @@ -242,21 +242,14 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SolanaExtraArgs, error return out, nil } -func bytesToUint32(b []byte) uint32 { +func bytesToUint32LE(b []byte) uint32 { if len(b) < 4 { var padded [4]byte - copy(padded[4-len(b):], b) // Pad from the right for big-endian - return binary.BigEndian.Uint32(padded[:]) + copy(padded[4-len(b):], b) // Pad from the left for little-endian + return binary.LittleEndian.Uint32(padded[:]) } - return binary.BigEndian.Uint32(b) -} - -func bigIntToBytes32(n cciptypes.BigInt) [32]uint8 { - var b [32]uint8 - raw := n.Bytes() - copy(b[32-len(raw):], raw) // Right-align and zero-pad - return b + return binary.LittleEndian.Uint32(b) } // Ensure ExecutePluginCodec implements the ExecutePluginCodec interface From 3ec1574f89ec0239914a8e8e9c3803113b38b0e7 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 17:54:17 -0600 Subject: [PATCH 130/232] update --- .../ccip/ccipsolana/executecodec.go | 28 ++++++++++--------- deployment/go.mod | 2 +- deployment/go.sum | 4 +-- go.mod | 2 +- go.sum | 4 +-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +-- 9 files changed, 27 insertions(+), 25 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 78449f22172..0991471cbef 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -35,12 +35,12 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("unexpected report message length: %d", len(chainReport.Messages)) } - var message ccip_router.Any2SolanaRampMessage + var message ccip_router.Any2SVMRampMessage var offChainTokenData [][]byte if len(chainReport.Messages) > 0 { // currently only allow executing one message at a time msg := chainReport.Messages[0] - tokenAmounts := make([]ccip_router.Any2SolanaTokenTransfer, 0, len(msg.TokenAmounts)) + tokenAmounts := make([]ccip_router.Any2SVMTokenTransfer, 0, len(msg.TokenAmounts)) for _, tokenAmount := range msg.TokenAmounts { if tokenAmount.Amount.IsEmpty() { return nil, fmt.Errorf("empty amount for token: %s", tokenAmount.DestTokenAddress) @@ -50,11 +50,11 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("invalid destTokenAddress address: %v", tokenAmount.DestTokenAddress) } - tokenAmounts = append(tokenAmounts, ccip_router.Any2SolanaTokenTransfer{ + tokenAmounts = append(tokenAmounts, ccip_router.Any2SVMTokenTransfer{ SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: solana.PublicKeyFromBytes(tokenAmount.DestTokenAddress), ExtraData: tokenAmount.ExtraData, - Amount: [32]uint8(encodeBigIntToFixedLengthLE(tokenAmount.Amount.Int, 32)), + Amount: ccip_router.CrossChainAmount{LeBytes: [32]uint8(encodeBigIntToFixedLengthLE(tokenAmount.Amount.Int, 32))}, DestGasAmount: bytesToUint32LE(tokenAmount.DestExecData), }) } @@ -66,7 +66,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec // if source chain is Solana the Borsh decoder will be used, for EVM we will construct the extra args from // the chain agnostic extra args map - var extraArgs ccip_router.SolanaExtraArgs + var extraArgs ccip_router.SVMExtraArgs switch family { case chainsel.FamilySolana: decoder := agbinary.NewBorshDecoder(msg.ExtraArgs) @@ -87,7 +87,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("invalid receiver address: %v", msg.Receiver) } - message = ccip_router.Any2SolanaRampMessage{ + message = ccip_router.Any2SVMRampMessage{ Header: ccip_router.RampMessageHeader{ MessageId: msg.Header.MessageID, SourceChainSelector: uint64(msg.Header.SourceChainSelector), @@ -95,9 +95,11 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec SequenceNumber: uint64(msg.Header.SequenceNumber), Nonce: msg.Header.Nonce, }, - Sender: msg.Sender, - Data: msg.Data, - Receiver: solana.PublicKeyFromBytes(msg.Receiver), + Sender: msg.Sender, + Data: msg.Data, + LogicReceiver: solana.PublicKeyFromBytes(msg.Receiver), + // TODO how to get the TokenReceiver ? + //TokenReceiver: solana.PublicKeyFromBytes(msg.Receiver), TokenAmounts: tokenAmounts, ExtraArgs: extraArgs, } @@ -147,7 +149,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: tokenAmount.DestTokenAddress.Bytes(), ExtraData: tokenAmount.ExtraData, - Amount: decodeLEToBigInt(tokenAmount.Amount[:]), + Amount: decodeLEToBigInt(tokenAmount.Amount.LeBytes[:]), DestExecData: destData, }) } @@ -172,7 +174,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) }, Sender: executeReport.Message.Sender, Data: executeReport.Message.Data, - Receiver: executeReport.Message.Receiver.Bytes(), + Receiver: executeReport.Message.LogicReceiver.Bytes(), ExtraArgs: buf.Bytes(), FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm @@ -204,9 +206,9 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } -func parseExtraArgsMap(input map[string]any) (ccip_router.SolanaExtraArgs, error) { +func parseExtraArgsMap(input map[string]any) (ccip_router.SVMExtraArgs, error) { // Parse input map into SolanaExtraArgs - var out ccip_router.SolanaExtraArgs + var out ccip_router.SVMExtraArgs // Iterate through the expected fields in the struct for fieldName, fieldValue := range input { diff --git a/deployment/go.mod b/deployment/go.mod index 605c531c026..13ac01f3701 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 diff --git a/deployment/go.sum b/deployment/go.sum index 4af325cf69b..ca393f2cc65 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1396,8 +1396,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/go.mod b/go.mod index df6ed315906..59853e7450f 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 diff --git a/go.sum b/go.sum index 6c636c4f887..c0e0d70511b 100644 --- a/go.sum +++ b/go.sum @@ -1108,8 +1108,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 07eb3664d02..c6f868576fb 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -431,7 +431,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index fb40ece30f4..643120de1cc 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1420,8 +1420,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 71a3892d1e2..8d6758ee4cc 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -418,7 +418,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 93be018cc61..31ac8034981 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1409,8 +1409,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From 2b79eac1e89b3492376acdbeecc22cef157b6ec3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 18:05:56 -0600 Subject: [PATCH 131/232] update --- core/capabilities/ccip/ccipsolana/executecodec_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 3ca3776c049..54e93d9f13c 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -53,11 +53,11 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp } } - extraArgs := ccip_router.SolanaExtraArgs{ + extraArgs := ccip_router.SVMExtraArgs{ ComputeUnits: 1000, IsWritableBitmap: 2, Accounts: []solana.PublicKey{ - config.CcipReceiverProgram, + config.CcipLogicReceiver, config.ReceiverTargetAccountPDA, solana.SystemProgramID, }, @@ -67,7 +67,7 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp "ComputeUnits": uint32(1000), "IsWritableBitmap": uint64(2), "Accounts": [][32]byte{ - [32]byte(config.CcipReceiverProgram.Bytes()), + [32]byte(config.CcipLogicReceiver.Bytes()), [32]byte(config.ReceiverTargetAccountPDA.Bytes()), [32]byte(solana.SystemProgramID.Bytes()), }, From 626a42344c2b5118aa96d264d989695385fa8252 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 18:11:53 -0600 Subject: [PATCH 132/232] update padding --- core/capabilities/ccip/ccipsolana/executecodec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 0991471cbef..621d69e1447 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -247,7 +247,7 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SVMExtraArgs, error) { func bytesToUint32LE(b []byte) uint32 { if len(b) < 4 { var padded [4]byte - copy(padded[4-len(b):], b) // Pad from the left for little-endian + copy(padded[:len(b)], b) // Pad from the right for little-endian return binary.LittleEndian.Uint32(padded[:]) } From 32956a6e3264af9e135f50861e6aad9d0724f4df Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 24 Jan 2025 18:33:18 -0600 Subject: [PATCH 133/232] fix make --- deployment/ccip/changeset/cs_deploy_chain.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployment/ccip/changeset/cs_deploy_chain.go b/deployment/ccip/changeset/cs_deploy_chain.go index ab67e70caa3..546e0e29a2e 100644 --- a/deployment/ccip/changeset/cs_deploy_chain.go +++ b/deployment/ccip/changeset/cs_deploy_chain.go @@ -633,6 +633,8 @@ func deployChainContractsSolana( true, // allow out of order execution EnableExecutionAfter, // period to wait before allowing manual execution solana.PublicKey{}, + solana.PublicKey{}, + solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, GetRouterConfigPDA(ccipRouterProgram), GetRouterStatePDA(ccipRouterProgram), chain.DeployerKey.PublicKey(), From d6af37b2c17d2d4f5f3a0ddfcfb9db9f8d2432e3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 26 Jan 2025 18:02:48 -0600 Subject: [PATCH 134/232] fix test --- core/capabilities/ccip/ccipevm/helpers.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index 8079b934b12..6e071113e38 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -55,20 +55,26 @@ func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { } var method string + var extraByteOffset int + // for EVMExtraArgs, the first four bytes is the method name + // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array switch string(extraArgs[:4]) { case string(evmExtraArgsV1Tag): method = evmV1DecodeName + extraByteOffset = 4 case string(evmExtraArgsV2Tag): method = evmV2DecodeName + extraByteOffset = 4 case string(svmExtraArgsV1Tag): method = svmV1DecodeName + extraByteOffset = 36 default: return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) } output := make(map[string]any) args := make(map[string]interface{}) - err := messageHasherABI.Methods[method].Inputs.UnpackIntoMap(args, extraArgs[4:]) + err := messageHasherABI.Methods[method].Inputs.UnpackIntoMap(args, extraArgs[extraByteOffset:]) if err != nil { return nil, fmt.Errorf("abi decode extra args %v: %w", method, err) } From 9779bd28edcd3e18c6efc6805085d167510e88c1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 26 Jan 2025 22:10:52 -0600 Subject: [PATCH 135/232] rename --- core/capabilities/ccip/ccipsolana/executecodec.go | 6 +++--- core/scripts/go.mod | 2 +- core/scripts/go.sum | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 621d69e1447..2bb6e505f3a 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -59,7 +59,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec }) } - family, err := chainsel.GetSelectorFamily(uint64(chainReport.SourceChainSelector)) + sourceChainFamily, err := chainsel.GetSelectorFamily(uint64(chainReport.SourceChainSelector)) if err != nil { return nil, fmt.Errorf("invalid source chain selector: %w", err) } @@ -67,7 +67,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec // if source chain is Solana the Borsh decoder will be used, for EVM we will construct the extra args from // the chain agnostic extra args map var extraArgs ccip_router.SVMExtraArgs - switch family { + switch sourceChainFamily { case chainsel.FamilySolana: decoder := agbinary.NewBorshDecoder(msg.ExtraArgs) err = extraArgs.UnmarshalWithDecoder(decoder) @@ -80,7 +80,7 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("invalid extra args map: %w", err) } default: - return nil, fmt.Errorf("unsupported source chain family: %s", family) + return nil, fmt.Errorf("unsupported source chain sourceChainFamily: %s", sourceChainFamily) } if len(msg.Receiver) != solana.PublicKeyLength { diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 6a2207088b1..fe14ddafeb9 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -315,7 +315,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 0c49165cbe3..58b19c707bf 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1172,6 +1172,7 @@ github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From f9489aea8f0fdb1369d4fed7af8b37813fd8d0a2 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 27 Jan 2025 10:05:40 -0600 Subject: [PATCH 136/232] fix test --- integration-tests/smoke/ccip/ccip_reader_test.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 92317850096..5ca1b1615be 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -55,10 +55,11 @@ import ( ) const ( - chainS1 = cciptypes.ChainSelector(1) - chainS2 = cciptypes.ChainSelector(2) - chainS3 = cciptypes.ChainSelector(3) - chainD = cciptypes.ChainSelector(4) + chainS1 = cciptypes.ChainSelector(1) + chainS2 = cciptypes.ChainSelector(2) + chainS3 = cciptypes.ChainSelector(3) + chainD = cciptypes.ChainSelector(4) + chainSEVM = cciptypes.ChainSelector(5009297550715157269) ) var ( @@ -509,7 +510,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { require.Eventually(t, func() bool { msgs, err = s.reader.MsgsBetweenSeqNums( ctx, - chainS1, + chainSEVM, cciptypes.NewSeqNumRange(5, 20), ) require.NoError(t, err) @@ -534,7 +535,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { require.Equal(t, int64(4), msgs[1].TokenAmounts[1].Amount.Int64()) for _, msg := range msgs { - require.Equal(t, chainS1, msg.Header.SourceChainSelector) + require.Equal(t, chainSEVM, msg.Header.SourceChainSelector) require.Equal(t, chainD, msg.Header.DestChainSelector) } } From cf28c8418fa41a3b2b31f7d31cc0cdc645698bea Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 27 Jan 2025 10:24:43 -0600 Subject: [PATCH 137/232] update source chain --- integration-tests/smoke/ccip/ccip_reader_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 5ca1b1615be..76ac29f65a0 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -467,7 +467,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { _, err := s.contract.EmitCCIPMessageSent(s.auth, uint64(chainD), ccip_reader_tester.InternalEVM2AnyRampMessage{ Header: ccip_reader_tester.InternalRampMessageHeader{ MessageId: [32]byte{1, 0, 0, 0, 0}, - SourceChainSelector: uint64(chainS1), + SourceChainSelector: uint64(chainSEVM), DestChainSelector: uint64(chainD), SequenceNumber: 10, }, @@ -485,7 +485,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { _, err = s.contract.EmitCCIPMessageSent(s.auth, uint64(chainD), ccip_reader_tester.InternalEVM2AnyRampMessage{ Header: ccip_reader_tester.InternalRampMessageHeader{ MessageId: [32]byte{1, 0, 0, 0, 1}, - SourceChainSelector: uint64(chainS1), + SourceChainSelector: uint64(chainSEVM), DestChainSelector: uint64(chainD), SequenceNumber: 15, }, From 9822b5486c04b8b41a059fc630f247f73d924d07 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 27 Jan 2025 10:39:12 -0600 Subject: [PATCH 138/232] update --- .../ccip/ccipsolana/executecodec.go | 26 +++---------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 2bb6e505f3a..475c9dd8376 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -9,8 +9,6 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" - chainsel "github.com/smartcontractkit/chain-selectors" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) @@ -59,28 +57,10 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec }) } - sourceChainFamily, err := chainsel.GetSelectorFamily(uint64(chainReport.SourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("invalid source chain selector: %w", err) - } - - // if source chain is Solana the Borsh decoder will be used, for EVM we will construct the extra args from - // the chain agnostic extra args map var extraArgs ccip_router.SVMExtraArgs - switch sourceChainFamily { - case chainsel.FamilySolana: - decoder := agbinary.NewBorshDecoder(msg.ExtraArgs) - err = extraArgs.UnmarshalWithDecoder(decoder) - if err != nil { - return nil, fmt.Errorf("invalid extra arguments: %w", err) - } - case chainsel.FamilyEVM: - extraArgs, err = parseExtraArgsMap(msg.ExtraArgsDecoded) - if err != nil { - return nil, fmt.Errorf("invalid extra args map: %w", err) - } - default: - return nil, fmt.Errorf("unsupported source chain sourceChainFamily: %s", sourceChainFamily) + extraArgs, err := parseExtraArgsMap(msg.ExtraArgsDecoded) + if err != nil { + return nil, fmt.Errorf("invalid extra args map: %w", err) } if len(msg.Receiver) != solana.PublicKeyLength { From 12cd5c92427987711c6ed084e0006dc453294cb8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 27 Jan 2025 10:56:48 -0600 Subject: [PATCH 139/232] lower case --- core/capabilities/ccip/ccipsolana/executecodec.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 475c9dd8376..cb12e94acb7 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -6,6 +6,7 @@ import ( "encoding/binary" "errors" "fmt" + "strings" agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" @@ -192,22 +193,23 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SVMExtraArgs, error) { // Iterate through the expected fields in the struct for fieldName, fieldValue := range input { - switch fieldName { - case "ComputeUnits": + lowercase := strings.ToLower(fieldName) + switch lowercase { + case "computeunits": // Expect uint32 if v, ok := fieldValue.(uint32); ok { out.ComputeUnits = v } else { return out, errors.New("invalid type for ComputeUnits, expected uint32") } - case "IsWritableBitmap": + case "iswritablebitmap": // Expect uint64 if v, ok := fieldValue.(uint64); ok { out.IsWritableBitmap = v } else { return out, errors.New("invalid type for IsWritableBitmap, expected uint64") } - case "Accounts": + case "accounts": // Expect [][32]byte if v, ok := fieldValue.([][32]byte); ok { accounts := make([]solana.PublicKey, len(v)) From 67e00386fbc6144914b55789578b198a974966d2 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 27 Jan 2025 11:33:03 -0600 Subject: [PATCH 140/232] update test --- .../capabilities/ccip/ccipevm/helpers_test.go | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index e9c9a73add0..718795f9112 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -78,16 +78,40 @@ func Test_decodeExtraArgs(t *testing.T) { t.Run("decode extra args into map svm", func(t *testing.T) { key, err := solana.NewRandomPrivateKey() require.NoError(t, err) - decoded, err := d.contract.DecodeSVMExtraArgsV1(nil, 10000, 4, false, [32]byte(key.PublicKey().Bytes()), [][32]byte{ - [32]byte(key.PublicKey().Bytes()), - }) + cu := uint32(10000) + bitmap := uint64(4) + ooe := false + tokenReceiver := [32]byte(key.PublicKey().Bytes()) + accounts := [][32]byte{[32]byte(key.PublicKey().Bytes())} + decoded, err := d.contract.DecodeSVMExtraArgsV1(nil, cu, bitmap, ooe, tokenReceiver, accounts) if err != nil { return } encoded, err := d.contract.EncodeSVMExtraArgsV1(nil, decoded) require.NoError(t, err) - _, err = DecodeExtraArgsToMap(encoded) + m, err := DecodeExtraArgsToMap(encoded) require.NoError(t, err) + require.Len(t, m, 5) + + cuDecoded, exist := m["computeUnits"] + require.True(t, exist) + require.Equal(t, cuDecoded, cu) + + bitmapDecoded, exist := m["accountIsWritableBitmap"] + require.True(t, exist) + require.Equal(t, bitmapDecoded, bitmap) + + ooeDecoded, exist := m["allowOutOfOrderExecution"] + require.True(t, exist) + require.Equal(t, ooeDecoded, ooe) + + tokenReceiverDecoded, exist := m["tokenReceiver"] + require.True(t, exist) + require.Equal(t, tokenReceiverDecoded, tokenReceiver) + + accountsDecoded, exist := m["accounts"] + require.True(t, exist) + require.Equal(t, accountsDecoded, accounts) }) } From e03c2538f7f1b4ae79b8c2ca29439ec1c415e849 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 27 Jan 2025 12:36:02 -0600 Subject: [PATCH 141/232] goimport --- core/capabilities/ccip/ccipsolana/executecodec.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index cb12e94acb7..7512ab6862c 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -10,6 +10,7 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) From a20765b44c39a622aa6625b555e2b7c900435958 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 27 Jan 2025 14:35:01 -0600 Subject: [PATCH 142/232] minor --- core/capabilities/ccip/ccipevm/helpers.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index 6e071113e38..34b5b8a90f9 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -56,16 +56,16 @@ func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { var method string var extraByteOffset int - // for EVMExtraArgs, the first four bytes is the method name - // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array switch string(extraArgs[:4]) { case string(evmExtraArgsV1Tag): + // for EVMExtraArgs, the first four bytes is the method name method = evmV1DecodeName extraByteOffset = 4 case string(evmExtraArgsV2Tag): method = evmV2DecodeName extraByteOffset = 4 case string(svmExtraArgsV1Tag): + // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array method = svmV1DecodeName extraByteOffset = 36 default: From 81b30de54509d1a49a9456c63d3fecf0e0b32213 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 28 Jan 2025 14:58:51 -0600 Subject: [PATCH 143/232] tidy --- integration-tests/go.sum | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 1b580722b80..a225f1e87e1 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1422,21 +1422,12 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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= -<<<<<<< HEAD -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= -github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= -github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= -======= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b h1:UBXi9Yj8YSMHDDaxQLu273x1fWjyEL9xP58nuJsqZfg= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250103152858-8973fd0c912b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= ->>>>>>> ed67890e77da48ea757940700078677d39de93bd github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4/go.mod h1:wtdAmAUMooLavbrTA7PgHg40lyDlKesxI/RR+5Xcz18= github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 h1:GcPYNVFYjB065CNq0h8nK/VeU08nUkHgBX0cJIEpuHY= From f2952a0d989f61741f9ec8f9013f5527668278d1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 28 Jan 2025 16:13:17 -0600 Subject: [PATCH 144/232] implement and add test --- core/capabilities/ccip/ccipevm/helpers.go | 19 +++++++-- .../capabilities/ccip/ccipevm/helpers_test.go | 13 +++++++ core/capabilities/ccip/ccipsolana/helpers.go | 19 +++++++++ .../ccip/ccipsolana/helpers_test.go | 13 +++++++ .../ccip/common/extraargscodec.go | 36 ----------------- .../ccip/common/extradatacodec.go | 39 +++++++++++++++++-- 6 files changed, 96 insertions(+), 43 deletions(-) delete mode 100644 core/capabilities/ccip/common/extraargscodec.go diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index 34b5b8a90f9..1ad7bcfd7a7 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -6,12 +6,14 @@ import ( "math/big" "github.com/ethereum/go-ethereum/accounts/abi" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) const ( - svmV1DecodeName = "decodeSVMExtraArgsV1" - evmV1DecodeName = "decodeEVMExtraArgsV1" - evmV2DecodeName = "decodeEVMExtraArgsV2" + svmV1DecodeName = "decodeSVMExtraArgsV1" + evmV1DecodeName = "decodeEVMExtraArgsV1" + evmV2DecodeName = "decodeEVMExtraArgsV2" + evmDestExecDataKey = "destGasAmount" ) var ( @@ -49,6 +51,17 @@ func decodeExtraArgsV1V2(extraArgs []byte) (gasLimit *big.Int, err error) { return ifaces[0].(*big.Int), nil } +func DecodeDestExecDataToMap(DestExecData cciptypes.Bytes) (map[string]interface{}, error) { + destGasAmount, err := abiDecodeUint32(DestExecData) + if err != nil { + return nil, fmt.Errorf("decode dest gas amount: %w", err) + } + + return map[string]interface{}{ + evmDestExecDataKey: destGasAmount, + }, nil +} + func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { if len(extraArgs) < 4 { return nil, fmt.Errorf("extra args too short: %d, should be at least 4 (i.e the extraArgs tag)", len(extraArgs)) diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index 718795f9112..f1490a56043 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -75,6 +75,19 @@ func Test_decodeExtraArgs(t *testing.T) { require.Equal(t, true, ooe) }) + t.Run("decode dest exec data into map", func(t *testing.T) { + destGasAmount := uint32(10000) + encoded, err := abiEncodeUint32(destGasAmount) + require.NoError(t, err) + m, err := DecodeDestExecDataToMap(encoded) + require.NoError(t, err) + require.Len(t, m, 1) + + decoded, exist := m[evmDestExecDataKey] + require.True(t, exist) + require.Equal(t, destGasAmount, decoded) + }) + t.Run("decode extra args into map svm", func(t *testing.T) { key, err := solana.NewRandomPrivateKey() require.NoError(t, err) diff --git a/core/capabilities/ccip/ccipsolana/helpers.go b/core/capabilities/ccip/ccipsolana/helpers.go index aee3a76d353..565c4ae338f 100644 --- a/core/capabilities/ccip/ccipsolana/helpers.go +++ b/core/capabilities/ccip/ccipsolana/helpers.go @@ -1,6 +1,7 @@ package ccipsolana import ( + "encoding/binary" "fmt" "reflect" @@ -9,6 +10,8 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) +const svmDestExecDataKey = "destGasAmount" + // DecodeExtraArgsToMap is a helper function for converting Borsh encoded extra args bytes into map[string]any, which will be saved in ocr report.message.ExtraArgsDecoded func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { outputMap := make(map[string]any) @@ -30,3 +33,19 @@ func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { return outputMap, nil } + +func DecodeDestExecDataToMap(destExecData []byte) (map[string]any, error) { + return map[string]interface{}{ + svmDestExecDataKey: bytesToUint32LE(destExecData), + }, nil +} + +func bytesToUint32LE(b []byte) uint32 { + if len(b) < 4 { + var padded [4]byte + copy(padded[:len(b)], b) // Pad from the right for little-endian + return binary.LittleEndian.Uint32(padded[:]) + } + + return binary.LittleEndian.Uint32(b) +} diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/helpers_test.go index cab221d2106..8db2691f341 100644 --- a/core/capabilities/ccip/ccipsolana/helpers_test.go +++ b/core/capabilities/ccip/ccipsolana/helpers_test.go @@ -2,6 +2,7 @@ package ccipsolana import ( "bytes" + "encoding/binary" "testing" agbinary "github.com/gagliardetto/binary" @@ -11,6 +12,18 @@ import ( ) func Test_decodeExtraArgs(t *testing.T) { + t.Run("decode dest exec data into map svm", func(t *testing.T) { + destGasAmount := uint32(10000) + encoded := make([]byte, 4) + binary.LittleEndian.PutUint32(encoded, destGasAmount) + output, err := DecodeDestExecDataToMap(encoded) + require.NoError(t, err) + + decoded, exist := output[svmDestExecDataKey] + require.True(t, exist) + require.Equal(t, destGasAmount, decoded) + }) + t.Run("decode extra args into map svm", func(t *testing.T) { extraArgs := ccip_router.AnyExtraArgs{ GasLimit: agbinary.Uint128{Lo: 5000, Hi: 0}, diff --git a/core/capabilities/ccip/common/extraargscodec.go b/core/capabilities/ccip/common/extraargscodec.go deleted file mode 100644 index 7805b6d3f91..00000000000 --- a/core/capabilities/ccip/common/extraargscodec.go +++ /dev/null @@ -1,36 +0,0 @@ -package common - -import ( - "fmt" - - chainsel "github.com/smartcontractkit/chain-selectors" - - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" - - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" -) - -type ExtraArgsCodec struct{} - -func NewExtraArgsCodec() ExtraArgsCodec { - return ExtraArgsCodec{} -} - -func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) - } - - switch family { - case chainsel.FamilyEVM: - return ccipevm.DecodeExtraArgsToMap(extraArgs) - - case chainsel.FamilySolana: - return ccipsolana.DecodeExtraArgsToMap(extraArgs) - - default: - return nil, fmt.Errorf("unsupported family for extra args type %s", family) - } -} diff --git a/core/capabilities/ccip/common/extradatacodec.go b/core/capabilities/ccip/common/extradatacodec.go index e003a91691d..be8cc6fdcf0 100644 --- a/core/capabilities/ccip/common/extradatacodec.go +++ b/core/capabilities/ccip/common/extradatacodec.go @@ -1,7 +1,12 @@ package common import ( + "fmt" + + chainsel "github.com/smartcontractkit/chain-selectors" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" ) type ExtraDataCodec struct{} @@ -11,11 +16,37 @@ func NewExtraDataCodec() ExtraDataCodec { } func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - // Not implemented and not return error - return nil, nil + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + switch family { + case chainsel.FamilyEVM: + return ccipevm.DecodeExtraArgsToMap(extraArgs) + + case chainsel.FamilySolana: + return ccipsolana.DecodeExtraArgsToMap(extraArgs) + + default: + return nil, fmt.Errorf("unsupported family for extra args type %s", family) + } } func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - // Not implemented and not return error - return nil, nil + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + switch family { + case chainsel.FamilyEVM: + return ccipevm.DecodeDestExecDataToMap(destExecData) + + case chainsel.FamilySolana: + return ccipsolana.DecodeDestExecDataToMap(destExecData) + + default: + return nil, fmt.Errorf("unsupported family for extra args type %s", family) + } } From a1eacf6814e00a115b2569c576e59f0abb62f9d8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 28 Jan 2025 16:19:24 -0600 Subject: [PATCH 145/232] update comments --- core/capabilities/ccip/ccipevm/helpers.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index 1ad7bcfd7a7..e8e4bd37c86 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -79,6 +79,7 @@ func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { extraByteOffset = 4 case string(svmExtraArgsV1Tag): // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array + // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 method = svmV1DecodeName extraByteOffset = 36 default: From 0b15808e705c774414a3ad1244ac1873a90b5f29 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 28 Jan 2025 16:25:44 -0600 Subject: [PATCH 146/232] goimport --- core/capabilities/ccip/common/extradatacodec.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/common/extradatacodec.go b/core/capabilities/ccip/common/extradatacodec.go index be8cc6fdcf0..c8130250be8 100644 --- a/core/capabilities/ccip/common/extradatacodec.go +++ b/core/capabilities/ccip/common/extradatacodec.go @@ -4,6 +4,7 @@ import ( "fmt" chainsel "github.com/smartcontractkit/chain-selectors" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" From 283c4e4ddc6284d11dc4d90031d86b7f8a675eba Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 28 Jan 2025 16:59:08 -0600 Subject: [PATCH 147/232] implement dest exec data handling --- .../ccip/ccipsolana/executecodec.go | 34 +++++++++++++++---- .../ccip/ccipsolana/executecodec_test.go | 10 ++++-- go.mod | 2 +- go.sum | 2 ++ 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 7512ab6862c..7417056c50a 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -50,12 +50,17 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec return nil, fmt.Errorf("invalid destTokenAddress address: %v", tokenAmount.DestTokenAddress) } + destGasAmount, err := extractDestGasAmountFromMap(tokenAmount.DestExecDataDecoded) + if err != nil { + return nil, err + } + tokenAmounts = append(tokenAmounts, ccip_router.Any2SVMTokenTransfer{ SourcePoolAddress: tokenAmount.SourcePoolAddress, DestTokenAddress: solana.PublicKeyFromBytes(tokenAmount.DestTokenAddress), ExtraData: tokenAmount.ExtraData, Amount: ccip_router.CrossChainAmount{LeBytes: [32]uint8(encodeBigIntToFixedLengthLE(tokenAmount.Amount.Int, 32))}, - DestGasAmount: bytesToUint32LE(tokenAmount.DestExecData), + DestGasAmount: destGasAmount, }) } @@ -221,20 +226,35 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SVMExtraArgs, error) { } else { return out, errors.New("invalid type for Accounts, expected [][32]byte") } + default: + // should we just ignore unknown fields instead of return error ? + return out, fmt.Errorf("invalid field %s", lowercase) } } return out, nil } -func bytesToUint32LE(b []byte) uint32 { - if len(b) < 4 { - var padded [4]byte - copy(padded[:len(b)], b) // Pad from the right for little-endian - return binary.LittleEndian.Uint32(padded[:]) +func extractDestGasAmountFromMap(input map[string]any) (uint32, error) { + var out uint32 + + // Iterate through the expected fields in the struct + for fieldName, fieldValue := range input { + lowercase := strings.ToLower(fieldName) + switch lowercase { + case "destgasamount": + // Expect uint32 + if v, ok := fieldValue.(uint32); ok { + out = v + } else { + return out, errors.New("invalid type for destgasamount, expected uint32") + } + default: + return out, errors.New("invalid token message, dest gas amount not found in the DestExecDataDecoded map") + } } - return binary.LittleEndian.Uint32(b) + return out, nil } // Ensure ExecutePluginCodec implements the ExecutePluginCodec interface diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 54e93d9f13c..504b8d91afb 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -40,7 +40,7 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp destGasAmount := uint32(10) destExecData := make([]byte, 4) - binary.BigEndian.PutUint32(destExecData, destGasAmount) + binary.LittleEndian.PutUint32(destExecData, destGasAmount) tokenAmounts := make([]cciptypes.RampTokenAmount, numTokensPerMsg) for z := 0; z < numTokensPerMsg; z++ { @@ -50,6 +50,9 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp ExtraData: extraData, Amount: cciptypes.NewBigInt(big.NewInt(rand.Int63())), DestExecData: destExecData, + DestExecDataDecoded: map[string]any{ + "destGasAmount": uint32(10), + }, } } @@ -167,7 +170,7 @@ func TestExecutePluginCodecV1(t *testing.T) { } require.NoError(t, err) - // ignore msg hash and extraArgsDecoded map in comparison + // ignore msg hash, extraArgsDecoded map and DestExecDataDecoded map in comparison for i := range report.ChainReports { for j := range report.ChainReports[i].Messages { report.ChainReports[i].Messages[j].Header.MsgHash = cciptypes.Bytes32{} @@ -175,6 +178,9 @@ func TestExecutePluginCodecV1(t *testing.T) { report.ChainReports[i].Messages[j].FeeToken = cciptypes.UnknownAddress{} report.ChainReports[i].Messages[j].FeeTokenAmount = cciptypes.BigInt{} report.ChainReports[i].Messages[j].ExtraArgsDecoded = nil + for k := range report.ChainReports[i].Messages[j].TokenAmounts { + report.ChainReports[i].Messages[j].TokenAmounts[k].DestExecDataDecoded = nil + } } } diff --git a/go.mod b/go.mod index 59853e7450f..28fcdc63e38 100644 --- a/go.mod +++ b/go.mod @@ -79,7 +79,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 diff --git a/go.sum b/go.sum index c0e0d70511b..6d905bec831 100644 --- a/go.sum +++ b/go.sum @@ -1108,6 +1108,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= From 55b33e3c5eca4223a9ff0ffa2d6f86bab0a63a9b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 28 Jan 2025 17:06:27 -0600 Subject: [PATCH 148/232] fix conflicts --- integration-tests/smoke/ccip/ccip_reader_test.go | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 92054ab0e54..c64dd3948b0 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -20,10 +20,6 @@ import ( ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" -<<<<<<< HEAD -======= - "github.com/smartcontractkit/chainlink/deployment/ccip/changeset" ->>>>>>> 81b30de54509d1a49a9456c63d3fecf0e0b32213 "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" "github.com/smartcontractkit/chainlink/v2/core/utils/testutils/heavyweight" @@ -292,11 +288,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), -<<<<<<< HEAD - ccipcommon.NewExtraArgsCodec(), -======= ccipcommon.NewExtraDataCodec(), ->>>>>>> 81b30de54509d1a49a9456c63d3fecf0e0b32213 ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1416,11 +1408,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) -<<<<<<< HEAD - edc := ccipcommon.NewExtraArgsCodec() -======= edc := ccipcommon.NewExtraDataCodec() ->>>>>>> 81b30de54509d1a49a9456c63d3fecf0e0b32213 reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1536,11 +1524,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) -<<<<<<< HEAD - edc := ccipcommon.NewExtraArgsCodec() -======= edc := ccipcommon.NewExtraDataCodec() ->>>>>>> 81b30de54509d1a49a9456c63d3fecf0e0b32213 reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() { From 1ede47ad9bc0c8c0cef220e7c063113cbd9ed57f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 10:04:36 -0600 Subject: [PATCH 149/232] fix --- .../ccip/{ccipevm => common}/extraargscodec.go | 9 +++++++-- core/capabilities/ccip/oraclecreator/plugin.go | 5 +++-- core/scripts/go.mod | 2 +- core/scripts/go.sum | 1 + deployment/go.mod | 2 +- deployment/go.sum | 1 + go.sum | 2 -- integration-tests/go.mod | 2 +- integration-tests/go.sum | 1 + integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 1 + integration-tests/smoke/ccip/ccip_reader_test.go | 8 ++++---- 12 files changed, 22 insertions(+), 14 deletions(-) rename core/capabilities/ccip/{ccipevm => common}/extraargscodec.go (53%) diff --git a/core/capabilities/ccip/ccipevm/extraargscodec.go b/core/capabilities/ccip/common/extraargscodec.go similarity index 53% rename from core/capabilities/ccip/ccipevm/extraargscodec.go rename to core/capabilities/ccip/common/extraargscodec.go index 8cd8bda48f7..3366647529d 100644 --- a/core/capabilities/ccip/ccipevm/extraargscodec.go +++ b/core/capabilities/ccip/common/extraargscodec.go @@ -1,4 +1,4 @@ -package ccipevm +package common import ( cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" @@ -10,7 +10,12 @@ func NewExtraArgsCodec() ExtraArgsCodec { return ExtraArgsCodec{} } -func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { +func (ExtraArgsCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { // Not implemented and not return error return nil, nil } + +func (c ExtraArgsCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + //TODO implement me + panic("implement me") +} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 772562888a1..95f39541e26 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -13,6 +13,7 @@ import ( "github.com/gagliardetto/solana-go" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/smartcontractkit/chainlink/v2/core/services/relay" chainsel "github.com/smartcontractkit/chain-selectors" @@ -282,7 +283,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewCommitPluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - ccipevm.NewExtraArgsCodec(), + ccipcommon.NewExtraArgsCodec(), i.homeChainReader, i.homeChainSelector, contractReaders, @@ -305,7 +306,7 @@ func (i *pluginOracleCreator) createFactoryAndTransmitter( ccipreaderpkg.OCR3ConfigWithMeta(config), ccipevm.NewExecutePluginCodecV1(), ccipevm.NewMessageHasherV1(i.lggr.Named("MessageHasherV1")), - ccipevm.NewExtraArgsCodec(), + ccipcommon.NewExtraArgsCodec(), i.homeChainReader, ccipevm.NewEVMTokenDataEncoder(), ccipevm.NewGasEstimateProvider(), diff --git a/core/scripts/go.mod b/core/scripts/go.mod index fe14ddafeb9..30b71aa45a9 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -314,7 +314,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 // indirect + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 // indirect github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 58b19c707bf..83ca3e2737d 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1170,6 +1170,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= diff --git a/deployment/go.mod b/deployment/go.mod index 13ac01f3701..ba0ec2e8a36 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -31,7 +31,7 @@ require ( github.com/sethvargo/go-retry v0.2.4 github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b diff --git a/deployment/go.sum b/deployment/go.sum index ca393f2cc65..2b15588ba63 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1396,6 +1396,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= diff --git a/go.sum b/go.sum index 6d905bec831..6f6bf60f03b 100644 --- a/go.sum +++ b/go.sum @@ -1106,8 +1106,6 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index c6f868576fb..3a0caa35643 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -46,7 +46,7 @@ require ( github.com/slack-go/slack v0.15.0 github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 643120de1cc..115801c679d 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1420,6 +1420,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 8d6758ee4cc..948f808d18b 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -28,7 +28,7 @@ require ( github.com/rs/zerolog v1.33.0 github.com/slack-go/slack v0.15.0 github.com/smartcontractkit/chain-selectors v1.0.36 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.19 github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.9 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 31ac8034981..cbb9d0c5033 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1409,6 +1409,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 99ea0e10569..63846028fe0 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -14,6 +14,7 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/jmoiron/sqlx" + common2 "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" @@ -33,7 +34,6 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/types" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/headtracker" @@ -285,7 +285,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), - ccipevm.NewExtraArgsCodec(), + common2.NewExtraArgsCodec(), ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1405,7 +1405,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraArgsCodec() + edc := common2.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1521,7 +1521,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraArgsCodec() + edc := common2.NewExtraArgsCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() { From d7e246fcc4635c6f631823e063c379618093b3ea Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 10:24:09 -0600 Subject: [PATCH 150/232] fix --- .../ccip/ccipsolana/executecodec.go | 30 ++++++------------- core/scripts/go.mod | 2 +- core/scripts/go.sum | 8 ++--- deployment/go.mod | 2 +- deployment/go.sum | 7 ++--- go.mod | 2 +- go.sum | 4 +-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 7 ++--- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 7 ++--- 11 files changed, 28 insertions(+), 45 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 7417056c50a..1072b30b7e7 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -84,11 +84,9 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec }, Sender: msg.Sender, Data: msg.Data, - LogicReceiver: solana.PublicKeyFromBytes(msg.Receiver), - // TODO how to get the TokenReceiver ? - //TokenReceiver: solana.PublicKeyFromBytes(msg.Receiver), - TokenAmounts: tokenAmounts, - ExtraArgs: extraArgs, + TokenReceiver: solana.PublicKeyFromBytes(msg.Receiver), + TokenAmounts: tokenAmounts, + ExtraArgs: extraArgs, } // should only have an offchain token data if there are tokens as part of the message @@ -161,7 +159,7 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) }, Sender: executeReport.Message.Sender, Data: executeReport.Message.Data, - Receiver: executeReport.Message.LogicReceiver.Bytes(), + Receiver: executeReport.Message.TokenReceiver.Bytes(), ExtraArgs: buf.Bytes(), FeeToken: cciptypes.UnknownAddress{}, // <-- todo: info not available, but not required atm FeeTokenAmount: cciptypes.BigInt{}, // <-- todo: info not available, but not required atm @@ -198,6 +196,8 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SVMExtraArgs, error) { var out ccip_router.SVMExtraArgs // Iterate through the expected fields in the struct + // the field name should match with the one in SVMExtraArgsV1 + // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 for fieldName, fieldValue := range input { lowercase := strings.ToLower(fieldName) switch lowercase { @@ -208,27 +208,15 @@ func parseExtraArgsMap(input map[string]any) (ccip_router.SVMExtraArgs, error) { } else { return out, errors.New("invalid type for ComputeUnits, expected uint32") } - case "iswritablebitmap": + case "accountiswritablebitmap": // Expect uint64 if v, ok := fieldValue.(uint64); ok { out.IsWritableBitmap = v } else { return out, errors.New("invalid type for IsWritableBitmap, expected uint64") } - case "accounts": - // Expect [][32]byte - if v, ok := fieldValue.([][32]byte); ok { - accounts := make([]solana.PublicKey, len(v)) - for i, val := range v { - accounts[i] = solana.PublicKeyFromBytes(val[:]) - } - out.Accounts = accounts - } else { - return out, errors.New("invalid type for Accounts, expected [][32]byte") - } - default: - // should we just ignore unknown fields instead of return error ? - return out, fmt.Errorf("invalid field %s", lowercase) + // we only need the keys to construct SVMExtraArgs, other keys can be skipped without return errors + // because there's no guarantee SVMExtraArgs will match with SVMExtraArgsV1 } } diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 30b71aa45a9..6cf124e64b9 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -315,7 +315,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 83ca3e2737d..5d0ca14d56d 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1168,12 +1168,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/deployment/go.mod b/deployment/go.mod index ba0ec2e8a36..4acf4e6a53c 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 diff --git a/deployment/go.sum b/deployment/go.sum index 2b15588ba63..8541e55fd53 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1394,11 +1394,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/go.mod b/go.mod index 28fcdc63e38..5a2ab512eab 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 diff --git a/go.sum b/go.sum index 6f6bf60f03b..de23cb2e0a9 100644 --- a/go.sum +++ b/go.sum @@ -1108,8 +1108,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 3a0caa35643..d153f91e2f9 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -431,7 +431,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 115801c679d..10b8546fad8 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1418,11 +1418,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 948f808d18b..8428915e373 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -418,7 +418,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index cbb9d0c5033..18a9e9e32f9 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1407,11 +1407,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250123161904-c40aa8ca45b2 h1:02X35I+iPkHltR3ve2b7Xc/YUg2aGkT42w5DHVsKPLY= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250123161904-c40aa8ca45b2/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884 h1:IEorqT29lLK/kkB1YFEkBLR1q99hX+6CVV4FafPnL6U= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250123190454-a0491362f884/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92 h1:9zmJi4TctSNvmVdmRh2UpbNRDnrWKYn4o+PZDAIhqqc= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250121163309-3e179a73cb92/go.mod h1:V3BHfvLnQNBUoZ4bGjD29ZPhyzPE++DkYkhvPb9tcRs= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From 3a1b98626466881667262519fe5e81dda156063b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 11:56:09 -0600 Subject: [PATCH 151/232] fix test --- .../ccip/ccipsolana/executecodec_test.go | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 504b8d91afb..0d872ab4f4f 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -10,14 +10,12 @@ import ( agbinary "github.com/gagliardetto/binary" solanago "github.com/gagliardetto/solana-go" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" "github.com/smartcontractkit/chainlink/v2/evm/utils" - "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -59,21 +57,11 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp extraArgs := ccip_router.SVMExtraArgs{ ComputeUnits: 1000, IsWritableBitmap: 2, - Accounts: []solana.PublicKey{ - config.CcipLogicReceiver, - config.ReceiverTargetAccountPDA, - solana.SystemProgramID, - }, } extraArgsMap := map[string]any{ - "ComputeUnits": uint32(1000), - "IsWritableBitmap": uint64(2), - "Accounts": [][32]byte{ - [32]byte(config.CcipLogicReceiver.Bytes()), - [32]byte(config.ReceiverTargetAccountPDA.Bytes()), - [32]byte(solana.SystemProgramID.Bytes()), - }, + "ComputeUnits": uint32(1000), + "accountIsWritableBitmap": uint64(2), } var buf bytes.Buffer From 8d4d702d4754e4d00a19019c2508d6387b58177f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 13:17:09 -0600 Subject: [PATCH 152/232] update --- core/capabilities/ccip/common/extradatacodec.go | 10 ++++++++++ integration-tests/smoke/ccip/ccip_reader_test.go | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/common/extradatacodec.go b/core/capabilities/ccip/common/extradatacodec.go index c8130250be8..47146ddd5b6 100644 --- a/core/capabilities/ccip/common/extradatacodec.go +++ b/core/capabilities/ccip/common/extradatacodec.go @@ -17,6 +17,11 @@ func NewExtraDataCodec() ExtraDataCodec { } func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(extraArgs) == 0 { + // return empty map if extraArgs is empty + return nil, nil + } + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) if err != nil { return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) @@ -35,6 +40,11 @@ func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSe } func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(destExecData) == 0 { + // return empty map if destExecData is empty + return nil, nil + } + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) if err != nil { return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index c64dd3948b0..1c7803bf443 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -116,10 +116,10 @@ func setupExecutedMessageRangesTest(ctx context.Context, t testing.TB, useHeavyD }) } -func setupMsgsBetweenSeqNumsTest(ctx context.Context, t testing.TB, useHeavyDB bool) *testSetupData { +func setupMsgsBetweenSeqNumsTest(ctx context.Context, t testing.TB, useHeavyDB bool, sourceChainSel cciptypes.ChainSelector) *testSetupData { sb, auth := setupSimulatedBackendAndAuth(t) return testSetup(ctx, t, testSetupParams{ - ReaderChain: chainS1, + ReaderChain: sourceChainSel, DestChain: chainD, OnChainSeqNums: nil, Cfg: evmconfig.SourceReaderConfig, @@ -463,7 +463,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { t.Parallel() ctx := tests.Context(t) - s := setupMsgsBetweenSeqNumsTest(ctx, t, false) + s := setupMsgsBetweenSeqNumsTest(ctx, t, false, chainSEVM) _, err := s.contract.EmitCCIPMessageSent(s.auth, uint64(chainD), ccip_reader_tester.InternalEVM2AnyRampMessage{ Header: ccip_reader_tester.InternalRampMessageHeader{ MessageId: [32]byte{1, 0, 0, 0, 0}, @@ -1169,7 +1169,7 @@ func Benchmark_CCIPReader_MessageSentRanges(b *testing.B) { func benchmarkMessageSentRanges(b *testing.B, logsInserted int, startSeqNum, endSeqNum cciptypes.SeqNum) { // Initialize test setup ctx := tests.Context(b) - s := setupMsgsBetweenSeqNumsTest(ctx, b, true) + s := setupMsgsBetweenSeqNumsTest(ctx, b, true, chainS1) expectedRangeLen := calculateExpectedRangeLen(logsInserted, startSeqNum, endSeqNum) err := s.extendedCR.Bind(ctx, []types.BoundContract{ From 8a14890d4ff99dfee5dab0bc89b41b0c3729f90f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 13:52:48 -0600 Subject: [PATCH 153/232] fix test --- .../ccip/common/extraargscodec.go | 4 +-- .../smoke/ccip/ccip_reader_test.go | 25 ++++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/core/capabilities/ccip/common/extraargscodec.go b/core/capabilities/ccip/common/extraargscodec.go index 3366647529d..364e2463913 100644 --- a/core/capabilities/ccip/common/extraargscodec.go +++ b/core/capabilities/ccip/common/extraargscodec.go @@ -16,6 +16,6 @@ func (ExtraArgsCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSele } func (c ExtraArgsCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - //TODO implement me - panic("implement me") + // Not implemented and not return error + return nil, nil } diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 9d1219a4a33..dfe3a1f288a 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -54,10 +54,11 @@ import ( ) const ( - chainS1 = cciptypes.ChainSelector(1) - chainS2 = cciptypes.ChainSelector(2) - chainS3 = cciptypes.ChainSelector(3) - chainD = cciptypes.ChainSelector(4) + chainS1 = cciptypes.ChainSelector(1) + chainS2 = cciptypes.ChainSelector(2) + chainS3 = cciptypes.ChainSelector(3) + chainD = cciptypes.ChainSelector(4) + chainSEVM = cciptypes.ChainSelector(5009297550715157269) ) var ( @@ -114,10 +115,10 @@ func setupExecutedMessageRangesTest(ctx context.Context, t testing.TB, useHeavyD }) } -func setupMsgsBetweenSeqNumsTest(ctx context.Context, t testing.TB, useHeavyDB bool) *testSetupData { +func setupMsgsBetweenSeqNumsTest(ctx context.Context, t testing.TB, useHeavyDB bool, sourceChain cciptypes.ChainSelector) *testSetupData { sb, auth := setupSimulatedBackendAndAuth(t) return testSetup(ctx, t, testSetupParams{ - ReaderChain: chainS1, + ReaderChain: sourceChain, DestChain: chainD, OnChainSeqNums: nil, Cfg: evmconfig.SourceReaderConfig, @@ -461,11 +462,11 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { t.Parallel() ctx := tests.Context(t) - s := setupMsgsBetweenSeqNumsTest(ctx, t, false) + s := setupMsgsBetweenSeqNumsTest(ctx, t, false, chainSEVM) _, err := s.contract.EmitCCIPMessageSent(s.auth, uint64(chainD), ccip_reader_tester.InternalEVM2AnyRampMessage{ Header: ccip_reader_tester.InternalRampMessageHeader{ MessageId: [32]byte{1, 0, 0, 0, 0}, - SourceChainSelector: uint64(chainS1), + SourceChainSelector: uint64(chainSEVM), DestChainSelector: uint64(chainD), SequenceNumber: 10, }, @@ -483,7 +484,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { _, err = s.contract.EmitCCIPMessageSent(s.auth, uint64(chainD), ccip_reader_tester.InternalEVM2AnyRampMessage{ Header: ccip_reader_tester.InternalRampMessageHeader{ MessageId: [32]byte{1, 0, 0, 0, 1}, - SourceChainSelector: uint64(chainS1), + SourceChainSelector: uint64(chainSEVM), DestChainSelector: uint64(chainD), SequenceNumber: 15, }, @@ -508,7 +509,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { require.Eventually(t, func() bool { msgs, err = s.reader.MsgsBetweenSeqNums( ctx, - chainS1, + chainSEVM, cciptypes.NewSeqNumRange(5, 20), ) require.NoError(t, err) @@ -533,7 +534,7 @@ func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { require.Equal(t, int64(4), msgs[1].TokenAmounts[1].Amount.Int64()) for _, msg := range msgs { - require.Equal(t, chainS1, msg.Header.SourceChainSelector) + require.Equal(t, chainSEVM, msg.Header.SourceChainSelector) require.Equal(t, chainD, msg.Header.DestChainSelector) } } @@ -1167,7 +1168,7 @@ func Benchmark_CCIPReader_MessageSentRanges(b *testing.B) { func benchmarkMessageSentRanges(b *testing.B, logsInserted int, startSeqNum, endSeqNum cciptypes.SeqNum) { // Initialize test setup ctx := tests.Context(b) - s := setupMsgsBetweenSeqNumsTest(ctx, b, true) + s := setupMsgsBetweenSeqNumsTest(ctx, b, true, chainS1) expectedRangeLen := calculateExpectedRangeLen(logsInserted, startSeqNum, endSeqNum) err := s.extendedCR.Bind(ctx, []types.BoundContract{ From fc7f0f74bf667ae724e8c78cc0361e2f4232889f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 14:03:48 -0600 Subject: [PATCH 154/232] update --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index c0661ace714..a219b1894eb 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -316,7 +316,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 2b101b41a3d..c9bb6cd8517 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1170,8 +1170,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/deployment/go.mod b/deployment/go.mod index 0cefaba43d2..a5e6ba49001 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 diff --git a/deployment/go.sum b/deployment/go.sum index 06f2cf5c787..e330363f797 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1396,8 +1396,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/go.mod b/go.mod index 879318fca77..ae8c6890335 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 diff --git a/go.sum b/go.sum index de3aa35be8b..204c6501cce 100644 --- a/go.sum +++ b/go.sum @@ -1108,8 +1108,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 549849a623b..1ad6e57e3f8 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -435,7 +435,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 62e63ff1bd3..557ae15751b 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1424,8 +1424,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index c125badc456..f80df6c2cb1 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -419,7 +419,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 7f22639f9cb..b998feb78df 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1411,8 +1411,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a h1:/CHYAiEm8jfGAy+oQB6lSN7iQ9WhGeUlWmC1KHarjj0= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250121181523-2c505d8a351a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From 993955931a58ca77b79d28835a373ec7de56cb16 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 14:20:31 -0600 Subject: [PATCH 155/232] add comment --- core/capabilities/ccip/ccipevm/helpers.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index e8e4bd37c86..a00eed968a8 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -80,6 +80,7 @@ func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { case string(svmExtraArgsV1Tag): // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 + // this is a temporary solution, the evm on-chain side will fix it, so the offset should just be 4 instead of 36 method = svmV1DecodeName extraByteOffset = 36 default: From 23511f37fa87ab5f8fc6b9513d79fd5fa7969883 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 16:08:09 -0600 Subject: [PATCH 156/232] fix mod --- core/capabilities/ccip/delegate.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index 1c45a9fbc26..251dc495f12 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -7,6 +7,7 @@ import ( "strconv" "time" + "github.com/smartcontractkit/chainlink/v2/core/services/relay" "golang.org/x/exp/maps" ragep2ptypes "github.com/smartcontractkit/libocr/ragep2p/types" From ca2e55cd3b89f99596d293338120a4bd9daea610 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 16:14:38 -0600 Subject: [PATCH 157/232] fix --- integration-tests/go.sum | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 699b1aaed55..d7ded7bbaab 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1430,8 +1430,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a h1:BuKTz6TpCQiLRmdT/Vp3OZj4MEVSEpNfY2nL8RYRbg8= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250114180313-3ba6bac6203a/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From 6e6441dafdd44e4b4aceb1ce5f887a3bbffd1324 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 16:49:31 -0600 Subject: [PATCH 158/232] refactor --- .../ccip/ccipevm/extradatadecoder.go | 56 ++++++++++ .../ccip/ccipevm/extradatadecoder_test.go | 105 ++++++++++++++++++ core/capabilities/ccip/ccipevm/helpers.go | 50 --------- .../capabilities/ccip/ccipevm/helpers_test.go | 54 --------- .../{helpers.go => extradatadecoder.go} | 0 ...lpers_test.go => extradatadecoder_test.go} | 0 6 files changed, 161 insertions(+), 104 deletions(-) create mode 100644 core/capabilities/ccip/ccipevm/extradatadecoder.go create mode 100644 core/capabilities/ccip/ccipevm/extradatadecoder_test.go rename core/capabilities/ccip/ccipsolana/{helpers.go => extradatadecoder.go} (100%) rename core/capabilities/ccip/ccipsolana/{helpers_test.go => extradatadecoder_test.go} (100%) diff --git a/core/capabilities/ccip/ccipevm/extradatadecoder.go b/core/capabilities/ccip/ccipevm/extradatadecoder.go new file mode 100644 index 00000000000..8f1c8616878 --- /dev/null +++ b/core/capabilities/ccip/ccipevm/extradatadecoder.go @@ -0,0 +1,56 @@ +package ccipevm + +import ( + "fmt" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +func DecodeDestExecDataToMap(DestExecData cciptypes.Bytes) (map[string]interface{}, error) { + destGasAmount, err := abiDecodeUint32(DestExecData) + if err != nil { + return nil, fmt.Errorf("decode dest gas amount: %w", err) + } + + return map[string]interface{}{ + evmDestExecDataKey: destGasAmount, + }, nil +} + +func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { + if len(extraArgs) < 4 { + return nil, fmt.Errorf("extra args too short: %d, should be at least 4 (i.e the extraArgs tag)", len(extraArgs)) + } + + var method string + var extraByteOffset int + switch string(extraArgs[:4]) { + case string(evmExtraArgsV1Tag): + // for EVMExtraArgs, the first four bytes is the method name + method = evmV1DecodeName + extraByteOffset = 4 + case string(evmExtraArgsV2Tag): + method = evmV2DecodeName + extraByteOffset = 4 + case string(svmExtraArgsV1Tag): + // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array + // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 + // this is a temporary solution, the evm on-chain side will fix it, so the offset should just be 4 instead of 36 + method = svmV1DecodeName + extraByteOffset = 36 + default: + return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) + } + + output := make(map[string]any) + args := make(map[string]interface{}) + err := messageHasherABI.Methods[method].Inputs.UnpackIntoMap(args, extraArgs[extraByteOffset:]) + if err != nil { + return nil, fmt.Errorf("abi decode extra args %v: %w", method, err) + } + + for k, val := range args { + output[k] = val + } + return output, nil +} diff --git a/core/capabilities/ccip/ccipevm/extradatadecoder_test.go b/core/capabilities/ccip/ccipevm/extradatadecoder_test.go new file mode 100644 index 00000000000..e0387ed9040 --- /dev/null +++ b/core/capabilities/ccip/ccipevm/extradatadecoder_test.go @@ -0,0 +1,105 @@ +package ccipevm + +import ( + "math/big" + "math/rand" + "testing" + + "github.com/gagliardetto/solana-go" + "github.com/stretchr/testify/require" + + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/message_hasher" +) + +func Test_decodeExtraData(t *testing.T) { + d := testSetup(t) + gasLimit := big.NewInt(rand.Int63()) + + t.Run("decode extra args into map evm v1", func(t *testing.T) { + encoded, err := d.contract.EncodeEVMExtraArgsV1(nil, message_hasher.ClientEVMExtraArgsV1{ + GasLimit: gasLimit, + }) + require.NoError(t, err) + + m, err := DecodeExtraArgsToMap(encoded) + require.NoError(t, err) + require.Len(t, m, 1) + + gl, exist := m["gasLimit"] + require.True(t, exist) + require.Equal(t, gl, gasLimit) + }) + + t.Run("decode extra args into map evm v2", func(t *testing.T) { + encoded, err := d.contract.EncodeEVMExtraArgsV2(nil, message_hasher.ClientEVMExtraArgsV2{ + GasLimit: gasLimit, + AllowOutOfOrderExecution: true, + }) + require.NoError(t, err) + + m, err := DecodeExtraArgsToMap(encoded) + require.NoError(t, err) + require.Len(t, m, 2) + + gl, exist := m["gasLimit"] + require.True(t, exist) + require.Equal(t, gl, gasLimit) + + ooe, exist := m["allowOutOfOrderExecution"] + require.True(t, exist) + require.Equal(t, true, ooe) + }) + + t.Run("decode extra args into map svm", func(t *testing.T) { + key, err := solana.NewRandomPrivateKey() + require.NoError(t, err) + cu := uint32(10000) + bitmap := uint64(4) + ooe := false + tokenReceiver := [32]byte(key.PublicKey().Bytes()) + accounts := [][32]byte{[32]byte(key.PublicKey().Bytes())} + decoded, err := d.contract.DecodeSVMExtraArgsV1(nil, cu, bitmap, ooe, tokenReceiver, accounts) + if err != nil { + return + } + encoded, err := d.contract.EncodeSVMExtraArgsV1(nil, decoded) + require.NoError(t, err) + + m, err := DecodeExtraArgsToMap(encoded) + require.NoError(t, err) + require.Len(t, m, 5) + + cuDecoded, exist := m["computeUnits"] + require.True(t, exist) + require.Equal(t, cuDecoded, cu) + + bitmapDecoded, exist := m["accountIsWritableBitmap"] + require.True(t, exist) + require.Equal(t, bitmapDecoded, bitmap) + + ooeDecoded, exist := m["allowOutOfOrderExecution"] + require.True(t, exist) + require.Equal(t, ooeDecoded, ooe) + + tokenReceiverDecoded, exist := m["tokenReceiver"] + require.True(t, exist) + require.Equal(t, tokenReceiverDecoded, tokenReceiver) + + accountsDecoded, exist := m["accounts"] + require.True(t, exist) + require.Equal(t, accountsDecoded, accounts) + }) + + t.Run("decode dest exec data into map", func(t *testing.T) { + destGasAmount := uint32(10000) + encoded, err := abiEncodeUint32(destGasAmount) + require.NoError(t, err) + m, err := DecodeDestExecDataToMap(encoded) + require.NoError(t, err) + require.Len(t, m, 1) + + decoded, exist := m[evmDestExecDataKey] + require.True(t, exist) + require.Equal(t, destGasAmount, decoded) + }) +} diff --git a/core/capabilities/ccip/ccipevm/helpers.go b/core/capabilities/ccip/ccipevm/helpers.go index a00eed968a8..13e635ecbdf 100644 --- a/core/capabilities/ccip/ccipevm/helpers.go +++ b/core/capabilities/ccip/ccipevm/helpers.go @@ -6,7 +6,6 @@ import ( "math/big" "github.com/ethereum/go-ethereum/accounts/abi" - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) const ( @@ -51,55 +50,6 @@ func decodeExtraArgsV1V2(extraArgs []byte) (gasLimit *big.Int, err error) { return ifaces[0].(*big.Int), nil } -func DecodeDestExecDataToMap(DestExecData cciptypes.Bytes) (map[string]interface{}, error) { - destGasAmount, err := abiDecodeUint32(DestExecData) - if err != nil { - return nil, fmt.Errorf("decode dest gas amount: %w", err) - } - - return map[string]interface{}{ - evmDestExecDataKey: destGasAmount, - }, nil -} - -func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { - if len(extraArgs) < 4 { - return nil, fmt.Errorf("extra args too short: %d, should be at least 4 (i.e the extraArgs tag)", len(extraArgs)) - } - - var method string - var extraByteOffset int - switch string(extraArgs[:4]) { - case string(evmExtraArgsV1Tag): - // for EVMExtraArgs, the first four bytes is the method name - method = evmV1DecodeName - extraByteOffset = 4 - case string(evmExtraArgsV2Tag): - method = evmV2DecodeName - extraByteOffset = 4 - case string(svmExtraArgsV1Tag): - // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array - // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 - // this is a temporary solution, the evm on-chain side will fix it, so the offset should just be 4 instead of 36 - method = svmV1DecodeName - extraByteOffset = 36 - default: - return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) - } - - output := make(map[string]any) - args := make(map[string]interface{}) - err := messageHasherABI.Methods[method].Inputs.UnpackIntoMap(args, extraArgs[extraByteOffset:]) - if err != nil { - return nil, fmt.Errorf("abi decode extra args %v: %w", method, err) - } - - for k, val := range args { - output[k] = val - } - return output, nil -} - // abiEncodeMethodInputs encodes the inputs for a method call. // example abi: `[{ "name" : "method", "type": "function", "inputs": [{"name": "a", "type": "uint256"}]}]` func abiEncodeMethodInputs(abiDef abi.ABI, inputs ...interface{}) ([]byte, error) { diff --git a/core/capabilities/ccip/ccipevm/helpers_test.go b/core/capabilities/ccip/ccipevm/helpers_test.go index f1490a56043..89580c4d6f7 100644 --- a/core/capabilities/ccip/ccipevm/helpers_test.go +++ b/core/capabilities/ccip/ccipevm/helpers_test.go @@ -5,7 +5,6 @@ import ( "math/rand" "testing" - "github.com/gagliardetto/solana-go" "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/message_hasher" @@ -74,57 +73,4 @@ func Test_decodeExtraArgs(t *testing.T) { require.True(t, exist) require.Equal(t, true, ooe) }) - - t.Run("decode dest exec data into map", func(t *testing.T) { - destGasAmount := uint32(10000) - encoded, err := abiEncodeUint32(destGasAmount) - require.NoError(t, err) - m, err := DecodeDestExecDataToMap(encoded) - require.NoError(t, err) - require.Len(t, m, 1) - - decoded, exist := m[evmDestExecDataKey] - require.True(t, exist) - require.Equal(t, destGasAmount, decoded) - }) - - t.Run("decode extra args into map svm", func(t *testing.T) { - key, err := solana.NewRandomPrivateKey() - require.NoError(t, err) - cu := uint32(10000) - bitmap := uint64(4) - ooe := false - tokenReceiver := [32]byte(key.PublicKey().Bytes()) - accounts := [][32]byte{[32]byte(key.PublicKey().Bytes())} - decoded, err := d.contract.DecodeSVMExtraArgsV1(nil, cu, bitmap, ooe, tokenReceiver, accounts) - if err != nil { - return - } - encoded, err := d.contract.EncodeSVMExtraArgsV1(nil, decoded) - require.NoError(t, err) - - m, err := DecodeExtraArgsToMap(encoded) - require.NoError(t, err) - require.Len(t, m, 5) - - cuDecoded, exist := m["computeUnits"] - require.True(t, exist) - require.Equal(t, cuDecoded, cu) - - bitmapDecoded, exist := m["accountIsWritableBitmap"] - require.True(t, exist) - require.Equal(t, bitmapDecoded, bitmap) - - ooeDecoded, exist := m["allowOutOfOrderExecution"] - require.True(t, exist) - require.Equal(t, ooeDecoded, ooe) - - tokenReceiverDecoded, exist := m["tokenReceiver"] - require.True(t, exist) - require.Equal(t, tokenReceiverDecoded, tokenReceiver) - - accountsDecoded, exist := m["accounts"] - require.True(t, exist) - require.Equal(t, accountsDecoded, accounts) - }) } diff --git a/core/capabilities/ccip/ccipsolana/helpers.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go similarity index 100% rename from core/capabilities/ccip/ccipsolana/helpers.go rename to core/capabilities/ccip/ccipsolana/extradatadecoder.go diff --git a/core/capabilities/ccip/ccipsolana/helpers_test.go b/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go similarity index 100% rename from core/capabilities/ccip/ccipsolana/helpers_test.go rename to core/capabilities/ccip/ccipsolana/extradatadecoder_test.go From 4407ec6c85b592dca56984e8a10ea8b3f0406a49 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 17:22:41 -0600 Subject: [PATCH 159/232] refactor --- core/capabilities/ccip/delegate.go | 138 +++++++++++++++++------------ 1 file changed, 79 insertions(+), 59 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index 251dc495f12..1a7d8d251fc 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -23,7 +23,7 @@ import ( chainsel "github.com/smartcontractkit/chain-selectors" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" configsevm "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/launcher" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/oraclecreator" @@ -271,76 +271,96 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela return nil, fmt.Errorf("error parsing chain ID, expected big int: %s", relayID.ChainID) } + var keys []string + var err error switch relayID.Network { case relay.NetworkEVM: - ethKeys, err := d.keystore.Eth().EnabledAddressesForChain(ctx, chainID) - if err != nil { - return nil, fmt.Errorf("error getting enabled addresses for chain: %s %w", chainID.String(), err) - } - - transmitterKeys[relayID] = func() (r []string) { - for _, key := range ethKeys { - r = append(r, key.Hex()) - } - return - }() + keys, err = d.getEVMKeys(ctx, chainID) case relay.NetworkSolana: - // TODO Implement EnabledAddressesForChain for Solana as well - solKeys, err := d.keystore.Solana().GetAll() - if err != nil { - return nil, fmt.Errorf("error getting all Solana keys: %w", err) - } - - transmitterKeys[relayID] = func() (r []string) { - for _, key := range solKeys { - r = append(r, key.PublicKeyStr()) - } - return - }() + keys, err = d.getSolanaKeys() case relay.NetworkAptos: - aptosKeys, err := d.keystore.Aptos().GetAll() - if err != nil { - return nil, fmt.Errorf("error getting all Aptos keys: %w", err) - } - - transmitterKeys[relayID] = func() (r []string) { - for _, key := range aptosKeys { - r = append(r, key.PublicKeyStr()) - } - return - }() + keys, err = d.getAptosKeys() case relay.NetworkCosmos: - cosmosKeys, err := d.keystore.Cosmos().GetAll() - if err != nil { - return nil, fmt.Errorf("error getting all Cosmos keys: %w", err) - } - - transmitterKeys[relayID] = func() (r []string) { - for _, key := range cosmosKeys { - r = append(r, key.PublicKeyStr()) - } - return - }() + keys, err = d.getCosmosKeys() case relay.NetworkStarkNet: - startNetKeys, err := d.keystore.StarkNet().GetAll() - if err != nil { - return nil, fmt.Errorf("error getting all startNet keys: %w", err) - } - - transmitterKeys[relayID] = func() (r []string) { - for _, key := range startNetKeys { - r = append(r, key.StarkKeyStr()) - } - return - }() - + keys, err = d.getStarkNetKeys() default: return nil, fmt.Errorf("unsupported network: %s", relayID.Network) } + + if err != nil { + return nil, err + } + transmitterKeys[relayID] = keys } return transmitterKeys, nil } +func (d *Delegate) getEVMKeys(ctx context.Context, chainID *big.Int) ([]string, error) { + var result []string + ethKeys, err := d.keystore.Eth().EnabledAddressesForChain(ctx, chainID) + if err != nil { + return result, fmt.Errorf("error getting enabled addresses for chain: %s %w", chainID.String(), err) + } + + for _, key := range ethKeys { + result = append(result, key.Hex()) + } + return result, nil +} + +func (d *Delegate) getSolanaKeys() ([]string, error) { + var result []string + keys, err := d.keystore.Solana().GetAll() + if err != nil { + return result, fmt.Errorf("error getting all Solana keys: %w", err) + } + + for _, key := range keys { + result = append(result, key.PublicKeyStr()) + } + return result, err +} + +func (d *Delegate) getAptosKeys() ([]string, error) { + var result []string + keys, err := d.keystore.Aptos().GetAll() + if err != nil { + return result, fmt.Errorf("error getting all Aptos keys: %w", err) + } + + for _, key := range keys { + result = append(result, key.PublicKeyStr()) + } + return result, err +} + +func (d *Delegate) getCosmosKeys() ([]string, error) { + var result []string + keys, err := d.keystore.Cosmos().GetAll() + if err != nil { + return result, fmt.Errorf("error getting all Cosmos keys: %w", err) + } + + for _, key := range keys { + result = append(result, key.PublicKeyStr()) + } + return result, err +} + +func (d *Delegate) getStarkNetKeys() ([]string, error) { + var result []string + keys, err := d.keystore.StarkNet().GetAll() + if err != nil { + return result, fmt.Errorf("error getting all StarkNet keys: %w", err) + } + + for _, key := range keys { + result = append(result, key.StarkKeyStr()) + } + return result, nil +} + func (d *Delegate) getHomeChainContractReader( ctx context.Context, homeChainRelayer loop.Relayer, @@ -376,7 +396,7 @@ func bindReader(ctx context.Context, return nil, types.BoundContract{}, fmt.Errorf("failed to bind home chain contract reader: %w", err) } - hid, err := common.HashedCapabilityID(capabilityLabelledName, capabilityVersion) + hid, err := ccipcommon.HashedCapabilityID(capabilityLabelledName, capabilityVersion) if err != nil { return nil, types.BoundContract{}, fmt.Errorf("failed to hash capability id: %w", err) } From 4c386ba30272e441701e8a7390e71a3c33b8b1ca Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 29 Jan 2025 17:54:15 -0600 Subject: [PATCH 160/232] update --- go.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/go.md b/go.md index 81cbeeba683..d361331b328 100644 --- a/go.md +++ b/go.md @@ -76,13 +76,12 @@ flowchart LR wsrpc click wsrpc href "https://github.com/smartcontractkit/wsrpc" -<<<<<<< HEAD subgraph chainlink-ccip-repo[chainlink-ccip] chainlink-ccip chainlink-ccip/chains/solana end click chainlink-ccip-repo href "https://github.com/smartcontractkit/chainlink-ccip" -======= + subgraph chainlink-framework-repo[chainlink-framework] chainlink-framework/chains chainlink-framework/multinode @@ -94,7 +93,6 @@ flowchart LR chainlink-protos/svr end click chainlink-protos-repo href "https://github.com/smartcontractkit/chainlink-protos" ->>>>>>> 81b30de54509d1a49a9456c63d3fecf0e0b32213 subgraph tdh2-repo[tdh2] tdh2/go/ocr2/decryptionplugin @@ -103,11 +101,7 @@ flowchart LR click tdh2-repo href "https://github.com/smartcontractkit/tdh2" classDef outline stroke-dasharray:6,fill:none; -<<<<<<< HEAD - class chainlink-ccip-repo,tdh2-repo outline -======= - class chainlink-framework-repo,chainlink-protos-repo,tdh2-repo outline ->>>>>>> 81b30de54509d1a49a9456c63d3fecf0e0b32213 + class chainlink-ccip-repo,chainlink-framework-repo,chainlink-protos-repo,tdh2-repo outline ``` ## All modules ```mermaid From 7e96d529b9c447c4c04bd808615e38ca24446961 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 09:49:34 -0600 Subject: [PATCH 161/232] update comment --- core/capabilities/ccip/ccipevm/extradatadecoder.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/extradatadecoder.go b/core/capabilities/ccip/ccipevm/extradatadecoder.go index 8f1c8616878..5f26ba9a54c 100644 --- a/core/capabilities/ccip/ccipevm/extradatadecoder.go +++ b/core/capabilities/ccip/ccipevm/extradatadecoder.go @@ -34,8 +34,8 @@ func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { extraByteOffset = 4 case string(svmExtraArgsV1Tag): // for SVMExtraArgs there's the four bytes plus another 32 bytes padding for the dynamic array - // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 - // this is a temporary solution, the evm on-chain side will fix it, so the offset should just be 4 instead of 36 + // TODO this is a temporary solution, the evm on-chain side will fix it, so the offset should just be 4 instead of 36 + // https://smartcontract-it.atlassian.net/browse/BCI-4180 method = svmV1DecodeName extraByteOffset = 36 default: From 2e8de080d893474e96d0bc6b583383cfe545d183 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:13:57 -0600 Subject: [PATCH 162/232] add unit test --- .../ccip/ccipsolana/extradatadecoder.go | 53 +++++++++++++++---- .../ccip/ccipsolana/extradatadecoder_test.go | 46 +++++++++++++++- core/scripts/go.mod | 2 +- core/scripts/go.sum | 1 + deployment/go.mod | 2 +- deployment/go.sum | 4 +- go.mod | 2 +- go.sum | 4 +- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- 12 files changed, 102 insertions(+), 24 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go index 565c4ae338f..c699e9f87f1 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder.go @@ -5,25 +5,60 @@ import ( "fmt" "reflect" + "github.com/ethereum/go-ethereum/common/hexutil" agbinary "github.com/gagliardetto/binary" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) -const svmDestExecDataKey = "destGasAmount" +const ( + svmDestExecDataKey = "destGasAmount" +) + +var ( + // tag definition https://github.com/smartcontractkit/chainlink-ccip/blob/1b2ee24da54bddef8f3943dc84102686f2890f87/chains/solana/contracts/programs/ccip-router/src/extra_args.rs#L8C21-L11C45 + // this should be moved to msghasher.go once merged + + // bytes4(keccak256("CCIP SVMExtraArgsV1")); + // bytes4 public constant SVM_EXTRA_ARGS_V1_TAG = 0x1f3b3aba; + svmExtraArgsV1Tag = hexutil.MustDecode("0x1f3b3aba") + + // bytes4(keccak256("CCIP EVMExtraArgsV2")); + // bytes4 public constant EVM_EXTRA_ARGS_V2_TAG = 0x181dcf10; + evmExtraArgsV2Tag = hexutil.MustDecode("0x181dcf10") +) // DecodeExtraArgsToMap is a helper function for converting Borsh encoded extra args bytes into map[string]any, which will be saved in ocr report.message.ExtraArgsDecoded func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { - outputMap := make(map[string]any) - var args ccip_router.AnyExtraArgs - decoder := agbinary.NewBorshDecoder(extraArgs) - err := args.UnmarshalWithDecoder(decoder) - if err != nil { - return outputMap, fmt.Errorf("failed to decode extra args: %w", err) + if len(extraArgs) < 4 { + return nil, fmt.Errorf("extra args too short: %d, should be at least 4 (i.e the extraArgs tag)", len(extraArgs)) } - val := reflect.ValueOf(args) - typ := reflect.TypeOf(args) + var val reflect.Value + var typ reflect.Type + outputMap := make(map[string]any) + switch string(extraArgs[:4]) { + case string(evmExtraArgsV2Tag): + var args ccip_router.EVMExtraArgsV2 + decoder := agbinary.NewBorshDecoder(extraArgs[4:]) + err := args.UnmarshalWithDecoder(decoder) + if err != nil { + return outputMap, fmt.Errorf("failed to decode extra args: %w", err) + } + val = reflect.ValueOf(args) + typ = reflect.TypeOf(args) + case string(svmExtraArgsV1Tag): + var args ccip_router.SVMExtraArgsV1 + decoder := agbinary.NewBorshDecoder(extraArgs[4:]) + err := args.UnmarshalWithDecoder(decoder) + if err != nil { + return outputMap, fmt.Errorf("failed to decode extra args: %w", err) + } + val = reflect.ValueOf(args) + typ = reflect.TypeOf(args) + default: + return nil, fmt.Errorf("unknown extra args tag: %x", extraArgs) + } for i := 0; i < val.NumField(); i++ { field := typ.Field(i) diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go b/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go index 8db2691f341..79154275371 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go @@ -6,6 +6,8 @@ import ( "testing" agbinary "github.com/gagliardetto/binary" + "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" @@ -25,7 +27,45 @@ func Test_decodeExtraArgs(t *testing.T) { }) t.Run("decode extra args into map svm", func(t *testing.T) { - extraArgs := ccip_router.AnyExtraArgs{ + destGasAmount := uint32(10000) + bitmap := uint64(0) + extraArgs := ccip_router.SVMExtraArgsV1{ + ComputeUnits: destGasAmount, + AccountIsWritableBitmap: bitmap, + AllowOutOfOrderExecution: false, + TokenReceiver: config.CcipLogicReceiver, + Accounts: [][32]byte{ + [32]byte(config.CcipLogicReceiver.Bytes()), + [32]byte(config.ReceiverTargetAccountPDA.Bytes()), + [32]byte(solana.SystemProgramID.Bytes()), + }, + } + + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + err := extraArgs.MarshalWithEncoder(encoder) + require.NoError(t, err) + + input := append(svmExtraArgsV1Tag, buf.Bytes()...) + output, err := DecodeExtraArgsToMap(input) + require.NoError(t, err) + require.Len(t, output, 5) + + gasLimit, exist := output["ComputeUnits"] + require.True(t, exist) + require.Equal(t, destGasAmount, gasLimit) + + writableBitmap, exist := output["AccountIsWritableBitmap"] + require.True(t, exist) + require.Equal(t, bitmap, writableBitmap) + + ooe, exist := output["AllowOutOfOrderExecution"] + require.True(t, exist) + require.Equal(t, false, ooe) + }) + + t.Run("decode extra args into map evm", func(t *testing.T) { + extraArgs := ccip_router.EVMExtraArgsV2{ GasLimit: agbinary.Uint128{Lo: 5000, Hi: 0}, AllowOutOfOrderExecution: false, } @@ -34,7 +74,9 @@ func Test_decodeExtraArgs(t *testing.T) { encoder := agbinary.NewBorshEncoder(&buf) err := extraArgs.MarshalWithEncoder(encoder) require.NoError(t, err) - output, err := DecodeExtraArgsToMap(buf.Bytes()) + + input := append(evmExtraArgsV2Tag, buf.Bytes()...) + output, err := DecodeExtraArgsToMap(input) require.NoError(t, err) require.Len(t, output, 2) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index a219b1894eb..6be312a7501 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -316,7 +316,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index c9bb6cd8517..8b589346564 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1172,6 +1172,7 @@ github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/deployment/go.mod b/deployment/go.mod index a5e6ba49001..f7fdec3e7b2 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 diff --git a/deployment/go.sum b/deployment/go.sum index e330363f797..102312de24a 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1396,8 +1396,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/go.mod b/go.mod index ae8c6890335..159557eda5b 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 diff --git a/go.sum b/go.sum index 204c6501cce..113ab6eef20 100644 --- a/go.sum +++ b/go.sum @@ -1108,8 +1108,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 1ad6e57e3f8..d16dc6279a6 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -435,7 +435,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 557ae15751b..05dc4c895e4 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1424,8 +1424,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index f80df6c2cb1..4e929297779 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -419,7 +419,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index b998feb78df..e8bef22eab3 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1411,8 +1411,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= From 5c76148d0e62170518cd4113e764b4be3dfd5de8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:21:59 -0600 Subject: [PATCH 163/232] update --- deployment/ccip/changeset/cs_deploy_chain.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/deployment/ccip/changeset/cs_deploy_chain.go b/deployment/ccip/changeset/cs_deploy_chain.go index 546e0e29a2e..b8de97dbf9c 100644 --- a/deployment/ccip/changeset/cs_deploy_chain.go +++ b/deployment/ccip/changeset/cs_deploy_chain.go @@ -625,12 +625,8 @@ func deployChainContractsSolana( return fmt.Errorf("failed to get solana router program data: %w", err) } - defaultGasLimit := solBinary.Uint128{Lo: 3000, Hi: 0, Endianness: nil} - instruction, err := ccip_router.NewInitializeInstruction( chain.Selector, // chain selector - defaultGasLimit, // default gas limit - true, // allow out of order execution EnableExecutionAfter, // period to wait before allowing manual execution solana.PublicKey{}, solana.PublicKey{}, From 5bcf5095c58d7d884622da6e8b5b5944860280a6 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:30:49 -0600 Subject: [PATCH 164/232] lint --- .../ccip/ccipsolana/extradatadecoder_test.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go b/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go index 79154275371..8d39bd0cd7a 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder_test.go @@ -7,9 +7,10 @@ import ( agbinary "github.com/gagliardetto/binary" "github.com/gagliardetto/solana-go" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" "github.com/stretchr/testify/require" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) @@ -45,9 +46,7 @@ func Test_decodeExtraArgs(t *testing.T) { encoder := agbinary.NewBorshEncoder(&buf) err := extraArgs.MarshalWithEncoder(encoder) require.NoError(t, err) - - input := append(svmExtraArgsV1Tag, buf.Bytes()...) - output, err := DecodeExtraArgsToMap(input) + output, err := DecodeExtraArgsToMap(append(svmExtraArgsV1Tag, buf.Bytes()...)) require.NoError(t, err) require.Len(t, output, 5) @@ -75,8 +74,7 @@ func Test_decodeExtraArgs(t *testing.T) { err := extraArgs.MarshalWithEncoder(encoder) require.NoError(t, err) - input := append(evmExtraArgsV2Tag, buf.Bytes()...) - output, err := DecodeExtraArgsToMap(input) + output, err := DecodeExtraArgsToMap(append(evmExtraArgsV2Tag, buf.Bytes()...)) require.NoError(t, err) require.Len(t, output, 2) From 1629fdc5578ffdc3a8fdefaeb7ac65e2ad1bf3aa Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:39:32 -0600 Subject: [PATCH 165/232] mod --- core/capabilities/ccip/delegate.go | 3 ++- core/scripts/go.mod | 6 +++--- core/scripts/go.sum | 12 ++++++------ deployment/go.mod | 6 +++--- deployment/go.sum | 12 ++++++------ go.mod | 8 +++----- go.sum | 12 ++++++------ integration-tests/go.mod | 6 +++--- integration-tests/go.sum | 12 ++++++------ integration-tests/load/go.mod | 6 +++--- integration-tests/load/go.sum | 12 ++++++------ 11 files changed, 47 insertions(+), 48 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index 1a7d8d251fc..9255e7e601a 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -7,9 +7,10 @@ import ( "strconv" "time" - "github.com/smartcontractkit/chainlink/v2/core/services/relay" "golang.org/x/exp/maps" + "github.com/smartcontractkit/chainlink/v2/core/services/relay" + ragep2ptypes "github.com/smartcontractkit/libocr/ragep2p/types" "github.com/smartcontractkit/chainlink-common/pkg/loop" diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 2a9f344c23e..96d5e4c0b62 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -315,8 +315,8 @@ require ( github.com/shirou/gopsutil/v3 v3.24.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.36 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect @@ -324,7 +324,7 @@ require ( github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index f5e5fe889ba..26cc99ce1b0 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1174,10 +1174,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b h1:E/LpxQaG616VQdz6Zd/Y+OPwnhJbvCUJaCWAw/X7KMA= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= @@ -1196,8 +1196,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 h1:U49UgM8oEbssmKXDVkp8OpIr4h5YDwSLdpw2XUBsIfA= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5/go.mod h1:51o1f86HFbQb8aovFxjIhOgj2z7v0iLN7pnRKfvBLpQ= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 h1:nTUoe7GZLw17nPLV5t3Vgf4U4pf+VW0Uko5xpNiKdKU= diff --git a/deployment/go.mod b/deployment/go.mod index 3cae022c726..1fa898d3ec9 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -31,12 +31,12 @@ require ( github.com/sethvargo/go-retry v0.2.4 github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix github.com/smartcontractkit/chain-selectors v1.0.36 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 diff --git a/deployment/go.sum b/deployment/go.sum index 9a246add5ca..a67f7987516 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1400,10 +1400,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b h1:E/LpxQaG616VQdz6Zd/Y+OPwnhJbvCUJaCWAw/X7KMA= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= @@ -1422,8 +1422,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 h1:U49UgM8oEbssmKXDVkp8OpIr4h5YDwSLdpw2XUBsIfA= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5/go.mod h1:51o1f86HFbQb8aovFxjIhOgj2z7v0iLN7pnRKfvBLpQ= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 h1:nTUoe7GZLw17nPLV5t3Vgf4U4pf+VW0Uko5xpNiKdKU= diff --git a/go.mod b/go.mod index 57a4a61b77a..d8e21cf31dc 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( github.com/grafana/pyroscope-go v1.1.2 github.com/graph-gophers/dataloader v5.0.0+incompatible github.com/graph-gophers/graphql-go v1.5.0 - github.com/hashicorp/consul/sdk v0.16.0 + github.com/hashicorp/consul/sdk v0.16.1 github.com/hashicorp/go-envparse v0.1.0 github.com/hashicorp/go-plugin v1.6.2 github.com/hashicorp/go-retryablehttp v0.7.7 @@ -79,7 +79,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 @@ -87,7 +87,7 @@ require ( github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de @@ -231,7 +231,6 @@ require ( github.com/goccy/go-yaml v1.12.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect - github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect @@ -365,7 +364,6 @@ require ( go.mongodb.org/mongo-driver v1.15.0 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.31.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240823153156-2a54df7bffb9 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.6.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.28.0 // indirect diff --git a/go.sum b/go.sum index c6156945632..02936ecf8d6 100644 --- a/go.sum +++ b/go.sum @@ -641,8 +641,8 @@ github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 h1:BpJ2o0OR5FV7vrkDYf github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= -github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= +github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= +github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= @@ -1114,8 +1114,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= @@ -1132,8 +1132,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 h1:U49UgM8oEbssmKXDVkp8OpIr4h5YDwSLdpw2XUBsIfA= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5/go.mod h1:51o1f86HFbQb8aovFxjIhOgj2z7v0iLN7pnRKfvBLpQ= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index d709f3ff212..a8aaa8f68e1 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -48,7 +48,7 @@ require ( github.com/slack-go/slack v0.15.0 github.com/smartcontractkit/chain-selectors v1.0.36 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 @@ -435,7 +435,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect @@ -443,7 +443,7 @@ require ( github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index d7ded7bbaab..d2ee69b0118 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1428,10 +1428,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b h1:E/LpxQaG616VQdz6Zd/Y+OPwnhJbvCUJaCWAw/X7KMA= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= @@ -1450,8 +1450,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 h1:U49UgM8oEbssmKXDVkp8OpIr4h5YDwSLdpw2XUBsIfA= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5/go.mod h1:51o1f86HFbQb8aovFxjIhOgj2z7v0iLN7pnRKfvBLpQ= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 h1:E7k5Sym9WnMOc4X40lLnQb6BMosxi8DfUBU9pBJjHOQ= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 6efde83a29d..635a9ab72a4 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -28,7 +28,7 @@ require ( github.com/rs/zerolog v1.33.0 github.com/slack-go/slack v0.15.0 github.com/smartcontractkit/chain-selectors v1.0.36 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.21 github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.10 @@ -419,7 +419,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chainlink-automation v0.8.1 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect @@ -428,7 +428,7 @@ require ( github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 // indirect github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 3f0a4c14b3c..a434524a465 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1415,10 +1415,10 @@ github.com/smartcontractkit/chain-selectors v1.0.36 h1:KSpO8I+JOiuyN4FuXsV471sPo github.com/smartcontractkit/chain-selectors v1.0.36/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-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838 h1:AlXFxw+WhiKSqRPRZoGeWWoarTdxBi+kSiG/GOEjV2M= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250116160022-cd1edf667838/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b h1:E/LpxQaG616VQdz6Zd/Y+OPwnhJbvCUJaCWAw/X7KMA= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 h1:w7w42ml8MOxdoyAZ9+og0342UkiH3deRM1V0Pj5JR5g= @@ -1437,8 +1437,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 h1:U49UgM8oEbssmKXDVkp8OpIr4h5YDwSLdpw2XUBsIfA= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5/go.mod h1:51o1f86HFbQb8aovFxjIhOgj2z7v0iLN7pnRKfvBLpQ= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 h1:E7k5Sym9WnMOc4X40lLnQb6BMosxi8DfUBU9pBJjHOQ= From 8af2a50e0ab4f81c04b4a871659eaa9bac65a316 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:41:21 -0600 Subject: [PATCH 166/232] mod tidy --- core/scripts/go.sum | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 8b589346564..6a069284e75 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1170,8 +1170,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847 h1:kCcrM/osIQFmHx7ZOxeGIeYAMkSmTxkOXcmqHNlXQXQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250128193522-bdbfcc588847/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81 h1:GOLPigTQ6ZcX+C+UtHls0lElNN4HiPlcwZC9m1wOoVI= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250129142905-771fb9957d81/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 h1:dytZPggag6auyzmbhpIDmkHu7KrflIBEhLLec4/xFIk= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= From 72fbfdb7ac867be4f742f50a1744616dc5d098db Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:48:05 -0600 Subject: [PATCH 167/232] fix --- deployment/ccip/changeset/cs_deploy_chain.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/deployment/ccip/changeset/cs_deploy_chain.go b/deployment/ccip/changeset/cs_deploy_chain.go index ab67e70caa3..b8de97dbf9c 100644 --- a/deployment/ccip/changeset/cs_deploy_chain.go +++ b/deployment/ccip/changeset/cs_deploy_chain.go @@ -625,14 +625,12 @@ func deployChainContractsSolana( return fmt.Errorf("failed to get solana router program data: %w", err) } - defaultGasLimit := solBinary.Uint128{Lo: 3000, Hi: 0, Endianness: nil} - instruction, err := ccip_router.NewInitializeInstruction( chain.Selector, // chain selector - defaultGasLimit, // default gas limit - true, // allow out of order execution EnableExecutionAfter, // period to wait before allowing manual execution solana.PublicKey{}, + solana.PublicKey{}, + solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, GetRouterConfigPDA(ccipRouterProgram), GetRouterStatePDA(ccipRouterProgram), chain.DeployerKey.PublicKey(), From 9e74189b0805bb48509b61a52d42c61732f5c6b4 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:53:48 -0600 Subject: [PATCH 168/232] lint --- core/capabilities/ccip/delegate.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index 9255e7e601a..73c9277383f 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -298,7 +298,7 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela } func (d *Delegate) getEVMKeys(ctx context.Context, chainID *big.Int) ([]string, error) { - var result []string + result := make([]string, 0) ethKeys, err := d.keystore.Eth().EnabledAddressesForChain(ctx, chainID) if err != nil { return result, fmt.Errorf("error getting enabled addresses for chain: %s %w", chainID.String(), err) @@ -311,7 +311,7 @@ func (d *Delegate) getEVMKeys(ctx context.Context, chainID *big.Int) ([]string, } func (d *Delegate) getSolanaKeys() ([]string, error) { - var result []string + result := make([]string, 0) keys, err := d.keystore.Solana().GetAll() if err != nil { return result, fmt.Errorf("error getting all Solana keys: %w", err) @@ -324,7 +324,7 @@ func (d *Delegate) getSolanaKeys() ([]string, error) { } func (d *Delegate) getAptosKeys() ([]string, error) { - var result []string + result := make([]string, 0) keys, err := d.keystore.Aptos().GetAll() if err != nil { return result, fmt.Errorf("error getting all Aptos keys: %w", err) @@ -337,7 +337,7 @@ func (d *Delegate) getAptosKeys() ([]string, error) { } func (d *Delegate) getCosmosKeys() ([]string, error) { - var result []string + result := make([]string, 0) keys, err := d.keystore.Cosmos().GetAll() if err != nil { return result, fmt.Errorf("error getting all Cosmos keys: %w", err) @@ -350,7 +350,7 @@ func (d *Delegate) getCosmosKeys() ([]string, error) { } func (d *Delegate) getStarkNetKeys() ([]string, error) { - var result []string + result := make([]string, 0) keys, err := d.keystore.StarkNet().GetAll() if err != nil { return result, fmt.Errorf("error getting all StarkNet keys: %w", err) From aa9841d47cf0cd47d1cdd51b29b98abebcc7afe1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 12:55:23 -0600 Subject: [PATCH 169/232] update --- core/capabilities/ccip/ccipsolana/extradatadecoder.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go index c699e9f87f1..4b2e72ef34e 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder.go @@ -20,11 +20,9 @@ var ( // this should be moved to msghasher.go once merged // bytes4(keccak256("CCIP SVMExtraArgsV1")); - // bytes4 public constant SVM_EXTRA_ARGS_V1_TAG = 0x1f3b3aba; svmExtraArgsV1Tag = hexutil.MustDecode("0x1f3b3aba") // bytes4(keccak256("CCIP EVMExtraArgsV2")); - // bytes4 public constant EVM_EXTRA_ARGS_V2_TAG = 0x181dcf10; evmExtraArgsV2Tag = hexutil.MustDecode("0x181dcf10") ) From 32eb0104390c09ac826a328a60bcbe0bcc17d984 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 13:44:11 -0600 Subject: [PATCH 170/232] update --- .../ccip/configs/solana/chain_writer.go | 192 ++++++++++-------- .../smoke/ccip/ccip_reader_test.go | 25 +-- 2 files changed, 113 insertions(+), 104 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 38bdead660c..08f7f97abb2 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -6,26 +6,33 @@ import ( "fmt" "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-common/pkg/codec" idl "github.com/smartcontractkit/chainlink-ccip/chains/solana" "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" - "github.com/smartcontractkit/chainlink-solana/pkg/solana/codec" + solanacodec "github.com/smartcontractkit/chainlink-solana/pkg/solana/codec" ) var ccipRouterIDL = idl.FetchCCIPRouterIDL() const ( - destChainSelectorPath = "Message.Header.DestChainSelector" - destTokenAddress = "Message.TokenAmounts.DestTokenAddress" + destChainSelectorPath = "Info.AbstractReports.Messages.Header.DestChainSelector" + destTokenAddress = "Info.AbstractReports.Messages.TokenAmounts.DestTokenAddress" ) func getCommitMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { - computeBudgetProgramAddress := solana.ComputeBudget.String() sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() return chainwriter.MethodConfig{ - FromAddress: fromAddress, - InputModifications: nil, - ChainSpecificName: "commit", + FromAddress: fromAddress, + InputModifications: []codec.ModifierConfig{ + &codec.RenameModifierConfig{ + Fields: map[string]string{"ReportContextByteWords": "ReportContext"}, + }, + &codec.RenameModifierConfig{ + Fields: map[string]string{"RawReport": "Report"}, + }, + }, + ChainSpecificName: "commit", LookupTables: chainwriter.LookupTables{ StaticLookupTables: []solana.PublicKey{ commonAddressesLookupTable, @@ -40,29 +47,10 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm }, Seeds: []chainwriter.Seed{ {Static: []byte("source_chain_state")}, - {Dynamic: chainwriter.AccountLookup{Location: "MerkleRoot.DestChainSelector"}}, + {Dynamic: chainwriter.AccountLookup{Location: "Info.MerkleRoots.ChainSel"}}, }, IsSigner: false, - IsWritable: false, - }, - chainwriter.AccountConstant{ - Name: "RouterProgram", - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "RouterAccountState", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("state")}, - }, - IsSigner: false, - IsWritable: false, + IsWritable: true, }, chainwriter.PDALookups{ Name: "RouterReportAccount", @@ -72,17 +60,26 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm IsWritable: false, }, Seeds: []chainwriter.Seed{ + {Static: []byte("commit_report")}, + {Dynamic: chainwriter.AccountLookup{Location: "Info.MerkleRoots.ChainSel"}}, {Dynamic: chainwriter.AccountLookup{ - Location: "args.MerkleRoots", + Location: "Info.MerkleRoots.MerkleRoot", }}, }, IsSigner: false, IsWritable: false, }, chainwriter.AccountConstant{ - Name: "ComputeBudgetProgram", - Address: computeBudgetProgramAddress, + Name: "Authority", + Address: fromAddress, IsSigner: true, + IsWritable: true, + }, + // Account constant + chainwriter.AccountConstant{ + Name: "SystemProgram", + Address: solana.SystemProgramID.String(), + IsSigner: false, IsWritable: false, }, chainwriter.AccountConstant{ @@ -91,34 +88,78 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm IsSigner: true, IsWritable: false, }, + chainwriter.PDALookups{ + Name: "GlobalState", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("state")}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "BillingTokenConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("fee_billing_token_config")}, + {Dynamic: chainwriter.AccountLookup{Location: "Info.TokenPrices.TokenID"}}, + }, + IsSigner: false, + IsWritable: false, + }, + chainwriter.PDALookups{ + Name: "ChainConfigGasPrice", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("dest_chain_state")}, + {Dynamic: chainwriter.AccountLookup{Location: "Info.MerkleRoots.ChainSel"}}, + }, + IsSigner: false, + IsWritable: false, + }, }, DebugIDLocation: "", } } func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { - computeBudgetProgramAddress := solana.ComputeBudget.String() sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() return chainwriter.MethodConfig{ - FromAddress: fromAddress, - InputModifications: nil, - ChainSpecificName: "execute", + FromAddress: fromAddress, + InputModifications: []codec.ModifierConfig{ + &codec.RenameModifierConfig{ + Fields: map[string]string{"ReportContextByteWords": "ReportContext"}, + }, + &codec.RenameModifierConfig{ + Fields: map[string]string{"RawExecutionReport": "Report"}, + }, + }, + ChainSpecificName: "execute", + ArgsTransform: "CCIP", LookupTables: chainwriter.LookupTables{ DerivedLookupTables: []chainwriter.DerivedLookupTable{ { - Name: "RegistryTokenState", + Name: "PoolLookupTable", Accounts: chainwriter.PDALookups{ - Name: "RegistryTokenState", + Name: "TokenAdminRegistry", PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, + Address: routerProgramAddress, }, Seeds: []chainwriter.Seed{ {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, }, IsSigner: false, IsWritable: false, + InternalField: chainwriter.InternalField{ + TypeName: "TokenAdminRegistry", + Location: "LookupTable", + }, }, }, }, @@ -146,10 +187,11 @@ func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, com Address: routerProgramAddress, }, Seeds: []chainwriter.Seed{ - {Static: []byte("commit_report")}, + {Static: []byte("external_execution_config")}, {Dynamic: chainwriter.AccountLookup{Location: destChainSelectorPath}}, {Dynamic: chainwriter.AccountLookup{ - Location: "Info.MerkleRoot", + // The seed is the merkle root of the report, as passed into the input params. + Location: "Info.MerkleRoots.MerkleRoot", }}, }, IsSigner: false, @@ -196,8 +238,10 @@ func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, com IsWritable: false, }, chainwriter.AccountLookup{ - Name: "UserAccounts", - Location: "Message.ExtraArgs.Accounts", + Name: "UserAccounts", + Location: "Info.AbstractReports.Message.ExtraArgsDecoded.Accounts", + IsWritable: chainwriter.MetaBool{BitmapLocation: "Info.AbstractReports.Message.ExtraArgsDecoded.IsWritableBitmap"}, + IsSigner: chainwriter.MetaBool{Value: false}, }, chainwriter.PDALookups{ Name: "ReceiverAssociatedTokenAccount", @@ -205,13 +249,16 @@ func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, com Address: solana.SPLAssociatedTokenAccountProgramID.String(), }, Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, + {Static: []byte(fromAddress)}, + {Dynamic: chainwriter.AccountLookup{Location: "Info.AbstractReports.Messages.Receiver"}}, {Dynamic: chainwriter.AccountsFromLookupTable{ - LookupTableName: "RegistryTokenState", - IncludeIndexes: []int{5}, + LookupTableName: "PoolLookupTable", + IncludeIndexes: []int{6}, }}, {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, }, + IsSigner: false, + IsWritable: false, }, chainwriter.PDALookups{ Name: "PerChainTokenConfig", @@ -219,62 +266,33 @@ func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, com Address: routerProgramAddress, }, Seeds: []chainwriter.Seed{ + {Static: []byte("ccip_tokenpool_billing")}, {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, {Dynamic: chainwriter.AccountLookup{Location: destChainSelectorPath}}, }, IsSigner: false, IsWritable: false, }, - chainwriter.AccountsFromLookupTable{ - LookupTableName: "RegistryTokenState", - IncludeIndexes: []int{}, - }, chainwriter.PDALookups{ - Name: "RegistryTokenConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, + Name: "PoolChainConfig", + PublicKey: chainwriter.AccountsFromLookupTable{ + LookupTableName: "PoolLookupTable", + IncludeIndexes: []int{2}, }, Seeds: []chainwriter.Seed{ + {Static: []byte("ccip_tokenpool_billing")}, {Dynamic: chainwriter.AccountLookup{Location: destTokenAddress}}, - }, - IsSigner: false, - IsWritable: false, - }, - chainwriter.PDALookups{ - Name: "UserNoncePerChain", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Dynamic: chainwriter.AccountLookup{Location: "Message.Receiver"}}, {Dynamic: chainwriter.AccountLookup{Location: destChainSelectorPath}}, }, - }, - chainwriter.PDALookups{ - Name: "CPISigner", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - IsSigner: false, - IsWritable: false, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("external_token_pools_signer")}, - }, IsSigner: false, IsWritable: false, }, - chainwriter.AccountConstant{ - Name: "ComputeBudgetProgram", - Address: computeBudgetProgramAddress, - IsSigner: true, - IsWritable: false, + chainwriter.AccountsFromLookupTable{ + LookupTableName: "PoolLookupTable", + IncludeIndexes: []int{}, }, }, - DebugIDLocation: "Message.MessageID", + DebugIDLocation: "AbstractReport.Message.MessageID", } } @@ -290,7 +308,7 @@ func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLook } // validate CCIP Router IDL, errors not expected - var idl codec.IDL + var idl solanacodec.IDL if err = json.Unmarshal([]byte(ccipRouterIDL), &idl); err != nil { return chainwriter.ChainWriterConfig{}, fmt.Errorf("unexpected error: invalid CCIP Router IDL, error: %w", err) } diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 9d1219a4a33..7847d2c8b36 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -317,7 +317,6 @@ func TestCCIPReader_CommitReportsGTETimestamp(t *testing.T) { require.Eventually(t, func() bool { reports, err = s.reader.CommitReportsGTETimestamp( ctx, - chainD, // Skips first report //nolint:gosec // this won't overflow time.Unix(int64(firstReportTs)+1, 0), @@ -362,7 +361,6 @@ func TestCCIPReader_CommitReportsGTETimestamp_RespectsFinality(t *testing.T) { require.Never(t, func() bool { reports, err = s.reader.CommitReportsGTETimestamp( ctx, - chainD, // Skips first report //nolint:gosec // this won't overflow time.Unix(int64(firstReportTs)+1, 0), @@ -380,7 +378,6 @@ func TestCCIPReader_CommitReportsGTETimestamp_RespectsFinality(t *testing.T) { require.Eventually(t, func() bool { reports, err = s.reader.CommitReportsGTETimestamp( ctx, - chainD, // Skips first report //nolint:gosec // this won't overflow time.Unix(int64(firstReportTs)+1, 0), @@ -438,23 +435,18 @@ func TestCCIPReader_ExecutedMessageRanges(t *testing.T) { // Maybe another situation where chain reader doesn't register filters as expected. require.NoError(t, s.lp.Replay(ctx, 1)) - var executedRanges []cciptypes.SeqNumRange + var executedMsgs []cciptypes.SeqNum require.Eventually(t, func() bool { - executedRanges, err = s.reader.ExecutedMessageRanges( + executedMsgs, err = s.reader.ExecutedMessages( ctx, chainS1, - chainD, cciptypes.NewSeqNumRange(14, 15), ) require.NoError(t, err) - return len(executedRanges) == 2 + return len(executedMsgs) == 2 }, tests.WaitTimeout(t), 50*time.Millisecond) - assert.Equal(t, cciptypes.SeqNum(14), executedRanges[0].Start()) - assert.Equal(t, cciptypes.SeqNum(14), executedRanges[0].End()) - - assert.Equal(t, cciptypes.SeqNum(15), executedRanges[1].Start()) - assert.Equal(t, cciptypes.SeqNum(15), executedRanges[1].End()) + assert.Equal(t, []cciptypes.SeqNum{14, 15}, executedMsgs) } func TestCCIPReader_MsgsBetweenSeqNums(t *testing.T) { @@ -621,7 +613,7 @@ func TestCCIPReader_GetExpectedNextSequenceNumber(t *testing.T) { msgSentEvent := testhelpers.TestSendRequest(t, env.Env, state, srcChain, destChain, false, msg) require.Equal(t, uint64(i), msgSentEvent.SequenceNumber) require.Equal(t, uint64(i), msgSentEvent.Message.Header.Nonce) // check outbound nonce incremented - seqNum, err2 := reader.GetExpectedNextSequenceNumber(ctx, cs(srcChain), cs(destChain)) + seqNum, err2 := reader.GetExpectedNextSequenceNumber(ctx, cs(srcChain)) require.NoError(t, err2) require.Equal(t, cciptypes.SeqNum(i+1), seqNum) } @@ -686,7 +678,7 @@ func TestCCIPReader_Nonces(t *testing.T) { } addrQuery = append(addrQuery, utils.RandomAddress().String()) - results, err := s.reader.Nonces(ctx, sourceChain, chainD, addrQuery) + results, err := s.reader.Nonces(ctx, sourceChain, addrQuery) require.NoError(t, err) assert.Len(t, results, len(addrQuery)) for addr, nonce := range addrs { @@ -927,7 +919,7 @@ func benchmarkCommitReports(b *testing.B, logsInsertedFirst int, logsInsertedMat b.ResetTimer() for i := 0; i < b.N; i++ { - reports, err := s.reader.CommitReportsGTETimestamp(ctx, chainD, queryTimestamp, logsInsertedFirst) + reports, err := s.reader.CommitReportsGTETimestamp(ctx, queryTimestamp, logsInsertedFirst) require.NoError(b, err) require.Len(b, reports, logsInsertedFirst) } @@ -1060,10 +1052,9 @@ func benchmarkExecutedMessageRanges(b *testing.B, logsInsertedFirst int, startSe b.ResetTimer() for i := 0; i < b.N; i++ { - executedRanges, err := s.reader.ExecutedMessageRanges( + executedRanges, err := s.reader.ExecutedMessages( ctx, chainS1, - chainD, cciptypes.NewSeqNumRange(startSeqNum, endSeqNum), ) require.NoError(b, err) From 4e86a1036e88b59614d992003a4481f921c3b48d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 13:56:11 -0600 Subject: [PATCH 171/232] goimport --- core/capabilities/ccip/configs/solana/chain_writer.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 08f7f97abb2..8db0f759dd6 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-common/pkg/codec" idl "github.com/smartcontractkit/chainlink-ccip/chains/solana" From 7100acc6f48d88f1de4ac7e6dec908483c8e4258 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 14:07:30 -0600 Subject: [PATCH 172/232] update --- .../ccip/configs/solana/chain_writer.go | 55 +++++++++++-------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index 8db0f759dd6..a45814fab04 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -17,11 +17,12 @@ import ( var ccipRouterIDL = idl.FetchCCIPRouterIDL() const ( - destChainSelectorPath = "Info.AbstractReports.Messages.Header.DestChainSelector" - destTokenAddress = "Info.AbstractReports.Messages.TokenAmounts.DestTokenAddress" + destChainSelectorPath = "Info.AbstractReports.Messages.Header.DestChainSelector" + destTokenAddress = "Info.AbstractReports.Messages.TokenAmounts.DestTokenAddress" + merkleRootChainSelector = "Info.MerkleRoots.ChainSel" ) -func getCommitMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { +func getCommitMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey) chainwriter.MethodConfig { sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() return chainwriter.MethodConfig{ FromAddress: fromAddress, @@ -40,7 +41,17 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm }, }, Accounts: []chainwriter.Lookup{ - routerAccountConfig, + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, chainwriter.PDALookups{ Name: "SourceChainState", PublicKey: chainwriter.AccountConstant{ @@ -48,7 +59,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm }, Seeds: []chainwriter.Seed{ {Static: []byte("source_chain_state")}, - {Dynamic: chainwriter.AccountLookup{Location: "Info.MerkleRoots.ChainSel"}}, + {Dynamic: chainwriter.AccountLookup{Location: merkleRootChainSelector}}, }, IsSigner: false, IsWritable: true, @@ -62,7 +73,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm }, Seeds: []chainwriter.Seed{ {Static: []byte("commit_report")}, - {Dynamic: chainwriter.AccountLookup{Location: "Info.MerkleRoots.ChainSel"}}, + {Dynamic: chainwriter.AccountLookup{Location: merkleRootChainSelector}}, {Dynamic: chainwriter.AccountLookup{ Location: "Info.MerkleRoots.MerkleRoot", }}, @@ -119,7 +130,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm }, Seeds: []chainwriter.Seed{ {Static: []byte("dest_chain_state")}, - {Dynamic: chainwriter.AccountLookup{Location: "Info.MerkleRoots.ChainSel"}}, + {Dynamic: chainwriter.AccountLookup{Location: merkleRootChainSelector}}, }, IsSigner: false, IsWritable: false, @@ -129,7 +140,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm } } -func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey, routerAccountConfig chainwriter.PDALookups) chainwriter.MethodConfig { +func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, commonAddressesLookupTable solana.PublicKey) chainwriter.MethodConfig { sysvarInstructionsAddress := solana.SysVarInstructionsPubkey.String() return chainwriter.MethodConfig{ FromAddress: fromAddress, @@ -169,7 +180,17 @@ func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, com }, }, Accounts: []chainwriter.Lookup{ - routerAccountConfig, + chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + }, chainwriter.PDALookups{ Name: "SourceChainState", PublicKey: chainwriter.AccountConstant{ @@ -314,25 +335,13 @@ func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLook return chainwriter.ChainWriterConfig{}, fmt.Errorf("unexpected error: invalid CCIP Router IDL, error: %w", err) } - routeAccountConfig := chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - } - // solConfig references the ccip_example_config.go from github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter, which is currently subject to change solConfig := chainwriter.ChainWriterConfig{ Programs: map[string]chainwriter.ProgramConfig{ "ccip-router": { Methods: map[string]chainwriter.MethodConfig{ - "execute": getExecuteMethodConfig(fromAddress, routerProgramAddress, commonAddressesLookupTable, routeAccountConfig), - "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, commonAddressesLookupTable, routeAccountConfig), + "execute": getExecuteMethodConfig(fromAddress, routerProgramAddress, commonAddressesLookupTable), + "commit": getCommitMethodConfig(fromAddress, routerProgramAddress, commonAddressesLookupTable), }, IDL: ccipRouterIDL}, }, From a81a9b3cc92ecb7b48232ba0a15d60a1cb7b1ce0 Mon Sep 17 00:00:00 2001 From: Prashant Yadav <34992934+prashantkumar1982@users.noreply.github.com> Date: Thu, 30 Jan 2025 14:46:55 -0800 Subject: [PATCH 173/232] Solana MessageHasher (#15911) * initial code * update * minor * update test * update * lint * change set * update * update * update token data and test * update * fix test --------- Co-authored-by: Joe Huang --- .changeset/rich-frogs-work.md | 5 + .../capabilities/ccip/ccipsolana/msghasher.go | 142 ++++++++++++++++ .../ccip/ccipsolana/msghasher_test.go | 155 ++++++++++++++++++ .../capabilities/ccip/oraclecreator/plugin.go | 3 +- 4 files changed, 304 insertions(+), 1 deletion(-) create mode 100644 .changeset/rich-frogs-work.md create mode 100644 core/capabilities/ccip/ccipsolana/msghasher.go create mode 100644 core/capabilities/ccip/ccipsolana/msghasher_test.go diff --git a/.changeset/rich-frogs-work.md b/.changeset/rich-frogs-work.md new file mode 100644 index 00000000000..427f04e18b8 --- /dev/null +++ b/.changeset/rich-frogs-work.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +Adding solana message hasher #added diff --git a/core/capabilities/ccip/ccipsolana/msghasher.go b/core/capabilities/ccip/ccipsolana/msghasher.go new file mode 100644 index 00000000000..b4b7be62d7a --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/msghasher.go @@ -0,0 +1,142 @@ +package ccipsolana + +import ( + "context" + "errors" + "fmt" + "strings" + + "github.com/gagliardetto/solana-go" + + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/ccip" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/tokens" + "github.com/smartcontractkit/chainlink-common/pkg/logger" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +// MessageHasherV1 implements the MessageHasher interface. +// Compatible with: +// - "OnRamp 1.6.0-dev" +type MessageHasherV1 struct { + lggr logger.Logger +} + +func NewMessageHasherV1(lggr logger.Logger) *MessageHasherV1 { + return &MessageHasherV1{ + lggr: lggr, + } +} + +// Hash implements the MessageHasher interface. +func (h *MessageHasherV1) Hash(_ context.Context, msg cciptypes.Message) (cciptypes.Bytes32, error) { + h.lggr.Debugw("hashing message", "msg", msg) + + anyToSolanaMessage := ccip_router.Any2SVMRampMessage{} + anyToSolanaMessage.Header = ccip_router.RampMessageHeader{ + SourceChainSelector: uint64(msg.Header.SourceChainSelector), + DestChainSelector: uint64(msg.Header.DestChainSelector), + SequenceNumber: uint64(msg.Header.SequenceNumber), + MessageId: msg.Header.MessageID, + Nonce: msg.Header.Nonce, + } + anyToSolanaMessage.TokenReceiver = solana.PublicKeyFromBytes(msg.Receiver) + anyToSolanaMessage.Sender = msg.Sender + anyToSolanaMessage.Data = msg.Data + for _, ta := range msg.TokenAmounts { + destGasAmount, err := extractDestGasAmountFromMap(ta.DestExecDataDecoded) + if err != nil { + return [32]byte{}, err + } + + anyToSolanaMessage.TokenAmounts = append(anyToSolanaMessage.TokenAmounts, ccip_router.Any2SVMTokenTransfer{ + SourcePoolAddress: ta.SourcePoolAddress, + DestTokenAddress: solana.PublicKeyFromBytes(ta.DestTokenAddress), + ExtraData: ta.ExtraData, + DestGasAmount: destGasAmount, + Amount: ccip_router.CrossChainAmount{LeBytes: tokens.ToLittleEndianU256(ta.Amount.Int.Uint64())}, + }) + } + + var err error + var msgAccounts []solana.PublicKey + anyToSolanaMessage.ExtraArgs, msgAccounts, err = parseExtraArgsMapWithAccounts(msg.ExtraArgsDecoded) + if err != nil { + return [32]byte{}, fmt.Errorf("failed to decode ExtraArgs: %w", err) + } + + hash, err := ccip.HashAnyToSVMMessage(anyToSolanaMessage, msg.Header.OnRamp, msgAccounts) + return [32]byte(hash), err +} + +// TODO remove extractDestGasAmountFromMap once https://github.com/smartcontractkit/chainlink/pull/15816 merged +func extractDestGasAmountFromMap(input map[string]any) (uint32, error) { + var out uint32 + + // Iterate through the expected fields in the struct + for fieldName, fieldValue := range input { + lowercase := strings.ToLower(fieldName) + switch lowercase { + case "destgasamount": + // Expect uint32 + if v, ok := fieldValue.(uint32); ok { + out = v + } else { + return out, errors.New("invalid type for destgasamount, expected uint32") + } + default: + return out, errors.New("invalid token message, dest gas amount not found in the DestExecDataDecoded map") + } + } + + return out, nil +} + +// TODO combine parseExtraArgsMapWithAccounts with parseExtraArgsMap once https://github.com/smartcontractkit/chainlink/pull/15816 merged +func parseExtraArgsMapWithAccounts(input map[string]any) (ccip_router.Any2SVMRampExtraArgs, []solana.PublicKey, error) { + // Parse input map into SolanaExtraArgs + var out ccip_router.Any2SVMRampExtraArgs + var accounts []solana.PublicKey + + // Iterate through the expected fields in the struct + // the field name should match with the one in SVMExtraArgsV1 + // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 + for fieldName, fieldValue := range input { + lowercase := strings.ToLower(fieldName) + switch lowercase { + case "computeunits": + // Expect uint32 + if v, ok := fieldValue.(uint32); ok { + out.ComputeUnits = v + } else { + return out, accounts, errors.New("invalid type for ComputeUnits, expected uint32") + } + case "accountiswritablebitmap": + // Expect uint64 + if v, ok := fieldValue.(uint64); ok { + out.IsWritableBitmap = v + } else { + return out, accounts, errors.New("invalid type for IsWritableBitmap, expected uint64") + } + case "accounts": + // Expect [][32]byte + if v, ok := fieldValue.([][32]byte); ok { + a := make([]solana.PublicKey, len(v)) + for i, val := range v { + a[i] = solana.PublicKeyFromBytes(val[:]) + } + accounts = a + } else { + return out, accounts, errors.New("invalid type for Accounts, expected [][32]byte") + } + default: + // no error here, aswe only need the keys to construct SVMExtraArgs, other keys can be skipped without + // return errors because there's no guarantee SVMExtraArgs will match with SVMExtraArgsV1 + } + } + return out, accounts, nil +} + +// Interface compliance check +var _ cciptypes.MessageHasher = (*MessageHasherV1)(nil) diff --git a/core/capabilities/ccip/ccipsolana/msghasher_test.go b/core/capabilities/ccip/ccipsolana/msghasher_test.go new file mode 100644 index 00000000000..2e9d4f36f90 --- /dev/null +++ b/core/capabilities/ccip/ccipsolana/msghasher_test.go @@ -0,0 +1,155 @@ +package ccipsolana + +import ( + "bytes" + cryptorand "crypto/rand" + "math/big" + "math/rand" + "testing" + + agbinary "github.com/gagliardetto/binary" + "github.com/gagliardetto/solana-go" + "github.com/stretchr/testify/require" + + "github.com/smartcontractkit/chainlink-ccip/chains/solana/contracts/tests/config" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/utils/ccip" + + "github.com/smartcontractkit/chainlink-common/pkg/logger" + + "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" + "github.com/smartcontractkit/chainlink/v2/evm/utils" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +func TestMessageHasher_Any2Solana(t *testing.T) { + any2AnyMsg, any2SolanaMsg, msgAccounts := createAny2SolanaMessages(t) + msgHasher := NewMessageHasherV1(logger.Test(t)) + actualHash, err := msgHasher.Hash(testutils.Context(t), any2AnyMsg) + require.NoError(t, err) + expectedHash, err := ccip.HashAnyToSVMMessage(any2SolanaMsg, any2AnyMsg.Header.OnRamp, msgAccounts) + require.NoError(t, err) + require.Equal(t, expectedHash, actualHash[:32]) +} + +func createAny2SolanaMessages(t *testing.T) (cciptypes.Message, ccip_router.Any2SVMRampMessage, []solana.PublicKey) { + messageID := utils.RandomBytes32() + + sourceChain := rand.Uint64() + seqNum := rand.Uint64() + nonce := rand.Uint64() + destChain := rand.Uint64() + + messageData := make([]byte, rand.Intn(2048)) + _, err := cryptorand.Read(messageData) + require.NoError(t, err) + + sender := abiEncodedAddress(t) + receiver := solana.MustPublicKeyFromBase58("DS2tt4BX7YwCw7yrDNwbAdnYrxjeCPeGJbHmZEYC8RTb") + computeUnit := uint32(1000) + bitmap := uint64(10) + + extraArgs := ccip_router.Any2SVMRampExtraArgs{ + ComputeUnits: computeUnit, + IsWritableBitmap: bitmap, + } + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + err = extraArgs.MarshalWithEncoder(encoder) + require.NoError(t, err) + tokenAmount := cciptypes.NewBigInt(big.NewInt(rand.Int63())) + + ccipTokenAmounts := make([]cciptypes.RampTokenAmount, 5) + for z := 0; z < 5; z++ { + ccipTokenAmounts[z] = cciptypes.RampTokenAmount{ + SourcePoolAddress: cciptypes.UnknownAddress("DS2tt4BX7YwCw7yrDNwbAdnYrxjeCPeGJbHmZEYC8RTb"), + DestTokenAddress: receiver.Bytes(), + Amount: tokenAmount, + DestExecDataDecoded: map[string]any{ + "destGasAmount": uint32(10), + }, + } + } + + solTokenAmounts := make([]ccip_router.Any2SVMTokenTransfer, 5) + for z := 0; z < 5; z++ { + solTokenAmounts[z] = ccip_router.Any2SVMTokenTransfer{ + SourcePoolAddress: cciptypes.UnknownAddress("DS2tt4BX7YwCw7yrDNwbAdnYrxjeCPeGJbHmZEYC8RTb"), + DestTokenAddress: receiver, + Amount: ccip_router.CrossChainAmount{LeBytes: [32]uint8(encodeBigIntToFixedLengthLE(tokenAmount.Int, 32))}, + DestGasAmount: uint32(10), + } + } + + any2SolanaMsg := ccip_router.Any2SVMRampMessage{ + Header: ccip_router.RampMessageHeader{ + MessageId: messageID, + SourceChainSelector: sourceChain, + DestChainSelector: destChain, + SequenceNumber: seqNum, + Nonce: nonce, + }, + Sender: sender, + TokenReceiver: receiver, + Data: messageData, + TokenAmounts: solTokenAmounts, + ExtraArgs: extraArgs, + } + any2AnyMsg := cciptypes.Message{ + Header: cciptypes.RampMessageHeader{ + MessageID: messageID, + SourceChainSelector: cciptypes.ChainSelector(sourceChain), + DestChainSelector: cciptypes.ChainSelector(destChain), + SequenceNumber: cciptypes.SeqNum(seqNum), + Nonce: nonce, + OnRamp: abiEncodedAddress(t), + }, + Sender: sender, + Receiver: receiver.Bytes(), + Data: messageData, + TokenAmounts: ccipTokenAmounts, + FeeToken: []byte{}, + FeeTokenAmount: cciptypes.NewBigIntFromInt64(0), + ExtraArgs: buf.Bytes(), + ExtraArgsDecoded: map[string]any{ + "ComputeUnits": computeUnit, + "AccountIsWritableBitmap": bitmap, + "Accounts": [][32]byte{ + [32]byte(config.CcipLogicReceiver.Bytes()), + [32]byte(config.ReceiverTargetAccountPDA.Bytes()), + [32]byte(solana.SystemProgramID.Bytes()), + }, + }, + } + + msgAccounts := []solana.PublicKey{ + config.CcipLogicReceiver, + config.ReceiverTargetAccountPDA, + solana.SystemProgramID, + } + return any2AnyMsg, any2SolanaMsg, msgAccounts +} + +func abiEncodedAddress(t *testing.T) []byte { + addr := utils.RandomAddress() + encoded, err := utils.ABIEncode(`[{"type": "address"}]`, addr) + require.NoError(t, err) + return encoded +} + +// TODO remove encodeBigIntToFixedLengthLE once https://github.com/smartcontractkit/chainlink/pull/15816 merged +func encodeBigIntToFixedLengthLE(bi *big.Int, length int) []byte { + // Create a fixed-length byte array + paddedBytes := make([]byte, length) + + // Use FillBytes to fill the array with big-endian data, zero-padded + bi.FillBytes(paddedBytes) + + // Reverse the array for little-endian encoding + for i, j := 0, len(paddedBytes)-1; i < j; i, j = i+1, j-1 { + paddedBytes[i], paddedBytes[j] = paddedBytes[j], paddedBytes[i] + } + + return paddedBytes +} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 7226da1372c..40aa06c21f5 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -19,6 +19,7 @@ import ( "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3confighelper" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" solanaconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/solana" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" @@ -258,7 +259,7 @@ var plugins = map[string]plugin{ CommitPluginCodec: nil, ExecutePluginCodec: nil, ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), - MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return nil }, + MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return ccipsolana.NewMessageHasherV1(lggr) }, TokenDataEncoder: nil, GasEstimateProvider: nil, RMNCrypto: func(lggr logger.Logger) cciptypes.RMNCrypto { return nil }, From c088d5c2a78ca26db827b548218d5db62eae5f1a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 19:27:13 -0600 Subject: [PATCH 174/232] mod --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 85b2f9e1f78..7eff62291dc 100644 --- a/go.mod +++ b/go.mod @@ -130,7 +130,7 @@ require ( k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 ) -require github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect +require github.com/bytecodealliance/wasmtime-go/v28 v28.0.0 // indirect require ( cel.dev/expr v0.17.0 // indirect diff --git a/go.sum b/go.sum index fafffecd38d..ac7054124b3 100644 --- a/go.sum +++ b/go.sum @@ -189,8 +189,8 @@ github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 h1:gfAMKE626QEuKG3si0 github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129/go.mod h1:u9UyCz2eTrSGy6fbupqJ54eY5c4IC8gREQ1053dK12U= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 h1:NJvU4S8KEk1GnF6+FvlnzMD/8wXTj/mYJSG6Q4yu3Pw= -github.com/bytecodealliance/wasmtime-go/v23 v23.0.0/go.mod h1:5YIL+Ouiww2zpO7u+iZ1U1G5NvmwQYaXdmCZQGjQM0U= +github.com/bytecodealliance/wasmtime-go/v28 v28.0.0 h1:aBU8cexP2rPZ0Qz488kvn2NXvWZHL2aG1/+n7Iv+xGc= +github.com/bytecodealliance/wasmtime-go/v28 v28.0.0/go.mod h1:4OCU0xAW9ycwtX4nMF4zxwgJBJ5/0eMfJiHB0wAmkV4= github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU= github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= From ff083a48bf6b11fdbf8e3de9e9878632c59af631 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 19:42:10 -0600 Subject: [PATCH 175/232] update --- .../ccip/ccipsolana/executecodec.go | 36 ++----------------- .../capabilities/ccip/ccipsolana/msghasher.go | 24 ------------- 2 files changed, 2 insertions(+), 58 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec.go b/core/capabilities/ccip/ccipsolana/executecodec.go index 1072b30b7e7..0cf05e2df13 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec.go +++ b/core/capabilities/ccip/ccipsolana/executecodec.go @@ -64,8 +64,8 @@ func (e *ExecutePluginCodecV1) Encode(ctx context.Context, report cciptypes.Exec }) } - var extraArgs ccip_router.SVMExtraArgs - extraArgs, err := parseExtraArgsMap(msg.ExtraArgsDecoded) + var extraArgs ccip_router.Any2SVMRampExtraArgs + extraArgs, _, err := parseExtraArgsMapWithAccounts(msg.ExtraArgsDecoded) if err != nil { return nil, fmt.Errorf("invalid extra args map: %w", err) } @@ -191,38 +191,6 @@ func (e *ExecutePluginCodecV1) Decode(ctx context.Context, encodedReport []byte) return report, nil } -func parseExtraArgsMap(input map[string]any) (ccip_router.SVMExtraArgs, error) { - // Parse input map into SolanaExtraArgs - var out ccip_router.SVMExtraArgs - - // Iterate through the expected fields in the struct - // the field name should match with the one in SVMExtraArgsV1 - // https://github.com/smartcontractkit/chainlink/blob/33c0bda696b0ed97f587a46eacd5c65bed9fb2c1/contracts/src/v0.8/ccip/libraries/Client.sol#L57 - for fieldName, fieldValue := range input { - lowercase := strings.ToLower(fieldName) - switch lowercase { - case "computeunits": - // Expect uint32 - if v, ok := fieldValue.(uint32); ok { - out.ComputeUnits = v - } else { - return out, errors.New("invalid type for ComputeUnits, expected uint32") - } - case "accountiswritablebitmap": - // Expect uint64 - if v, ok := fieldValue.(uint64); ok { - out.IsWritableBitmap = v - } else { - return out, errors.New("invalid type for IsWritableBitmap, expected uint64") - } - // we only need the keys to construct SVMExtraArgs, other keys can be skipped without return errors - // because there's no guarantee SVMExtraArgs will match with SVMExtraArgsV1 - } - } - - return out, nil -} - func extractDestGasAmountFromMap(input map[string]any) (uint32, error) { var out uint32 diff --git a/core/capabilities/ccip/ccipsolana/msghasher.go b/core/capabilities/ccip/ccipsolana/msghasher.go index b4b7be62d7a..ff595b83848 100644 --- a/core/capabilities/ccip/ccipsolana/msghasher.go +++ b/core/capabilities/ccip/ccipsolana/msghasher.go @@ -70,30 +70,6 @@ func (h *MessageHasherV1) Hash(_ context.Context, msg cciptypes.Message) (ccipty return [32]byte(hash), err } -// TODO remove extractDestGasAmountFromMap once https://github.com/smartcontractkit/chainlink/pull/15816 merged -func extractDestGasAmountFromMap(input map[string]any) (uint32, error) { - var out uint32 - - // Iterate through the expected fields in the struct - for fieldName, fieldValue := range input { - lowercase := strings.ToLower(fieldName) - switch lowercase { - case "destgasamount": - // Expect uint32 - if v, ok := fieldValue.(uint32); ok { - out = v - } else { - return out, errors.New("invalid type for destgasamount, expected uint32") - } - default: - return out, errors.New("invalid token message, dest gas amount not found in the DestExecDataDecoded map") - } - } - - return out, nil -} - -// TODO combine parseExtraArgsMapWithAccounts with parseExtraArgsMap once https://github.com/smartcontractkit/chainlink/pull/15816 merged func parseExtraArgsMapWithAccounts(input map[string]any) (ccip_router.Any2SVMRampExtraArgs, []solana.PublicKey, error) { // Parse input map into SolanaExtraArgs var out ccip_router.Any2SVMRampExtraArgs From 57999be5533eb81c3e987fc02efcff3be1d92b1b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 19:59:47 -0600 Subject: [PATCH 176/232] clean up --- .../ccip/ccipsolana/executecodec_test.go | 2 +- .../ccip/ccipsolana/msghasher_test.go | 16 ---------------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 0d872ab4f4f..446390daf3d 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -54,7 +54,7 @@ var randomExecuteReport = func(t *testing.T, sourceChainSelector uint64) cciptyp } } - extraArgs := ccip_router.SVMExtraArgs{ + extraArgs := ccip_router.Any2SVMRampExtraArgs{ ComputeUnits: 1000, IsWritableBitmap: 2, } diff --git a/core/capabilities/ccip/ccipsolana/msghasher_test.go b/core/capabilities/ccip/ccipsolana/msghasher_test.go index 2e9d4f36f90..d4cc339cfbf 100644 --- a/core/capabilities/ccip/ccipsolana/msghasher_test.go +++ b/core/capabilities/ccip/ccipsolana/msghasher_test.go @@ -137,19 +137,3 @@ func abiEncodedAddress(t *testing.T) []byte { require.NoError(t, err) return encoded } - -// TODO remove encodeBigIntToFixedLengthLE once https://github.com/smartcontractkit/chainlink/pull/15816 merged -func encodeBigIntToFixedLengthLE(bi *big.Int, length int) []byte { - // Create a fixed-length byte array - paddedBytes := make([]byte, length) - - // Use FillBytes to fill the array with big-endian data, zero-padded - bi.FillBytes(paddedBytes) - - // Reverse the array for little-endian encoding - for i, j := 0, len(paddedBytes)-1; i < j; i, j = i+1, j-1 { - paddedBytes[i], paddedBytes[j] = paddedBytes[j], paddedBytes[i] - } - - return paddedBytes -} From 6b1a86b53ab78d9e9939d81af0ecae4f3c317f2f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 20:07:07 -0600 Subject: [PATCH 177/232] update --- go.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/go.md b/go.md index d361331b328..99d0984edd1 100644 --- a/go.md +++ b/go.md @@ -47,13 +47,13 @@ flowchart LR click chainlink-protos/orchestrator href "https://github.com/smartcontractkit/chainlink-protos" chainlink-protos/svr click chainlink-protos/svr href "https://github.com/smartcontractkit/chainlink-protos" + chainlink-solana --> chainlink-ccip + chainlink-solana --> chainlink-ccip/chains/solana chainlink-solana --> chainlink-framework/multinode click chainlink-solana href "https://github.com/smartcontractkit/chainlink-solana" chainlink-starknet/relayer --> chainlink-common click chainlink-starknet/relayer href "https://github.com/smartcontractkit/chainlink-starknet" chainlink/v2 --> chainlink-automation - chainlink/v2 --> chainlink-ccip - chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds @@ -155,6 +155,8 @@ flowchart LR click chainlink-protos/orchestrator href "https://github.com/smartcontractkit/chainlink-protos" chainlink-protos/svr click chainlink-protos/svr href "https://github.com/smartcontractkit/chainlink-protos" + chainlink-solana --> chainlink-ccip + chainlink-solana --> chainlink-ccip/chains/solana chainlink-solana --> chainlink-framework/multinode click chainlink-solana href "https://github.com/smartcontractkit/chainlink-solana" chainlink-starknet/relayer --> chainlink-common @@ -186,8 +188,6 @@ flowchart LR chainlink/load-tests --> chainlink/integration-tests click chainlink/load-tests href "https://github.com/smartcontractkit/chainlink" chainlink/v2 --> chainlink-automation - chainlink/v2 --> chainlink-ccip - chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds From 96888f658d8d71d9f1fea5ae493dac0aa9909d3d Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 30 Jan 2025 20:35:03 -0600 Subject: [PATCH 178/232] update --- .../ccip/configs/solana/chain_writer.go | 85 +++++++++---------- 1 file changed, 38 insertions(+), 47 deletions(-) diff --git a/core/capabilities/ccip/configs/solana/chain_writer.go b/core/capabilities/ccip/configs/solana/chain_writer.go index a45814fab04..941c04f7c68 100644 --- a/core/capabilities/ccip/configs/solana/chain_writer.go +++ b/core/capabilities/ccip/configs/solana/chain_writer.go @@ -41,17 +41,7 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm }, }, Accounts: []chainwriter.Lookup{ - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, + getRouterAccountConfig(routerProgramAddress), chainwriter.PDALookups{ Name: "SourceChainState", PublicKey: chainwriter.AccountConstant{ @@ -81,19 +71,8 @@ func getCommitMethodConfig(fromAddress string, routerProgramAddress string, comm IsSigner: false, IsWritable: false, }, - chainwriter.AccountConstant{ - Name: "Authority", - Address: fromAddress, - IsSigner: true, - IsWritable: true, - }, - // Account constant - chainwriter.AccountConstant{ - Name: "SystemProgram", - Address: solana.SystemProgramID.String(), - IsSigner: false, - IsWritable: false, - }, + getAuthorityAccountConstant(fromAddress), + getSystemProgramConstant(), chainwriter.AccountConstant{ Name: "SysvarInstructions", Address: sysvarInstructionsAddress, @@ -180,17 +159,7 @@ func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, com }, }, Accounts: []chainwriter.Lookup{ - chainwriter.PDALookups{ - Name: "RouterAccountConfig", - PublicKey: chainwriter.AccountConstant{ - Address: routerProgramAddress, - }, - Seeds: []chainwriter.Seed{ - {Static: []byte("config")}, - }, - IsSigner: false, - IsWritable: false, - }, + getRouterAccountConfig(routerProgramAddress), chainwriter.PDALookups{ Name: "SourceChainState", PublicKey: chainwriter.AccountConstant{ @@ -230,18 +199,8 @@ func getExecuteMethodConfig(fromAddress string, routerProgramAddress string, com IsSigner: false, IsWritable: false, }, - chainwriter.AccountConstant{ - Name: "Authority", - Address: fromAddress, - IsSigner: true, - IsWritable: true, - }, - chainwriter.AccountConstant{ - Name: "SystemProgram", - Address: solana.SystemProgramID.String(), - IsSigner: false, - IsWritable: false, - }, + getAuthorityAccountConstant(fromAddress), + getSystemProgramConstant(), chainwriter.AccountConstant{ Name: "SysvarInstructions", Address: sysvarInstructionsAddress, @@ -349,3 +308,35 @@ func GetSolanaChainWriterConfig(routerProgramAddress string, commonAddressesLook return solConfig, nil } + +func getRouterAccountConfig(routerProgramAddress string) chainwriter.PDALookups { + return chainwriter.PDALookups{ + Name: "RouterAccountConfig", + PublicKey: chainwriter.AccountConstant{ + Address: routerProgramAddress, + }, + Seeds: []chainwriter.Seed{ + {Static: []byte("config")}, + }, + IsSigner: false, + IsWritable: false, + } +} + +func getAuthorityAccountConstant(fromAddress string) chainwriter.AccountConstant { + return chainwriter.AccountConstant{ + Name: "Authority", + Address: fromAddress, + IsSigner: true, + IsWritable: true, + } +} + +func getSystemProgramConstant() chainwriter.AccountConstant { + return chainwriter.AccountConstant{ + Name: "SystemProgram", + Address: solana.SystemProgramID.String(), + IsSigner: false, + IsWritable: false, + } +} From 951498b947c91bb3b5bb607a3eedc0b9f7eaa59f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 31 Jan 2025 11:29:26 -0600 Subject: [PATCH 179/232] add on-chain data decoding unit test coverage --- .../ccip/ccipsolana/commitcodec_test.go | 72 +++++++++++++++++++ .../ccip/ccipsolana/executecodec_test.go | 57 +++++++++++++++ 2 files changed, 129 insertions(+) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go index ec89ab2f65a..6f2e3ef4353 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec_test.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -1,11 +1,15 @@ package ccipsolana import ( + "bytes" "math/big" "math/rand" + "strconv" "testing" + agbinary "github.com/gagliardetto/binary" solanago "github.com/gagliardetto/solana-go" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -153,3 +157,71 @@ func BenchmarkCommitPluginCodecV1_Encode_Decode(b *testing.B) { require.Equal(b, rep, decodedReport) } } + +func Test_DecodingCommitReport(t *testing.T) { + t.Run("decode on-chain commit report", func(t *testing.T) { + chainSel := cciptypes.ChainSelector(rand.Uint64()) + minSeqNr := rand.Uint64() + maxSeqNr := minSeqNr + 10 + onRampAddr, err := solanago.NewRandomPrivateKey() + require.NoError(t, err) + + tokenSource := solanago.MustPublicKeyFromBase58("C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8") + tokenPrice := encodeBigIntToFixedLengthLE(big.NewInt(rand.Int63()), 28) + gasPrice := encodeBigIntToFixedLengthLE(big.NewInt(rand.Int63()), 28) + merkleRoot := utils.RandomBytes32() + + tpu := []ccip_router.TokenPriceUpdate{ + { + SourceToken: tokenSource, + UsdPerToken: [28]uint8(tokenPrice), + }, + } + + gpu := []ccip_router.GasPriceUpdate{ + {UsdPerUnitGas: [28]uint8(gasPrice), DestChainSelector: uint64(chainSel)}, + {UsdPerUnitGas: [28]uint8(gasPrice), DestChainSelector: uint64(chainSel)}, + {UsdPerUnitGas: [28]uint8(gasPrice), DestChainSelector: uint64(chainSel)}, + } + + onChainReport := ccip_router.CommitInput{ + MerkleRoot: ccip_router.MerkleRoot{ + SourceChainSelector: uint64(chainSel), + OnRampAddress: onRampAddr.PublicKey().Bytes(), + MinSeqNr: minSeqNr, + MaxSeqNr: maxSeqNr, + MerkleRoot: merkleRoot, + }, + PriceUpdates: ccip_router.PriceUpdates{ + TokenPriceUpdates: tpu, + GasPriceUpdates: gpu, + }, + } + + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + err = onChainReport.MarshalWithEncoder(encoder) + require.NoError(t, err) + + commitCodec := NewCommitPluginCodecV1() + decode, err := commitCodec.Decode(testutils.Context(t), buf.Bytes()) + require.NoError(t, err) + mr := decode.MerkleRoots[0] + + // check decoded ocr report merkle root matches with on-chain report + require.Equal(t, strconv.FormatUint(minSeqNr, 10), mr.SeqNumsRange.Start().String()) + require.Equal(t, strconv.FormatUint(maxSeqNr, 10), mr.SeqNumsRange.End().String()) + require.Equal(t, cciptypes.UnknownAddress(onRampAddr.PublicKey().Bytes()), mr.OnRampAddress) + require.Equal(t, cciptypes.Bytes32(merkleRoot), mr.MerkleRoot) + + // check decoded ocr report token price update matches with on-chain report + pu := decode.PriceUpdates.TokenPriceUpdates[0] + require.Equal(t, decodeLEToBigInt(tokenPrice), pu.Price) + require.Equal(t, cciptypes.UnknownEncodedAddress(tokenSource.String()), pu.TokenID) + + // check decoded ocr report gas price update matches with on-chain report + gu := decode.PriceUpdates.GasPriceUpdates[0] + require.Equal(t, decodeLEToBigInt(gasPrice), gu.GasPrice) + require.Equal(t, chainSel, gu.ChainSel) + }) +} diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 446390daf3d..f2a3b73b245 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -179,3 +179,60 @@ func TestExecutePluginCodecV1(t *testing.T) { }) } } + +func Test_DecodingExecuteReport(t *testing.T) { + t.Run("decode on-chain execute report", func(t *testing.T) { + chainSel := cciptypes.ChainSelector(rand.Uint64()) + onRampAddr, err := solanago.NewRandomPrivateKey() + require.NoError(t, err) + + destGasAmount := uint32(10) + tokenAmount := big.NewInt(rand.Int63()) + tokenReceiver := solanago.MustPublicKeyFromBase58("C8WSPj3yyus1YN3yNB6YA5zStYtbjQWtpmKadmvyUXq8") + extraArgs := ccip_router.Any2SVMRampExtraArgs{ + ComputeUnits: 1000, + IsWritableBitmap: 2, + } + + onChainReport := ccip_router.ExecutionReportSingleChain{ + SourceChainSelector: uint64(chainSel), + Message: ccip_router.Any2SVMRampMessage{ + Header: ccip_router.RampMessageHeader{ + SourceChainSelector: uint64(chainSel), + }, + TokenReceiver: tokenReceiver, + ExtraArgs: extraArgs, + TokenAmounts: []ccip_router.Any2SVMTokenTransfer{ + { + Amount: ccip_router.CrossChainAmount{LeBytes: [32]uint8(encodeBigIntToFixedLengthLE(tokenAmount, 32))}, + DestGasAmount: destGasAmount, + }, + }, + OnRampAddress: onRampAddr.PublicKey().Bytes(), + }, + } + + var extraArgsBuf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&extraArgsBuf) + err = extraArgs.MarshalWithEncoder(encoder) + require.NoError(t, err) + + var buf bytes.Buffer + encoder = agbinary.NewBorshEncoder(&buf) + err = onChainReport.MarshalWithEncoder(encoder) + require.NoError(t, err) + + executeCodec := NewExecutePluginCodecV1() + decode, err := executeCodec.Decode(testutils.Context(t), buf.Bytes()) + require.NoError(t, err) + + report := decode.ChainReports[0] + require.Equal(t, chainSel, report.SourceChainSelector) + + msg := report.Messages[0] + require.Equal(t, cciptypes.UnknownAddress(tokenReceiver.Bytes()), msg.Receiver) + require.Equal(t, cciptypes.Bytes(extraArgsBuf.Bytes()), msg.ExtraArgs) + require.Equal(t, tokenAmount, msg.TokenAmounts[0].Amount.Int) + require.Equal(t, destGasAmount, bytesToUint32LE(msg.TokenAmounts[0].DestExecData)) + }) +} From 38a071ca8fdbce7221ca3cebb27f4643a8ba850b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 31 Jan 2025 11:33:32 -0600 Subject: [PATCH 180/232] add comment --- core/capabilities/ccip/oraclecreator/plugin.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index d17e62f56e6..10b3d927df4 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -492,6 +492,7 @@ func getChainReaderConfig( chainSelector cciptypes.ChainSelector, chainFamily string, ) ([]byte, error) { + // consider refactoring this to the map[string]plugin in the future switch chainFamily { case relay.NetworkEVM: var chainReaderConfig evmrelaytypes.ChainReaderConfig @@ -561,7 +562,7 @@ func createChainWriter( var err error var chainWriterConfig []byte transmitter, ok := transmitters[types.NewRelayID(chainFamily, chainID)] - + // consider refactoring this to the map[string]plugin in the future switch chainFamily { case relay.NetworkSolana: var solConfig chainwriter.ChainWriterConfig From 0c9160005c33d9634602258f7418ec0280ba69e0 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 31 Jan 2025 12:01:38 -0600 Subject: [PATCH 181/232] fix import --- core/capabilities/ccip/ccipsolana/commitcodec_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go index 6f2e3ef4353..19f9c937669 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec_test.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -9,10 +9,11 @@ import ( agbinary "github.com/gagliardetto/binary" solanago "github.com/gagliardetto/solana-go" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" "github.com/smartcontractkit/chainlink/v2/evm/utils" From 7e72097a397f3281c35116fb40c62d4f582028fa Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 31 Jan 2025 14:47:25 -0600 Subject: [PATCH 182/232] more test --- .../ccip/ccipsolana/commitcodec_test.go | 23 ++++++++++++++ .../ccip/ccipsolana/executecodec_test.go | 31 +++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go index 19f9c937669..e02e6773c9f 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec_test.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -225,4 +225,27 @@ func Test_DecodingCommitReport(t *testing.T) { require.Equal(t, decodeLEToBigInt(gasPrice), gu.GasPrice) require.Equal(t, chainSel, gu.ChainSel) }) + + t.Run("decode Borsh encoded commit report", func(t *testing.T) { + rep := randomCommitReport() + commitCodec := NewCommitPluginCodecV1() + decode, err := commitCodec.Encode(testutils.Context(t), rep) + require.NoError(t, err) + + decoder := agbinary.NewBorshDecoder(decode) + decodedReport := ccip_router.CommitInput{} + err = decodedReport.UnmarshalWithDecoder(decoder) + require.NoError(t, err) + + reportMerkleRoot := rep.MerkleRoots[0] + require.Equal(t, reportMerkleRoot.MerkleRoot, cciptypes.Bytes32(decodedReport.MerkleRoot.MerkleRoot)) + + tu := rep.PriceUpdates.TokenPriceUpdates[0] + require.Equal(t, tu.TokenID, cciptypes.UnknownEncodedAddress(decodedReport.PriceUpdates.TokenPriceUpdates[0].SourceToken.String())) + require.Equal(t, tu.Price, decodeLEToBigInt(decodedReport.PriceUpdates.TokenPriceUpdates[0].UsdPerToken[:])) + + gu := rep.PriceUpdates.GasPriceUpdates[0] + require.Equal(t, gu.ChainSel, cciptypes.ChainSelector(decodedReport.PriceUpdates.GasPriceUpdates[0].DestChainSelector)) + require.Equal(t, gu.GasPrice, decodeLEToBigInt(decodedReport.PriceUpdates.GasPriceUpdates[0].UsdPerUnitGas[:])) + }) } diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index f2a3b73b245..c1789df69af 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -235,4 +235,35 @@ func Test_DecodingExecuteReport(t *testing.T) { require.Equal(t, tokenAmount, msg.TokenAmounts[0].Amount.Int) require.Equal(t, destGasAmount, bytesToUint32LE(msg.TokenAmounts[0].DestExecData)) }) + + t.Run("decode Borsh encoded execute report", func(t *testing.T) { + ocrReport := randomExecuteReport(t, 124615329519749607) + cd := NewExecutePluginCodecV1() + encodedReport, err := cd.Encode(testutils.Context(t), ocrReport) + require.NoError(t, err) + + decoder := agbinary.NewBorshDecoder(encodedReport) + executeReport := ccip_router.ExecutionReportSingleChain{} + err = executeReport.UnmarshalWithDecoder(decoder) + require.NoError(t, err) + + originReport := ocrReport.ChainReports[0] + require.Equal(t, originReport.SourceChainSelector, cciptypes.ChainSelector(executeReport.SourceChainSelector)) + + originMsg := originReport.Messages[0] + require.Equal(t, originMsg.Header.MessageID, cciptypes.Bytes32(executeReport.Message.Header.MessageId)) + require.Equal(t, originMsg.Header.DestChainSelector, cciptypes.ChainSelector(executeReport.Message.Header.DestChainSelector)) + require.Equal(t, originMsg.Header.SourceChainSelector, cciptypes.ChainSelector(executeReport.Message.Header.SourceChainSelector)) + + var buf bytes.Buffer + encoder := agbinary.NewBorshEncoder(&buf) + err = executeReport.Message.ExtraArgs.MarshalWithEncoder(encoder) + require.Equal(t, originMsg.ExtraArgs, cciptypes.Bytes(buf.Bytes())) + + originTokenAmount := originMsg.TokenAmounts[0] + require.Equal(t, originTokenAmount.Amount, decodeLEToBigInt(executeReport.Message.TokenAmounts[0].Amount.LeBytes[:])) + require.Equal(t, originTokenAmount.DestTokenAddress, cciptypes.UnknownAddress(executeReport.Message.TokenAmounts[0].DestTokenAddress.Bytes())) + require.Equal(t, bytesToUint32LE(originTokenAmount.DestExecData), executeReport.Message.TokenAmounts[0].DestGasAmount) + require.Equal(t, originMsg.Sender, cciptypes.UnknownAddress(executeReport.Message.Sender)) + }) } From 0589fb8ead80f5b4affd15712e5b3400be876c49 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Fri, 31 Jan 2025 15:01:18 -0600 Subject: [PATCH 183/232] update --- core/capabilities/ccip/ccipsolana/executecodec_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index c1789df69af..2762b26b220 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -258,6 +258,7 @@ func Test_DecodingExecuteReport(t *testing.T) { var buf bytes.Buffer encoder := agbinary.NewBorshEncoder(&buf) err = executeReport.Message.ExtraArgs.MarshalWithEncoder(encoder) + require.NoError(t, err) require.Equal(t, originMsg.ExtraArgs, cciptypes.Bytes(buf.Bytes())) originTokenAmount := originMsg.TokenAmounts[0] From 40ea8f779540809a9dffafe9307ab97251efdaac Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 2 Feb 2025 11:10:30 -0600 Subject: [PATCH 184/232] update --- core/capabilities/ccip/oraclecreator/plugin.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 40aa06c21f5..927cb304b8d 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -256,12 +256,12 @@ var plugins = map[string]plugin{ RMNCrypto: func(lggr logger.Logger) cciptypes.RMNCrypto { return ccipevm.NewEVMRMNCrypto(lggr) }, }, chainsel.FamilySolana: { - CommitPluginCodec: nil, - ExecutePluginCodec: nil, + CommitPluginCodec: ccipsolana.NewCommitPluginCodecV1(), + ExecutePluginCodec: ccipsolana.NewExecutePluginCodecV1(), ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return ccipsolana.NewMessageHasherV1(lggr) }, - TokenDataEncoder: nil, - GasEstimateProvider: nil, + TokenDataEncoder: ccipsolana.NewSolanaTokenDataEncoder(), + GasEstimateProvider: ccipsolana.NewGasEstimateProvider(), RMNCrypto: func(lggr logger.Logger) cciptypes.RMNCrypto { return nil }, }, } From 14cf174c4880e0e32fd5a395722ffbf0d4c95688 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 2 Feb 2025 11:24:35 -0600 Subject: [PATCH 185/232] fix --- core/capabilities/ccip/delegate.go | 22 ++++++++++++++++--- .../capabilities/ccip/oraclecreator/plugin.go | 4 ++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index 73c9277383f..c433897bcc0 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -7,6 +7,7 @@ import ( "strconv" "time" + "github.com/smartcontractkit/chainlink/v2/core/web" "golang.org/x/exp/maps" "github.com/smartcontractkit/chainlink/v2/core/services/relay" @@ -264,6 +265,21 @@ func (d *Delegate) getOCRKeys(ocrKeyBundleIDs job.JSONConfig) (map[string]ocr2ke return ocrKeys, nil } +func getKeys[K keystore.Key](ks web.Keystore[K]) ([]string, error) { + result := make([]string, 0) + + keys, err := ks.GetAll() + if err != nil { + return nil, fmt.Errorf("error getting all keys: %w", err) + } + + for _, key := range keys { + result = append(result, key.ID()) + } + + return result, nil +} + func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.RelayID) (map[types.RelayID][]string, error) { transmitterKeys := make(map[types.RelayID][]string) for _, relayID := range relayIDs { @@ -280,11 +296,11 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela case relay.NetworkSolana: keys, err = d.getSolanaKeys() case relay.NetworkAptos: - keys, err = d.getAptosKeys() + keys, err = getKeys(d.keystore.Aptos()) case relay.NetworkCosmos: - keys, err = d.getCosmosKeys() + keys, err = getKeys(d.keystore.Cosmos()) case relay.NetworkStarkNet: - keys, err = d.getStarkNetKeys() + keys, err = getKeys(d.keystore.StarkNet()) default: return nil, fmt.Errorf("unsupported network: %s", relayID.Network) } diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 10b3d927df4..01be9d19e05 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -492,7 +492,7 @@ func getChainReaderConfig( chainSelector cciptypes.ChainSelector, chainFamily string, ) ([]byte, error) { - // consider refactoring this to the map[string]plugin in the future + // TODO: create a chain writer constructor interface and define family specific implementations in oraclecreator.plugin switch chainFamily { case relay.NetworkEVM: var chainReaderConfig evmrelaytypes.ChainReaderConfig @@ -562,7 +562,7 @@ func createChainWriter( var err error var chainWriterConfig []byte transmitter, ok := transmitters[types.NewRelayID(chainFamily, chainID)] - // consider refactoring this to the map[string]plugin in the future + // TODO: create a chain writer constructor interface and define family specific implementations in oraclecreator.plugin switch chainFamily { case relay.NetworkSolana: var solConfig chainwriter.ChainWriterConfig From 73259382c28ed63a52a42586c8aedd0a6a6a4d69 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 2 Feb 2025 15:58:26 -0600 Subject: [PATCH 186/232] fix import --- core/capabilities/ccip/delegate.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index c433897bcc0..e1dc76f2a4f 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -7,7 +7,6 @@ import ( "strconv" "time" - "github.com/smartcontractkit/chainlink/v2/core/web" "golang.org/x/exp/maps" "github.com/smartcontractkit/chainlink/v2/core/services/relay" @@ -52,6 +51,15 @@ type RelayGetter interface { GetIDToRelayerMap() (map[types.RelayID]loop.Relayer, error) } +type Keystore[K keystore.Key] interface { + Get(id string) (K, error) + GetAll() ([]K, error) + Create(context.Context) (K, error) + Delete(ctx context.Context, id string) (K, error) + Import(ctx context.Context, keyJSON []byte, password string) (K, error) + Export(id string, password string) ([]byte, error) +} + type Delegate struct { lggr logger.Logger registrarConfig plugins.RegistrarConfig @@ -265,7 +273,7 @@ func (d *Delegate) getOCRKeys(ocrKeyBundleIDs job.JSONConfig) (map[string]ocr2ke return ocrKeys, nil } -func getKeys[K keystore.Key](ks web.Keystore[K]) ([]string, error) { +func getKeys[K keystore.Key](ks Keystore[K]) ([]string, error) { result := make([]string, 0) keys, err := ks.GetAll() From ae51551062bdc791d89ffbaa386ca8e860e224d4 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Sun, 2 Feb 2025 16:06:43 -0600 Subject: [PATCH 187/232] rm unused --- core/capabilities/ccip/delegate.go | 39 ------------------------------ 1 file changed, 39 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index e1dc76f2a4f..db54633a30c 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -347,45 +347,6 @@ func (d *Delegate) getSolanaKeys() ([]string, error) { return result, err } -func (d *Delegate) getAptosKeys() ([]string, error) { - result := make([]string, 0) - keys, err := d.keystore.Aptos().GetAll() - if err != nil { - return result, fmt.Errorf("error getting all Aptos keys: %w", err) - } - - for _, key := range keys { - result = append(result, key.PublicKeyStr()) - } - return result, err -} - -func (d *Delegate) getCosmosKeys() ([]string, error) { - result := make([]string, 0) - keys, err := d.keystore.Cosmos().GetAll() - if err != nil { - return result, fmt.Errorf("error getting all Cosmos keys: %w", err) - } - - for _, key := range keys { - result = append(result, key.PublicKeyStr()) - } - return result, err -} - -func (d *Delegate) getStarkNetKeys() ([]string, error) { - result := make([]string, 0) - keys, err := d.keystore.StarkNet().GetAll() - if err != nil { - return result, fmt.Errorf("error getting all StarkNet keys: %w", err) - } - - for _, key := range keys { - result = append(result, key.StarkKeyStr()) - } - return result, nil -} - func (d *Delegate) getHomeChainContractReader( ctx context.Context, homeChainRelayer loop.Relayer, From 97a8278dd87162c55d8fb4aa8f87a0a89d692507 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 12:25:00 -0600 Subject: [PATCH 188/232] remove unused --- .../ccip/common/extraargscodec.go | 21 ------------------- 1 file changed, 21 deletions(-) delete mode 100644 core/capabilities/ccip/common/extraargscodec.go diff --git a/core/capabilities/ccip/common/extraargscodec.go b/core/capabilities/ccip/common/extraargscodec.go deleted file mode 100644 index 364e2463913..00000000000 --- a/core/capabilities/ccip/common/extraargscodec.go +++ /dev/null @@ -1,21 +0,0 @@ -package common - -import ( - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" -) - -type ExtraArgsCodec struct{} - -func NewExtraArgsCodec() ExtraArgsCodec { - return ExtraArgsCodec{} -} - -func (ExtraArgsCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - // Not implemented and not return error - return nil, nil -} - -func (c ExtraArgsCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - // Not implemented and not return error - return nil, nil -} From 7bdb472d068d58422be07ee82d1addb9e17e1b16 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:07:25 -0600 Subject: [PATCH 189/232] downgrade --- core/scripts/go.mod | 9 ++------- go.mod | 6 +++--- go.sum | 12 ++++++------ 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index de07d79aff3..0057f1c501e 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -9,13 +9,6 @@ replace github.com/smartcontractkit/chainlink/v2 => ../../ replace github.com/smartcontractkit/chainlink/deployment => ../../deployment -// Using a separate `require` here to avoid surrounding line changes -// creating potential merge conflicts. -require ( - github.com/smartcontractkit/chainlink/deployment v0.0.0-20250120230622-566643da09fd - github.com/smartcontractkit/chainlink/v2 v2.0.0-20250121175436-6a8b51d8b5f5 -) - require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 @@ -37,6 +30,8 @@ require ( github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 + github.com/smartcontractkit/chainlink/deployment v0.0.0-00010101000000-000000000000 + github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 diff --git a/go.mod b/go.mod index 7eff62291dc..c49c394f2a3 100644 --- a/go.mod +++ b/go.mod @@ -140,7 +140,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.4.0 // indirect + cosmossdk.io/math v1.3.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -233,7 +233,7 @@ require ( github.com/gofrs/flock v0.8.1 // indirect github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -320,7 +320,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/rs/cors v1.10.1 // indirect + github.com/rs/cors v1.9.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect diff --git a/go.sum b/go.sum index ac7054124b3..2501e6e34ab 100644 --- a/go.sum +++ b/go.sum @@ -63,8 +63,8 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= -cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= -cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -488,8 +488,8 @@ github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1 github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -1050,8 +1050,8 @@ github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6po github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= -github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= +github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= From 59fc6b5506f5074067c272ecdbf944221be389bf Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:15:59 -0600 Subject: [PATCH 190/232] downgrade --- core/scripts/go.mod | 5 ++--- core/scripts/go.sum | 4 ++++ deployment/go.mod | 4 ++-- deployment/go.sum | 4 ++++ integration-tests/go.mod | 9 +++------ integration-tests/go.sum | 4 ++++ integration-tests/load/go.mod | 10 +++------- integration-tests/load/go.sum | 4 ++++ 8 files changed, 26 insertions(+), 18 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 0057f1c501e..5414e16ae2f 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -30,7 +30,6 @@ require ( github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 - github.com/smartcontractkit/chainlink/deployment v0.0.0-00010101000000-000000000000 github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 @@ -52,7 +51,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.4.0 // indirect + cosmossdk.io/math v1.3.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -178,7 +177,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/protobuf v1.5.4 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 88a75304387..22c83c02013 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -63,6 +63,8 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -536,6 +538,8 @@ github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1 github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= diff --git a/deployment/go.mod b/deployment/go.mod index 2b0b579c742..f7fdec3e7b2 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -57,7 +57,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.4.0 // indirect + cosmossdk.io/math v1.3.0 // indirect dario.cat/mergo v1.0.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -236,7 +236,7 @@ require ( github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/gogo/status v1.1.1 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/deployment/go.sum b/deployment/go.sum index 8ba6b190be2..209f5a8b839 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -63,6 +63,8 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -647,6 +649,8 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index e30eb16709b..3a574ca55c8 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -11,10 +11,7 @@ replace github.com/smartcontractkit/chainlink/deployment => ../deployment // Using a separate `require` here to avoid surrounding line changes // creating potential merge conflicts. -require ( - github.com/smartcontractkit/chainlink/deployment v0.0.0-20250120230622-566643da09fd - github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 -) +require github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 require ( dario.cat/mergo v1.0.1 @@ -81,7 +78,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.4.0 // indirect + cosmossdk.io/math v1.3.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -259,7 +256,7 @@ require ( github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/gogo/status v1.1.1 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 790d447a1a1..692a788abdd 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -63,6 +63,8 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -657,6 +659,8 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 269ce452c3b..520087e00fe 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -13,11 +13,7 @@ replace github.com/smartcontractkit/chainlink/integration-tests => ../ // Using a separate `require` here to avoid surrounding line changes // creating potential merge conflicts. -require ( - github.com/smartcontractkit/chainlink/deployment v0.0.0-20250120230622-566643da09fd - github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20241212011003-de1a8f5e5b42 - github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 -) +require github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 require ( github.com/K-Phoen/grabana v0.22.2 @@ -46,7 +42,7 @@ require ( cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect - cosmossdk.io/math v1.4.0 // indirect + cosmossdk.io/math v1.3.0 // indirect dario.cat/mergo v1.0.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -230,7 +226,7 @@ require ( github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/gogo/status v1.1.1 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 876f13483a4..e07c3c36549 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -63,6 +63,8 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -647,6 +649,8 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= From 719332457609750dfef0c0b7289f43b412522336 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:17:26 -0600 Subject: [PATCH 191/232] rm --- deployment/go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/deployment/go.sum b/deployment/go.sum index 209f5a8b839..099c3e075b5 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -65,8 +65,6 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= -cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= From 761eb11b4cdae6200790d6acbe1589f084ae69c5 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:18:16 -0600 Subject: [PATCH 192/232] update --- deployment/go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/deployment/go.sum b/deployment/go.sum index 099c3e075b5..102312de24a 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -649,8 +649,6 @@ github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= From a8f4eea0a2cd2d92b5ec5e9d462d48fd6678243e Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:20:45 -0600 Subject: [PATCH 193/232] update --- core/scripts/go.sum | 4 ---- integration-tests/load/go.sum | 4 ---- 2 files changed, 8 deletions(-) diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 22c83c02013..6a069284e75 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -65,8 +65,6 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= -cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= @@ -540,8 +538,6 @@ github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0 github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index e07c3c36549..e8bef22eab3 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -65,8 +65,6 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= -cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= @@ -651,8 +649,6 @@ github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= From e04db54ff344aa9a0af935acf7221fdfd2c5a2ba Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:21:52 -0600 Subject: [PATCH 194/232] rm --- integration-tests/go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 692a788abdd..43f667bd2fc 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -65,8 +65,6 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= -cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= From 8f5a842fa4caffefa6beb069698708b852d5e525 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:36:14 -0600 Subject: [PATCH 195/232] update --- go.mod | 1 - go.sum | 4 +- test.go | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 test.go diff --git a/go.mod b/go.mod index c49c394f2a3..159557eda5b 100644 --- a/go.mod +++ b/go.mod @@ -258,7 +258,6 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect diff --git a/go.sum b/go.sum index 2501e6e34ab..113ab6eef20 100644 --- a/go.sum +++ b/go.sum @@ -673,8 +673,8 @@ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= -github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= diff --git a/test.go b/test.go new file mode 100644 index 00000000000..42978ee2cde --- /dev/null +++ b/test.go @@ -0,0 +1,112 @@ +package main + +import ( + "context" + "fmt" + "log" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/rpc" +) + +// Tx represents a transaction structure +type Tx struct { + TxAttempts []TxAttempt +} + +// TxAttempt represents a transaction attempt structure +type TxAttempt struct { + Hash common.Hash +} + +// zircuitResponse represents the response structure from zirc_isQuarantined +type zircuitResponse struct { + IsQuarantined bool `json:"isQuarantined"` +} + +// stuckTxDetector represents the structure for stuck transaction detection +type stuckTxDetector struct { + chainClient *rpc.Client + lggr Logger +} + +// Logger interface for logging (simplified here for demonstration) +type Logger struct{} + +func (l Logger) Debugf(format string, args ...interface{}) { + log.Printf(format, args...) +} + +// detectFraudTransactionsZircuit detects quarantined transactions +func (d *stuckTxDetector) detectFraudTransactionsZircuit(ctx context.Context, txs []Tx) ([]Tx, error) { + txReqs := make([]rpc.BatchElem, len(txs)) + txHashMap := make(map[common.Hash]Tx) + txRes := make([]*zircuitResponse, len(txs)) + + // Build batch request elements + for i, tx := range txs { + latestAttemptHash := tx.TxAttempts[0].Hash + var result zircuitResponse + txReqs[i] = rpc.BatchElem{ + Method: "zirc_isQuarantined", + Args: []interface{}{latestAttemptHash}, + Result: &result, + } + txHashMap[latestAttemptHash] = tx + txRes[i] = &result + } + + // Send batch request using the Ethereum client + err := d.chainClient.BatchCallContext(ctx, txReqs) + if err != nil { + return nil, fmt.Errorf("failed to check Quarantine transactions in batch: %w", err) + } + + // Process the results and check if any transactions are quarantined + var fraudTxs []Tx + for i, req := range txReqs { + txHash := req.Args[0].(common.Hash) + if req.Error != nil { + d.lggr.Debugf("failed to check fraud transaction by hash (%s): %v", txHash.String(), req.Error) + continue + } + + result := txRes[i] + if result != nil && result.IsQuarantined { + tx := txHashMap[txHash] + fraudTxs = append(fraudTxs, tx) + } + } + return fraudTxs, nil +} + +// +//func main() { +// // Create an Ethereum RPC client to communicate with the Zircuit endpoint +// client, err := rpc.Dial("https://zircuit1-mainnet.p2pify.com") +// if err != nil { +// log.Fatalf("Failed to create Ethereum RPC client: %v", err) +// } +// +// // Create the detector with the Ethereum client +// detector := &stuckTxDetector{ +// chainClient: client, +// lggr: Logger{}, +// } +// +// // Example transactions (replace with real data) +// txs := []Tx{ +// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0xbf7179cbeb760388d972b68dfeef0ee687dd1286d5b4cd534b6b75c42bbdf3c4")}}}, +// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0x3f9d8133af4ab1ca64c4a6fa572161995eb88fd942d71a61910a04e1639ee51e")}}}, +// } +// +// // Detect fraudulent transactions +// ctx := context.Background() +// fraudTxs, err := detector.detectFraudTransactionsZircuit(ctx, txs) +// if err != nil { +// log.Fatalf("Error detecting fraud transactions: %v", err) +// } +// +// // Print out the fraudulent transactions +// fmt.Printf("Fraudulent transactions: %+v\n", fraudTxs) +//} From bb84f23038739d7c424325b267ff5123ed3c2dab Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:37:13 -0600 Subject: [PATCH 196/232] revert --- test.go | 112 -------------------------------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 test.go diff --git a/test.go b/test.go deleted file mode 100644 index 42978ee2cde..00000000000 --- a/test.go +++ /dev/null @@ -1,112 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/rpc" -) - -// Tx represents a transaction structure -type Tx struct { - TxAttempts []TxAttempt -} - -// TxAttempt represents a transaction attempt structure -type TxAttempt struct { - Hash common.Hash -} - -// zircuitResponse represents the response structure from zirc_isQuarantined -type zircuitResponse struct { - IsQuarantined bool `json:"isQuarantined"` -} - -// stuckTxDetector represents the structure for stuck transaction detection -type stuckTxDetector struct { - chainClient *rpc.Client - lggr Logger -} - -// Logger interface for logging (simplified here for demonstration) -type Logger struct{} - -func (l Logger) Debugf(format string, args ...interface{}) { - log.Printf(format, args...) -} - -// detectFraudTransactionsZircuit detects quarantined transactions -func (d *stuckTxDetector) detectFraudTransactionsZircuit(ctx context.Context, txs []Tx) ([]Tx, error) { - txReqs := make([]rpc.BatchElem, len(txs)) - txHashMap := make(map[common.Hash]Tx) - txRes := make([]*zircuitResponse, len(txs)) - - // Build batch request elements - for i, tx := range txs { - latestAttemptHash := tx.TxAttempts[0].Hash - var result zircuitResponse - txReqs[i] = rpc.BatchElem{ - Method: "zirc_isQuarantined", - Args: []interface{}{latestAttemptHash}, - Result: &result, - } - txHashMap[latestAttemptHash] = tx - txRes[i] = &result - } - - // Send batch request using the Ethereum client - err := d.chainClient.BatchCallContext(ctx, txReqs) - if err != nil { - return nil, fmt.Errorf("failed to check Quarantine transactions in batch: %w", err) - } - - // Process the results and check if any transactions are quarantined - var fraudTxs []Tx - for i, req := range txReqs { - txHash := req.Args[0].(common.Hash) - if req.Error != nil { - d.lggr.Debugf("failed to check fraud transaction by hash (%s): %v", txHash.String(), req.Error) - continue - } - - result := txRes[i] - if result != nil && result.IsQuarantined { - tx := txHashMap[txHash] - fraudTxs = append(fraudTxs, tx) - } - } - return fraudTxs, nil -} - -// -//func main() { -// // Create an Ethereum RPC client to communicate with the Zircuit endpoint -// client, err := rpc.Dial("https://zircuit1-mainnet.p2pify.com") -// if err != nil { -// log.Fatalf("Failed to create Ethereum RPC client: %v", err) -// } -// -// // Create the detector with the Ethereum client -// detector := &stuckTxDetector{ -// chainClient: client, -// lggr: Logger{}, -// } -// -// // Example transactions (replace with real data) -// txs := []Tx{ -// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0xbf7179cbeb760388d972b68dfeef0ee687dd1286d5b4cd534b6b75c42bbdf3c4")}}}, -// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0x3f9d8133af4ab1ca64c4a6fa572161995eb88fd942d71a61910a04e1639ee51e")}}}, -// } -// -// // Detect fraudulent transactions -// ctx := context.Background() -// fraudTxs, err := detector.detectFraudTransactionsZircuit(ctx, txs) -// if err != nil { -// log.Fatalf("Error detecting fraud transactions: %v", err) -// } -// -// // Print out the fraudulent transactions -// fmt.Printf("Fraudulent transactions: %+v\n", fraudTxs) -//} From d88f48e28b058a62aab60ce010919ca6028cd59c Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:41:32 -0600 Subject: [PATCH 197/232] revert --- core/scripts/go.mod | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 5414e16ae2f..6be312a7501 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -9,6 +9,13 @@ replace github.com/smartcontractkit/chainlink/v2 => ../../ replace github.com/smartcontractkit/chainlink/deployment => ../../deployment +// Using a separate `require` here to avoid surrounding line changes +// creating potential merge conflicts. +require ( + github.com/smartcontractkit/chainlink/deployment v0.0.0-20250120230622-566643da09fd + github.com/smartcontractkit/chainlink/v2 v2.0.0-20250121175436-6a8b51d8b5f5 +) + require ( github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.5.0 @@ -30,7 +37,6 @@ require ( github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 - github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 @@ -213,6 +219,7 @@ require ( github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-plugin v1.6.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect From a45903383829308e11c281dd4fee1e589e16c161 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:44:33 -0600 Subject: [PATCH 198/232] revert --- integration-tests/go.mod | 5 ++++- integration-tests/go.sum | 2 -- integration-tests/load/go.mod | 6 +++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 3a574ca55c8..d16dc6279a6 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -11,7 +11,10 @@ replace github.com/smartcontractkit/chainlink/deployment => ../deployment // Using a separate `require` here to avoid surrounding line changes // creating potential merge conflicts. -require github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 +require ( + github.com/smartcontractkit/chainlink/deployment v0.0.0-20250120230622-566643da09fd + github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 +) require ( dario.cat/mergo v1.0.1 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 43f667bd2fc..05dc4c895e4 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -659,8 +659,6 @@ github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 520087e00fe..4e929297779 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -13,7 +13,11 @@ replace github.com/smartcontractkit/chainlink/integration-tests => ../ // Using a separate `require` here to avoid surrounding line changes // creating potential merge conflicts. -require github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 +require ( + github.com/smartcontractkit/chainlink/deployment v0.0.0-20250120230622-566643da09fd + github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20241212011003-de1a8f5e5b42 + github.com/smartcontractkit/chainlink/v2 v2.0.0-20250113180450-c33ab50ac8c0 +) require ( github.com/K-Phoen/grabana v0.22.2 From ae09a685fcaf844473c03731869adcb31a97fa72 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 14:57:48 -0600 Subject: [PATCH 199/232] fix --- core/capabilities/ccip/delegate.go | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/core/capabilities/ccip/delegate.go b/core/capabilities/ccip/delegate.go index db54633a30c..e92c523957c 100644 --- a/core/capabilities/ccip/delegate.go +++ b/core/capabilities/ccip/delegate.go @@ -52,12 +52,7 @@ type RelayGetter interface { } type Keystore[K keystore.Key] interface { - Get(id string) (K, error) GetAll() ([]K, error) - Create(context.Context) (K, error) - Delete(ctx context.Context, id string) (K, error) - Import(ctx context.Context, keyJSON []byte, password string) (K, error) - Export(id string, password string) ([]byte, error) } type Delegate struct { @@ -302,7 +297,7 @@ func (d *Delegate) getTransmitterKeys(ctx context.Context, relayIDs []types.Rela case relay.NetworkEVM: keys, err = d.getEVMKeys(ctx, chainID) case relay.NetworkSolana: - keys, err = d.getSolanaKeys() + keys, err = getKeys(d.keystore.Solana()) case relay.NetworkAptos: keys, err = getKeys(d.keystore.Aptos()) case relay.NetworkCosmos: @@ -334,19 +329,6 @@ func (d *Delegate) getEVMKeys(ctx context.Context, chainID *big.Int) ([]string, return result, nil } -func (d *Delegate) getSolanaKeys() ([]string, error) { - result := make([]string, 0) - keys, err := d.keystore.Solana().GetAll() - if err != nil { - return result, fmt.Errorf("error getting all Solana keys: %w", err) - } - - for _, key := range keys { - result = append(result, key.PublicKeyStr()) - } - return result, err -} - func (d *Delegate) getHomeChainContractReader( ctx context.Context, homeChainRelayer loop.Relayer, From 8e50b44109441ebcca5d2e46700d41e6077326c9 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 15:07:22 -0600 Subject: [PATCH 200/232] update --- go.mod | 4 ++-- go.sum | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index ea687f10361..3ef4f9ce17e 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/grafana/pyroscope-go v1.1.2 github.com/graph-gophers/dataloader v5.0.0+incompatible github.com/graph-gophers/graphql-go v1.5.0 - github.com/hashicorp/consul/sdk v0.16.1 + github.com/hashicorp/consul/sdk v0.16.0 github.com/hashicorp/go-envparse v0.1.0 github.com/hashicorp/go-plugin v1.6.2 github.com/hashicorp/go-retryablehttp v0.7.7 @@ -88,7 +88,7 @@ require ( github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 + github.com/smartcontractkit/chainlink-solana v1.1.1 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index 02936ecf8d6..c8203ac3f99 100644 --- a/go.sum +++ b/go.sum @@ -486,8 +486,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= -github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= +github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -641,8 +641,8 @@ github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 h1:BpJ2o0OR5FV7vrkDYf github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= -github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= +github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= +github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= @@ -1132,8 +1132,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= +github.com/smartcontractkit/chainlink-solana v1.1.1 h1:MTD0VfVIo/M5LdwnX+b6fcFcogEMgK8h2pP4Xg0VXFU= +github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= @@ -1313,8 +1313,8 @@ go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0. go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0/go.mod h1:1P/02zM3OwkX9uki+Wmxw3a5GVb6KUXRsa7m7bOC9Fg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= go.opentelemetry.io/contrib/propagators/b3 v1.24.0 h1:n4xwCdTx3pZqZs2CjS/CUZAs03y3dZcGhC/FepKtEUY= go.opentelemetry.io/contrib/propagators/b3 v1.24.0/go.mod h1:k5wRxKRU2uXx2F8uNJ4TaonuEO/V7/5xoz7kdsDACT8= go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= From 02af3d3d85485b5509f82a55266bd31c4ec7ae55 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 15:14:20 -0600 Subject: [PATCH 201/232] fix --- go.mod | 2 +- go.sum | 4 +- test.go | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 test.go diff --git a/go.mod b/go.mod index 3ef4f9ce17e..4a80971202c 100644 --- a/go.mod +++ b/go.mod @@ -88,7 +88,7 @@ require ( github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.1 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index c8203ac3f99..f43a2faca39 100644 --- a/go.sum +++ b/go.sum @@ -1132,8 +1132,8 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.1 h1:MTD0VfVIo/M5LdwnX+b6fcFcogEMgK8h2pP4Xg0VXFU= -github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 h1:U49UgM8oEbssmKXDVkp8OpIr4h5YDwSLdpw2XUBsIfA= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5/go.mod h1:51o1f86HFbQb8aovFxjIhOgj2z7v0iLN7pnRKfvBLpQ= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= diff --git a/test.go b/test.go new file mode 100644 index 00000000000..42978ee2cde --- /dev/null +++ b/test.go @@ -0,0 +1,112 @@ +package main + +import ( + "context" + "fmt" + "log" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/rpc" +) + +// Tx represents a transaction structure +type Tx struct { + TxAttempts []TxAttempt +} + +// TxAttempt represents a transaction attempt structure +type TxAttempt struct { + Hash common.Hash +} + +// zircuitResponse represents the response structure from zirc_isQuarantined +type zircuitResponse struct { + IsQuarantined bool `json:"isQuarantined"` +} + +// stuckTxDetector represents the structure for stuck transaction detection +type stuckTxDetector struct { + chainClient *rpc.Client + lggr Logger +} + +// Logger interface for logging (simplified here for demonstration) +type Logger struct{} + +func (l Logger) Debugf(format string, args ...interface{}) { + log.Printf(format, args...) +} + +// detectFraudTransactionsZircuit detects quarantined transactions +func (d *stuckTxDetector) detectFraudTransactionsZircuit(ctx context.Context, txs []Tx) ([]Tx, error) { + txReqs := make([]rpc.BatchElem, len(txs)) + txHashMap := make(map[common.Hash]Tx) + txRes := make([]*zircuitResponse, len(txs)) + + // Build batch request elements + for i, tx := range txs { + latestAttemptHash := tx.TxAttempts[0].Hash + var result zircuitResponse + txReqs[i] = rpc.BatchElem{ + Method: "zirc_isQuarantined", + Args: []interface{}{latestAttemptHash}, + Result: &result, + } + txHashMap[latestAttemptHash] = tx + txRes[i] = &result + } + + // Send batch request using the Ethereum client + err := d.chainClient.BatchCallContext(ctx, txReqs) + if err != nil { + return nil, fmt.Errorf("failed to check Quarantine transactions in batch: %w", err) + } + + // Process the results and check if any transactions are quarantined + var fraudTxs []Tx + for i, req := range txReqs { + txHash := req.Args[0].(common.Hash) + if req.Error != nil { + d.lggr.Debugf("failed to check fraud transaction by hash (%s): %v", txHash.String(), req.Error) + continue + } + + result := txRes[i] + if result != nil && result.IsQuarantined { + tx := txHashMap[txHash] + fraudTxs = append(fraudTxs, tx) + } + } + return fraudTxs, nil +} + +// +//func main() { +// // Create an Ethereum RPC client to communicate with the Zircuit endpoint +// client, err := rpc.Dial("https://zircuit1-mainnet.p2pify.com") +// if err != nil { +// log.Fatalf("Failed to create Ethereum RPC client: %v", err) +// } +// +// // Create the detector with the Ethereum client +// detector := &stuckTxDetector{ +// chainClient: client, +// lggr: Logger{}, +// } +// +// // Example transactions (replace with real data) +// txs := []Tx{ +// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0xbf7179cbeb760388d972b68dfeef0ee687dd1286d5b4cd534b6b75c42bbdf3c4")}}}, +// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0x3f9d8133af4ab1ca64c4a6fa572161995eb88fd942d71a61910a04e1639ee51e")}}}, +// } +// +// // Detect fraudulent transactions +// ctx := context.Background() +// fraudTxs, err := detector.detectFraudTransactionsZircuit(ctx, txs) +// if err != nil { +// log.Fatalf("Error detecting fraud transactions: %v", err) +// } +// +// // Print out the fraudulent transactions +// fmt.Printf("Fraudulent transactions: %+v\n", fraudTxs) +//} From 333336c774031c538022431907efd73f99778c06 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 15:18:20 -0600 Subject: [PATCH 202/232] update --- go.mod | 4 +- go.sum | 19 ++++++---- test.go | 112 -------------------------------------------------------- 3 files changed, 13 insertions(+), 122 deletions(-) delete mode 100644 test.go diff --git a/go.mod b/go.mod index 4a80971202c..2c644c6a290 100644 --- a/go.mod +++ b/go.mod @@ -86,9 +86,9 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 github.com/smartcontractkit/chainlink-feeds v0.1.1 github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 + github.com/smartcontractkit/chainlink-solana v1.1.1 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index f43a2faca39..60a43807b50 100644 --- a/go.sum +++ b/go.sum @@ -486,8 +486,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= -github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -643,6 +643,8 @@ github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBt github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= +github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= +github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= @@ -1126,14 +1128,15 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 h1:lJi0dWfgNJl4Um5KzeZZPVBi//CPDfzzeVmv4Z2OGNY= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5 h1:U49UgM8oEbssmKXDVkp8OpIr4h5YDwSLdpw2XUBsIfA= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250121222331-a7010b4b8ce5/go.mod h1:51o1f86HFbQb8aovFxjIhOgj2z7v0iLN7pnRKfvBLpQ= +github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= @@ -1313,8 +1316,8 @@ go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0. go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0/go.mod h1:1P/02zM3OwkX9uki+Wmxw3a5GVb6KUXRsa7m7bOC9Fg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/contrib/propagators/b3 v1.24.0 h1:n4xwCdTx3pZqZs2CjS/CUZAs03y3dZcGhC/FepKtEUY= go.opentelemetry.io/contrib/propagators/b3 v1.24.0/go.mod h1:k5wRxKRU2uXx2F8uNJ4TaonuEO/V7/5xoz7kdsDACT8= go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= diff --git a/test.go b/test.go deleted file mode 100644 index 42978ee2cde..00000000000 --- a/test.go +++ /dev/null @@ -1,112 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/rpc" -) - -// Tx represents a transaction structure -type Tx struct { - TxAttempts []TxAttempt -} - -// TxAttempt represents a transaction attempt structure -type TxAttempt struct { - Hash common.Hash -} - -// zircuitResponse represents the response structure from zirc_isQuarantined -type zircuitResponse struct { - IsQuarantined bool `json:"isQuarantined"` -} - -// stuckTxDetector represents the structure for stuck transaction detection -type stuckTxDetector struct { - chainClient *rpc.Client - lggr Logger -} - -// Logger interface for logging (simplified here for demonstration) -type Logger struct{} - -func (l Logger) Debugf(format string, args ...interface{}) { - log.Printf(format, args...) -} - -// detectFraudTransactionsZircuit detects quarantined transactions -func (d *stuckTxDetector) detectFraudTransactionsZircuit(ctx context.Context, txs []Tx) ([]Tx, error) { - txReqs := make([]rpc.BatchElem, len(txs)) - txHashMap := make(map[common.Hash]Tx) - txRes := make([]*zircuitResponse, len(txs)) - - // Build batch request elements - for i, tx := range txs { - latestAttemptHash := tx.TxAttempts[0].Hash - var result zircuitResponse - txReqs[i] = rpc.BatchElem{ - Method: "zirc_isQuarantined", - Args: []interface{}{latestAttemptHash}, - Result: &result, - } - txHashMap[latestAttemptHash] = tx - txRes[i] = &result - } - - // Send batch request using the Ethereum client - err := d.chainClient.BatchCallContext(ctx, txReqs) - if err != nil { - return nil, fmt.Errorf("failed to check Quarantine transactions in batch: %w", err) - } - - // Process the results and check if any transactions are quarantined - var fraudTxs []Tx - for i, req := range txReqs { - txHash := req.Args[0].(common.Hash) - if req.Error != nil { - d.lggr.Debugf("failed to check fraud transaction by hash (%s): %v", txHash.String(), req.Error) - continue - } - - result := txRes[i] - if result != nil && result.IsQuarantined { - tx := txHashMap[txHash] - fraudTxs = append(fraudTxs, tx) - } - } - return fraudTxs, nil -} - -// -//func main() { -// // Create an Ethereum RPC client to communicate with the Zircuit endpoint -// client, err := rpc.Dial("https://zircuit1-mainnet.p2pify.com") -// if err != nil { -// log.Fatalf("Failed to create Ethereum RPC client: %v", err) -// } -// -// // Create the detector with the Ethereum client -// detector := &stuckTxDetector{ -// chainClient: client, -// lggr: Logger{}, -// } -// -// // Example transactions (replace with real data) -// txs := []Tx{ -// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0xbf7179cbeb760388d972b68dfeef0ee687dd1286d5b4cd534b6b75c42bbdf3c4")}}}, -// {TxAttempts: []TxAttempt{{Hash: common.HexToHash("0x3f9d8133af4ab1ca64c4a6fa572161995eb88fd942d71a61910a04e1639ee51e")}}}, -// } -// -// // Detect fraudulent transactions -// ctx := context.Background() -// fraudTxs, err := detector.detectFraudTransactionsZircuit(ctx, txs) -// if err != nil { -// log.Fatalf("Error detecting fraud transactions: %v", err) -// } -// -// // Print out the fraudulent transactions -// fmt.Printf("Fraudulent transactions: %+v\n", fraudTxs) -//} From 6303100de0cd9e6ab08a359fbcc77c37b6a90c3a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 15:19:01 -0600 Subject: [PATCH 203/232] update --- go.mod | 4 ++-- go.sum | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 2c644c6a290..31c6bc51010 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/grafana/pyroscope-go v1.1.2 github.com/graph-gophers/dataloader v5.0.0+incompatible github.com/graph-gophers/graphql-go v1.5.0 - github.com/hashicorp/consul/sdk v0.16.0 + github.com/hashicorp/consul/sdk v0.16.1 github.com/hashicorp/go-envparse v0.1.0 github.com/hashicorp/go-plugin v1.6.2 github.com/hashicorp/go-retryablehttp v0.7.7 @@ -88,7 +88,7 @@ require ( github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.1 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index 60a43807b50..596d41ca975 100644 --- a/go.sum +++ b/go.sum @@ -641,8 +641,6 @@ github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026 h1:BpJ2o0OR5FV7vrkDYf github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= -github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -1134,7 +1132,6 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= From fd254e17213ac41dfb19c0dfbbe3894edb4cb3dd Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 15:21:42 -0600 Subject: [PATCH 204/232] mod clean --- core/scripts/go.mod | 4 ++-- core/scripts/go.sum | 8 ++++---- deployment/go.mod | 4 ++-- deployment/go.sum | 8 ++++---- integration-tests/go.mod | 4 ++-- integration-tests/go.sum | 8 ++++---- integration-tests/load/go.mod | 4 ++-- integration-tests/load/go.sum | 8 ++++---- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 96d5e4c0b62..2972eeade91 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -320,11 +320,11 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250121210000-2a9675d7a1b4 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b // indirect + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 26cc99ce1b0..7df34ad2306 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1188,16 +1188,16 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 h1:lJi0dWfgNJl4Um5KzeZZPVBi//CPDfzzeVmv4Z2OGNY= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 h1:nTUoe7GZLw17nPLV5t3Vgf4U4pf+VW0Uko5xpNiKdKU= diff --git a/deployment/go.mod b/deployment/go.mod index 1fa898d3ec9..d6c4d592033 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -34,9 +34,9 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250127125541-a8fa42cc0f36 - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 diff --git a/deployment/go.sum b/deployment/go.sum index a67f7987516..a99f8f1a74c 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1414,16 +1414,16 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 h1:lJi0dWfgNJl4Um5KzeZZPVBi//CPDfzzeVmv4Z2OGNY= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.2-0.20250110073248-456673e8eea2 h1:nTUoe7GZLw17nPLV5t3Vgf4U4pf+VW0Uko5xpNiKdKU= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index a8aaa8f68e1..f4436ff355d 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -440,10 +440,10 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b // indirect + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index d2ee69b0118..6e876b77de2 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1442,16 +1442,16 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 h1:lJi0dWfgNJl4Um5KzeZZPVBi//CPDfzzeVmv4Z2OGNY= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 h1:E7k5Sym9WnMOc4X40lLnQb6BMosxi8DfUBU9pBJjHOQ= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 635a9ab72a4..4cb3f34a044 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -424,11 +424,11 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250115135646-ac859d85e7e3 // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b // indirect + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d // indirect github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 // indirect github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index a434524a465..d44a030160c 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1429,16 +1429,16 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 h1:lJi0dWfgNJl4Um5KzeZZPVBi//CPDfzzeVmv4Z2OGNY= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097 h1:FJxO+Z8apaEBb1Ahf9R3hZrmWpj6UY1uIs58+/Ac1tM= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250130075337-2425295af097/go.mod h1:Xy5Y/2NZNHMdF3+TPom6CutIczSIeI1r+B9uhr5qKPk= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 h1:E7k5Sym9WnMOc4X40lLnQb6BMosxi8DfUBU9pBJjHOQ= From 7c2b7e48d39c6488e90720b3524c5cbc156e553a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 15:58:18 -0600 Subject: [PATCH 205/232] fix --- deployment/ccip/changeset/cs_deploy_chain.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/deployment/ccip/changeset/cs_deploy_chain.go b/deployment/ccip/changeset/cs_deploy_chain.go index fea65fa30a5..1dce79e0737 100644 --- a/deployment/ccip/changeset/cs_deploy_chain.go +++ b/deployment/ccip/changeset/cs_deploy_chain.go @@ -571,8 +571,6 @@ func initializeRouter(e deployment.Environment, chain deployment.SolChain, ccipR instruction, err := solRouter.NewInitializeInstruction( chain.Selector, // chain selector - deployment.SolDefaultGasLimit, // default gas limit - true, // allow out of order execution EnableExecutionAfter, // period to wait before allowing manual execution solana.PublicKey{}, // fee aggregator (TODO: changeset to set the fee aggregator) linkTokenAddress, // link token mint @@ -650,7 +648,7 @@ func deployChainContractsSolana( } else { e.Logger.Infow("Router already initialized, skipping initialization", "chain", chain.String()) } - + var tokenPoolProgram solana.PublicKey if chainState.TokenPool.IsZero() { // TODO: there should be two token pools deployed one of each type (lock/burn) From 54a4b2be39c28ff1a46b08c786bd7f5c75480af3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 16:00:31 -0600 Subject: [PATCH 206/232] mod tidy --- core/scripts/go.mod | 2 +- go.mod | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 13927576488..a6d56df50bf 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -316,7 +316,7 @@ require ( github.com/smartcontractkit/ccip-owner-contracts v0.0.0-salt-fix // indirect github.com/smartcontractkit/chain-selectors v1.0.37 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250203130001-13e2609047e9 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a // indirect diff --git a/go.mod b/go.mod index 721eb5db8c2..2edeaa72ac3 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.37 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250203130001-13e2609047e9 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 From f075c9a3f66999594edb436df4b0a8191929172b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 16:59:29 -0600 Subject: [PATCH 207/232] fix --- core/scripts/go.mod | 12 +----------- core/scripts/go.sum | 23 ++++------------------- 2 files changed, 5 insertions(+), 30 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 92df4cbc905..b54e2834351 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -314,23 +314,13 @@ 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-salt-fix // indirect -<<<<<<< HEAD - github.com/smartcontractkit/chain-selectors v1.0.36 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b // indirect -======= github.com/smartcontractkit/chain-selectors v1.0.37 // indirect github.com/smartcontractkit/chainlink-ccip v0.0.0-20250203132120-f0d42463e405 // indirect ->>>>>>> 7120fc2b217ccced7b8cb3f9cbad1d7bbdd8a208 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect -<<<<<<< HEAD - github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect -======= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a // indirect - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b // indirect ->>>>>>> 7120fc2b217ccced7b8cb3f9cbad1d7bbdd8a208 + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 0c70297d469..c2bc00ba10b 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1010,13 +1010,10 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= -<<<<<<< HEAD -github.com/linkedin/goavro/v2 v2.12.0 h1:rIQQSj8jdAUlKQh6DttK8wCRv4t4QO09g1C4aBWXslg= -github.com/linkedin/goavro/v2 v2.12.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= -======= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= ->>>>>>> 7120fc2b217ccced7b8cb3f9cbad1d7bbdd8a208 +github.com/linkedin/goavro/v2 v2.12.0 h1:rIQQSj8jdAUlKQh6DttK8wCRv4t4QO09g1C4aBWXslg= +github.com/linkedin/goavro/v2 v2.12.0/go.mod h1:KXx+erlq+RPlGSPmLF7xGo6SAbh8sCQ53x064+ioxhk= github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= @@ -1338,13 +1335,8 @@ github.com/smartcontractkit/chain-selectors v1.0.37 h1:EKVl8wayhOVfnlqfVmEyZ8rXO github.com/smartcontractkit/chain-selectors v1.0.37/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= -<<<<<<< HEAD -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b h1:E/LpxQaG616VQdz6Zd/Y+OPwnhJbvCUJaCWAw/X7KMA= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= -======= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250203132120-f0d42463e405 h1:5QyaPGLmt+rlnvQL7drAE23Wq9rX5hO35kTZirAb97A= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250203132120-f0d42463e405/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= ->>>>>>> 7120fc2b217ccced7b8cb3f9cbad1d7bbdd8a208 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36 h1:bS51NFGHVjkCy7yu9L2Ss4sBsCW6jpa5GuhRAdWWxzM= @@ -1355,17 +1347,10 @@ github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5/go.mod h1:pDZagSGjs9U+l4YIFhveDznMHqxuuz+5vRxvVgpbdr8= github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6AnNt+Wg64sVG+XSA49c= github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= -<<<<<<< HEAD -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92 h1:lJi0dWfgNJl4Um5KzeZZPVBi//CPDfzzeVmv4Z2OGNY= -github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250121195549-294ec6a40b92/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= -======= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= ->>>>>>> 7120fc2b217ccced7b8cb3f9cbad1d7bbdd8a208 +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= From f192539cbd93b9abacf6b3526055bb0da35d043e Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 17:08:05 -0600 Subject: [PATCH 208/232] fix --- go.mod | 4 ++-- go.sum | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index d972349c2c4..d9bf7f0726c 100644 --- a/go.mod +++ b/go.mod @@ -86,9 +86,9 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 github.com/smartcontractkit/chainlink-feeds v0.1.1 github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 + github.com/smartcontractkit/chainlink-solana v1.1.1 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index 57ffa4518f9..9a86e2375d9 100644 --- a/go.sum +++ b/go.sum @@ -486,8 +486,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= -github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= +github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -1126,14 +1126,14 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= -github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= +github.com/smartcontractkit/chainlink-solana v1.1.1 h1:MTD0VfVIo/M5LdwnX+b6fcFcogEMgK8h2pP4Xg0VXFU= +github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= @@ -1313,8 +1313,8 @@ go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0. go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0/go.mod h1:1P/02zM3OwkX9uki+Wmxw3a5GVb6KUXRsa7m7bOC9Fg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= go.opentelemetry.io/contrib/propagators/b3 v1.24.0 h1:n4xwCdTx3pZqZs2CjS/CUZAs03y3dZcGhC/FepKtEUY= go.opentelemetry.io/contrib/propagators/b3 v1.24.0/go.mod h1:k5wRxKRU2uXx2F8uNJ4TaonuEO/V7/5xoz7kdsDACT8= go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= From dee521fc7fae5c7bfc28e2b15e08e03a55836e43 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 17:20:35 -0600 Subject: [PATCH 209/232] update --- core/scripts/go.mod | 5 +---- core/scripts/go.sum | 5 +++++ evm/client/rpc_client.go | 8 ++++---- evm/types/models.go | 4 ++++ go.mod | 4 ++-- go.sum | 3 +++ 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index b54e2834351..8867b497192 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -11,10 +11,7 @@ replace github.com/smartcontractkit/chainlink/deployment => ../../deployment // Using a separate `require` here to avoid surrounding line changes // creating potential merge conflicts. -require ( - github.com/smartcontractkit/chainlink/deployment v0.0.0-20250128231431-9279badae2f0 - github.com/smartcontractkit/chainlink/v2 v2.19.0-ccip1.5.16-alpha.0.0.20250129223716-34cbaaab2d04 -) +require github.com/smartcontractkit/chainlink/v2 v2.19.0-ccip1.5.16-alpha.0.0.20250129223716-34cbaaab2d04 require ( github.com/docker/docker v27.3.1+incompatible diff --git a/core/scripts/go.sum b/core/scripts/go.sum index c2bc00ba10b..5b2ed48ce03 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1349,6 +1349,8 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= @@ -1357,6 +1359,7 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= +github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= @@ -1367,8 +1370,10 @@ github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07V github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13/go.mod h1:1CKUOzoK+Ga19WuhRH9pxZ+qUUnrlIx108VEA6qSzeQ= github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 h1:VIxK8u0Jd0Q/VuhmsNm6Bls6Tb31H/sA3A/rbc5hnhg= github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0/go.mod h1:lyAu+oMXdNUzEDScj2DXB2IueY+SDXPPfyl/kb63tMM= +github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.4 h1:hPI9GhHE1RmIG1oyPeFjED0AhWnNb9JzD74Oq2bO+IQ= github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 h1:BxN9wddNLiugruN3k7nYoSMQTO0tz9qR+vILFW2l0Ps= github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5/go.mod h1:lJk0atEJ5Zyo3Tqrmf1Pl9jUEe79EgDb9bD3K5OTUBI= +github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.1 h1:hbapxD2wjGJNkP9Re2LqzPDbejzRP25Yk5vKfuaHs6U= github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 h1:7bCdbTUWzyczQg+kwHCxlx6y07zE8HNB8+ntTne6qd8= github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2/go.mod h1:MltlNu3jcXm/DyLN98I5TFNtu/o1NNAcaPAFKMXWk70= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= diff --git a/evm/client/rpc_client.go b/evm/client/rpc_client.go index 0ed1fcfb8f4..c574ea05d79 100644 --- a/evm/client/rpc_client.go +++ b/evm/client/rpc_client.go @@ -462,7 +462,7 @@ func (r *RPCClient) SubscribeToHeads(ctx context.Context) (ch <-chan *evmtypes.H if r.newHeadsPollInterval > 0 { interval := r.newHeadsPollInterval timeout := interval - isHealthCheckRequest := multinode.CtxIsHeathCheckRequest(ctx) + isHealthCheckRequest := multinode.CtxIsHealthCheckRequest(ctx) poller, channel := multinode.NewPoller[*evmtypes.Head](interval, func(ctx context.Context) (*evmtypes.Head, error) { if isHealthCheckRequest { ctx = multinode.CtxAddHealthCheckFlag(ctx) @@ -522,7 +522,7 @@ func (r *RPCClient) SubscribeToFinalizedHeads(ctx context.Context) (<-chan *evmt return nil, nil, errors.New("FinalizedBlockPollInterval is 0") } timeout := interval - isHealthCheckRequest := multinode.CtxIsHeathCheckRequest(ctx) + isHealthCheckRequest := multinode.CtxIsHealthCheckRequest(ctx) poller, channel := multinode.NewPoller[*evmtypes.Head](interval, func(ctx context.Context) (*evmtypes.Head, error) { if isHealthCheckRequest { ctx = multinode.CtxAddHealthCheckFlag(ctx) @@ -1417,7 +1417,7 @@ func (r *RPCClient) onNewHead(ctx context.Context, requestCh <-chan struct{}, he r.chainInfoLock.Lock() defer r.chainInfoLock.Unlock() - if !multinode.CtxIsHeathCheckRequest(ctx) { + if !multinode.CtxIsHealthCheckRequest(ctx) { r.highestUserObservations.BlockNumber = max(r.highestUserObservations.BlockNumber, head.Number) r.highestUserObservations.TotalDifficulty = multinode.MaxTotalDifficulty(r.highestUserObservations.TotalDifficulty, head.TotalDifficulty) } @@ -1436,7 +1436,7 @@ func (r *RPCClient) onNewFinalizedHead(ctx context.Context, requestCh <-chan str } r.chainInfoLock.Lock() defer r.chainInfoLock.Unlock() - if !multinode.CtxIsHeathCheckRequest(ctx) { + if !multinode.CtxIsHealthCheckRequest(ctx) { r.highestUserObservations.FinalizedBlockNumber = max(r.highestUserObservations.FinalizedBlockNumber, head.Number) } select { diff --git a/evm/types/models.go b/evm/types/models.go index 38ba74c95ff..abbdfa4a9a8 100644 --- a/evm/types/models.go +++ b/evm/types/models.go @@ -51,6 +51,10 @@ type Head struct { IsFinalized atomic.Bool } +func (h *Head) GetTotalDifficulty() *big.Int { + return h.BlockDifficulty() +} + var _ commontypes.Head[common.Hash] = &Head{} var _ htrktypes.Head[common.Hash, *big.Int] = &Head{} diff --git a/go.mod b/go.mod index d9bf7f0726c..d972349c2c4 100644 --- a/go.mod +++ b/go.mod @@ -86,9 +86,9 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 github.com/smartcontractkit/chainlink-feeds v0.1.1 github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a - github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b + github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 - github.com/smartcontractkit/chainlink-solana v1.1.1 + github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index 9a86e2375d9..349f79606fb 100644 --- a/go.sum +++ b/go.sum @@ -1128,12 +1128,15 @@ github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbd github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= github.com/smartcontractkit/chainlink-solana v1.1.1 h1:MTD0VfVIo/M5LdwnX+b6fcFcogEMgK8h2pP4Xg0VXFU= github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= +github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d/go.mod h1:lgG9JT2P19KnYuBheKIis5ZeCO+AaSta+RfzvwDQS2Y= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= From a85c87d042a171263fcd3d7acbdc7d340d39cf83 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 23:19:58 -0600 Subject: [PATCH 210/232] fix --- evm/types/models.go | 1 + go.sum | 13 +++++-------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/evm/types/models.go b/evm/types/models.go index abbdfa4a9a8..4eb1c1cfb40 100644 --- a/evm/types/models.go +++ b/evm/types/models.go @@ -52,6 +52,7 @@ type Head struct { } func (h *Head) GetTotalDifficulty() *big.Int { + // TODO needs to be resolved before merge to develop return h.BlockDifficulty() } diff --git a/go.sum b/go.sum index 349f79606fb..57ffa4518f9 100644 --- a/go.sum +++ b/go.sum @@ -486,8 +486,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= -github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -1126,15 +1126,12 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= +github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2LpSQR9U1gEbRV6PfAkiFdINmQ8nVnXIAQ= github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.1 h1:MTD0VfVIo/M5LdwnX+b6fcFcogEMgK8h2pP4Xg0VXFU= -github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= @@ -1316,8 +1313,8 @@ go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0. go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0/go.mod h1:1P/02zM3OwkX9uki+Wmxw3a5GVb6KUXRsa7m7bOC9Fg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/contrib/propagators/b3 v1.24.0 h1:n4xwCdTx3pZqZs2CjS/CUZAs03y3dZcGhC/FepKtEUY= go.opentelemetry.io/contrib/propagators/b3 v1.24.0/go.mod h1:k5wRxKRU2uXx2F8uNJ4TaonuEO/V7/5xoz7kdsDACT8= go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= From b8ac321c885624258d2f8218f10b8e20afe32669 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 23:22:32 -0600 Subject: [PATCH 211/232] update with develop --- evm/types/models.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/evm/types/models.go b/evm/types/models.go index 4eb1c1cfb40..b3def32c02b 100644 --- a/evm/types/models.go +++ b/evm/types/models.go @@ -52,8 +52,7 @@ type Head struct { } func (h *Head) GetTotalDifficulty() *big.Int { - // TODO needs to be resolved before merge to develop - return h.BlockDifficulty() + return h.TotalDifficulty } var _ commontypes.Head[common.Hash] = &Head{} From 90de36d8dc32710bd2d28adee1531325c4e88f05 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Mon, 3 Feb 2025 23:54:01 -0600 Subject: [PATCH 212/232] fix --- go.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/go.md b/go.md index ef5b6547b83..5eec3244d5d 100644 --- a/go.md +++ b/go.md @@ -173,7 +173,10 @@ flowchart LR click chainlink-testing-framework/seth href "https://github.com/smartcontractkit/chainlink-testing-framework" chainlink-testing-framework/wasp --> chainlink-testing-framework/lib/grafana click chainlink-testing-framework/wasp href "https://github.com/smartcontractkit/chainlink-testing-framework" - chainlink/core/scripts --> chainlink/deployment + chainlink/core/scripts --> ccip-owner-contracts + chainlink/core/scripts --> chainlink-protos/job-distributor + chainlink/core/scripts --> chainlink-testing-framework/lib + chainlink/core/scripts --> chainlink/v2 click chainlink/core/scripts href "https://github.com/smartcontractkit/chainlink" chainlink/deployment --> ccip-owner-contracts chainlink/deployment --> chainlink-protos/job-distributor From b8ac655f6dd5968b86f3e91f238e321c454c48f1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 10:14:41 -0600 Subject: [PATCH 213/232] go mod --- core/scripts/go.mod | 18 ++++++++----- core/scripts/go.sum | 66 +++++++++++++++++++++------------------------ 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 8867b497192..a24150ffbf4 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -34,6 +34,7 @@ require ( github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 + github.com/smartcontractkit/chainlink/deployment v0.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 @@ -50,6 +51,7 @@ require ( ) require ( + cloud.google.com/go/compute/metadata v0.6.0 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -64,6 +66,8 @@ require ( github.com/CosmWasm/wasmvm v1.2.4 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/Depado/ginprom v1.8.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect github.com/Masterminds/semver/v3 v3.3.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/NethermindEth/juno v0.3.1 // indirect @@ -191,6 +195,7 @@ require ( github.com/google/go-tpm v0.9.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect + github.com/googleapis/gax-go/v2 v2.14.1 // indirect github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/gorilla/sessions v1.2.2 // indirect @@ -392,19 +397,20 @@ require ( golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.32.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect + golang.org/x/net v0.33.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect - golang.org/x/time v0.7.0 // indirect + golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gonum.org/v1/gonum v0.15.1 // indirect + google.golang.org/api v0.211.0 // indirect google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/guregu/null.v4 v4.0.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 5b2ed48ce03..ab8b3d26f80 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -22,19 +22,18 @@ cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= -cloud.google.com/go/auth v0.9.9 h1:BmtbpNQozo8ZwW2t7QJjnrQtdganSdmqeIBxHxNkEZQ= -cloud.google.com/go/auth v0.9.9/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= -cloud.google.com/go/auth/oauth2adapt v0.2.3 h1:MlxF+Pd3OmSudg/b1yZ5lJwoXCEaeedAguodky1PcKI= -cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I= +cloud.google.com/go/auth v0.12.1 h1:n2Bj25BUMM0nvE9D2XLTiImanwZhO3DkfWSYS/SAJP4= +cloud.google.com/go/auth v0.12.1/go.mod h1:BFMu+TNpF3DmvfBO9ClqTR/SiqVIm7LukKF9mbendF4= +cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU= +cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.28.1 h1:XwPcZjgMCnU2tkwY10VleUjSAfpTj9RDn+kGrbYsi8o= -cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= -cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= +cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= +cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= @@ -104,12 +103,12 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 h1:f2Qw/Ehhimh5uO1fayV0QIW7DShEQqhtUfhYc+cBPlw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0/go.mod h1:2bIszWvQRlJVmJLiuLhukLImRjKPcYdzzsx6darK02A= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3/go.mod h1:SsdWig2J5PMnfMvfJuEb1uZa8Y+kvNyvrULFo69gTFk= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.3 h1:2vcVkrNdSMJpoOVAWi9ApsQR5iqNeFGt5Qx8Xlt3IoI= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.3/go.mod h1:wRbFgBQUVm1YXrvWKofAEmq9HNJTDphbAaJSSX01KUI= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 h1:ig/FpDD2JofP/NExKQUbn7uOSZzJAQqogfqluZK4ed4= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0/go.mod h1:otE2jQekW/PqXk1Awf5lmfokJx4uwuqcj1ab5SpGeW0= github.com/Khan/genqlient v0.7.0 h1:GZ1meyRnzcDTK48EjqB8t3bcfYvHArCUUvgOwpz1D4w= github.com/Khan/genqlient v0.7.0/go.mod h1:HNyy3wZvuYwmW3Y7mkoQLZsa/R5n5yIRajS1kPBvSFM= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= @@ -720,8 +719,8 @@ github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= @@ -729,12 +728,12 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= -github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= +github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v1.17.2/go.mod h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k= github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= @@ -1349,8 +1348,6 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a h1:fVtn9CDfoGF40FeqGwLvp9belfIw7VT3lgQTctFGP5E= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250203160922-fbdf168bb92a/go.mod h1:tHem58EihQh63kR2LlAOKDAs9Vbghf1dJKZRGy6LG8g= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b h1:TO1pwFeQKDOmv3loFiLJvYhtymuTgQUw9WgtwK1rueg= -github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250121205514-f73e2f86c23b/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab h1:uJ5i/b3A4gewVhe7vGArKoT7vhtoFIKCy4ecI08vft4= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20250130175645-f9ffc7ee5eab/go.mod h1:4JqpgFy01LaqG1yM2iFTzwX3ZgcAvW9WdstBZQgPHzU= github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0 h1:0ewLMbAz3rZrovdRUCgd028yOXX8KigB4FndAUdI2kM= @@ -1359,7 +1356,6 @@ github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0 h1:ZBat8EBvE2Lp github.com/smartcontractkit/chainlink-protos/orchestrator v0.4.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 h1:c77Gi/APraqwbBO8fbd/5JY2wW+MSIpYg8Uma9MEZFE= github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-solana v1.1.1/go.mod h1:FzAon5CnHGRgqxP3EGZ4lA2TE1VrNeamTw10aAH4fkk= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475 h1:2kZ4VEQonI0JchfiEXIbJc+AEyhwTR7Eid3XgyK8Ag0= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20250203204555-c245a7640475/go.mod h1:KzOY2/2wXeGeUT+ILqO1D4oyFmuZYkSRy0utVOLAiOc= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20250117224137-afdcdd75070d h1:hf1Ust1ub9r3+PgRgiry3065QXCXmw6P7YImnue1NEw= @@ -1370,10 +1366,8 @@ github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07V github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13/go.mod h1:1CKUOzoK+Ga19WuhRH9pxZ+qUUnrlIx108VEA6qSzeQ= github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 h1:VIxK8u0Jd0Q/VuhmsNm6Bls6Tb31H/sA3A/rbc5hnhg= github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0/go.mod h1:lyAu+oMXdNUzEDScj2DXB2IueY+SDXPPfyl/kb63tMM= -github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.4 h1:hPI9GhHE1RmIG1oyPeFjED0AhWnNb9JzD74Oq2bO+IQ= github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 h1:BxN9wddNLiugruN3k7nYoSMQTO0tz9qR+vILFW2l0Ps= github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5/go.mod h1:lJk0atEJ5Zyo3Tqrmf1Pl9jUEe79EgDb9bD3K5OTUBI= -github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.1 h1:hbapxD2wjGJNkP9Re2LqzPDbejzRP25Yk5vKfuaHs6U= github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 h1:7bCdbTUWzyczQg+kwHCxlx6y07zE8HNB8+ntTne6qd8= github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2/go.mod h1:MltlNu3jcXm/DyLN98I5TFNtu/o1NNAcaPAFKMXWk70= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= @@ -1768,8 +1762,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1782,8 +1776,8 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1880,8 +1874,8 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1909,8 +1903,8 @@ golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= -golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -2010,8 +2004,8 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.202.0 h1:y1iuVHMqokQbimW79ZqPZWo4CiyFu6HcCYHwSNyzlfo= -google.golang.org/api v0.202.0/go.mod h1:3Jjeq7M/SFblTNCp7ES2xhq+WvGL0KeXI0joHQBfwTQ= +google.golang.org/api v0.211.0 h1:IUpLjq09jxBSV1lACO33CGY3jsRcbctfGzhj+ZSE/Bg= +google.golang.org/api v0.211.0/go.mod h1:XOloB4MXFH4UTlQSGuNUxw0UT74qdENK8d6JNsXKLi0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2066,10 +2060,10 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4= -google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 h1:2oV8dfuIkM1Ti7DwXc0BJfnwr9csz4TDXI9EmiI+Rbw= -google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38/go.mod h1:vuAjtvlwkDKF6L1GQ0SokiRLCGFfeBUXWr/aFFkHACc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24= +google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= From 142817c35cda9444fc45c8a05f0590d41ac8be97 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 10:26:46 -0600 Subject: [PATCH 214/232] update --- go.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/go.md b/go.md index 5eec3244d5d..ef5b6547b83 100644 --- a/go.md +++ b/go.md @@ -173,10 +173,7 @@ flowchart LR click chainlink-testing-framework/seth href "https://github.com/smartcontractkit/chainlink-testing-framework" chainlink-testing-framework/wasp --> chainlink-testing-framework/lib/grafana click chainlink-testing-framework/wasp href "https://github.com/smartcontractkit/chainlink-testing-framework" - chainlink/core/scripts --> ccip-owner-contracts - chainlink/core/scripts --> chainlink-protos/job-distributor - chainlink/core/scripts --> chainlink-testing-framework/lib - chainlink/core/scripts --> chainlink/v2 + chainlink/core/scripts --> chainlink/deployment click chainlink/core/scripts href "https://github.com/smartcontractkit/chainlink" chainlink/deployment --> ccip-owner-contracts chainlink/deployment --> chainlink-protos/job-distributor From 87a4c3c6f36bc4e911f6b3d572133dbfc9463db9 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 11:20:12 -0600 Subject: [PATCH 215/232] update --- core/scripts/go.mod | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index a24150ffbf4..d6bfc030cce 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -11,7 +11,10 @@ replace github.com/smartcontractkit/chainlink/deployment => ../../deployment // Using a separate `require` here to avoid surrounding line changes // creating potential merge conflicts. -require github.com/smartcontractkit/chainlink/v2 v2.19.0-ccip1.5.16-alpha.0.0.20250129223716-34cbaaab2d04 +require ( + github.com/smartcontractkit/chainlink/deployment v0.0.0-20250128231431-9279badae2f0 + github.com/smartcontractkit/chainlink/v2 v2.19.0-ccip1.5.16-alpha.0.0.20250129223716-34cbaaab2d04 +) require ( github.com/docker/docker v27.3.1+incompatible @@ -34,7 +37,6 @@ require ( github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36 github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 - github.com/smartcontractkit/chainlink/deployment v0.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 From 096c8bad8c871c0fbce1e211bcf4daa7dd63bee0 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 11:43:47 -0600 Subject: [PATCH 216/232] update --- core/capabilities/ccip/oraclecreator/plugin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 742d47f29df..0c577e7ef62 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -569,7 +569,7 @@ func createChainWriter( switch chainFamily { case relay.NetworkSolana: var solConfig chainwriter.ChainWriterConfig - // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be provided from tooling config, and populated here for the params + // TODO once on-chain account lookup address are available, the routerProgramAddress and commonAddressesLookupTable should be provided from tooling config, and populated here for the params. if solConfig, err = solanaconfig.GetSolanaChainWriterConfig("", solana.PublicKey{}, transmitter[0]); err == nil { return nil, fmt.Errorf("failed to get Solana chain writer config: %w", err) } From 1fed66bbe6c6a19f7f8597e68165fe42b83ad9a8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 11:53:43 -0600 Subject: [PATCH 217/232] update --- go.mod | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 4f7bb3f838e..d972349c2c4 100644 --- a/go.mod +++ b/go.mod @@ -130,10 +130,7 @@ require ( k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 ) -require ( - github.com/bytecodealliance/wasmtime-go/v28 v28.0.0 // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250128162345-af4c8fd4481a // indirect -) +require github.com/bytecodealliance/wasmtime-go/v28 v28.0.0 // indirect require ( cel.dev/expr v0.17.0 // indirect @@ -213,7 +210,6 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.6 // indirect - github.com/gagliardetto/binary v0.8.0 // indirect github.com/gagliardetto/treeout v0.1.4 // indirect github.com/gagliardetto/utilz v0.1.1 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect From 8bec69ba6a95864c34ceeb7623506c8eef2c70e8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 12:44:23 -0600 Subject: [PATCH 218/232] update --- .github/actions/setup-solana/build-contracts/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/setup-solana/build-contracts/action.yml b/.github/actions/setup-solana/build-contracts/action.yml index b1c94345abf..5b4be8a2e82 100644 --- a/.github/actions/setup-solana/build-contracts/action.yml +++ b/.github/actions/setup-solana/build-contracts/action.yml @@ -31,14 +31,14 @@ runs: echo "ANCHOR_VERSION=${anchor}" >> $GITHUB_ENV - name: cache docker build image id: cache-image - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + uses: actions/cache@v4 # v4.0.2 with: lookup-only: true path: chains/solana/contracts/docker-build.tar key: ${{ runner.os }}-solana-build-${{ env.ANCHOR_VERSION }}-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo target dir id: cache-target - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + uses: actions/cache@v4 # v4.0.2 with: lookup-only: true path: chains/solana/contracts/target From 158674c462447b5d754b2a799b80b8ad1073b8f8 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 12:51:45 -0600 Subject: [PATCH 219/232] more --- evm/client/rpc_client.go | 67 ---------------------------------------- evm/types/models.go | 4 --- 2 files changed, 71 deletions(-) diff --git a/evm/client/rpc_client.go b/evm/client/rpc_client.go index 3d28c48ecd0..a8005c40d17 100644 --- a/evm/client/rpc_client.go +++ b/evm/client/rpc_client.go @@ -402,27 +402,6 @@ func (r *RPCClient) SubscribeToHeads(ctx context.Context) (ch <-chan *evmtypes.H // if new head based on http polling is enabled, we will replace it for WS newHead subscription if r.newHeadsPollInterval > 0 { -<<<<<<< HEAD - interval := r.newHeadsPollInterval - timeout := interval - isHealthCheckRequest := multinode.CtxIsHealthCheckRequest(ctx) - poller, channel := multinode.NewPoller[*evmtypes.Head](interval, func(ctx context.Context) (*evmtypes.Head, error) { - if isHealthCheckRequest { - ctx = multinode.CtxAddHealthCheckFlag(ctx) - } - return r.latestBlock(ctx) - }, timeout, r.rpcLog) - if err = poller.Start(ctx); err != nil { - return nil, nil, err - } - - err = r.registerSub(&poller, chStopInFlight) - if err != nil { - return nil, nil, err - } - -======= ->>>>>>> 8bec69ba6a95864c34ceeb7623506c8eef2c70e8 lggr.Debugf("Polling new heads over http") return r.RPCClientBase.SubscribeToHeads(ctx) } @@ -1293,52 +1272,6 @@ func (r *RPCClient) Name() string { return r.name } -<<<<<<< HEAD -func (r *RPCClient) onNewHead(ctx context.Context, requestCh <-chan struct{}, head *evmtypes.Head) { - if head == nil { - return - } - - r.chainInfoLock.Lock() - defer r.chainInfoLock.Unlock() - if !multinode.CtxIsHealthCheckRequest(ctx) { - r.highestUserObservations.BlockNumber = max(r.highestUserObservations.BlockNumber, head.Number) - r.highestUserObservations.TotalDifficulty = multinode.MaxTotalDifficulty(r.highestUserObservations.TotalDifficulty, head.TotalDifficulty) - } - select { - case <-requestCh: // no need to update latestChainInfo, as RPCClient already started new life cycle - return - default: - r.latestChainInfo.BlockNumber = head.Number - r.latestChainInfo.TotalDifficulty = head.TotalDifficulty - } -} - -func (r *RPCClient) onNewFinalizedHead(ctx context.Context, requestCh <-chan struct{}, head *evmtypes.Head) { - if head == nil { - return - } - r.chainInfoLock.Lock() - defer r.chainInfoLock.Unlock() - if !multinode.CtxIsHealthCheckRequest(ctx) { - r.highestUserObservations.FinalizedBlockNumber = max(r.highestUserObservations.FinalizedBlockNumber, head.Number) - } - select { - case <-requestCh: // no need to update latestChainInfo, as RPCClient already started new life cycle - return - default: - r.latestChainInfo.FinalizedBlockNumber = head.Number - } -} - -func (r *RPCClient) GetInterceptedChainInfo() (latest, highestUserObservations multinode.ChainInfo) { - r.chainInfoLock.Lock() - defer r.chainInfoLock.Unlock() - return r.latestChainInfo, r.highestUserObservations -} - -======= ->>>>>>> 8bec69ba6a95864c34ceeb7623506c8eef2c70e8 func ToBlockNumArg(number *big.Int) string { if number == nil { return "latest" diff --git a/evm/types/models.go b/evm/types/models.go index 8390a8e163b..ef41574bbbc 100644 --- a/evm/types/models.go +++ b/evm/types/models.go @@ -51,10 +51,6 @@ type Head struct { IsFinalized atomic.Bool } -func (h *Head) GetTotalDifficulty() *big.Int { - return h.TotalDifficulty -} - var _ commontypes.Head[common.Hash] = &Head{} var _ htrktypes.Head[common.Hash, *big.Int] = &Head{} From 5cdf259fccc08f05f458899ab3303aa13e22e0c1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 13:06:16 -0600 Subject: [PATCH 220/232] update --- go.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/go.md b/go.md index afd5aeda8e8..ef5b6547b83 100644 --- a/go.md +++ b/go.md @@ -54,8 +54,6 @@ flowchart LR chainlink-starknet/relayer --> chainlink-common click chainlink-starknet/relayer href "https://github.com/smartcontractkit/chainlink-starknet" chainlink/v2 --> chainlink-automation - chainlink/v2 --> chainlink-ccip - chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds @@ -189,8 +187,6 @@ flowchart LR chainlink/load-tests --> chainlink/integration-tests click chainlink/load-tests href "https://github.com/smartcontractkit/chainlink" chainlink/v2 --> chainlink-automation - chainlink/v2 --> chainlink-ccip - chainlink/v2 --> chainlink-ccip/chains/solana chainlink/v2 --> chainlink-cosmos chainlink/v2 --> chainlink-data-streams chainlink/v2 --> chainlink-feeds From 8164820e03cf20865e0a6e6fb18421fb1744ea0a Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 13:55:44 -0600 Subject: [PATCH 221/232] update --- core/scripts/go.mod | 6 +----- core/scripts/go.sum | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index d6bfc030cce..48ec0276546 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -53,7 +53,6 @@ require ( ) require ( - cloud.google.com/go/compute/metadata v0.6.0 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -68,8 +67,6 @@ require ( github.com/CosmWasm/wasmvm v1.2.4 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/Depado/ginprom v1.8.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect github.com/Masterminds/semver/v3 v3.3.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/NethermindEth/juno v0.3.1 // indirect @@ -197,7 +194,6 @@ require ( github.com/google/go-tpm v0.9.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect - github.com/googleapis/gax-go/v2 v2.14.1 // indirect github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/gorilla/sessions v1.2.2 // indirect @@ -402,7 +398,7 @@ require ( golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.29.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index ab8b3d26f80..fd4306fcc74 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1874,6 +1874,7 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= From f26416e1d4c1ad46d0e87d182501d9745dc319e5 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 13:58:04 -0600 Subject: [PATCH 222/232] mod --- core/scripts/go.mod | 10 +++++----- core/scripts/go.sum | 48 ++++++++++++++++++++++----------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 48ec0276546..00cd1c3409a 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -395,19 +395,19 @@ require ( golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.33.0 // indirect - golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/net v0.32.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect - golang.org/x/time v0.8.0 // indirect + golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/api v0.211.0 // indirect + google.golang.org/api v0.205.0 // indirect google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/guregu/null.v4 v4.0.0 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index fd4306fcc74..cd714a4caf4 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -22,18 +22,19 @@ cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= -cloud.google.com/go/auth v0.12.1 h1:n2Bj25BUMM0nvE9D2XLTiImanwZhO3DkfWSYS/SAJP4= -cloud.google.com/go/auth v0.12.1/go.mod h1:BFMu+TNpF3DmvfBO9ClqTR/SiqVIm7LukKF9mbendF4= -cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU= -cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= +cloud.google.com/go/auth v0.10.1 h1:TnK46qldSfHWt2a0b/hciaiVJsmDXWy9FqyUan0uYiI= +cloud.google.com/go/auth v0.10.1/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= +cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= +cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= -cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= +cloud.google.com/go/compute v1.28.1 h1:XwPcZjgMCnU2tkwY10VleUjSAfpTj9RDn+kGrbYsi8o= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= @@ -103,12 +104,12 @@ github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Depado/ginprom v1.8.0 h1:zaaibRLNI1dMiiuj1MKzatm8qrcHzikMlCc1anqOdyo= github.com/Depado/ginprom v1.8.0/go.mod h1:XBaKzeNBqPF4vxJpNLincSQZeMDnZp1tIbU0FU0UKgg= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 h1:f2Qw/Ehhimh5uO1fayV0QIW7DShEQqhtUfhYc+cBPlw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0/go.mod h1:2bIszWvQRlJVmJLiuLhukLImRjKPcYdzzsx6darK02A= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3 h1:cb3br57K508pQEFgBxn9GDhPS9HefpyMPK1RzmtMNzk= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.3/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3 h1:xir5X8TS8UBVPWg2jHL+cSTf0jZgqYQSA54TscSt1/0= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3/go.mod h1:SsdWig2J5PMnfMvfJuEb1uZa8Y+kvNyvrULFo69gTFk= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 h1:ig/FpDD2JofP/NExKQUbn7uOSZzJAQqogfqluZK4ed4= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0/go.mod h1:otE2jQekW/PqXk1Awf5lmfokJx4uwuqcj1ab5SpGeW0= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.3 h1:2vcVkrNdSMJpoOVAWi9ApsQR5iqNeFGt5Qx8Xlt3IoI= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.3/go.mod h1:wRbFgBQUVm1YXrvWKofAEmq9HNJTDphbAaJSSX01KUI= github.com/Khan/genqlient v0.7.0 h1:GZ1meyRnzcDTK48EjqB8t3bcfYvHArCUUvgOwpz1D4w= github.com/Khan/genqlient v0.7.0/go.mod h1:HNyy3wZvuYwmW3Y7mkoQLZsa/R5n5yIRajS1kPBvSFM= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= @@ -732,8 +733,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gT github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= -github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v1.17.2/go.mod h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k= github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= @@ -1762,8 +1763,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1776,8 +1777,8 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= -golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1874,9 +1875,8 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1904,8 +1904,8 @@ golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -2005,8 +2005,8 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.211.0 h1:IUpLjq09jxBSV1lACO33CGY3jsRcbctfGzhj+ZSE/Bg= -google.golang.org/api v0.211.0/go.mod h1:XOloB4MXFH4UTlQSGuNUxw0UT74qdENK8d6JNsXKLi0= +google.golang.org/api v0.205.0 h1:LFaxkAIpDb/GsrWV20dMMo5MR0h8UARTbn24LmD+0Pg= +google.golang.org/api v0.205.0/go.mod h1:NrK1EMqO8Xk6l6QwRAmrXXg2v6dzukhlOyvkYtnvUuc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2061,8 +2061,8 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4= -google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24= -google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw= +google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 h1:pgr/4QbFyktUv9CtQ/Fq4gzEE6/Xs7iCXbktaGzLHbQ= +google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697/go.mod h1:+D9ySVjN8nY8YCVjc5O7PZDIdZporIDY3KaGfJunh88= google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw= google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= From 8b3fa4e9d8e259348f6f9cde6fc93a15e3ca3484 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 14:00:01 -0600 Subject: [PATCH 223/232] update --- core/scripts/go.mod | 5 ++--- core/scripts/go.sum | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 00cd1c3409a..b54e2834351 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -405,10 +405,9 @@ require ( golang.org/x/tools v0.28.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/api v0.205.0 // indirect google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/guregu/null.v4 v4.0.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index cd714a4caf4..c2bc00ba10b 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -22,10 +22,10 @@ cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= -cloud.google.com/go/auth v0.10.1 h1:TnK46qldSfHWt2a0b/hciaiVJsmDXWy9FqyUan0uYiI= -cloud.google.com/go/auth v0.10.1/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= -cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= -cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= +cloud.google.com/go/auth v0.9.9 h1:BmtbpNQozo8ZwW2t7QJjnrQtdganSdmqeIBxHxNkEZQ= +cloud.google.com/go/auth v0.9.9/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= +cloud.google.com/go/auth/oauth2adapt v0.2.3 h1:MlxF+Pd3OmSudg/b1yZ5lJwoXCEaeedAguodky1PcKI= +cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -33,8 +33,8 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/compute v1.28.1 h1:XwPcZjgMCnU2tkwY10VleUjSAfpTj9RDn+kGrbYsi8o= -cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= -cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= +cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= @@ -720,8 +720,8 @@ github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= -github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= @@ -729,8 +729,8 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= -github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= @@ -2005,8 +2005,8 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.205.0 h1:LFaxkAIpDb/GsrWV20dMMo5MR0h8UARTbn24LmD+0Pg= -google.golang.org/api v0.205.0/go.mod h1:NrK1EMqO8Xk6l6QwRAmrXXg2v6dzukhlOyvkYtnvUuc= +google.golang.org/api v0.202.0 h1:y1iuVHMqokQbimW79ZqPZWo4CiyFu6HcCYHwSNyzlfo= +google.golang.org/api v0.202.0/go.mod h1:3Jjeq7M/SFblTNCp7ES2xhq+WvGL0KeXI0joHQBfwTQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2061,10 +2061,10 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4= -google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 h1:pgr/4QbFyktUv9CtQ/Fq4gzEE6/Xs7iCXbktaGzLHbQ= -google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697/go.mod h1:+D9ySVjN8nY8YCVjc5O7PZDIdZporIDY3KaGfJunh88= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 h1:2oV8dfuIkM1Ti7DwXc0BJfnwr9csz4TDXI9EmiI+Rbw= +google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38/go.mod h1:vuAjtvlwkDKF6L1GQ0SokiRLCGFfeBUXWr/aFFkHACc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= From c9fd1639d60ab59d6efd7cd879abd6a8ee8c83d1 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 4 Feb 2025 21:19:21 -0600 Subject: [PATCH 224/232] refactor extradata codec --- .../ccip/ccipevm/extradatadecoder.go | 43 +++++++++++++ .../ccip/ccipsolana/extradatadecoder.go | 45 +++++++++++++ .../ccip/common/extradatacodec.go | 63 ------------------- .../capabilities/ccip/oraclecreator/plugin.go | 5 +- 4 files changed, 90 insertions(+), 66 deletions(-) delete mode 100644 core/capabilities/ccip/common/extradatacodec.go diff --git a/core/capabilities/ccip/ccipevm/extradatadecoder.go b/core/capabilities/ccip/ccipevm/extradatadecoder.go index 5f26ba9a54c..816cd990b7c 100644 --- a/core/capabilities/ccip/ccipevm/extradatadecoder.go +++ b/core/capabilities/ccip/ccipevm/extradatadecoder.go @@ -3,9 +3,52 @@ package ccipevm import ( "fmt" + chainsel "github.com/smartcontractkit/chain-selectors" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) +type ExtraDataCodec struct{} + +func NewExtraDataCodec() ExtraDataCodec { + return ExtraDataCodec{} +} + +func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(extraArgs) == 0 { + // return empty map if extraArgs is empty + return nil, nil + } + + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + if family != chainsel.FamilyEVM { + return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilyEVM) + } + return DecodeExtraArgsToMap(extraArgs) +} + +func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(destExecData) == 0 { + // return empty map if destExecData is empty + return nil, nil + } + + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + if family != chainsel.FamilyEVM { + return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilyEVM) + } + + return DecodeDestExecDataToMap(destExecData) +} + func DecodeDestExecDataToMap(DestExecData cciptypes.Bytes) (map[string]interface{}, error) { destGasAmount, err := abiDecodeUint32(DestExecData) if err != nil { diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go index 4b2e72ef34e..891d2ff253a 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder.go @@ -7,6 +7,9 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" agbinary "github.com/gagliardetto/binary" + chainsel "github.com/smartcontractkit/chain-selectors" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) @@ -26,6 +29,48 @@ var ( evmExtraArgsV2Tag = hexutil.MustDecode("0x181dcf10") ) +type ExtraDataCodec struct{} + +func NewExtraDataCodec() ExtraDataCodec { + return ExtraDataCodec{} +} + +func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(extraArgs) == 0 { + // return empty map if extraArgs is empty + return nil, nil + } + + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + if family != chainsel.FamilySolana { + return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilySolana) + } + + return DecodeExtraArgsToMap(extraArgs) +} + +func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(destExecData) == 0 { + // return empty map if destExecData is empty + return nil, nil + } + + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + if family != chainsel.FamilySolana { + return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilySolana) + } + + return DecodeDestExecDataToMap(destExecData) +} + // DecodeExtraArgsToMap is a helper function for converting Borsh encoded extra args bytes into map[string]any, which will be saved in ocr report.message.ExtraArgsDecoded func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { if len(extraArgs) < 4 { diff --git a/core/capabilities/ccip/common/extradatacodec.go b/core/capabilities/ccip/common/extradatacodec.go deleted file mode 100644 index 47146ddd5b6..00000000000 --- a/core/capabilities/ccip/common/extradatacodec.go +++ /dev/null @@ -1,63 +0,0 @@ -package common - -import ( - "fmt" - - chainsel "github.com/smartcontractkit/chain-selectors" - - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" -) - -type ExtraDataCodec struct{} - -func NewExtraDataCodec() ExtraDataCodec { - return ExtraDataCodec{} -} - -func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - if len(extraArgs) == 0 { - // return empty map if extraArgs is empty - return nil, nil - } - - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) - } - - switch family { - case chainsel.FamilyEVM: - return ccipevm.DecodeExtraArgsToMap(extraArgs) - - case chainsel.FamilySolana: - return ccipsolana.DecodeExtraArgsToMap(extraArgs) - - default: - return nil, fmt.Errorf("unsupported family for extra args type %s", family) - } -} - -func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - if len(destExecData) == 0 { - // return empty map if destExecData is empty - return nil, nil - } - - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) - } - - switch family { - case chainsel.FamilyEVM: - return ccipevm.DecodeDestExecDataToMap(destExecData) - - case chainsel.FamilySolana: - return ccipsolana.DecodeDestExecDataToMap(destExecData) - - default: - return nil, fmt.Errorf("unsupported family for extra args type %s", family) - } -} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 0c577e7ef62..610cae61fb9 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -39,7 +39,6 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/types" "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" - ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" cctypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/types" @@ -252,7 +251,7 @@ var plugins = map[string]plugin{ chainsel.FamilyEVM: { CommitPluginCodec: ccipevm.NewCommitPluginCodecV1(), ExecutePluginCodec: ccipevm.NewExecutePluginCodecV1(), - ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), + ExtraArgsCodec: ccipevm.NewExtraDataCodec(), MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return ccipevm.NewMessageHasherV1(lggr) }, TokenDataEncoder: ccipevm.NewEVMTokenDataEncoder(), GasEstimateProvider: ccipevm.NewGasEstimateProvider(), @@ -261,7 +260,7 @@ var plugins = map[string]plugin{ chainsel.FamilySolana: { CommitPluginCodec: ccipsolana.NewCommitPluginCodecV1(), ExecutePluginCodec: ccipsolana.NewExecutePluginCodecV1(), - ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), + ExtraArgsCodec: ccipsolana.NewExtraDataCodec(), MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return ccipsolana.NewMessageHasherV1(lggr) }, TokenDataEncoder: ccipsolana.NewSolanaTokenDataEncoder(), GasEstimateProvider: ccipsolana.NewGasEstimateProvider(), From 2bd508ef8050295f7f696c2b7a4ef3760f31090b Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 5 Feb 2025 10:08:50 -0600 Subject: [PATCH 225/232] update --- .changeset/nasty-seals-remain.md | 5 +++++ integration-tests/smoke/ccip/ccip_reader_test.go | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 .changeset/nasty-seals-remain.md diff --git a/.changeset/nasty-seals-remain.md b/.changeset/nasty-seals-remain.md new file mode 100644 index 00000000000..fa6b7a3b4b8 --- /dev/null +++ b/.changeset/nasty-seals-remain.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +Simplify extradata decodc logic #added diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index c0126a5dc5e..abaa898e97a 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -14,12 +14,11 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/jmoiron/sqlx" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" - ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" - "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" "github.com/smartcontractkit/chainlink/v2/core/utils/testutils/heavyweight" @@ -279,7 +278,7 @@ func TestCCIPReader_GetRMNRemoteConfig(t *testing.T) { nil, chainD, rmnRemoteAddr.Bytes(), - ccipcommon.NewExtraDataCodec(), + ccipevm.NewExtraDataCodec(), ) exp, err := rmnRemote.GetVersionedConfig(&bind.CallOpts{ @@ -404,7 +403,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), - ccipcommon.NewExtraDataCodec(), + ccipevm.NewExtraDataCodec(), ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1515,7 +1514,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipcommon.NewExtraDataCodec() + edc := ccipevm.NewExtraDataCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1631,7 +1630,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipcommon.NewExtraDataCodec() + edc := ccipevm.NewExtraDataCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() { From e5734b1a1511e7ed57c5252531b3a76e86e5d7ac Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 5 Feb 2025 10:24:17 -0600 Subject: [PATCH 226/232] goimport --- integration-tests/smoke/ccip/ccip_reader_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index abaa898e97a..622a22a834d 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -14,11 +14,12 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient/simulated" "github.com/jmoiron/sqlx" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" + "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" "github.com/smartcontractkit/chainlink/v2/core/utils/testutils/heavyweight" From 4b7efb144505ab307043621cfe8d3149840962c3 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 5 Feb 2025 23:01:34 -0600 Subject: [PATCH 227/232] update --- .../ccip/ccipevm/extradatadecoder.go | 21 ------------------- .../ccip/ccipsolana/extradatadecoder.go | 20 ------------------ 2 files changed, 41 deletions(-) diff --git a/core/capabilities/ccip/ccipevm/extradatadecoder.go b/core/capabilities/ccip/ccipevm/extradatadecoder.go index 816cd990b7c..819f5a37271 100644 --- a/core/capabilities/ccip/ccipevm/extradatadecoder.go +++ b/core/capabilities/ccip/ccipevm/extradatadecoder.go @@ -3,8 +3,6 @@ package ccipevm import ( "fmt" - chainsel "github.com/smartcontractkit/chain-selectors" - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) @@ -19,15 +17,6 @@ func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSe // return empty map if extraArgs is empty return nil, nil } - - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) - } - - if family != chainsel.FamilyEVM { - return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilyEVM) - } return DecodeExtraArgsToMap(extraArgs) } @@ -36,16 +25,6 @@ func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Byt // return empty map if destExecData is empty return nil, nil } - - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) - } - - if family != chainsel.FamilyEVM { - return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilyEVM) - } - return DecodeDestExecDataToMap(destExecData) } diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go index 891d2ff253a..9477598a5c9 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder.go @@ -7,8 +7,6 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" agbinary "github.com/gagliardetto/binary" - chainsel "github.com/smartcontractkit/chain-selectors" - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" @@ -41,15 +39,6 @@ func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSe return nil, nil } - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) - } - - if family != chainsel.FamilySolana { - return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilySolana) - } - return DecodeExtraArgsToMap(extraArgs) } @@ -59,15 +48,6 @@ func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Byt return nil, nil } - family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) - if err != nil { - return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) - } - - if family != chainsel.FamilySolana { - return nil, fmt.Errorf("chain selector family is %d, expect %s", sourceChainSelector, chainsel.FamilySolana) - } - return DecodeDestExecDataToMap(destExecData) } From d57b70e48e7e88c3fee84c2fecde8a32393d2afe Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Wed, 5 Feb 2025 23:18:24 -0600 Subject: [PATCH 228/232] add error --- core/capabilities/ccip/ccipsolana/extradatadecoder.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go index 9477598a5c9..d4b492567e6 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder.go @@ -2,6 +2,7 @@ package ccipsolana import ( "encoding/binary" + "errors" "fmt" "reflect" @@ -36,7 +37,7 @@ func NewExtraDataCodec() ExtraDataCodec { func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { if len(extraArgs) == 0 { // return empty map if extraArgs is empty - return nil, nil + return nil, errors.New("empty extra arguments") } return DecodeExtraArgsToMap(extraArgs) From 0e235ebbce883193141c629bcb0ddb241e226856 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 6 Feb 2025 14:10:42 -0600 Subject: [PATCH 229/232] tidy --- core/scripts/go.sum | 2 +- go.mod | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 57d6b274e18..cc7ffe86c20 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1238,7 +1238,7 @@ github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrd github.com/smartcontractkit/chainlink-ccip v0.0.0-20250205140756-e0f1a86dfdb3 h1:1cStGzG8OalVpo2EGPMzrWgTdt1gJbEzQiHknRTRAYQ= github.com/smartcontractkit/chainlink-ccip v0.0.0-20250205140756-e0f1a86dfdb3/go.mod h1:UEnHaxkUsfreeA7rR45LMmua1Uen95tOFUR8/AI9BAo= github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b h1:eNsqumP7VVJudA7gEcTKVFofealwbPJRinUw24uEmII= -github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60=>>>>>>> develop +github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b/go.mod h1:Bmwq4lNb5tE47sydN0TKetcLEGbgl+VxHEWp4S0LI60= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36 h1:bS51NFGHVjkCy7yu9L2Ss4sBsCW6jpa5GuhRAdWWxzM= github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36/go.mod h1:Z2e1ynSJ4pg83b4Qldbmryc5lmnrI3ojOdg1FUloa68= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc h1:WZERXv2hTYRA0NpWg79ci/ZZSxucmvkty39iUOV8d7I= diff --git a/go.mod b/go.mod index eb797eeddf5..0634a166970 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.40 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.0.0-20250205140756-e0f1a86dfdb3 - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b + github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250130162116-1b2ee24da54b github.com/smartcontractkit/chainlink-common v0.4.2-0.20250130202959-6f1f48342e36 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20250130125138-3df261e09ddc github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250128203428-08031923fbe5 @@ -166,7 +166,6 @@ require ( github.com/blendle/zapdriver v1.3.1 // indirect github.com/buger/goterm v0.0.0-20200322175922-2f3e71b85129 // indirect github.com/buger/jsonparser v1.1.1 // indirect - github.com/bytecodealliance/wasmtime-go/v28 v28.0.0 // indirect github.com/bytedance/sonic v1.12.3 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect @@ -329,7 +328,6 @@ require ( github.com/sasha-s/go-deadlock v0.3.5 // indirect github.com/sethvargo/go-retry v0.2.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect - github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250128162345-af4c8fd4481a // indirect github.com/smartcontractkit/chainlink-protos/svr v0.0.0-20250123084029-58cce9b32112 github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/sourcegraph/conc v0.3.0 // indirect From a0b5e6e239a6e194c91c60a5985b6a8e092bafdf Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 6 Feb 2025 14:43:23 -0600 Subject: [PATCH 230/232] fix import --- core/capabilities/ccip/ccipsolana/extradatadecoder.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go index d4b492567e6..8d0942a8182 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder.go @@ -8,6 +8,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" agbinary "github.com/gagliardetto/binary" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" From 01677eb61cce59d7ae468a63bf63d56b5ecab95f Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 6 Feb 2025 14:59:58 -0600 Subject: [PATCH 231/232] revert previous extra data codec refactor --- .changeset/nasty-seals-remain.md | 5 -- .../ccip/ccipevm/extradatadecoder.go | 22 ------- .../ccip/ccipsolana/extradatadecoder.go | 27 -------- .../ccip/common/extradatacodec.go | 63 +++++++++++++++++++ .../capabilities/ccip/oraclecreator/plugin.go | 5 +- .../smoke/ccip/ccip_reader_test.go | 10 +-- 6 files changed, 71 insertions(+), 61 deletions(-) delete mode 100644 .changeset/nasty-seals-remain.md create mode 100644 core/capabilities/ccip/common/extradatacodec.go diff --git a/.changeset/nasty-seals-remain.md b/.changeset/nasty-seals-remain.md deleted file mode 100644 index fa6b7a3b4b8..00000000000 --- a/.changeset/nasty-seals-remain.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"chainlink": minor ---- - -Simplify extradata decodc logic #added diff --git a/core/capabilities/ccip/ccipevm/extradatadecoder.go b/core/capabilities/ccip/ccipevm/extradatadecoder.go index 819f5a37271..5f26ba9a54c 100644 --- a/core/capabilities/ccip/ccipevm/extradatadecoder.go +++ b/core/capabilities/ccip/ccipevm/extradatadecoder.go @@ -6,28 +6,6 @@ import ( cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) -type ExtraDataCodec struct{} - -func NewExtraDataCodec() ExtraDataCodec { - return ExtraDataCodec{} -} - -func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - if len(extraArgs) == 0 { - // return empty map if extraArgs is empty - return nil, nil - } - return DecodeExtraArgsToMap(extraArgs) -} - -func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - if len(destExecData) == 0 { - // return empty map if destExecData is empty - return nil, nil - } - return DecodeDestExecDataToMap(destExecData) -} - func DecodeDestExecDataToMap(DestExecData cciptypes.Bytes) (map[string]interface{}, error) { destGasAmount, err := abiDecodeUint32(DestExecData) if err != nil { diff --git a/core/capabilities/ccip/ccipsolana/extradatadecoder.go b/core/capabilities/ccip/ccipsolana/extradatadecoder.go index 8d0942a8182..4b2e72ef34e 100644 --- a/core/capabilities/ccip/ccipsolana/extradatadecoder.go +++ b/core/capabilities/ccip/ccipsolana/extradatadecoder.go @@ -2,15 +2,12 @@ package ccipsolana import ( "encoding/binary" - "errors" "fmt" "reflect" "github.com/ethereum/go-ethereum/common/hexutil" agbinary "github.com/gagliardetto/binary" - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" - "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" ) @@ -29,30 +26,6 @@ var ( evmExtraArgsV2Tag = hexutil.MustDecode("0x181dcf10") ) -type ExtraDataCodec struct{} - -func NewExtraDataCodec() ExtraDataCodec { - return ExtraDataCodec{} -} - -func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - if len(extraArgs) == 0 { - // return empty map if extraArgs is empty - return nil, errors.New("empty extra arguments") - } - - return DecodeExtraArgsToMap(extraArgs) -} - -func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - if len(destExecData) == 0 { - // return empty map if destExecData is empty - return nil, nil - } - - return DecodeDestExecDataToMap(destExecData) -} - // DecodeExtraArgsToMap is a helper function for converting Borsh encoded extra args bytes into map[string]any, which will be saved in ocr report.message.ExtraArgsDecoded func DecodeExtraArgsToMap(extraArgs []byte) (map[string]any, error) { if len(extraArgs) < 4 { diff --git a/core/capabilities/ccip/common/extradatacodec.go b/core/capabilities/ccip/common/extradatacodec.go new file mode 100644 index 00000000000..47146ddd5b6 --- /dev/null +++ b/core/capabilities/ccip/common/extradatacodec.go @@ -0,0 +1,63 @@ +package common + +import ( + "fmt" + + chainsel "github.com/smartcontractkit/chain-selectors" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipsolana" +) + +type ExtraDataCodec struct{} + +func NewExtraDataCodec() ExtraDataCodec { + return ExtraDataCodec{} +} + +func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(extraArgs) == 0 { + // return empty map if extraArgs is empty + return nil, nil + } + + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + switch family { + case chainsel.FamilyEVM: + return ccipevm.DecodeExtraArgsToMap(extraArgs) + + case chainsel.FamilySolana: + return ccipsolana.DecodeExtraArgsToMap(extraArgs) + + default: + return nil, fmt.Errorf("unsupported family for extra args type %s", family) + } +} + +func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + if len(destExecData) == 0 { + // return empty map if destExecData is empty + return nil, nil + } + + family, err := chainsel.GetSelectorFamily(uint64(sourceChainSelector)) + if err != nil { + return nil, fmt.Errorf("failed to get chain family for selector %d: %w", sourceChainSelector, err) + } + + switch family { + case chainsel.FamilyEVM: + return ccipevm.DecodeDestExecDataToMap(destExecData) + + case chainsel.FamilySolana: + return ccipsolana.DecodeDestExecDataToMap(destExecData) + + default: + return nil, fmt.Errorf("unsupported family for extra args type %s", family) + } +} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index 610cae61fb9..0c577e7ef62 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -39,6 +39,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/types" "github.com/smartcontractkit/chainlink-solana/pkg/solana/chainwriter" "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls" cctypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/types" @@ -251,7 +252,7 @@ var plugins = map[string]plugin{ chainsel.FamilyEVM: { CommitPluginCodec: ccipevm.NewCommitPluginCodecV1(), ExecutePluginCodec: ccipevm.NewExecutePluginCodecV1(), - ExtraArgsCodec: ccipevm.NewExtraDataCodec(), + ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return ccipevm.NewMessageHasherV1(lggr) }, TokenDataEncoder: ccipevm.NewEVMTokenDataEncoder(), GasEstimateProvider: ccipevm.NewGasEstimateProvider(), @@ -260,7 +261,7 @@ var plugins = map[string]plugin{ chainsel.FamilySolana: { CommitPluginCodec: ccipsolana.NewCommitPluginCodecV1(), ExecutePluginCodec: ccipsolana.NewExecutePluginCodecV1(), - ExtraArgsCodec: ccipsolana.NewExtraDataCodec(), + ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return ccipsolana.NewMessageHasherV1(lggr) }, TokenDataEncoder: ccipsolana.NewSolanaTokenDataEncoder(), GasEstimateProvider: ccipsolana.NewGasEstimateProvider(), diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 622a22a834d..c0126a5dc5e 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -18,7 +18,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" "github.com/smartcontractkit/chainlink/v2/core/utils/testutils/heavyweight" @@ -279,7 +279,7 @@ func TestCCIPReader_GetRMNRemoteConfig(t *testing.T) { nil, chainD, rmnRemoteAddr.Bytes(), - ccipevm.NewExtraDataCodec(), + ccipcommon.NewExtraDataCodec(), ) exp, err := rmnRemote.GetVersionedConfig(&bind.CallOpts{ @@ -404,7 +404,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), - ccipevm.NewExtraDataCodec(), + ccipcommon.NewExtraDataCodec(), ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1515,7 +1515,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraDataCodec() + edc := ccipcommon.NewExtraDataCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1631,7 +1631,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraDataCodec() + edc := ccipcommon.NewExtraDataCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() { From 914328b67f8f1cddae79904787138739f5427874 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Thu, 6 Feb 2025 16:38:33 -0600 Subject: [PATCH 232/232] fix --- core/capabilities/ccip/ccipsolana/commitcodec_test.go | 2 +- core/capabilities/ccip/ccipsolana/executecodec_test.go | 2 +- core/capabilities/ccip/ccipsolana/msghasher_test.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/capabilities/ccip/ccipsolana/commitcodec_test.go b/core/capabilities/ccip/ccipsolana/commitcodec_test.go index e02e6773c9f..3f5916d6450 100644 --- a/core/capabilities/ccip/ccipsolana/commitcodec_test.go +++ b/core/capabilities/ccip/ccipsolana/commitcodec_test.go @@ -15,8 +15,8 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink-integrations/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/evm/utils" ) var randomCommitReport = func() cciptypes.CommitPluginReport { diff --git a/core/capabilities/ccip/ccipsolana/executecodec_test.go b/core/capabilities/ccip/ccipsolana/executecodec_test.go index 2762b26b220..f36918cd077 100644 --- a/core/capabilities/ccip/ccipsolana/executecodec_test.go +++ b/core/capabilities/ccip/ccipsolana/executecodec_test.go @@ -13,8 +13,8 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/ccip_router" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink-integrations/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/evm/utils" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/core/capabilities/ccip/ccipsolana/msghasher_test.go b/core/capabilities/ccip/ccipsolana/msghasher_test.go index d4cc339cfbf..9ee22890d5c 100644 --- a/core/capabilities/ccip/ccipsolana/msghasher_test.go +++ b/core/capabilities/ccip/ccipsolana/msghasher_test.go @@ -17,8 +17,8 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink-integrations/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/evm/utils" cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" )