From 9cce7ed8daafa324bfa3366c2c4a6f148e4e194a Mon Sep 17 00:00:00 2001 From: Agustina Aldasoro Date: Mon, 19 Jan 2026 16:13:40 -0300 Subject: [PATCH 01/13] Refactor go bindings and deployment evm --- .../burn_mint_erc677/burn_mint_erc677.go | 34 - .../v1_0_0/operations/erc677/erc677.go | 30 - .../factory_burn_mint_erc20.go | 2 +- .../evm/deployment/v1_0_0/sequences/mcms.go | 2 +- .../ping_pong_dapp/ping_pong_dapp.go | 2 +- .../evm/deployment/v1_6_0/sequences/token.go | 36 +- .../deployment/v1_6_0/sequences/token_test.go | 21 +- .../changesets/apply_chain_updates_test.go | 2 +- .../changesets/modify_remote_pools_test.go | 2 +- .../v1_6_4/changesets/set_domains_test.go | 8 +- .../usdc_token_pool_cctp_v2_deploy_test.go | 12 +- .../mock_usdc_token_messenger.go | 678 ++++++++++++++++++ .../mock_usdc_token_messenger_metadata.go | 7 + .../mock_usdc_token_messenger_zksync.go | 61 ++ .../mock_usdc_token_transmitter.go | 457 ++++++++++++ .../mock_usdc_token_transmitter_metadata.go | 7 + .../mock_usdc_token_transmitter_zksync.go | 61 ++ 17 files changed, 1289 insertions(+), 133 deletions(-) delete mode 100644 chains/evm/deployment/v1_0_0/operations/burn_mint_erc677/burn_mint_erc677.go delete mode 100644 chains/evm/deployment/v1_0_0/operations/erc677/erc677.go create mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go create mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go create mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go create mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go create mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go create mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go diff --git a/chains/evm/deployment/v1_0_0/operations/burn_mint_erc677/burn_mint_erc677.go b/chains/evm/deployment/v1_0_0/operations/burn_mint_erc677/burn_mint_erc677.go deleted file mode 100644 index 0c28af235d..0000000000 --- a/chains/evm/deployment/v1_0_0/operations/burn_mint_erc677/burn_mint_erc677.go +++ /dev/null @@ -1,34 +0,0 @@ -package burn_mint_erc677 - -import ( - "math/big" - - "github.com/ethereum/go-ethereum/common" - - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" - "github.com/smartcontractkit/chainlink-ccip/deployment/utils" - cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment" - "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc677" -) - -var ContractType cldf_deployment.ContractType = "BurnMintERC677Token" - -type ConstructorArgs struct { - Name string - Symbol string - Decimals uint8 - MaxSupply *big.Int -} - -var Deploy = contract.NewDeploy(contract.DeployParams[ConstructorArgs]{ - Name: "burn_mint_erc677:deploy", - Version: utils.Version_1_0_0, - Description: "Deploys the BurnMintERC677 Token contract", - ContractMetadata: burn_mint_erc677.BurnMintERC677MetaData, - BytecodeByTypeAndVersion: map[string]contract.Bytecode{ - cldf_deployment.NewTypeAndVersion(ContractType, *utils.Version_1_0_0).String(): { - EVM: common.FromHex(burn_mint_erc677.BurnMintERC677Bin), - }, - }, - Validate: func(args ConstructorArgs) error { return nil }, -}) diff --git a/chains/evm/deployment/v1_0_0/operations/erc677/erc677.go b/chains/evm/deployment/v1_0_0/operations/erc677/erc677.go deleted file mode 100644 index ecb432adc1..0000000000 --- a/chains/evm/deployment/v1_0_0/operations/erc677/erc677.go +++ /dev/null @@ -1,30 +0,0 @@ -package erc677 - -import ( - "github.com/ethereum/go-ethereum/common" - - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" - "github.com/smartcontractkit/chainlink-ccip/deployment/utils" - cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment" - "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/erc677" -) - -var ContractType cldf_deployment.ContractType = "ERC677Token" - -type ConstructorArgs struct { - Name string - Symbol string -} - -var Deploy = contract.NewDeploy(contract.DeployParams[ConstructorArgs]{ - Name: "erc677:deploy", - Version: utils.Version_1_0_0, - Description: "Deploys the ERC677 Token contract", - ContractMetadata: erc677.ERC677MetaData, - BytecodeByTypeAndVersion: map[string]contract.Bytecode{ - cldf_deployment.NewTypeAndVersion(ContractType, *utils.Version_1_0_0).String(): { - EVM: common.FromHex(erc677.ERC677Bin), - }, - }, - Validate: func(args ConstructorArgs) error { return nil }, -}) diff --git a/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go b/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go index d8f692a143..c1a42c592d 100644 --- a/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go +++ b/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go @@ -6,7 +6,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/factory_burn_mint_erc20" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/factory_burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/deployment/utils" cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment" ) diff --git a/chains/evm/deployment/v1_0_0/sequences/mcms.go b/chains/evm/deployment/v1_0_0/sequences/mcms.go index 449c11f15d..ed121339e9 100644 --- a/chains/evm/deployment/v1_0_0/sequences/mcms.go +++ b/chains/evm/deployment/v1_0_0/sequences/mcms.go @@ -10,7 +10,7 @@ import ( "github.com/smartcontractkit/chainlink-deployments-framework/datastore" cldf "github.com/smartcontractkit/chainlink-deployments-framework/deployment" cldf_ops "github.com/smartcontractkit/chainlink-deployments-framework/operations" - "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/latest/burn_mint_erc677" + "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc677" "github.com/smartcontractkit/mcms/sdk/evm" "github.com/smartcontractkit/mcms/sdk/evm/bindings" "github.com/smartcontractkit/mcms/types" diff --git a/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go b/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go index 6c1054d594..3f44bbbcfd 100644 --- a/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go +++ b/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go @@ -7,7 +7,7 @@ import ( "github.com/ethereum/go-ethereum/core/types" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/ping_pong_demo" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_0/ping_pong_demo" cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment" ) diff --git a/chains/evm/deployment/v1_6_0/sequences/token.go b/chains/evm/deployment/v1_6_0/sequences/token.go index b5d6c84b5b..9be009571a 100644 --- a/chains/evm/deployment/v1_6_0/sequences/token.go +++ b/chains/evm/deployment/v1_6_0/sequences/token.go @@ -11,9 +11,7 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20_with_drip" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc677" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/erc20" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/erc677" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20" tokenapi "github.com/smartcontractkit/chainlink-ccip/deployment/tokens" common_utils "github.com/smartcontractkit/chainlink-ccip/deployment/utils" @@ -26,7 +24,7 @@ import ( ) // tokenSupportsAdminRole returns true if the token type supports AccessControl admin roles. -// ERC20 and ERC677 are basic tokens without role management. +// ERC20 is the basic token without role management. // BurnMint tokens inherit from AccessControl and support role management. func tokenSupportsAdminRole(tokenType deployment.ContractType) bool { switch tokenType { @@ -39,7 +37,7 @@ func tokenSupportsAdminRole(tokenType deployment.ContractType) bool { } // tokenSupportsCCIPAdmin returns true if the token type supports AccessControl CCIP admin roles. -// ERC20 and ERC677 are basic tokens without role management. +// ERC20 is the basic token without role management. func tokenSupportsCCIPAdmin(tokenType deployment.ContractType) bool { switch tokenType { case burn_mint_erc20.ContractType, @@ -77,20 +75,6 @@ var DeployToken = cldf_ops.NewSequence( return sequences.OnChainOutput{}, fmt.Errorf("failed to deploy ERC20 token: %w", err) } - case erc677.ContractType: - tokenRef, err = contract.MaybeDeployContract(b, erc677.Deploy, chain, contract.DeployInput[erc677.ConstructorArgs]{ - TypeAndVersion: deployment.NewTypeAndVersion(erc677.ContractType, *common_utils.Version_1_0_0), - ChainSelector: chain.Selector, - Args: erc677.ConstructorArgs{ - Name: input.Name, - Symbol: input.Symbol, - }, - Qualifier: &qualifier, - }, nil) - if err != nil { - return sequences.OnChainOutput{}, fmt.Errorf("failed to deploy ERC677 token: %w", err) - } - case burn_mint_erc20.ContractType: tokenRef, err = contract.MaybeDeployContract(b, burn_mint_erc20.Deploy, chain, contract.DeployInput[burn_mint_erc20.ConstructorArgs]{ TypeAndVersion: deployment.NewTypeAndVersion(burn_mint_erc20.ContractType, *common_utils.Version_1_0_0), @@ -108,22 +92,6 @@ var DeployToken = cldf_ops.NewSequence( return sequences.OnChainOutput{}, fmt.Errorf("failed to deploy BurnMintERC20 token: %w", err) } - case burn_mint_erc677.ContractType: - tokenRef, err = contract.MaybeDeployContract(b, burn_mint_erc677.Deploy, chain, contract.DeployInput[burn_mint_erc677.ConstructorArgs]{ - TypeAndVersion: deployment.NewTypeAndVersion(burn_mint_erc677.ContractType, *common_utils.Version_1_0_0), - ChainSelector: chain.Selector, - Args: burn_mint_erc677.ConstructorArgs{ - Name: input.Name, - Symbol: input.Symbol, - Decimals: input.Decimals, - MaxSupply: input.Supply, - }, - Qualifier: &qualifier, - }, nil) - if err != nil { - return sequences.OnChainOutput{}, fmt.Errorf("failed to deploy BurnMintERC677 token: %w", err) - } - case factory_burn_mint_erc20.ContractType: tokenRef, err = contract.MaybeDeployContract(b, factory_burn_mint_erc20.Deploy, chain, contract.DeployInput[factory_burn_mint_erc20.ConstructorArgs]{ TypeAndVersion: deployment.NewTypeAndVersion(factory_burn_mint_erc20.ContractType, *common_utils.Version_1_0_0), diff --git a/chains/evm/deployment/v1_6_0/sequences/token_test.go b/chains/evm/deployment/v1_6_0/sequences/token_test.go index 27fc74b38d..572bc395ce 100644 --- a/chains/evm/deployment/v1_6_0/sequences/token_test.go +++ b/chains/evm/deployment/v1_6_0/sequences/token_test.go @@ -17,9 +17,7 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20_with_drip" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc677" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/erc20" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/erc677" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20" bnm_bindings "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc20" @@ -27,8 +25,7 @@ import ( ) // TestEVMTokenDeployments tests various EVM token deployments using the DeployToken sequence directly. -// This covers all supported EVM token types: ERC20, ERC677, BurnMintERC20, BurnMintERC677, -// FactoryBurnMintERC20, and BurnMintERC20WithDrip. +// This covers all supported EVM token types: ERC20, BurnMintERC20, FactoryBurnMintERC20, and BurnMintERC20WithDrip. // Note: The full TokenExpansion changeset is not yet implemented for EVM (DeployTokenPoolForToken, // RegisterToken, SetPool return nil), so we test token deployment directly via the sequence. func TestEVMTokenDeployments(t *testing.T) { @@ -58,13 +55,6 @@ func TestEVMTokenDeployments(t *testing.T) { tokenSymbol: "TERC20", decimals: 18, }, - { - name: "ERC677Token", - tokenType: erc677.ContractType, - tokenName: "Test ERC677", - tokenSymbol: "TERC677", - decimals: 6, - }, { name: "BurnMintERC20Token", tokenType: burn_mint_erc20.ContractType, @@ -76,15 +66,6 @@ func TestEVMTokenDeployments(t *testing.T) { preMint: big.NewInt(0).Mul(big.NewInt(1e6), big.NewInt(1e18)), // 1 million tokens requiresSupply: true, }, - { - name: "BurnMintERC677Token", - tokenType: burn_mint_erc677.ContractType, - tokenName: "Test BurnMint ERC677", - tokenSymbol: "TBMERC677", - decimals: 18, - supply: big.NewInt(0).Mul(big.NewInt(1e9), big.NewInt(1e18)), - requiresSupply: true, - }, { name: "FactoryBurnMintERC20Token", tokenType: factory_burn_mint_erc20.ContractType, diff --git a/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go b/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go index f4e8def26b..e29d6b1965 100644 --- a/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go @@ -14,9 +14,9 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/changesets" token_pool_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/token_pool" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/factory_burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/burn_mint_token_pool" token_pool_bindings "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/token_pool" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/factory_burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/deployment/utils/mcms" ) diff --git a/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go b/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go index 9ae5fd1083..514c4c73fe 100644 --- a/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go @@ -22,7 +22,7 @@ import ( "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/factory_burn_mint_erc20" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/factory_burn_mint_erc20" ) func TestModifyRemotePoolsChangeset(t *testing.T) { diff --git a/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go b/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go index 65fdcd9c85..1aa8fcd5a2 100644 --- a/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go @@ -16,10 +16,10 @@ import ( contract_utils "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/changesets" usdc_token_pool_cctp_v2_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/usdc_token_pool_cctp_v2" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/cctp_message_transmitter_proxy" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/factory_burn_mint_erc20" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_messenger" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_transmitter" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/cctp_message_transmitter_proxy" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/factory_burn_mint_erc20" usdc_token_pool_cctp_v2_bindings "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_4/usdc_token_pool_cctp_v2" ) diff --git a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go index ab9d2661f0..0eeb275dc5 100644 --- a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go @@ -13,15 +13,15 @@ import ( mcms_types "github.com/smartcontractkit/mcms/types" "github.com/stretchr/testify/require" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/adapters" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/adapters" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/changesets" cctp_message_transmitter_proxy_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/cctp_message_transmitter_proxy" usdc_token_pool_cctp_v2_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/usdc_token_pool_cctp_v2" - cctp_message_transmitter_proxy_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/cctp_message_transmitter_proxy" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/factory_burn_mint_erc20" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_messenger" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_transmitter" - usdc_token_pool_cctp_v2_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/usdc_token_pool_cctp_v2" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/factory_burn_mint_erc20" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter" + cctp_message_transmitter_proxy_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/cctp_message_transmitter_proxy" + usdc_token_pool_cctp_v2_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_4/usdc_token_pool_cctp_v2" "github.com/smartcontractkit/chainlink-ccip/deployment/deploy" "github.com/smartcontractkit/chainlink-ccip/deployment/testhelpers" deploymentutils "github.com/smartcontractkit/chainlink-ccip/deployment/utils" diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go new file mode 100644 index 0000000000..fd1c537a93 --- /dev/null +++ b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go @@ -0,0 +1,678 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package mock_usdc_token_messenger + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var MockE2EUSDCTokenMessengerMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"transmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DESTINATION_TOKEN_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositForBurn\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"burnToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"maxFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"minFinalityThreshold\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositForBurnWithCaller\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"burnToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getMinFeeAmount\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"localMessageTransmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"localMessageTransmitterWithRelay\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contract IMessageTransmitterWithRelay\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"messageBodyVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"s_nonce\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"DepositForBurn\",\"inputs\":[{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"burnToken\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"depositor\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"destinationTokenMessenger\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositForBurn\",\"inputs\":[{\"name\":\"burnToken\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"depositor\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"destinationTokenMessenger\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"maxFee\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"minFinalityThreshold\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"hookData\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", + Bin: "0x60e0346100be57601f610b3538819003918201601f19168301916001600160401b038311848410176100c35780849260409485528339810103126100be5780519063ffffffff821682036100be57602001516001600160a01b038116918282036100be57608052600080546001600160401b031916600117905560a05260c052604051610a5b90816100da823960805181818161020c01528181610497015261067b015260a05181610769015260c05181818161061c01526109680152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c9081632c1219211461071f57508063516990e3146106e45780637eccf63e1461069f5780639cdbb18114610640578063a250c66a146105d1578063d04857b014610346578063f856ddb6146100d45763fb8406a91461007957600080fd5b346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d15760206040517f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f68152f35b80fd5b50346100d15760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d15760043590610110610791565b9160443561011c6107a9565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810184905273ffffffffffffffffffffffffffffffffffffffff91909116916084359160208160648189885af1801561030e57610319575b50823b1561030a576040517f42966c68000000000000000000000000000000000000000000000000000000008152846004820152858160248183885af1801561030e576102f5575b5060209563ffffffff9167ffffffffffffffff6102616040517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b168b8201528760248201528360448201528860648201523360848201526084815261025a60a4826107cc565b86856108d3565b1696877fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055604051958652878601521660408401527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f660608401526080830152827f2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c060a03394a4604051908152f35b6103008680926107cc565b61030a57386101d0565b8480fd5b6040513d88823e3d90fd5b61033a9060203d60201161033f575b61033281836107cc565b81019061083c565b610188565b503d610328565b50346100d15760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157600435610381610791565b9060443561038d6107a9565b9260843560a4359163ffffffff83168093036105cd5760c4359563ffffffff87168097036105ac576040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905273ffffffffffffffffffffffffffffffffffffffff9190911694906020816064818c8a5af180156105a1576105b0575b50843b156105ac576040517f42966c680000000000000000000000000000000000000000000000000000000081528660048201528881602481838a5af180156105a157610587575b509063ffffffff916105076040517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b1660208201528760248201528260448201528860648201523360848201528a60a48201528a60c48201528a60e48201528a61010482015260e48152610500610104826107cc565b85846108d3565b5060405196875260208701521660408501527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f66060850152608084015260a083015260e060c08301528360e0830152836101008301527f6a4c152b4ad8c08f204453d58ef2ac1c0bb69627dd545cf47507d32d036e67d56101003393a480f35b976105998163ffffffff94939a6107cc565b979091610466565b6040513d8b823e3d90fd5b8780fd5b6105c89060203d60201161033f5761033281836107cc565b61041e565b8680fd5b50346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d15767ffffffffffffffff6020915416604051908152f35b50346100d15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157602090604051908152f35b90503461078d57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261078d5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b6024359063ffffffff821682036107a457565b600080fd5b6064359073ffffffffffffffffffffffffffffffffffffffff821682036107a457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761080d57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126107a4575180151581036107a45790565b908160209103126107a4575167ffffffffffffffff811681036107a45790565b919082519283825260005b8481106108be5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b8060208092840101518282860101520161087f565b90806109d4575063ffffffff60209161094d60405194859384937f0ba469bc0000000000000000000000000000000000000000000000000000000085521660048401527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f66024840152606060448401526064830190610874565b0381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156109c85760009161099c575090565b6109be915060203d6020116109c1575b6109b681836107cc565b810190610854565b90565b503d6109ac565b6040513d6000823e3d90fd5b9160209161094d63ffffffff9260405195869485947ff7259a750000000000000000000000000000000000000000000000000000000086521660048501527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f66024850152604484015260806064840152608483019061087456fea164736f6c634300081a000a", +} + +var MockE2EUSDCTokenMessengerABI = MockE2EUSDCTokenMessengerMetaData.ABI + +var MockE2EUSDCTokenMessengerBin = MockE2EUSDCTokenMessengerMetaData.Bin + +func DeployMockE2EUSDCTokenMessenger(auth *bind.TransactOpts, backend bind.ContractBackend, version uint32, transmitter common.Address) (common.Address, *types.Transaction, *MockE2EUSDCTokenMessenger, error) { + parsed, err := MockE2EUSDCTokenMessengerMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MockE2EUSDCTokenMessengerBin), backend, version, transmitter) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &MockE2EUSDCTokenMessenger{address: address, abi: *parsed, MockE2EUSDCTokenMessengerCaller: MockE2EUSDCTokenMessengerCaller{contract: contract}, MockE2EUSDCTokenMessengerTransactor: MockE2EUSDCTokenMessengerTransactor{contract: contract}, MockE2EUSDCTokenMessengerFilterer: MockE2EUSDCTokenMessengerFilterer{contract: contract}}, nil +} + +type MockE2EUSDCTokenMessenger struct { + address common.Address + abi abi.ABI + MockE2EUSDCTokenMessengerCaller + MockE2EUSDCTokenMessengerTransactor + MockE2EUSDCTokenMessengerFilterer +} + +type MockE2EUSDCTokenMessengerCaller struct { + contract *bind.BoundContract +} + +type MockE2EUSDCTokenMessengerTransactor struct { + contract *bind.BoundContract +} + +type MockE2EUSDCTokenMessengerFilterer struct { + contract *bind.BoundContract +} + +type MockE2EUSDCTokenMessengerSession struct { + Contract *MockE2EUSDCTokenMessenger + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type MockE2EUSDCTokenMessengerCallerSession struct { + Contract *MockE2EUSDCTokenMessengerCaller + CallOpts bind.CallOpts +} + +type MockE2EUSDCTokenMessengerTransactorSession struct { + Contract *MockE2EUSDCTokenMessengerTransactor + TransactOpts bind.TransactOpts +} + +type MockE2EUSDCTokenMessengerRaw struct { + Contract *MockE2EUSDCTokenMessenger +} + +type MockE2EUSDCTokenMessengerCallerRaw struct { + Contract *MockE2EUSDCTokenMessengerCaller +} + +type MockE2EUSDCTokenMessengerTransactorRaw struct { + Contract *MockE2EUSDCTokenMessengerTransactor +} + +func NewMockE2EUSDCTokenMessenger(address common.Address, backend bind.ContractBackend) (*MockE2EUSDCTokenMessenger, error) { + abi, err := abi.JSON(strings.NewReader(MockE2EUSDCTokenMessengerABI)) + if err != nil { + return nil, err + } + contract, err := bindMockE2EUSDCTokenMessenger(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &MockE2EUSDCTokenMessenger{address: address, abi: abi, MockE2EUSDCTokenMessengerCaller: MockE2EUSDCTokenMessengerCaller{contract: contract}, MockE2EUSDCTokenMessengerTransactor: MockE2EUSDCTokenMessengerTransactor{contract: contract}, MockE2EUSDCTokenMessengerFilterer: MockE2EUSDCTokenMessengerFilterer{contract: contract}}, nil +} + +func NewMockE2EUSDCTokenMessengerCaller(address common.Address, caller bind.ContractCaller) (*MockE2EUSDCTokenMessengerCaller, error) { + contract, err := bindMockE2EUSDCTokenMessenger(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MockE2EUSDCTokenMessengerCaller{contract: contract}, nil +} + +func NewMockE2EUSDCTokenMessengerTransactor(address common.Address, transactor bind.ContractTransactor) (*MockE2EUSDCTokenMessengerTransactor, error) { + contract, err := bindMockE2EUSDCTokenMessenger(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MockE2EUSDCTokenMessengerTransactor{contract: contract}, nil +} + +func NewMockE2EUSDCTokenMessengerFilterer(address common.Address, filterer bind.ContractFilterer) (*MockE2EUSDCTokenMessengerFilterer, error) { + contract, err := bindMockE2EUSDCTokenMessenger(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MockE2EUSDCTokenMessengerFilterer{contract: contract}, nil +} + +func bindMockE2EUSDCTokenMessenger(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MockE2EUSDCTokenMessengerMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockE2EUSDCTokenMessenger.Contract.MockE2EUSDCTokenMessengerCaller.contract.Call(opts, result, method, params...) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.MockE2EUSDCTokenMessengerTransactor.contract.Transfer(opts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.MockE2EUSDCTokenMessengerTransactor.contract.Transact(opts, method, params...) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockE2EUSDCTokenMessenger.Contract.contract.Call(opts, result, method, params...) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.contract.Transfer(opts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.contract.Transact(opts, method, params...) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) DESTINATIONTOKENMESSENGER(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "DESTINATION_TOKEN_MESSENGER") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) DESTINATIONTOKENMESSENGER() ([32]byte, error) { + return _MockE2EUSDCTokenMessenger.Contract.DESTINATIONTOKENMESSENGER(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) DESTINATIONTOKENMESSENGER() ([32]byte, error) { + return _MockE2EUSDCTokenMessenger.Contract.DESTINATIONTOKENMESSENGER(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) GetMinFeeAmount(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "getMinFeeAmount", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) GetMinFeeAmount(arg0 *big.Int) (*big.Int, error) { + return _MockE2EUSDCTokenMessenger.Contract.GetMinFeeAmount(&_MockE2EUSDCTokenMessenger.CallOpts, arg0) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) GetMinFeeAmount(arg0 *big.Int) (*big.Int, error) { + return _MockE2EUSDCTokenMessenger.Contract.GetMinFeeAmount(&_MockE2EUSDCTokenMessenger.CallOpts, arg0) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) LocalMessageTransmitter(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "localMessageTransmitter") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) LocalMessageTransmitter() (common.Address, error) { + return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitter(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) LocalMessageTransmitter() (common.Address, error) { + return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitter(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) LocalMessageTransmitterWithRelay(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "localMessageTransmitterWithRelay") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) LocalMessageTransmitterWithRelay() (common.Address, error) { + return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitterWithRelay(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) LocalMessageTransmitterWithRelay() (common.Address, error) { + return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitterWithRelay(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) MessageBodyVersion(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "messageBodyVersion") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) MessageBodyVersion() (uint32, error) { + return _MockE2EUSDCTokenMessenger.Contract.MessageBodyVersion(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) MessageBodyVersion() (uint32, error) { + return _MockE2EUSDCTokenMessenger.Contract.MessageBodyVersion(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) SNonce(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "s_nonce") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) SNonce() (uint64, error) { + return _MockE2EUSDCTokenMessenger.Contract.SNonce(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) SNonce() (uint64, error) { + return _MockE2EUSDCTokenMessenger.Contract.SNonce(&_MockE2EUSDCTokenMessenger.CallOpts) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactor) DepositForBurn(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.contract.Transact(opts, "depositForBurn", amount, destinationDomain, mintRecipient, burnToken, destinationCaller, maxFee, minFinalityThreshold) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) DepositForBurn(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.DepositForBurn(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller, maxFee, minFinalityThreshold) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorSession) DepositForBurn(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.DepositForBurn(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller, maxFee, minFinalityThreshold) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactor) DepositForBurnWithCaller(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.contract.Transact(opts, "depositForBurnWithCaller", amount, destinationDomain, mintRecipient, burnToken, destinationCaller) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) DepositForBurnWithCaller(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.DepositForBurnWithCaller(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller) +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorSession) DepositForBurnWithCaller(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) { + return _MockE2EUSDCTokenMessenger.Contract.DepositForBurnWithCaller(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller) +} + +type MockE2EUSDCTokenMessengerDepositForBurnIterator struct { + Event *MockE2EUSDCTokenMessengerDepositForBurn + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *MockE2EUSDCTokenMessengerDepositForBurnIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *MockE2EUSDCTokenMessengerDepositForBurnIterator) Error() error { + return it.fail +} + +func (it *MockE2EUSDCTokenMessengerDepositForBurnIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type MockE2EUSDCTokenMessengerDepositForBurn struct { + Nonce uint64 + BurnToken common.Address + Amount *big.Int + Depositor common.Address + MintRecipient [32]byte + DestinationDomain uint32 + DestinationTokenMessenger [32]byte + DestinationCaller [32]byte + Raw types.Log +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) FilterDepositForBurn(opts *bind.FilterOpts, nonce []uint64, burnToken []common.Address, depositor []common.Address) (*MockE2EUSDCTokenMessengerDepositForBurnIterator, error) { + + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + var burnTokenRule []interface{} + for _, burnTokenItem := range burnToken { + burnTokenRule = append(burnTokenRule, burnTokenItem) + } + + var depositorRule []interface{} + for _, depositorItem := range depositor { + depositorRule = append(depositorRule, depositorItem) + } + + logs, sub, err := _MockE2EUSDCTokenMessenger.contract.FilterLogs(opts, "DepositForBurn", nonceRule, burnTokenRule, depositorRule) + if err != nil { + return nil, err + } + return &MockE2EUSDCTokenMessengerDepositForBurnIterator{contract: _MockE2EUSDCTokenMessenger.contract, event: "DepositForBurn", logs: logs, sub: sub}, nil +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) WatchDepositForBurn(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn, nonce []uint64, burnToken []common.Address, depositor []common.Address) (event.Subscription, error) { + + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + var burnTokenRule []interface{} + for _, burnTokenItem := range burnToken { + burnTokenRule = append(burnTokenRule, burnTokenItem) + } + + var depositorRule []interface{} + for _, depositorItem := range depositor { + depositorRule = append(depositorRule, depositorItem) + } + + logs, sub, err := _MockE2EUSDCTokenMessenger.contract.WatchLogs(opts, "DepositForBurn", nonceRule, burnTokenRule, depositorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(MockE2EUSDCTokenMessengerDepositForBurn) + if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) ParseDepositForBurn(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn, error) { + event := new(MockE2EUSDCTokenMessengerDepositForBurn) + if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type MockE2EUSDCTokenMessengerDepositForBurn0Iterator struct { + Event *MockE2EUSDCTokenMessengerDepositForBurn0 + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *MockE2EUSDCTokenMessengerDepositForBurn0Iterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *MockE2EUSDCTokenMessengerDepositForBurn0Iterator) Error() error { + return it.fail +} + +func (it *MockE2EUSDCTokenMessengerDepositForBurn0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type MockE2EUSDCTokenMessengerDepositForBurn0 struct { + BurnToken common.Address + Amount *big.Int + Depositor common.Address + MintRecipient [32]byte + DestinationDomain uint32 + DestinationTokenMessenger [32]byte + DestinationCaller [32]byte + MaxFee uint32 + MinFinalityThreshold uint32 + HookData []byte + Raw types.Log +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) FilterDepositForBurn0(opts *bind.FilterOpts, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (*MockE2EUSDCTokenMessengerDepositForBurn0Iterator, error) { + + var burnTokenRule []interface{} + for _, burnTokenItem := range burnToken { + burnTokenRule = append(burnTokenRule, burnTokenItem) + } + + var depositorRule []interface{} + for _, depositorItem := range depositor { + depositorRule = append(depositorRule, depositorItem) + } + + var minFinalityThresholdRule []interface{} + for _, minFinalityThresholdItem := range minFinalityThreshold { + minFinalityThresholdRule = append(minFinalityThresholdRule, minFinalityThresholdItem) + } + + logs, sub, err := _MockE2EUSDCTokenMessenger.contract.FilterLogs(opts, "DepositForBurn0", burnTokenRule, depositorRule, minFinalityThresholdRule) + if err != nil { + return nil, err + } + return &MockE2EUSDCTokenMessengerDepositForBurn0Iterator{contract: _MockE2EUSDCTokenMessenger.contract, event: "DepositForBurn0", logs: logs, sub: sub}, nil +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) WatchDepositForBurn0(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn0, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (event.Subscription, error) { + + var burnTokenRule []interface{} + for _, burnTokenItem := range burnToken { + burnTokenRule = append(burnTokenRule, burnTokenItem) + } + + var depositorRule []interface{} + for _, depositorItem := range depositor { + depositorRule = append(depositorRule, depositorItem) + } + + var minFinalityThresholdRule []interface{} + for _, minFinalityThresholdItem := range minFinalityThreshold { + minFinalityThresholdRule = append(minFinalityThresholdRule, minFinalityThresholdItem) + } + + logs, sub, err := _MockE2EUSDCTokenMessenger.contract.WatchLogs(opts, "DepositForBurn0", burnTokenRule, depositorRule, minFinalityThresholdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(MockE2EUSDCTokenMessengerDepositForBurn0) + if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) ParseDepositForBurn0(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn0, error) { + event := new(MockE2EUSDCTokenMessengerDepositForBurn0) + if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (MockE2EUSDCTokenMessengerDepositForBurn) Topic() common.Hash { + return common.HexToHash("0x2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c0") +} + +func (MockE2EUSDCTokenMessengerDepositForBurn0) Topic() common.Hash { + return common.HexToHash("0x6a4c152b4ad8c08f204453d58ef2ac1c0bb69627dd545cf47507d32d036e67d5") +} + +func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessenger) Address() common.Address { + return _MockE2EUSDCTokenMessenger.address +} + +type MockE2EUSDCTokenMessengerInterface interface { + DESTINATIONTOKENMESSENGER(opts *bind.CallOpts) ([32]byte, error) + + GetMinFeeAmount(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) + + LocalMessageTransmitter(opts *bind.CallOpts) (common.Address, error) + + LocalMessageTransmitterWithRelay(opts *bind.CallOpts) (common.Address, error) + + MessageBodyVersion(opts *bind.CallOpts) (uint32, error) + + SNonce(opts *bind.CallOpts) (uint64, error) + + DepositForBurn(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) + + DepositForBurnWithCaller(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) + + FilterDepositForBurn(opts *bind.FilterOpts, nonce []uint64, burnToken []common.Address, depositor []common.Address) (*MockE2EUSDCTokenMessengerDepositForBurnIterator, error) + + WatchDepositForBurn(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn, nonce []uint64, burnToken []common.Address, depositor []common.Address) (event.Subscription, error) + + ParseDepositForBurn(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn, error) + + FilterDepositForBurn0(opts *bind.FilterOpts, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (*MockE2EUSDCTokenMessengerDepositForBurn0Iterator, error) + + WatchDepositForBurn0(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn0, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (event.Subscription, error) + + ParseDepositForBurn0(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn0, error) + + Address() common.Address +} diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go new file mode 100644 index 0000000000..536585493d --- /dev/null +++ b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go @@ -0,0 +1,7 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + + +package mock_usdc_token_messenger + +var SolidityStandardInput = "{\"version\":\"v0.8.26+commit.8a97fa7a\",\"language\":\"Solidity\",\"settings\":{\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":true,\"bytecodeHash\":\"none\",\"useLiteralContent\":false},\"optimizer\":{\"enabled\":true,\"runs\":80000},\"outputSelection\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/pools/USDC/interfaces/ITokenMessenger.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/MockE2EUSDCTokenMessenger.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]}},\"remappings\":[\"forge-std/=node_modules/@chainlink/contracts/src/v0.8/vendor/forge-std/src/\",\"@chainlink/contracts/=node_modules/@chainlink/contracts/\",\"@openzeppelin/contracts@4.8.3/=node_modules/@openzeppelin/contracts-4.8.3/\",\"@openzeppelin/contracts@5.0.2/=node_modules/@openzeppelin/contracts-5.0.2/\"],\"viaIR\":true},\"sources\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\ninterface IMessageTransmitter {\\n /// @notice Unlocks USDC tokens on the destination chain\\n /// @param message The original message on the source chain\\n /// * Message format:\\n /// * Field Bytes Type Index\\n /// * version 4 uint32 0\\n /// * sourceDomain 4 uint32 4\\n /// * destinationDomain 4 uint32 8\\n /// * nonce 8 uint64 12\\n /// * sender 32 bytes32 20\\n /// * recipient 32 bytes32 52\\n /// * destinationCaller 32 bytes32 84\\n /// * messageBody dynamic bytes 116\\n /// param attestation A valid attestation is the concatenated 65-byte signature(s) of\\n /// exactly `thresholdSignature` signatures, in increasing order of attester address.\\n /// ***If the attester addresses recovered from signatures are not in increasing order,\\n /// signature verification will fail.***\\n /// If incorrect number of signatures or duplicate signatures are supplied,\\n /// signature verification will fail.\\n function receiveMessage(bytes calldata message, bytes calldata attestation) external returns (bool success);\\n\\n /// Returns domain of chain on which the contract is deployed.\\n /// @dev immutable\\n function localDomain() external view returns (uint32);\\n\\n /// Returns message format version.\\n /// @dev immutable\\n function version() external view returns (uint32);\\n}\\n\"},\"contracts/pools/USDC/interfaces/ITokenMessenger.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\ninterface ITokenMessenger {\\n /// @notice Emitted when a DepositForBurn message is sent\\n /// @param nonce Unique nonce reserved by message\\n /// @param burnToken Address of token burnt on source domain\\n /// @param amount Deposit amount\\n /// @param depositor Address where deposit is transferred from\\n /// @param mintRecipient Address receiving minted tokens on destination domain as bytes32\\n /// @param destinationDomain Destination domain\\n /// @param destinationTokenMessenger Address of TokenMessenger on destination domain as bytes32\\n /// @param destinationCaller Authorized caller as bytes32 of receiveMessage() on destination domain,\\n /// if not equal to bytes32(0). If equal to bytes32(0), any address can call receiveMessage().\\n event DepositForBurn(\\n uint64 indexed nonce,\\n address indexed burnToken,\\n uint256 amount,\\n address indexed depositor,\\n bytes32 mintRecipient,\\n uint32 destinationDomain,\\n bytes32 destinationTokenMessenger,\\n bytes32 destinationCaller\\n );\\n\\n /// @notice Burns the tokens on the source side to produce a nonce through\\n /// Circles Cross Chain Transfer Protocol.\\n /// @param amount Amount of tokens to deposit and burn.\\n /// @param destinationDomain Destination domain identifier.\\n /// @param mintRecipient Address of mint recipient on destination domain.\\n /// @param burnToken Address of contract to burn deposited tokens, on local domain.\\n /// @param destinationCaller Caller on the destination domain, as bytes32.\\n /// @return nonce The unique nonce used in unlocking the funds on the destination chain.\\n /// @dev emits DepositForBurn\\n function depositForBurnWithCaller(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller\\n ) external returns (uint64 nonce);\\n\\n /// @notice Emitted when a DepositForBurn message is sent on CCTP V2\\n /// @notice Emitted when a DepositForBurn message is sent\\n /// @param burnToken address of token burnt on source domain\\n /// @param amount deposit amount\\n /// @param depositor address where deposit is transferred from\\n /// @param mintRecipient address receiving minted tokens on destination domain as bytes32\\n /// @param destinationDomain destination domain\\n /// @param destinationTokenMessenger address of TokenMessenger on destination domain as bytes32\\n /// @param destinationCaller authorized caller as bytes32 of receiveMessage() on destination domain.\\n /// If equal to bytes32(0), any address can broadcast the message.\\n /// @param maxFee maximum fee to pay on destination domain, in units of burnToken\\n /// @param minFinalityThreshold the minimum finality at which the message should be attested to.\\n /// @param hookData optional hook for execution on destination domain\\n event DepositForBurn(\\n address indexed burnToken,\\n uint256 amount,\\n address indexed depositor,\\n bytes32 mintRecipient,\\n uint32 destinationDomain,\\n bytes32 destinationTokenMessenger,\\n bytes32 destinationCaller,\\n uint32 maxFee,\\n uint32 indexed minFinalityThreshold,\\n bytes hookData\\n );\\n\\n /// @notice Burns the tokens on the source side through Circles Cross Chain Transfer Protocol V2.\\n /// @param amount Amount of tokens to deposit and burn.\\n /// @param destinationDomain Destination domain identifier.\\n /// @param mintRecipient Address of mint recipient on destination domain.\\n /// @param burnToken Address of contract to burn deposited tokens, on local domain.\\n /// @param destinationCaller Caller on the destination domain, as bytes32.\\n /// @param maxFee Maximum fee to be paid for fast burn, specified in burnToken. Should be 0 when using non-fast mode.\\n /// @param minFinalityThreshold Minimum finality threshold at which the burn will be attested\\n /// should be 2000 for Standard, 1000 for Fast.\\n /// @dev This function is only available for CCTP V2.\\n function depositForBurn(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller,\\n uint32 maxFee,\\n uint32 minFinalityThreshold\\n ) external;\\n\\n /// Returns the version of the message body format.\\n /// @dev immutable\\n function messageBodyVersion() external view returns (uint32);\\n\\n /// Returns local Message Transmitter responsible for sending and receiving messages\\n /// to/from remote domainsmessage transmitter for this token messenger.\\n /// @dev immutable\\n function localMessageTransmitter() external view returns (address);\\n}\\n\"},\"contracts/test/mocks/MockE2EUSDCTokenMessenger.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.24;\\n\\nimport {ITokenMessenger} from \\\"../../pools/USDC/interfaces/ITokenMessenger.sol\\\";\\nimport {IMessageTransmitterWithRelay} from \\\"./interfaces/IMessageTransmitterWithRelay.sol\\\";\\nimport {IBurnMintERC20} from \\\"@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\\\";\\n\\n// This contract mocks both the ITokenMessenger and IMessageTransmitter\\n// contracts involved with the Cross Chain Token Protocol.\\n// solhint-disable\\ncontract MockE2EUSDCTokenMessenger is ITokenMessenger {\\n uint32 private immutable i_messageBodyVersion;\\n address private immutable i_transmitter;\\n\\n bytes32 public constant DESTINATION_TOKEN_MESSENGER = keccak256(\\\"i_destinationTokenMessenger\\\");\\n\\n uint64 public s_nonce;\\n\\n // Local Message Transmitter responsible for sending and receiving messages to/from remote domains\\n IMessageTransmitterWithRelay public immutable localMessageTransmitterWithRelay;\\n\\n constructor(uint32 version, address transmitter) {\\n i_messageBodyVersion = version;\\n s_nonce = 1;\\n i_transmitter = transmitter;\\n localMessageTransmitterWithRelay = IMessageTransmitterWithRelay(transmitter);\\n }\\n\\n // The mock function is based on the same function in https://github.com/circlefin/evm-cctp-contracts/blob/master/src/TokenMessenger.sol\\n function depositForBurnWithCaller(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller\\n ) external returns (uint64) {\\n IBurnMintERC20(burnToken).transferFrom(msg.sender, address(this), amount);\\n IBurnMintERC20(burnToken).burn(amount);\\n // Format message body\\n bytes memory _burnMessage = _formatMessage(\\n i_messageBodyVersion,\\n bytes32(uint256(uint160(burnToken))),\\n mintRecipient,\\n amount,\\n bytes32(uint256(uint160(msg.sender)))\\n );\\n s_nonce =\\n _sendDepositForBurnMessage(destinationDomain, DESTINATION_TOKEN_MESSENGER, destinationCaller, _burnMessage);\\n emit DepositForBurn(\\n s_nonce,\\n burnToken,\\n amount,\\n msg.sender,\\n mintRecipient,\\n destinationDomain,\\n DESTINATION_TOKEN_MESSENGER,\\n destinationCaller\\n );\\n return s_nonce;\\n }\\n\\n // The mock function is based on the same function in https://github.com/circlefin/evm-cctp-contracts/blob/master/src/v2/TokenMessengerV2.sol\\n function depositForBurn(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller,\\n uint32 maxFee,\\n uint32 minFinalityThreshold\\n ) external {\\n IBurnMintERC20(burnToken).transferFrom(msg.sender, address(this), amount);\\n IBurnMintERC20(burnToken).burn(amount);\\n\\n bytes calldata _emptyHookData = msg.data[0:0];\\n\\n // Format message body\\n bytes memory _burnMessage = _formatBurnMessage(\\n i_messageBodyVersion, // version\\n bytes32(uint256(uint160(burnToken))), // burnToken\\n mintRecipient, // mintRecipient\\n amount, // amount\\n bytes32(uint256(uint160(msg.sender))), // messageSender\\n 0, // maxFee\\n _emptyHookData // hookData\\n );\\n\\n _sendDepositForBurnMessage(destinationDomain, DESTINATION_TOKEN_MESSENGER, destinationCaller, _burnMessage);\\n\\n emit DepositForBurn(\\n burnToken,\\n amount,\\n msg.sender,\\n mintRecipient,\\n destinationDomain,\\n DESTINATION_TOKEN_MESSENGER,\\n destinationCaller,\\n maxFee,\\n minFinalityThreshold,\\n _emptyHookData\\n );\\n }\\n\\n function messageBodyVersion() external view returns (uint32) {\\n return i_messageBodyVersion;\\n }\\n\\n function localMessageTransmitter() external view returns (address) {\\n return i_transmitter;\\n }\\n\\n /**\\n * @notice Sends a BurnMessage through the local message transmitter\\n * @dev calls local message transmitter's sendMessage() function if `_destinationCaller` == bytes32(0),\\n * or else calls sendMessageWithCaller().\\n * @param _destinationDomain destination domain\\n * @param _destinationTokenMessenger address of registered TokenMessenger contract on destination domain, as bytes32\\n * @param _destinationCaller caller on the destination domain, as bytes32. If `_destinationCaller` == bytes32(0),\\n * any address can call receiveMessage() on destination domain.\\n * @param _burnMessage formatted BurnMessage bytes (message body)\\n * @return nonce unique nonce reserved by message\\n */\\n function _sendDepositForBurnMessage(\\n uint32 _destinationDomain,\\n bytes32 _destinationTokenMessenger,\\n bytes32 _destinationCaller,\\n bytes memory _burnMessage\\n ) internal returns (uint64 nonce) {\\n if (_destinationCaller == bytes32(0)) {\\n return localMessageTransmitterWithRelay.sendMessage(_destinationDomain, _destinationTokenMessenger, _burnMessage);\\n } else {\\n return localMessageTransmitterWithRelay.sendMessageWithCaller(\\n _destinationDomain, _destinationTokenMessenger, _destinationCaller, _burnMessage\\n );\\n }\\n }\\n\\n /**\\n * @notice Formats Burn message under CCTP V1\\n * @param _version The message body version\\n * @param _burnToken The burn token address on source domain as bytes32\\n * @param _mintRecipient The mint recipient address as bytes32\\n * @param _amount The burn amount\\n * @param _messageSender The message sender\\n * @return Burn formatted message.\\n */\\n function _formatMessage(\\n uint32 _version,\\n bytes32 _burnToken,\\n bytes32 _mintRecipient,\\n uint256 _amount,\\n bytes32 _messageSender\\n ) internal pure returns (bytes memory) {\\n return abi.encodePacked(_version, _burnToken, _mintRecipient, _amount, _messageSender);\\n }\\n\\n /**\\n * @notice Formats Burn message according to the format of CCTP V2\\n * @param _version The message body version\\n * @param _burnToken The burn token address on source domain as bytes32\\n * @param _mintRecipient The mint recipient address as bytes32\\n * @param _amount The burn amount\\n * @param _messageSender The message sender\\n * @param _maxFee The maximum fee to be paid on destination domain\\n * @param _hookData Optional hook data for processing on the destination domain\\n * @return Burn formatted message.\\n */\\n function _formatBurnMessage(\\n uint32 _version,\\n bytes32 _burnToken,\\n bytes32 _mintRecipient,\\n uint256 _amount,\\n bytes32 _messageSender,\\n uint256 _maxFee,\\n bytes calldata _hookData\\n ) internal pure returns (bytes memory) {\\n // Uses the encoding scheme defined at https://github.com/circlefin/evm-cctp-contracts/blob/master/src/messages/v2/BurnMessageV2.sol#L68\\n return abi.encodePacked(\\n _version, _burnToken, _mintRecipient, _amount, _messageSender, _maxFee, uint256(0), uint256(0), _hookData\\n );\\n }\\n}\\n\"},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\nimport {IMessageTransmitter} from \\\"../../../pools/USDC/interfaces/IMessageTransmitter.sol\\\";\\n\\n// This follows https://github.com/circlefin/evm-cctp-contracts/blob/master/src/interfaces/IMessageTransmitter.sol\\ninterface IMessageTransmitterWithRelay is IMessageTransmitter {\\n /**\\n * @notice Sends an outgoing message from the source domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessage(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n\\n /**\\n * @notice Sends an outgoing message from the source domain, with a specified caller on the\\n * destination domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * WARNING: if the `destinationCaller` does not represent a valid address as bytes32, then it will not be possible\\n * to broadcast the message on the destination domain. This is an advanced feature, and the standard\\n * sendMessage() should be preferred for use cases where a specific destination caller is not required.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param destinationCaller caller on the destination domain, as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessageWithCaller(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes32 destinationCaller,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport {IERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/IERC20.sol\\\";\\n\\ninterface IBurnMintERC20 is IERC20 {\\n /// @notice Mints new tokens for a given address.\\n /// @param account The address to mint the new tokens to.\\n /// @param amount The number of tokens to be minted.\\n /// @dev this function increases the total supply.\\n function mint(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from the sender.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(\\n uint256 amount\\n ) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burnFrom(address account, uint256 amount) external;\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\"}}}" diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go new file mode 100644 index 0000000000..8504feca3c --- /dev/null +++ b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go @@ -0,0 +1,61 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. +package mock_usdc_token_messenger + +import ( + "context" + "crypto/rand" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/zksync-sdk/zksync2-go/accounts" + "github.com/zksync-sdk/zksync2-go/clients" + "github.com/zksync-sdk/zksync2-go/types" +) + +func DeployMockE2EUSDCTokenMessengerZk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *MockE2EUSDCTokenMessenger, error) { + var calldata []byte + if len(args) > 0 { + abi, err := MockE2EUSDCTokenMessengerMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + calldata, err = abi.Pack("", args...) + if err != nil { + return common.Address{}, nil, nil, err + } + } + + salt := make([]byte, 32) + n, err := rand.Read(salt) + if err != nil { + return common.Address{}, nil, nil, err + } + if n != len(salt) { + return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) + } + + txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ + Bytecode: ZkBytecode, + Calldata: calldata, + Salt: salt, + }) + if err != nil { + return common.Address{}, nil, nil, err + } + + receipt, err := client.WaitMined(context.Background(), txHash) + if err != nil { + return common.Address{}, nil, nil, err + } + + address := receipt.ContractAddress + contract, err := NewMockE2EUSDCTokenMessenger(address, backend) + if err != nil { + return common.Address{}, nil, nil, err + } + + return address, receipt, contract, nil +} + +var ZkBytecode = common.Hex2Bytes("000f0000000000020000006003100270000000f9033001970000000100200190000000fb0000c13d0000008002000039000000400020043f000000040030008c000001de0000413d000000000201043b000000e002200270000000ff0020009c000001350000a13d000001000020009c0000014c0000213d000001030020009c000001570000613d000001040020009c000001de0000c13d000000e40030008c000001de0000413d0000000002000416000000000002004b000001de0000c13d0000000402100370000000000402043b0000002402100370000000000502043b000000f90050009c000001de0000213d0000004402100370000000000602043b0000006402100370000000000202043b000000fc0020009c000001de0000213d0000008403100370000000000703043b000000a403100370000000000303043b000000f90030009c000001de0000213d000000c401100370000000000101043b000900000001001d000000f90010009c000001de0000213d000300000003001d000400000007001d000600000006001d000500000005001d0000010a01000041000000800010043f0000000001000411000000fc01100197000000840010043f0000000001000410000000fc01100197000000a40010043f000700000004001d000000c40040043f0000000001000414000000f90010009c000000f901008041000000c0011002100000010b011001c7000800000002001d03e103d70000040f0000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000530000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000004f0000c13d000000000006004b000000600000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000001fe0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c0000000803000029000001de0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000001de0000c13d0000010c01000041000000000010044300000004003004430000000001000414000000f90010009c000000f901008041000000c0011002100000010d011001c7000080020200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000000001004b00000008020000290000000703000029000001de0000613d000000400400043d0000010e010000410000000001140436000100000001001d00000004014000390000000000310435000000f90040009c000200000004001d000000f901000041000000000104401900000040011002100000000003000414000000f90030009c000000f903008041000000c003300210000000000113019f0000010f011001c703e103d70000040f0000000100200190000002690000613d0000000201000029000001170010009c000002460000813d0000000201000029000000400010043f000001110100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c7000080050200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000e001100210000000010200002900000000001204350000000203000029000000840130003900000000020004110000000000210435000000640130003900000007020000290000000000210435000000440130003900000006020000290000000000210435000000240130003900000008020000290000000000210435000000e401000039000000000013043500000104013000390000000000010435000000e4013000390000000000010435000000c4013000390000000000010435000000a4013000390000000000010435000001180030009c000002460000213d0000000301000029000300f90010019b0000000901000029000900f90010019b00000002030000290000012001300039000000400010043f0000000501000029000000040200002903e102aa0000040f000000400100043d000000200210003900000006030000290000000000320435000000400210003900000005030000290000000000320435000000600210003900000108030000410000000000320435000000800210003900000004030000290000000000320435000000a00210003900000003030000290000000000320435000000c002100039000000e003000039000000000032043500000007020000290000000000210435000000e002100039000000000002043500000100021000390000000000020435000000f90010009c000000f90100804100000040011002100000000002000414000000f90020009c000000f902008041000000c002200210000000000112019f00000119011001c70000800d0200003900000004030000390000011a0400004100000008050000290000000006000411000000090700002903e103d70000040f0000000100200190000001de0000613d0000000001000019000003e20001042e0000000002000416000000000002004b000001de0000c13d0000001f02300039000000fa02200197000000e002200039000000400020043f0000001f0430018f000000fb05300198000000e0025000390000010c0000613d000000e006000039000000000701034f000000007807043c0000000006860436000000000026004b000001080000c13d000000000004004b000001190000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000400030008c000001de0000413d000000e00200043d000000f90020009c000001de0000213d000001000100043d000000fc0010009c000001de0000213d000000800020043f000000000300041a000000fd0330019700000001033001bf000000000030041b000000a00010043f000000c00010043f0000014000000443000001600020044300000020020000390000018000200443000001a0001004430000004003000039000001c000300443000001e000100443000001000020044300000003010000390000012000100443000000fe01000041000003e20001042e000001050020009c000001620000613d000001060020009c000001730000613d000001070020009c000001de0000c13d0000000001000416000000000001004b000001de0000c13d0000000001000412000d00000001001d000c00000000003d0000800501000039000000440300003900000000040004150000000d0440008a0000000504400210000001110200004103e103be0000040f000000f901100197000000800010043f0000010901000041000003e20001042e000001010020009c0000017b0000613d000001020020009c000001de0000c13d0000000001000416000000000001004b000001de0000c13d0000010801000041000000800010043f0000010901000041000003e20001042e0000000001000416000000000001004b000001de0000c13d0000000001000412000b00000001001d000a00400000003d0000800501000039000000440300003900000000040004150000000b0440008a0000016c0000013d0000000001000416000000000001004b000001de0000c13d0000000001000412000f00000001001d000e00200000003d0000800501000039000000440300003900000000040004150000000f0440008a0000000504400210000001110200004103e103be0000040f000000fc01100197000000800010043f0000010901000041000003e20001042e0000000001000416000000000001004b000001de0000c13d000000000100041a0000011001100197000000800010043f0000010901000041000003e20001042e000000a40030008c000001de0000413d0000000002000416000000000002004b000001de0000c13d0000000402100370000000000302043b0000002402100370000000000402043b000000f90040009c000001de0000213d0000004402100370000000000502043b0000006402100370000000000202043b000000fc0020009c000001de0000213d000700000005001d000600000004001d0000008401100370000000000101043b000500000001001d0000010a01000041000000800010043f0000000001000411000000fc01100197000000840010043f0000000001000410000000fc01100197000000a40010043f000800000003001d000000c40030043f0000000001000414000000f90010009c000000f901008041000000c0011002100000010b011001c7000900000002001d03e103d70000040f000000800a0000390000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000001b10000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000001ad0000c13d000000000006004b000001be0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000001e00000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c0000000903000029000001de0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000001de0000c13d0000010c01000041000000000010044300000004003004430000000001000414000000f90010009c000000f901008041000000c0011002100000010d011001c7000080020200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000000001004b000000090200002900000008030000290000020a0000c13d0000000001000019000003e3000104300000001f0530018f000000fb06300198000000400200043d0000000004620019000001eb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000001e70000c13d000000000005004b000001f80000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000f90020009c000000f9020080410000004002200210000000000112019f000003e3000104300000001f0530018f000000fb06300198000000400200043d0000000004620019000001eb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002050000c13d000001eb0000013d000000400400043d0000010e010000410000000001140436000300000001001d00000004014000390000000000310435000000f90040009c000400000004001d000000f901000041000000000104401900000040011002100000000003000414000000f90030009c000000f903008041000000c003300210000000000113019f0000010f011001c703e103d70000040f00000001002001900000024d0000613d0000000401000029000001100010009c000002460000213d0000000401000029000000400010043f000001110100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c7000080050200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000e00110021000000003020000290000000000120435000000040300002900000084013000390000000002000411000000000021043500000064013000390000000802000029000000000021043500000044013000390000000702000029000000000021043500000024013000390000000902000029000000000021043500000084010000390000000000130435000001130030009c000002760000a13d0000011b01000041000000000010043f0000004101000039000000040010043f0000010f01000041000003e300010430000000000001042f00000060061002700000001f0460018f000000fb05600198000000400200043d0000000003520019000002590000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000002550000c13d000000f906600197000000000004004b000002670000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000001f90000013d00000060061002700000001f0460018f000000fb05600198000000400200043d0000000003520019000002590000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000002710000c13d000002590000013d0000000403000029000000c001300039000000400010043f0000000601000029000000050200002903e102aa0000040f0000011005100197000000000100041a000000fd01100197000000000151019f000000000010041b000000400100043d00000020021000390000000703000029000000000032043500000040021000390000000603000029000000000032043500000108020000410000006003100039000000000023043500000080021000390000000503000029000000000032043500000008020000290000000000210435000000f90010009c000000f90100804100000040011002100000000002000414000000f90020009c000000f902008041000000c002200210000000000112019f00000114011001c70000800d0200003900000004030000390000011504000041000800000005001d0000000906000029000000000700041103e103d70000040f0000000100200190000001de0000613d000000400100043d00000008020000290000000000210435000000f90010009c000000f901008041000000400110021000000116011001c7000003e20001042e0003000000000002000000400900043d000000840a9000390000006404900039000000440590003900000024069000390000000407900039000000f901100197000000000002004b000300000009001d0000031f0000613d0000011c080000410000000000890435000000000017043500000108010000410000000000160435000000000025043500000080010000390000000000140435000000001603043400000000006a0435000000a405900039000000000006004b000002ca0000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000062004b000002c30000413d000000000165001900000000000104350000011101000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c70000800502000039000200000005001d000100000006001d03e103dc0000040f00000001002001900000038c0000613d00000001020000290000001f022000390000011e02200197000000030300002900000000023200490000000202200029000000f90020009c000000f9020080410000006002200210000000f90030009c000000f9030080410000004003300210000000000232019f000000000301043b0000000001000414000000f90010009c000000f901008041000000c001100210000000000121019f000000fc0230019703e103d70000040f000000030b0000290000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000003020000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000002fe0000c13d000000000006004b0000030f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000003930000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000001100010009c0000038d0000213d00000001002001900000038d0000c13d000000400010043f0000001f0030008c000003860000213d0000038a0000013d0000011d0200004100000000002904350000000000170435000001080100004100000000001604350000006001000039000000000015043500000000150304340000000000540435000000000005004b000003320000613d00000000020000190000000003a200190000000004210019000000000404043300000000004304350000002002200039000000000052004b0000032b0000413d00000000015a001900000000000104350000011101000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c7000080050200003900020000000a001d000100000005001d03e103dc0000040f00000001002001900000038c0000613d00000001020000290000001f022000390000011e02200197000000030300002900000000023200490000000202200029000000f90020009c000000f9020080410000006002200210000000f90030009c000000f9030080410000004003300210000000000232019f000000000301043b0000000001000414000000f90010009c000000f901008041000000c001100210000000000121019f000000fc0230019703e103d70000040f000000030b0000290000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000036a0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000003660000c13d000000000006004b000003770000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f000000000065043500000001002001900000039f0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000001100010009c0000038d0000213d00000001002001900000038d0000c13d000000400010043f000000200030008c0000038a0000413d00000000010b0433000001100010009c0000038a0000213d000000000001042d0000000001000019000003e300010430000000000001042f0000011b01000041000000000010043f0000004101000039000000040010043f0000010f01000041000003e3000104300000001f0530018f000000fb06300198000000400200043d0000000004620019000003aa0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000039a0000c13d000003aa0000013d0000001f0530018f000000fb06300198000000400200043d0000000004620019000003aa0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003a60000c13d000000000005004b000003b70000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000f90020009c000000f9020080410000004002200210000000000112019f000003e300010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b000003c10000413d000000f90030009c000000f90300804100000060013002100000000002000414000000f90020009c000000f902008041000000c002200210000000000112019f0000011f011001c7000000000205001903e103dc0000040f0000000100200190000003d60000613d000000000101043b000000000001042d000000000001042f000003da002104210000000102000039000000000001042d0000000002000019000000000001042d000003df002104230000000102000039000000000001042d0000000002000019000000000001042d000003e100000432000003e20001042e000003e30001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000020000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000000000a250c66900000000000000000000000000000000000000000000000000000000f856ddb500000000000000000000000000000000000000000000000000000000f856ddb600000000000000000000000000000000000000000000000000000000fb8406a900000000000000000000000000000000000000000000000000000000a250c66a00000000000000000000000000000000000000000000000000000000d04857b0000000000000000000000000000000000000000000000000000000002c121921000000000000000000000000000000000000000000000000000000007eccf63e000000000000000000000000000000000000000000000000000000009cdbb18117c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f6000000000000000000000000000000000000002000000080000000000000000023b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000042966c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f02000000000000000000000000000000000000a00000000000000000000000002fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000fffffffffffffedf02000000000000000000000000000000000001000000000000000000000000006a4c152b4ad8c08f204453d58ef2ac1c0bb69627dd545cf47507d32d036e67d54e487b7100000000000000000000000000000000000000000000000000000000f7259a75000000000000000000000000000000000000000000000000000000000ba469bc00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00200000200000000000000000000000000000000000000000000000000000000bda777ecf18d5ce611fe91db789302c7dcd8531e79c872419c42efd6f6181a6f") diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go new file mode 100644 index 0000000000..05ca93c19d --- /dev/null +++ b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go @@ -0,0 +1,457 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package mock_usdc_token_transmitter + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var MockE2EUSDCTransmitterMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_version\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_localDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"localDomain\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nextAvailableNonce\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveMessage\",\"inputs\":[{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"s_shouldSucceed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sendMessage\",\"inputs\":[{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"recipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"messageBody\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendMessageWithCaller\",\"inputs\":[{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"recipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"messageBody\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setShouldSucceed\",\"inputs\":[{\"name\":\"shouldSucceed\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"MessageSent\",\"inputs\":[{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", + Bin: "0x60e0346100c857601f610ab038819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101516001600160a01b03811692908390036100c85760805260a052600160ff19600054161760005560c0526040516109bb90816100f5823960805181818161011f0152818161063c0152610704015260a05181818161014901528181610418015261072e015260c051816105550152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036100c85756fe6080604052600436101561001257600080fd5b6000803560e01c80630ba469bc1461066057806354fd4d501461060157806357ecfd28146104c45780637a642935146104845780638371744e1461043c5780638d3638f4146103dd5780639e31ddb61461036e5763f7259a751461007557600080fd5b3461036b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b576100ac61086b565b6044359160243560643567ffffffffffffffff8111610367576100d3903690600401610883565b9480156102e3576100e2610921565b94831561028557866020976101ed946094947fffffffff0000000000000000000000000000000000000000000000000000000097604051988996817f000000000000000000000000000000000000000000000000000000000000000060e01b168e890152817f000000000000000000000000000000000000000000000000000000000000000060e01b16602489015260e01b1660288701527fffffffffffffffff0000000000000000000000000000000000000000000000008b60c01b16602c87015233603487015260548601526074850152848401378101858382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826108b1565b604051918483528151918286850152815b838110610271575050827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846040948585977f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b0369901015201168101030190a167ffffffffffffffff60405191168152f35b8181018701518582016040015286016101fe565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f526563697069656e74206d757374206265206e6f6e7a65726f000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f44657374696e6174696f6e2063616c6c6572206d757374206265206e6f6e7a6560448201527f726f0000000000000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b80fd5b503461036b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b576004358015158091036103d95760ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815580f35b5080fd5b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5767ffffffffffffffff6020915460081c16604051908152f35b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5760ff60209154166040519015158152f35b503461036b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5760043567ffffffffffffffff81116103d957610514903690600401610883565b60243567ffffffffffffffff81116105fd57610534903690600401610883565b505060b8116103d9578173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691823b156103d957604460a4918360405195869485937f40c10f19000000000000000000000000000000000000000000000000000000008552013560601c6004840152600160248401525af180156105f2579160ff91816020946105e2575b505054166040519015158152f35b6105eb916108b1565b38816105d4565b6040513d84823e3d90fd5b8380fd5b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461036b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5761069861086b565b906024359060443567ffffffffffffffff81116103d9576106bd903690600401610883565b90926106c7610921565b93811561028557602095837fffffffff00000000000000000000000000000000000000000000000000000000946094936107d395604051978895817f000000000000000000000000000000000000000000000000000000000000000060e01b168d880152817f000000000000000000000000000000000000000000000000000000000000000060e01b16602488015260e01b1660288601527fffffffffffffffff0000000000000000000000000000000000000000000000008a60c01b16602c8601523360348601526054850152876074850152848401378101858382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826108b1565b604051918483528151918286850152815b838110610857575050827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846040948585977f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b0369901015201168101030190a167ffffffffffffffff60405191168152f35b8181018701518582016040015286016107e4565b6004359063ffffffff8216820361087e57565b600080fd5b9181601f8401121561087e5782359167ffffffffffffffff831161087e576020838186019501011161087e57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108f257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005467ffffffffffffffff8160081c16906001820167ffffffffffffffff811161097f5768ffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff9160081b1691161760005590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea164736f6c634300081a000a", +} + +var MockE2EUSDCTransmitterABI = MockE2EUSDCTransmitterMetaData.ABI + +var MockE2EUSDCTransmitterBin = MockE2EUSDCTransmitterMetaData.Bin + +func DeployMockE2EUSDCTransmitter(auth *bind.TransactOpts, backend bind.ContractBackend, _version uint32, _localDomain uint32, token common.Address) (common.Address, *types.Transaction, *MockE2EUSDCTransmitter, error) { + parsed, err := MockE2EUSDCTransmitterMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MockE2EUSDCTransmitterBin), backend, _version, _localDomain, token) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &MockE2EUSDCTransmitter{address: address, abi: *parsed, MockE2EUSDCTransmitterCaller: MockE2EUSDCTransmitterCaller{contract: contract}, MockE2EUSDCTransmitterTransactor: MockE2EUSDCTransmitterTransactor{contract: contract}, MockE2EUSDCTransmitterFilterer: MockE2EUSDCTransmitterFilterer{contract: contract}}, nil +} + +type MockE2EUSDCTransmitter struct { + address common.Address + abi abi.ABI + MockE2EUSDCTransmitterCaller + MockE2EUSDCTransmitterTransactor + MockE2EUSDCTransmitterFilterer +} + +type MockE2EUSDCTransmitterCaller struct { + contract *bind.BoundContract +} + +type MockE2EUSDCTransmitterTransactor struct { + contract *bind.BoundContract +} + +type MockE2EUSDCTransmitterFilterer struct { + contract *bind.BoundContract +} + +type MockE2EUSDCTransmitterSession struct { + Contract *MockE2EUSDCTransmitter + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type MockE2EUSDCTransmitterCallerSession struct { + Contract *MockE2EUSDCTransmitterCaller + CallOpts bind.CallOpts +} + +type MockE2EUSDCTransmitterTransactorSession struct { + Contract *MockE2EUSDCTransmitterTransactor + TransactOpts bind.TransactOpts +} + +type MockE2EUSDCTransmitterRaw struct { + Contract *MockE2EUSDCTransmitter +} + +type MockE2EUSDCTransmitterCallerRaw struct { + Contract *MockE2EUSDCTransmitterCaller +} + +type MockE2EUSDCTransmitterTransactorRaw struct { + Contract *MockE2EUSDCTransmitterTransactor +} + +func NewMockE2EUSDCTransmitter(address common.Address, backend bind.ContractBackend) (*MockE2EUSDCTransmitter, error) { + abi, err := abi.JSON(strings.NewReader(MockE2EUSDCTransmitterABI)) + if err != nil { + return nil, err + } + contract, err := bindMockE2EUSDCTransmitter(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &MockE2EUSDCTransmitter{address: address, abi: abi, MockE2EUSDCTransmitterCaller: MockE2EUSDCTransmitterCaller{contract: contract}, MockE2EUSDCTransmitterTransactor: MockE2EUSDCTransmitterTransactor{contract: contract}, MockE2EUSDCTransmitterFilterer: MockE2EUSDCTransmitterFilterer{contract: contract}}, nil +} + +func NewMockE2EUSDCTransmitterCaller(address common.Address, caller bind.ContractCaller) (*MockE2EUSDCTransmitterCaller, error) { + contract, err := bindMockE2EUSDCTransmitter(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MockE2EUSDCTransmitterCaller{contract: contract}, nil +} + +func NewMockE2EUSDCTransmitterTransactor(address common.Address, transactor bind.ContractTransactor) (*MockE2EUSDCTransmitterTransactor, error) { + contract, err := bindMockE2EUSDCTransmitter(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MockE2EUSDCTransmitterTransactor{contract: contract}, nil +} + +func NewMockE2EUSDCTransmitterFilterer(address common.Address, filterer bind.ContractFilterer) (*MockE2EUSDCTransmitterFilterer, error) { + contract, err := bindMockE2EUSDCTransmitter(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MockE2EUSDCTransmitterFilterer{contract: contract}, nil +} + +func bindMockE2EUSDCTransmitter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MockE2EUSDCTransmitterMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockE2EUSDCTransmitter.Contract.MockE2EUSDCTransmitterCaller.contract.Call(opts, result, method, params...) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.MockE2EUSDCTransmitterTransactor.contract.Transfer(opts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.MockE2EUSDCTransmitterTransactor.contract.Transact(opts, method, params...) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _MockE2EUSDCTransmitter.Contract.contract.Call(opts, result, method, params...) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.contract.Transfer(opts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.contract.Transact(opts, method, params...) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) LocalDomain(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "localDomain") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) LocalDomain() (uint32, error) { + return _MockE2EUSDCTransmitter.Contract.LocalDomain(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) LocalDomain() (uint32, error) { + return _MockE2EUSDCTransmitter.Contract.LocalDomain(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) NextAvailableNonce(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "nextAvailableNonce") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) NextAvailableNonce() (uint64, error) { + return _MockE2EUSDCTransmitter.Contract.NextAvailableNonce(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) NextAvailableNonce() (uint64, error) { + return _MockE2EUSDCTransmitter.Contract.NextAvailableNonce(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) SShouldSucceed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "s_shouldSucceed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SShouldSucceed() (bool, error) { + return _MockE2EUSDCTransmitter.Contract.SShouldSucceed(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) SShouldSucceed() (bool, error) { + return _MockE2EUSDCTransmitter.Contract.SShouldSucceed(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) Version(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "version") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) Version() (uint32, error) { + return _MockE2EUSDCTransmitter.Contract.Version(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) Version() (uint32, error) { + return _MockE2EUSDCTransmitter.Contract.Version(&_MockE2EUSDCTransmitter.CallOpts) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) ReceiveMessage(opts *bind.TransactOpts, message []byte, arg1 []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.contract.Transact(opts, "receiveMessage", message, arg1) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) ReceiveMessage(message []byte, arg1 []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.ReceiveMessage(&_MockE2EUSDCTransmitter.TransactOpts, message, arg1) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) ReceiveMessage(message []byte, arg1 []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.ReceiveMessage(&_MockE2EUSDCTransmitter.TransactOpts, message, arg1) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) SendMessage(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.contract.Transact(opts, "sendMessage", destinationDomain, recipient, messageBody) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SendMessage(destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.SendMessage(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, messageBody) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) SendMessage(destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.SendMessage(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, messageBody) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) SendMessageWithCaller(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.contract.Transact(opts, "sendMessageWithCaller", destinationDomain, recipient, destinationCaller, messageBody) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SendMessageWithCaller(destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.SendMessageWithCaller(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, destinationCaller, messageBody) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) SendMessageWithCaller(destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.SendMessageWithCaller(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, destinationCaller, messageBody) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) SetShouldSucceed(opts *bind.TransactOpts, shouldSucceed bool) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.contract.Transact(opts, "setShouldSucceed", shouldSucceed) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SetShouldSucceed(shouldSucceed bool) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.SetShouldSucceed(&_MockE2EUSDCTransmitter.TransactOpts, shouldSucceed) +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) SetShouldSucceed(shouldSucceed bool) (*types.Transaction, error) { + return _MockE2EUSDCTransmitter.Contract.SetShouldSucceed(&_MockE2EUSDCTransmitter.TransactOpts, shouldSucceed) +} + +type MockE2EUSDCTransmitterMessageSentIterator struct { + Event *MockE2EUSDCTransmitterMessageSent + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *MockE2EUSDCTransmitterMessageSentIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(MockE2EUSDCTransmitterMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(MockE2EUSDCTransmitterMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *MockE2EUSDCTransmitterMessageSentIterator) Error() error { + return it.fail +} + +func (it *MockE2EUSDCTransmitterMessageSentIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type MockE2EUSDCTransmitterMessageSent struct { + Message []byte + Raw types.Log +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterFilterer) FilterMessageSent(opts *bind.FilterOpts) (*MockE2EUSDCTransmitterMessageSentIterator, error) { + + logs, sub, err := _MockE2EUSDCTransmitter.contract.FilterLogs(opts, "MessageSent") + if err != nil { + return nil, err + } + return &MockE2EUSDCTransmitterMessageSentIterator{contract: _MockE2EUSDCTransmitter.contract, event: "MessageSent", logs: logs, sub: sub}, nil +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterFilterer) WatchMessageSent(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTransmitterMessageSent) (event.Subscription, error) { + + logs, sub, err := _MockE2EUSDCTransmitter.contract.WatchLogs(opts, "MessageSent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(MockE2EUSDCTransmitterMessageSent) + if err := _MockE2EUSDCTransmitter.contract.UnpackLog(event, "MessageSent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterFilterer) ParseMessageSent(log types.Log) (*MockE2EUSDCTransmitterMessageSent, error) { + event := new(MockE2EUSDCTransmitterMessageSent) + if err := _MockE2EUSDCTransmitter.contract.UnpackLog(event, "MessageSent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (MockE2EUSDCTransmitterMessageSent) Topic() common.Hash { + return common.HexToHash("0x8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036") +} + +func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitter) Address() common.Address { + return _MockE2EUSDCTransmitter.address +} + +type MockE2EUSDCTransmitterInterface interface { + LocalDomain(opts *bind.CallOpts) (uint32, error) + + NextAvailableNonce(opts *bind.CallOpts) (uint64, error) + + SShouldSucceed(opts *bind.CallOpts) (bool, error) + + Version(opts *bind.CallOpts) (uint32, error) + + ReceiveMessage(opts *bind.TransactOpts, message []byte, arg1 []byte) (*types.Transaction, error) + + SendMessage(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) + + SendMessageWithCaller(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) + + SetShouldSucceed(opts *bind.TransactOpts, shouldSucceed bool) (*types.Transaction, error) + + FilterMessageSent(opts *bind.FilterOpts) (*MockE2EUSDCTransmitterMessageSentIterator, error) + + WatchMessageSent(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTransmitterMessageSent) (event.Subscription, error) + + ParseMessageSent(log types.Log) (*MockE2EUSDCTransmitterMessageSent, error) + + Address() common.Address +} diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go new file mode 100644 index 0000000000..dad440d64e --- /dev/null +++ b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go @@ -0,0 +1,7 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + + +package mock_usdc_token_transmitter + +var SolidityStandardInput = "{\"version\":\"v0.8.26+commit.8a97fa7a\",\"language\":\"Solidity\",\"settings\":{\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":true,\"bytecodeHash\":\"none\",\"useLiteralContent\":false},\"optimizer\":{\"enabled\":true,\"runs\":80000},\"outputSelection\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/MockE2EUSDCTransmitter.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/interfaces/IGetCCIPAdmin.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/BurnMintERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/access/AccessControl.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/access/IAccessControl.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/ERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/ERC20Burnable.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/IERC20Metadata.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Context.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Strings.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/ERC165.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/IERC165.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/math/Math.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]}},\"remappings\":[\"forge-std/=node_modules/@chainlink/contracts/src/v0.8/vendor/forge-std/src/\",\"@chainlink/contracts/=node_modules/@chainlink/contracts/\",\"@openzeppelin/contracts@4.8.3/=node_modules/@openzeppelin/contracts-4.8.3/\",\"@openzeppelin/contracts@5.0.2/=node_modules/@openzeppelin/contracts-5.0.2/\"],\"viaIR\":true},\"sources\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\ninterface IMessageTransmitter {\\n /// @notice Unlocks USDC tokens on the destination chain\\n /// @param message The original message on the source chain\\n /// * Message format:\\n /// * Field Bytes Type Index\\n /// * version 4 uint32 0\\n /// * sourceDomain 4 uint32 4\\n /// * destinationDomain 4 uint32 8\\n /// * nonce 8 uint64 12\\n /// * sender 32 bytes32 20\\n /// * recipient 32 bytes32 52\\n /// * destinationCaller 32 bytes32 84\\n /// * messageBody dynamic bytes 116\\n /// param attestation A valid attestation is the concatenated 65-byte signature(s) of\\n /// exactly `thresholdSignature` signatures, in increasing order of attester address.\\n /// ***If the attester addresses recovered from signatures are not in increasing order,\\n /// signature verification will fail.***\\n /// If incorrect number of signatures or duplicate signatures are supplied,\\n /// signature verification will fail.\\n function receiveMessage(bytes calldata message, bytes calldata attestation) external returns (bool success);\\n\\n /// Returns domain of chain on which the contract is deployed.\\n /// @dev immutable\\n function localDomain() external view returns (uint32);\\n\\n /// Returns message format version.\\n /// @dev immutable\\n function version() external view returns (uint32);\\n}\\n\"},\"contracts/test/mocks/MockE2EUSDCTransmitter.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\nimport {IMessageTransmitterWithRelay} from \\\"./interfaces/IMessageTransmitterWithRelay.sol\\\";\\n\\nimport {BurnMintERC20} from \\\"@chainlink/contracts/src/v0.8/shared/token/ERC20/BurnMintERC20.sol\\\";\\n\\n// solhint-disable\\ncontract MockE2EUSDCTransmitter is IMessageTransmitterWithRelay {\\n // Indicated whether the receiveMessage() call should succeed.\\n bool public s_shouldSucceed;\\n uint32 private immutable i_version;\\n uint32 private immutable i_localDomain;\\n // Next available nonce from this source domain\\n uint64 public nextAvailableNonce;\\n\\n BurnMintERC20 internal immutable i_token;\\n\\n /**\\n * @notice Emitted when a new message is dispatched\\n * @param message Raw bytes of message\\n */\\n event MessageSent(bytes message);\\n\\n constructor(uint32 _version, uint32 _localDomain, address token) {\\n i_version = _version;\\n i_localDomain = _localDomain;\\n s_shouldSucceed = true;\\n\\n i_token = BurnMintERC20(token);\\n }\\n\\n /// @param message The original message on the source chain\\n /// * Message format:\\n /// * Field Bytes Type Index\\n /// * version 4 uint32 0\\n /// * sourceDomain 4 uint32 4\\n /// * destinationDomain 4 uint32 8\\n /// * nonce 8 uint64 12\\n /// * sender 32 bytes32 20\\n /// * recipient 32 bytes32 52\\n /// * destinationCaller 32 bytes32 84\\n /// * messageBody dynamic bytes 116\\n function receiveMessage(bytes calldata message, bytes calldata) external returns (bool success) {\\n // The receiver of the funds is the _mintRecipient in the following encoded format\\n // function _formatMessage(\\n // uint32 _version, 4\\n // bytes32 _burnToken, 32\\n // bytes32 _mintRecipient, 32, first 12 empty for EVM addresses\\n // uint256 _amount,\\n // bytes32 _messageSender\\n // ) internal pure returns (bytes memory) {\\n // return abi.encodePacked(_version, _burnToken, _mintRecipient, _amount, _messageSender);\\n // }\\n address recipient = address(bytes20(message[116 + 36 + 12:116 + 36 + 12 + 20]));\\n // We always mint 1 token to not complicate the test.\\n i_token.mint(recipient, 1);\\n\\n return s_shouldSucceed;\\n }\\n\\n function setShouldSucceed(\\n bool shouldSucceed\\n ) external {\\n s_shouldSucceed = shouldSucceed;\\n }\\n\\n function version() external view returns (uint32) {\\n return i_version;\\n }\\n\\n function localDomain() external view returns (uint32) {\\n return i_localDomain;\\n }\\n\\n /**\\n * This is based on similar function in https://github.com/circlefin/evm-cctp-contracts/blob/master/src/MessageTransmitter.sol\\n * @notice Send the message to the destination domain and recipient\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination chain as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessage(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes calldata messageBody\\n ) external returns (uint64) {\\n bytes32 _emptyDestinationCaller = bytes32(0);\\n uint64 _nonce = _reserveAndIncrementNonce();\\n bytes32 _messageSender = bytes32(uint256(uint160((msg.sender))));\\n\\n _sendMessage(destinationDomain, recipient, _emptyDestinationCaller, _messageSender, _nonce, messageBody);\\n\\n return _nonce;\\n }\\n\\n /**\\n * @notice Send the message to the destination domain and recipient, for a specified `destinationCaller` on the\\n * destination domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * WARNING: if the `destinationCaller` does not represent a valid address, then it will not be possible\\n * to broadcast the message on the destination domain. This is an advanced feature, and the standard\\n * sendMessage() should be preferred for use cases where a specific destination caller is not required.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param destinationCaller caller on the destination domain, as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessageWithCaller(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes32 destinationCaller,\\n bytes calldata messageBody\\n ) external returns (uint64) {\\n require(destinationCaller != bytes32(0), \\\"Destination caller must be nonzero\\\");\\n\\n uint64 _nonce = _reserveAndIncrementNonce();\\n bytes32 _messageSender = bytes32(uint256(uint160((msg.sender))));\\n\\n _sendMessage(destinationDomain, recipient, destinationCaller, _messageSender, _nonce, messageBody);\\n\\n return _nonce;\\n }\\n\\n /**\\n * Reserve and increment next available nonce\\n * @return nonce reserved\\n */\\n function _reserveAndIncrementNonce() internal returns (uint64) {\\n uint64 _nonceReserved = nextAvailableNonce;\\n nextAvailableNonce = nextAvailableNonce + 1;\\n return _nonceReserved;\\n }\\n\\n /**\\n * @notice Send the message to the destination domain and recipient. If `_destinationCaller` is not equal to bytes32(0),\\n * the message can only be received on the destination chain when called by `_destinationCaller`.\\n * @dev Format the message and emit `MessageSent` event with message information.\\n * @param _destinationDomain Domain of destination chain\\n * @param _recipient Address of message recipient on destination domain as bytes32\\n * @param _destinationCaller caller on the destination domain, as bytes32\\n * @param _sender message sender, as bytes32\\n * @param _nonce nonce reserved for message\\n * @param _messageBody Raw bytes content of message\\n */\\n function _sendMessage(\\n uint32 _destinationDomain,\\n bytes32 _recipient,\\n bytes32 _destinationCaller,\\n bytes32 _sender,\\n uint64 _nonce,\\n bytes calldata _messageBody\\n ) internal {\\n require(_recipient != bytes32(0), \\\"Recipient must be nonzero\\\");\\n // serialize message\\n bytes memory _message = abi.encodePacked(\\n i_version, i_localDomain, _destinationDomain, _nonce, _sender, _recipient, _destinationCaller, _messageBody\\n );\\n\\n // Emit MessageSent event\\n emit MessageSent(_message);\\n }\\n}\\n\"},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\nimport {IMessageTransmitter} from \\\"../../../pools/USDC/interfaces/IMessageTransmitter.sol\\\";\\n\\n// This follows https://github.com/circlefin/evm-cctp-contracts/blob/master/src/interfaces/IMessageTransmitter.sol\\ninterface IMessageTransmitterWithRelay is IMessageTransmitter {\\n /**\\n * @notice Sends an outgoing message from the source domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessage(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n\\n /**\\n * @notice Sends an outgoing message from the source domain, with a specified caller on the\\n * destination domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * WARNING: if the `destinationCaller` does not represent a valid address as bytes32, then it will not be possible\\n * to broadcast the message on the destination domain. This is an advanced feature, and the standard\\n * sendMessage() should be preferred for use cases where a specific destination caller is not required.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param destinationCaller caller on the destination domain, as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessageWithCaller(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes32 destinationCaller,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/interfaces/IGetCCIPAdmin.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface IGetCCIPAdmin {\\n /// @notice Returns the admin of the token.\\n /// @dev This method is named to never conflict with existing methods.\\n function getCCIPAdmin() external view returns (address);\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/BurnMintERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.4;\\n\\nimport {IGetCCIPAdmin} from \\\"../../../shared/interfaces/IGetCCIPAdmin.sol\\\";\\nimport {IBurnMintERC20} from \\\"../../../shared/token/ERC20/IBurnMintERC20.sol\\\";\\n\\nimport {AccessControl} from \\\"@openzeppelin/contracts@4.8.3/access/AccessControl.sol\\\";\\nimport {IAccessControl} from \\\"@openzeppelin/contracts@4.8.3/access/IAccessControl.sol\\\";\\nimport {ERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/ERC20.sol\\\";\\nimport {IERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/IERC20.sol\\\";\\nimport {ERC20Burnable} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/extensions/ERC20Burnable.sol\\\";\\nimport {IERC165} from \\\"@openzeppelin/contracts@4.8.3/utils/introspection/IERC165.sol\\\";\\n\\n/// @notice A basic ERC20 compatible token contract with burn and minting roles.\\n/// @dev The total supply can be limited during deployment.\\ncontract BurnMintERC20 is IBurnMintERC20, IGetCCIPAdmin, IERC165, ERC20Burnable, AccessControl {\\n error MaxSupplyExceeded(uint256 supplyAfterMint);\\n error InvalidRecipient(address recipient);\\n\\n event CCIPAdminTransferred(address indexed previousAdmin, address indexed newAdmin);\\n\\n /// @dev The number of decimals for the token\\n uint8 internal immutable i_decimals;\\n\\n /// @dev The maximum supply of the token, 0 if unlimited\\n uint256 internal immutable i_maxSupply;\\n\\n /// @dev the CCIPAdmin can be used to register with the CCIP token admin registry, but has no other special powers,\\n /// and can only be transferred by the owner.\\n address internal s_ccipAdmin;\\n\\n bytes32 public constant MINTER_ROLE = keccak256(\\\"MINTER_ROLE\\\");\\n bytes32 public constant BURNER_ROLE = keccak256(\\\"BURNER_ROLE\\\");\\n\\n /// @dev the underscores in parameter names are used to suppress compiler warnings about shadowing ERC20 functions\\n constructor(\\n string memory name,\\n string memory symbol,\\n uint8 decimals_,\\n uint256 maxSupply_,\\n uint256 preMint\\n ) ERC20(name, symbol) {\\n i_decimals = decimals_;\\n i_maxSupply = maxSupply_;\\n\\n s_ccipAdmin = msg.sender;\\n\\n // Mint the initial supply to the new Owner, saving gas by not calling if the mint amount is zero\\n if (preMint != 0) _mint(msg.sender, preMint);\\n\\n // Set up the owner as the initial minter and burner\\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\\n }\\n\\n /// @inheritdoc IERC165\\n function supportsInterface(\\n bytes4 interfaceId\\n ) public pure virtual override(AccessControl, IERC165) returns (bool) {\\n return interfaceId == type(IERC20).interfaceId || interfaceId == type(IBurnMintERC20).interfaceId\\n || interfaceId == type(IERC165).interfaceId || interfaceId == type(IAccessControl).interfaceId\\n || interfaceId == type(IGetCCIPAdmin).interfaceId;\\n }\\n\\n // ================================================================\\n // │ ERC20 │\\n // ================================================================\\n\\n /// @dev Returns the number of decimals used in its user representation.\\n function decimals() public view virtual override returns (uint8) {\\n return i_decimals;\\n }\\n\\n /// @dev Returns the max supply of the token, 0 if unlimited.\\n function maxSupply() public view virtual returns (uint256) {\\n return i_maxSupply;\\n }\\n\\n /// @dev Uses OZ ERC20 _transfer to disallow sending to address(0).\\n /// @dev Disallows sending to address(this)\\n function _transfer(address from, address to, uint256 amount) internal virtual override {\\n if (to == address(this)) revert InvalidRecipient(to);\\n\\n super._transfer(from, to, amount);\\n }\\n\\n /// @dev Uses OZ ERC20 _approve to disallow approving for address(0).\\n /// @dev Disallows approving for address(this)\\n function _approve(address owner, address spender, uint256 amount) internal virtual override {\\n if (spender == address(this)) revert InvalidRecipient(spender);\\n\\n super._approve(owner, spender, amount);\\n }\\n\\n // ================================================================\\n // │ Burning \\u0026 minting │\\n // ================================================================\\n\\n /// @inheritdoc ERC20Burnable\\n /// @dev Uses OZ ERC20 _burn to disallow burning from address(0).\\n /// @dev Decreases the total supply.\\n function burn(\\n uint256 amount\\n ) public virtual override(IBurnMintERC20, ERC20Burnable) onlyRole(BURNER_ROLE) {\\n super.burn(amount);\\n }\\n\\n /// @inheritdoc IBurnMintERC20\\n /// @dev Alias for BurnFrom for compatibility with the older naming convention.\\n /// @dev Uses burnFrom for all validation \\u0026 logic.\\n function burn(address account, uint256 amount) public virtual override {\\n burnFrom(account, amount);\\n }\\n\\n /// @inheritdoc ERC20Burnable\\n /// @dev Uses OZ ERC20 _burn to disallow burning from address(0).\\n /// @dev Decreases the total supply.\\n function burnFrom(\\n address account,\\n uint256 amount\\n ) public virtual override(IBurnMintERC20, ERC20Burnable) onlyRole(BURNER_ROLE) {\\n super.burnFrom(account, amount);\\n }\\n\\n /// @inheritdoc IBurnMintERC20\\n /// @dev Uses OZ ERC20 _mint to disallow minting to address(0).\\n /// @dev Disallows minting to address(this)\\n /// @dev Increases the total supply.\\n function mint(address account, uint256 amount) external virtual override onlyRole(MINTER_ROLE) {\\n if (account == address(this)) revert InvalidRecipient(account);\\n if (i_maxSupply != 0 \\u0026\\u0026 totalSupply() + amount \\u003e i_maxSupply) revert MaxSupplyExceeded(totalSupply() + amount);\\n\\n _mint(account, amount);\\n }\\n\\n // ================================================================\\n // │ Roles │\\n // ================================================================\\n\\n /// @notice grants both mint and burn roles to `burnAndMinter`.\\n /// @dev calls public functions so this function does not require\\n /// access controls. This is handled in the inner functions.\\n function grantMintAndBurnRoles(\\n address burnAndMinter\\n ) external virtual {\\n grantRole(MINTER_ROLE, burnAndMinter);\\n grantRole(BURNER_ROLE, burnAndMinter);\\n }\\n\\n /// @notice Returns the current CCIPAdmin\\n function getCCIPAdmin() external view virtual returns (address) {\\n return s_ccipAdmin;\\n }\\n\\n /// @notice Transfers the CCIPAdmin role to a new address\\n /// @dev only the owner can call this function, NOT the current ccipAdmin, and 1-step ownership transfer is used.\\n /// @param newAdmin The address to transfer the CCIPAdmin role to. Setting to address(0) is a valid way to revoke\\n /// the role\\n function setCCIPAdmin(\\n address newAdmin\\n ) external virtual onlyRole(DEFAULT_ADMIN_ROLE) {\\n address currentAdmin = s_ccipAdmin;\\n\\n s_ccipAdmin = newAdmin;\\n\\n emit CCIPAdminTransferred(currentAdmin, newAdmin);\\n }\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport {IERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/IERC20.sol\\\";\\n\\ninterface IBurnMintERC20 is IERC20 {\\n /// @notice Mints new tokens for a given address.\\n /// @param account The address to mint the new tokens to.\\n /// @param amount The number of tokens to be minted.\\n /// @dev this function increases the total supply.\\n function mint(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from the sender.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(\\n uint256 amount\\n ) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burnFrom(address account, uint256 amount) external;\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```\\n * function foo() public {\\n * require(hasRole(MY_ROLE, msg.sender));\\n * ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n struct RoleData {\\n mapping(address =\\u003e bool) members;\\n bytes32 adminRole;\\n }\\n\\n mapping(bytes32 =\\u003e RoleData) private _roles;\\n\\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n /**\\n * @dev Modifier that checks that an account has a specific role. Reverts\\n * with a standardized message including the required role.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n *\\n * _Available since v4.1._\\n */\\n modifier onlyRole(bytes32 role) {\\n _checkRole(role);\\n _;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n return _roles[role].members[account];\\n }\\n\\n /**\\n * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n * Overriding this function changes the behavior of the {onlyRole} modifier.\\n *\\n * Format of the revert message is described in {_checkRole}.\\n *\\n * _Available since v4.6._\\n */\\n function _checkRole(bytes32 role) internal view virtual {\\n _checkRole(role, _msgSender());\\n }\\n\\n /**\\n * @dev Revert with a standard message if `account` is missing `role`.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n */\\n function _checkRole(bytes32 role, address account) internal view virtual {\\n if (!hasRole(role, account)) {\\n revert(\\n string(\\n abi.encodePacked(\\n \\\"AccessControl: account \\\",\\n Strings.toHexString(account),\\n \\\" is missing role \\\",\\n Strings.toHexString(uint256(role), 32)\\n )\\n )\\n );\\n }\\n }\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n return _roles[role].adminRole;\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function renounceRole(bytes32 role, address account) public virtual override {\\n require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event. Note that unlike {grantRole}, this function doesn't perform any\\n * checks on the calling account.\\n *\\n * May emit a {RoleGranted} event.\\n *\\n * [WARNING]\\n * ====\\n * This function should only be called from the constructor when setting\\n * up the initial roles for the system.\\n *\\n * Using this function in any other way is effectively circumventing the admin\\n * system imposed by {AccessControl}.\\n * ====\\n *\\n * NOTE: This function is deprecated in favor of {_grantRole}.\\n */\\n function _setupRole(bytes32 role, address account) internal virtual {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Sets `adminRole` as ``role``'s admin role.\\n *\\n * Emits a {RoleAdminChanged} event.\\n */\\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n bytes32 previousAdminRole = getRoleAdmin(role);\\n _roles[role].adminRole = adminRole;\\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function _grantRole(bytes32 role, address account) internal virtual {\\n if (!hasRole(role, account)) {\\n _roles[role].members[account] = true;\\n emit RoleGranted(role, account, _msgSender());\\n }\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function _revokeRole(bytes32 role, address account) internal virtual {\\n if (hasRole(role, account)) {\\n _roles[role].members[account] = false;\\n emit RoleRevoked(role, account, _msgSender());\\n }\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n /**\\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n *\\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n * {RoleAdminChanged} not being emitted signaling this.\\n *\\n * _Available since v3.1._\\n */\\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n /**\\n * @dev Emitted when `account` is granted `role`.\\n *\\n * `sender` is the account that originated the contract call, an admin role\\n * bearer except when using {AccessControl-_setupRole}.\\n */\\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Emitted when `account` is revoked `role`.\\n *\\n * `sender` is the account that originated the contract call:\\n * - if using `revokeRole`, it is the admin role bearer\\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n */\\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function grantRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function revokeRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been granted `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n */\\n function renounceRole(bytes32 role, address account) external;\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address =\\u003e uint256) private _balances;\\n\\n mapping(address =\\u003e mapping(address =\\u003e uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance \\u003e= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance \\u003e= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance \\u003e= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount \\u003c= accountBalance \\u003c= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance \\u003e= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/ERC20Burnable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC20.sol\\\";\\nimport \\\"../../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Extension of {ERC20} that allows token holders to destroy both their own\\n * tokens and those that they have an allowance for, in a way that can be\\n * recognized off-chain (via event analysis).\\n */\\nabstract contract ERC20Burnable is Context, ERC20 {\\n /**\\n * @dev Destroys `amount` tokens from the caller.\\n *\\n * See {ERC20-_burn}.\\n */\\n function burn(uint256 amount) public virtual {\\n _burn(_msgSender(), amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, deducting from the caller's\\n * allowance.\\n *\\n * See {ERC20-_burn} and {ERC20-allowance}.\\n *\\n * Requirements:\\n *\\n * - the caller must have allowance for ``accounts``'s tokens of at least\\n * `amount`.\\n */\\n function burnFrom(address account, uint256 amount) public virtual {\\n _spendAllowance(account, _msgSender(), amount);\\n _burn(account, amount);\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i \\u003e 1; --i) {\\n buffer[i] = _SYMBOLS[value \\u0026 0xf];\\n value \\u003e\\u003e= 4;\\n }\\n require(value == 0, \\\"Strings: hex length insufficient\\\");\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n enum Rounding {\\n Down, // Toward negative infinity\\n Up, // Toward infinity\\n Zero // Toward zero\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a \\u003e b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a \\u003c b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a \\u0026 b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds up instead\\n * of rounding down.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n * with further edits by Uniswap Labs also under MIT license.\\n */\\n function mulDiv(\\n uint256 x,\\n uint256 y,\\n uint256 denominator\\n ) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod0 := mul(x, y)\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n require(denominator \\u003e prod1);\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always \\u003e= 1.\\n // See https://cs.stackexchange.com/q/138556/92363.\\n\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\n uint256 twos = denominator \\u0026 (~denominator + 1);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n // in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(\\n uint256 x,\\n uint256 y,\\n uint256 denominator,\\n Rounding rounding\\n ) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (rounding == Rounding.Up \\u0026\\u0026 mulmod(x, y, denominator) \\u003e 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) \\u003c= a \\u003c 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) \\u003c= a \\u003c 2**(log2(a) + 1)`\\n // → `sqrt(2**k) \\u003c= sqrt(a) \\u003c sqrt(2**(k+1))`\\n // → `2**(k/2) \\u003c= sqrt(a) \\u003c 2**((k+1)/2) \\u003c= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 \\u003c\\u003c (log2(a) \\u003e\\u003e 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 result * result \\u003c a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value \\u003e\\u003e 128 \\u003e 0) {\\n value \\u003e\\u003e= 128;\\n result += 128;\\n }\\n if (value \\u003e\\u003e 64 \\u003e 0) {\\n value \\u003e\\u003e= 64;\\n result += 64;\\n }\\n if (value \\u003e\\u003e 32 \\u003e 0) {\\n value \\u003e\\u003e= 32;\\n result += 32;\\n }\\n if (value \\u003e\\u003e 16 \\u003e 0) {\\n value \\u003e\\u003e= 16;\\n result += 16;\\n }\\n if (value \\u003e\\u003e 8 \\u003e 0) {\\n value \\u003e\\u003e= 8;\\n result += 8;\\n }\\n if (value \\u003e\\u003e 4 \\u003e 0) {\\n value \\u003e\\u003e= 4;\\n result += 4;\\n }\\n if (value \\u003e\\u003e 2 \\u003e 0) {\\n value \\u003e\\u003e= 2;\\n result += 2;\\n }\\n if (value \\u003e\\u003e 1 \\u003e 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 1 \\u003c\\u003c result \\u003c value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value \\u003e= 10**64) {\\n value /= 10**64;\\n result += 64;\\n }\\n if (value \\u003e= 10**32) {\\n value /= 10**32;\\n result += 32;\\n }\\n if (value \\u003e= 10**16) {\\n value /= 10**16;\\n result += 16;\\n }\\n if (value \\u003e= 10**8) {\\n value /= 10**8;\\n result += 8;\\n }\\n if (value \\u003e= 10**4) {\\n value /= 10**4;\\n result += 4;\\n }\\n if (value \\u003e= 10**2) {\\n value /= 10**2;\\n result += 2;\\n }\\n if (value \\u003e= 10**1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 10**result \\u003c value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value \\u003e\\u003e 128 \\u003e 0) {\\n value \\u003e\\u003e= 128;\\n result += 16;\\n }\\n if (value \\u003e\\u003e 64 \\u003e 0) {\\n value \\u003e\\u003e= 64;\\n result += 8;\\n }\\n if (value \\u003e\\u003e 32 \\u003e 0) {\\n value \\u003e\\u003e= 32;\\n result += 4;\\n }\\n if (value \\u003e\\u003e 16 \\u003e 0) {\\n value \\u003e\\u003e= 16;\\n result += 2;\\n }\\n if (value \\u003e\\u003e 8 \\u003e 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 1 \\u003c\\u003c (result * 8) \\u003c value ? 1 : 0);\\n }\\n }\\n}\\n\"}}}" diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go new file mode 100644 index 0000000000..f7e2217f71 --- /dev/null +++ b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go @@ -0,0 +1,61 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. +package mock_usdc_token_transmitter + +import ( + "context" + "crypto/rand" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/zksync-sdk/zksync2-go/accounts" + "github.com/zksync-sdk/zksync2-go/clients" + "github.com/zksync-sdk/zksync2-go/types" +) + +func DeployMockE2EUSDCTransmitterZk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *MockE2EUSDCTransmitter, error) { + var calldata []byte + if len(args) > 0 { + abi, err := MockE2EUSDCTransmitterMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + calldata, err = abi.Pack("", args...) + if err != nil { + return common.Address{}, nil, nil, err + } + } + + salt := make([]byte, 32) + n, err := rand.Read(salt) + if err != nil { + return common.Address{}, nil, nil, err + } + if n != len(salt) { + return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) + } + + txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ + Bytecode: ZkBytecode, + Calldata: calldata, + Salt: salt, + }) + if err != nil { + return common.Address{}, nil, nil, err + } + + receipt, err := client.WaitMined(context.Background(), txHash) + if err != nil { + return common.Address{}, nil, nil, err + } + + address := receipt.ContractAddress + contract, err := NewMockE2EUSDCTransmitter(address, backend) + if err != nil { + return common.Address{}, nil, nil, err + } + + return address, receipt, contract, nil +} + +var ZkBytecode = common.Hex2Bytes("0001000000000002000b00000000000200000000000103550000006003100270000000be033001970000000100200190000000200000c13d0000008002000039000000400020043f000000040030008c000002bc0000413d000000000201043b000000e002200270000000c30020009c0000005d0000213d000000c90020009c000000740000213d000000cc0020009c000000b10000613d000000cd0020009c000002bc0000c13d0000000001000416000000000001004b000002bc0000c13d0000000001000412000b00000001001d000a00000000003d0000800501000039000000440300003900000000040004150000000b0440008a0000006d0000013d0000000002000416000000000002004b000002bc0000c13d0000001f02300039000000bf02200197000000e002200039000000400020043f0000001f0430018f000000c005300198000000e002500039000000310000613d000000e006000039000000000701034f000000007807043c0000000006860436000000000026004b0000002d0000c13d000000000004004b0000003e0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600030008c000002bc0000413d000000e00100043d000000be0010009c000002bc0000213d000001000200043d000000be0020009c000002bc0000213d000001200300043d000000c10030009c000002bc0000213d000000800010043f000000a00020043f000000000500041a000000e70450019700000001044001bf000000000040041b000000c00030043f0000014000000443000001600010044300000020010000390000018000100443000001a0002004430000004002000039000001c000200443000001e000300443000001000010044300000003010000390000012000100443000000c201000041000002f50001042e000000c40020009c000000820000213d000000c70020009c0000015e0000613d000000c80020009c000002bc0000c13d0000000001000416000000000001004b000002bc0000c13d0000000001000412000900000001001d000800200000003d000080050100003900000044030000390000000004000415000000090440008a0000000504400210000000d10200004102f402d10000040f000000be01100197000000800010043f000000dd01000041000002f50001042e000000ca0020009c000001670000613d000000cb0020009c000002bc0000c13d0000000001000416000000000001004b000002bc0000c13d000000000100041a000000ff001001900000000001000039000000010100c039000000800010043f000000dd01000041000002f50001042e000000c50020009c000001da0000613d000000c60020009c000002bc0000c13d000000840030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000402100370000000000602043b000000be0060009c000002bc0000213d0000004402100370000000000502043b0000002402100370000000000702043b0000006402100370000000000202043b000000ce0020009c000002bc0000213d0000002304200039000000000034004b000002bc0000813d0000000408200039000000000181034f000000000401043b000000ce0040009c000002bc0000213d00000000014200190000002401100039000000000031004b000002bc0000213d000000000005004b000001ec0000c13d000000d901000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f000000da01000041000000c40010043f000000db01000041000000e40010043f000000dc01000041000002f600010430000000640030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000402100370000000000502043b000000be0050009c000002bc0000213d0000002402100370000000000602043b0000004402100370000000000202043b000000ce0020009c000002bc0000213d0000002304200039000000000034004b000002bc0000813d0000000407200039000000000171034f000000000401043b000000ce0040009c000002bc0000213d00000000014200190000002401100039000000000031004b000002bc0000213d000000000100041a0000000808100270000000ce03800197000000ce0030009c000001f10000613d000000cf0110019700000008023002100000010002200039000000d002200197000000000112019f000000000010041b000000000006004b000002060000613d000300000008001d000400000007001d000500000006001d000600000005001d000700000004001d000200000003001d000000d10100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a00010043f000000d101000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a40010043f0000000601000029000000e001100210000000a80010043f0000000301000029000000c001100210000000ac0010043f0000000001000411000000b40010043f0000000501000029000000d40010043f0000000702000029000000e8032001980000001f0420018f000001140230003900000004050000290000002005500039000000f40000043f00000000055003670000011b0000613d0000011406000039000000000705034f000000007807043c0000000006860436000000000026004b000001170000c13d000000000004004b000001280000613d000000000335034f0000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000703000029000001140230003900000000000204350000007402300039000000800020043f000000b302300039000000e804200197000000e20040009c000002630000813d0000008002400039000000400020043f00000020030000390000000000320435000000a005400039000000800300043d0000000000350435000000c004400039000000000003004b000001430000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000035004b0000013c0000413d0000001f05300039000000e8015001970000000003430019000000000003043500000040011000390000006003100210000000d40010009c000000d503008041000000be0020009c000000be020080410000004001200210000000000113019f0000000002000414000000be0020009c000000be02008041000000c0022002100000000001210019000000d60110009a0000800d020000390000000103000039000000d70400004102f402ea0000040f0000000100200190000002bc0000613d000000400100043d0000000202000029000002b60000013d0000000001000416000000000001004b000002bc0000c13d000000000100041a0000000801100270000000ce01100197000000800010043f000000dd01000041000002f50001042e000000440030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000402100370000000000402043b000000ce0040009c000002bc0000213d0000002302400039000000000032004b000002bc0000813d0000000406400039000000000261034f000000000202043b000000ce0020009c000002bc0000213d00000000042400190000002404400039000000000034004b000002bc0000213d0000002404100370000000000404043b000000ce0040009c000002bc0000213d0000002305400039000000000035004b000002bc0000813d0000000405400039000000000151034f000000000101043b000000ce0010009c000002bc0000213d000000b80020008c000002bc0000413d00000000011400190000002401100039000000000031004b000002bc0000213d000700000006001d000000d101000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000de020000410000000000200443000000c101100197000600000001001d00000004001004430000000001000414000000be0010009c000000be01008041000000c001100210000000df011001c7000080020200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000000001004b0000000702000029000002bc0000613d000000400400043d000000e0010000410000000000140435000000c4012000390000000001100367000000000101043b000000240240003900000001030000390000000000320435000000600110027000000004024000390000000000120435000000be0040009c000700000004001d000000be01000041000000000104401900000040011002100000000002000414000000be0020009c000000be02008041000000c002200210000000000112019f000000e1011001c7000000060200002902f402ea0000040f00000001002001900000026a0000613d0000000701000029000000000200001902f402be0000040f000000000100041a000000ff001001900000000001000039000000010100c039000000400200043d0000000000120435000000be0020009c000000be020080410000004001200210000000d8011001c7000002f50001042e000000240030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000401100370000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b000002bc0000c13d000000000300041a000000e702300197000000000112019f000000000010041b0000000001000019000002f50001042e000000000100041a0000000803100270000000ce02300197000000ce0020009c000001f70000c13d000000e301000041000000000010043f0000001101000039000000040010043f000000e401000041000002f600010430000200000003001d000300000008001d000500000006001d000600000005001d000700000004001d000000cf01100197000100000002001d00000008022002100000010002200039000000d002200197000000000112019f000000000010041b000400000007001d000000000007004b000002100000c13d000000d901000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000000e501000041000000c40010043f000000e601000041000002f600010430000000d10100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a00010043f000000d101000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a40010043f0000000501000029000000e001100210000000a80010043f0000000201000029000000c001100210000000ac0010043f0000000001000411000000b40010043f0000000401000029000000d40010043f0000000601000029000000f40010043f0000000702000029000000e8032001980000001f0420018f00000114023000390000000305000029000000200550003900000000055003670000024d0000613d0000011406000039000000000705034f000000007807043c0000000006860436000000000026004b000002490000c13d000000000004004b0000025a0000613d000000000335034f0000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000703000029000001140230003900000000000204350000007402300039000000800020043f000000b302300039000000e804200197000000d30040009c0000028a0000a13d000000e301000041000000000010043f0000004101000039000000040010043f000000e401000041000002f600010430000000000001042f00000060061002700000001f0460018f000000c005600198000000400200043d0000000003520019000002760000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000002720000c13d000000be06600197000000000004004b000002840000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000000be0020009c000000be020080410000004002200210000000000112019f000002f6000104300000008002400039000000400020043f00000020030000390000000000320435000000a005400039000000800300043d0000000000350435000000c004400039000000000003004b0000029c0000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000035004b000002950000413d0000001f05300039000000e8015001970000000003430019000000000003043500000040011000390000006003100210000000d40010009c000000d503008041000000be0020009c000000be020080410000004001200210000000000113019f0000000002000414000000be0020009c000000be02008041000000c0022002100000000001210019000000d60110009a0000800d020000390000000103000039000000d70400004102f402ea0000040f0000000100200190000002bc0000613d000000400100043d00000001020000290000000000210435000000be0010009c000000be010080410000004001100210000000d8011001c7000002f50001042e0000000001000019000002f6000104300000001f02200039000000e8022001970000000001120019000000000021004b00000000020000390000000102004039000000ce0010009c000002ca0000213d0000000100200190000002ca0000c13d000000400010043f000000000001042d000000e301000041000000000010043f0000004101000039000000040010043f000000e401000041000002f600010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b000002d40000413d000000be0030009c000000be0300804100000060013002100000000002000414000000be0020009c000000be02008041000000c002200210000000000112019f000000e9011001c7000000000205001902f402ef0000040f0000000100200190000002e90000613d000000000101043b000000000001042d000000000001042f000002ed002104210000000102000039000000000001042d0000000002000019000000000001042d000002f2002104230000000102000039000000000001042d0000000002000019000000000001042d000002f400000432000002f50001042e000002f600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000200000000000000000000000000000100000001000000000000000000000000000000000000000000000000000000000000000000000000008371744d000000000000000000000000000000000000000000000000000000009e31ddb5000000000000000000000000000000000000000000000000000000009e31ddb600000000000000000000000000000000000000000000000000000000f7259a75000000000000000000000000000000000000000000000000000000008371744e000000000000000000000000000000000000000000000000000000008d3638f40000000000000000000000000000000000000000000000000000000057ecfd270000000000000000000000000000000000000000000000000000000057ecfd28000000000000000000000000000000000000000000000000000000007a642935000000000000000000000000000000000000000000000000000000000ba469bc0000000000000000000000000000000000000000000000000000000054fd4d50000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff0000000000000000000000000000000000000000000000ffffffffffffffff00310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000ffffffff000000000000000000000000fe000000000000000000000000000000000000000000000000000000000000008c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036000000000000000000000000000000000000002000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000044657374696e6174696f6e2063616c6c6572206d757374206265206e6f6e7a65726f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000000000000000000000000000000000200000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000040c10f19000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff804e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000526563697069656e74206d757374206265206e6f6e7a65726f000000000000000000000000000000000000000000000000000064000000800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0020000020000000000000000000000000000000000000000000000000000000013fc59561f1f4bc22bdc9cd2ea02f354a719b9eccc64738b49f75920829280b4") From c19be75a0976b4ae9b9084292bff407e0e4c3b68 Mon Sep 17 00:00:00 2001 From: Agustina Aldasoro Date: Mon, 19 Jan 2026 16:21:53 -0300 Subject: [PATCH 02/13] fix ping pong --- .../v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go b/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go index 3f44bbbcfd..a10fd6d4fe 100644 --- a/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go +++ b/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go @@ -49,7 +49,7 @@ var SetCounterpart = contract.NewWrite(contract.WriteParams[SetCounterpartArgs, IsAllowedCaller: contract.OnlyOwner[*ping_pong_demo.PingPongDemo, SetCounterpartArgs], Validate: func(SetCounterpartArgs) error { return nil }, CallContract: func(pingPong *ping_pong_demo.PingPongDemo, opts *bind.TransactOpts, args SetCounterpartArgs) (*types.Transaction, error) { - return pingPong.SetCounterpart(opts, args.CounterpartChainSelector, args.CounterpartAddress) + return pingPong.SetCounterpart(opts, args.CounterpartChainSelector, common.BytesToAddress(args.CounterpartAddress)) }, }) @@ -87,7 +87,7 @@ var SetCounterpartAddress = contract.NewWrite(contract.WriteParams[SetCounterpar IsAllowedCaller: contract.OnlyOwner[*ping_pong_demo.PingPongDemo, SetCounterpartAddressArgs], Validate: func(SetCounterpartAddressArgs) error { return nil }, CallContract: func(pingPong *ping_pong_demo.PingPongDemo, opts *bind.TransactOpts, args SetCounterpartAddressArgs) (*types.Transaction, error) { - return pingPong.SetCounterpartAddress(opts, args.Address) + return pingPong.SetCounterpartAddress(opts, common.BytesToAddress(args.Address)) }, }) From c2b710d09f6bf0dce9edffce750e46de49fa1be1 Mon Sep 17 00:00:00 2001 From: Agustina Aldasoro Date: Mon, 19 Jan 2026 16:36:52 -0300 Subject: [PATCH 03/13] Fix tests --- .../v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go index 0eeb275dc5..3a21a9162e 100644 --- a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go @@ -13,7 +13,7 @@ import ( mcms_types "github.com/smartcontractkit/mcms/types" "github.com/stretchr/testify/require" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/adapters" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/adapters" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/changesets" cctp_message_transmitter_proxy_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/cctp_message_transmitter_proxy" usdc_token_pool_cctp_v2_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/usdc_token_pool_cctp_v2" From 176fd1e17b9036cfc0aea697d19b2bada3a90bb7 Mon Sep 17 00:00:00 2001 From: Agustina Aldasoro Date: Wed, 21 Jan 2026 12:32:39 -0300 Subject: [PATCH 04/13] Fix mock Import --- .../v1_6_4/changesets/set_domains_test.go | 4 +- .../usdc_token_pool_cctp_v2_deploy_test.go | 4 +- .../mock_usdc_token_messenger.go | 678 ------------------ .../mock_usdc_token_messenger_metadata.go | 7 - .../mock_usdc_token_messenger_zksync.go | 61 -- .../mock_usdc_token_transmitter.go | 457 ------------ .../mock_usdc_token_transmitter_metadata.go | 7 - .../mock_usdc_token_transmitter_zksync.go | 61 -- 8 files changed, 4 insertions(+), 1275 deletions(-) delete mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go delete mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go delete mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go delete mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go delete mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go delete mode 100644 chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go diff --git a/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go b/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go index 1aa8fcd5a2..09b7395bc8 100644 --- a/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go @@ -16,8 +16,8 @@ import ( contract_utils "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/changesets" usdc_token_pool_cctp_v2_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/usdc_token_pool_cctp_v2" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_messenger" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_transmitter" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/cctp_message_transmitter_proxy" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/factory_burn_mint_erc20" usdc_token_pool_cctp_v2_bindings "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_4/usdc_token_pool_cctp_v2" diff --git a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go index 3a21a9162e..5fb5f1803e 100644 --- a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go @@ -17,9 +17,9 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/changesets" cctp_message_transmitter_proxy_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/cctp_message_transmitter_proxy" usdc_token_pool_cctp_v2_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/usdc_token_pool_cctp_v2" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_messenger" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_transmitter" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/factory_burn_mint_erc20" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter" cctp_message_transmitter_proxy_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/cctp_message_transmitter_proxy" usdc_token_pool_cctp_v2_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_4/usdc_token_pool_cctp_v2" "github.com/smartcontractkit/chainlink-ccip/deployment/deploy" diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go deleted file mode 100644 index fd1c537a93..0000000000 --- a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger.go +++ /dev/null @@ -1,678 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package mock_usdc_token_messenger - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -var MockE2EUSDCTokenMessengerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"transmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DESTINATION_TOKEN_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositForBurn\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"burnToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"maxFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"minFinalityThreshold\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositForBurnWithCaller\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"burnToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getMinFeeAmount\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"localMessageTransmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"localMessageTransmitterWithRelay\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contract IMessageTransmitterWithRelay\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"messageBodyVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"s_nonce\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"DepositForBurn\",\"inputs\":[{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"burnToken\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"depositor\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"destinationTokenMessenger\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositForBurn\",\"inputs\":[{\"name\":\"burnToken\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"depositor\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"mintRecipient\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"destinationTokenMessenger\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"maxFee\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"minFinalityThreshold\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"hookData\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", - Bin: "0x60e0346100be57601f610b3538819003918201601f19168301916001600160401b038311848410176100c35780849260409485528339810103126100be5780519063ffffffff821682036100be57602001516001600160a01b038116918282036100be57608052600080546001600160401b031916600117905560a05260c052604051610a5b90816100da823960805181818161020c01528181610497015261067b015260a05181610769015260c05181818161061c01526109680152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c9081632c1219211461071f57508063516990e3146106e45780637eccf63e1461069f5780639cdbb18114610640578063a250c66a146105d1578063d04857b014610346578063f856ddb6146100d45763fb8406a91461007957600080fd5b346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d15760206040517f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f68152f35b80fd5b50346100d15760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d15760043590610110610791565b9160443561011c6107a9565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810184905273ffffffffffffffffffffffffffffffffffffffff91909116916084359160208160648189885af1801561030e57610319575b50823b1561030a576040517f42966c68000000000000000000000000000000000000000000000000000000008152846004820152858160248183885af1801561030e576102f5575b5060209563ffffffff9167ffffffffffffffff6102616040517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b168b8201528760248201528360448201528860648201523360848201526084815261025a60a4826107cc565b86856108d3565b1696877fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055604051958652878601521660408401527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f660608401526080830152827f2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c060a03394a4604051908152f35b6103008680926107cc565b61030a57386101d0565b8480fd5b6040513d88823e3d90fd5b61033a9060203d60201161033f575b61033281836107cc565b81019061083c565b610188565b503d610328565b50346100d15760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157600435610381610791565b9060443561038d6107a9565b9260843560a4359163ffffffff83168093036105cd5760c4359563ffffffff87168097036105ac576040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905273ffffffffffffffffffffffffffffffffffffffff9190911694906020816064818c8a5af180156105a1576105b0575b50843b156105ac576040517f42966c680000000000000000000000000000000000000000000000000000000081528660048201528881602481838a5af180156105a157610587575b509063ffffffff916105076040517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b1660208201528760248201528260448201528860648201523360848201528a60a48201528a60c48201528a60e48201528a61010482015260e48152610500610104826107cc565b85846108d3565b5060405196875260208701521660408501527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f66060850152608084015260a083015260e060c08301528360e0830152836101008301527f6a4c152b4ad8c08f204453d58ef2ac1c0bb69627dd545cf47507d32d036e67d56101003393a480f35b976105998163ffffffff94939a6107cc565b979091610466565b6040513d8b823e3d90fd5b8780fd5b6105c89060203d60201161033f5761033281836107cc565b61041e565b8680fd5b50346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346100d157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d15767ffffffffffffffff6020915416604051908152f35b50346100d15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d157602090604051908152f35b90503461078d57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261078d5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b6024359063ffffffff821682036107a457565b600080fd5b6064359073ffffffffffffffffffffffffffffffffffffffff821682036107a457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761080d57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126107a4575180151581036107a45790565b908160209103126107a4575167ffffffffffffffff811681036107a45790565b919082519283825260005b8481106108be5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b8060208092840101518282860101520161087f565b90806109d4575063ffffffff60209161094d60405194859384937f0ba469bc0000000000000000000000000000000000000000000000000000000085521660048401527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f66024840152606060448401526064830190610874565b0381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156109c85760009161099c575090565b6109be915060203d6020116109c1575b6109b681836107cc565b810190610854565b90565b503d6109ac565b6040513d6000823e3d90fd5b9160209161094d63ffffffff9260405195869485947ff7259a750000000000000000000000000000000000000000000000000000000086521660048501527f17c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f66024850152604484015260806064840152608483019061087456fea164736f6c634300081a000a", -} - -var MockE2EUSDCTokenMessengerABI = MockE2EUSDCTokenMessengerMetaData.ABI - -var MockE2EUSDCTokenMessengerBin = MockE2EUSDCTokenMessengerMetaData.Bin - -func DeployMockE2EUSDCTokenMessenger(auth *bind.TransactOpts, backend bind.ContractBackend, version uint32, transmitter common.Address) (common.Address, *types.Transaction, *MockE2EUSDCTokenMessenger, error) { - parsed, err := MockE2EUSDCTokenMessengerMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - if parsed == nil { - return common.Address{}, nil, nil, errors.New("GetABI returned nil") - } - - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MockE2EUSDCTokenMessengerBin), backend, version, transmitter) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &MockE2EUSDCTokenMessenger{address: address, abi: *parsed, MockE2EUSDCTokenMessengerCaller: MockE2EUSDCTokenMessengerCaller{contract: contract}, MockE2EUSDCTokenMessengerTransactor: MockE2EUSDCTokenMessengerTransactor{contract: contract}, MockE2EUSDCTokenMessengerFilterer: MockE2EUSDCTokenMessengerFilterer{contract: contract}}, nil -} - -type MockE2EUSDCTokenMessenger struct { - address common.Address - abi abi.ABI - MockE2EUSDCTokenMessengerCaller - MockE2EUSDCTokenMessengerTransactor - MockE2EUSDCTokenMessengerFilterer -} - -type MockE2EUSDCTokenMessengerCaller struct { - contract *bind.BoundContract -} - -type MockE2EUSDCTokenMessengerTransactor struct { - contract *bind.BoundContract -} - -type MockE2EUSDCTokenMessengerFilterer struct { - contract *bind.BoundContract -} - -type MockE2EUSDCTokenMessengerSession struct { - Contract *MockE2EUSDCTokenMessenger - CallOpts bind.CallOpts - TransactOpts bind.TransactOpts -} - -type MockE2EUSDCTokenMessengerCallerSession struct { - Contract *MockE2EUSDCTokenMessengerCaller - CallOpts bind.CallOpts -} - -type MockE2EUSDCTokenMessengerTransactorSession struct { - Contract *MockE2EUSDCTokenMessengerTransactor - TransactOpts bind.TransactOpts -} - -type MockE2EUSDCTokenMessengerRaw struct { - Contract *MockE2EUSDCTokenMessenger -} - -type MockE2EUSDCTokenMessengerCallerRaw struct { - Contract *MockE2EUSDCTokenMessengerCaller -} - -type MockE2EUSDCTokenMessengerTransactorRaw struct { - Contract *MockE2EUSDCTokenMessengerTransactor -} - -func NewMockE2EUSDCTokenMessenger(address common.Address, backend bind.ContractBackend) (*MockE2EUSDCTokenMessenger, error) { - abi, err := abi.JSON(strings.NewReader(MockE2EUSDCTokenMessengerABI)) - if err != nil { - return nil, err - } - contract, err := bindMockE2EUSDCTokenMessenger(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &MockE2EUSDCTokenMessenger{address: address, abi: abi, MockE2EUSDCTokenMessengerCaller: MockE2EUSDCTokenMessengerCaller{contract: contract}, MockE2EUSDCTokenMessengerTransactor: MockE2EUSDCTokenMessengerTransactor{contract: contract}, MockE2EUSDCTokenMessengerFilterer: MockE2EUSDCTokenMessengerFilterer{contract: contract}}, nil -} - -func NewMockE2EUSDCTokenMessengerCaller(address common.Address, caller bind.ContractCaller) (*MockE2EUSDCTokenMessengerCaller, error) { - contract, err := bindMockE2EUSDCTokenMessenger(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &MockE2EUSDCTokenMessengerCaller{contract: contract}, nil -} - -func NewMockE2EUSDCTokenMessengerTransactor(address common.Address, transactor bind.ContractTransactor) (*MockE2EUSDCTokenMessengerTransactor, error) { - contract, err := bindMockE2EUSDCTokenMessenger(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &MockE2EUSDCTokenMessengerTransactor{contract: contract}, nil -} - -func NewMockE2EUSDCTokenMessengerFilterer(address common.Address, filterer bind.ContractFilterer) (*MockE2EUSDCTokenMessengerFilterer, error) { - contract, err := bindMockE2EUSDCTokenMessenger(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &MockE2EUSDCTokenMessengerFilterer{contract: contract}, nil -} - -func bindMockE2EUSDCTokenMessenger(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := MockE2EUSDCTokenMessengerMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _MockE2EUSDCTokenMessenger.Contract.MockE2EUSDCTokenMessengerCaller.contract.Call(opts, result, method, params...) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.MockE2EUSDCTokenMessengerTransactor.contract.Transfer(opts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.MockE2EUSDCTokenMessengerTransactor.contract.Transact(opts, method, params...) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _MockE2EUSDCTokenMessenger.Contract.contract.Call(opts, result, method, params...) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.contract.Transfer(opts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.contract.Transact(opts, method, params...) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) DESTINATIONTOKENMESSENGER(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "DESTINATION_TOKEN_MESSENGER") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) DESTINATIONTOKENMESSENGER() ([32]byte, error) { - return _MockE2EUSDCTokenMessenger.Contract.DESTINATIONTOKENMESSENGER(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) DESTINATIONTOKENMESSENGER() ([32]byte, error) { - return _MockE2EUSDCTokenMessenger.Contract.DESTINATIONTOKENMESSENGER(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) GetMinFeeAmount(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { - var out []interface{} - err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "getMinFeeAmount", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) GetMinFeeAmount(arg0 *big.Int) (*big.Int, error) { - return _MockE2EUSDCTokenMessenger.Contract.GetMinFeeAmount(&_MockE2EUSDCTokenMessenger.CallOpts, arg0) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) GetMinFeeAmount(arg0 *big.Int) (*big.Int, error) { - return _MockE2EUSDCTokenMessenger.Contract.GetMinFeeAmount(&_MockE2EUSDCTokenMessenger.CallOpts, arg0) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) LocalMessageTransmitter(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "localMessageTransmitter") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) LocalMessageTransmitter() (common.Address, error) { - return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitter(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) LocalMessageTransmitter() (common.Address, error) { - return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitter(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) LocalMessageTransmitterWithRelay(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "localMessageTransmitterWithRelay") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) LocalMessageTransmitterWithRelay() (common.Address, error) { - return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitterWithRelay(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) LocalMessageTransmitterWithRelay() (common.Address, error) { - return _MockE2EUSDCTokenMessenger.Contract.LocalMessageTransmitterWithRelay(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) MessageBodyVersion(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "messageBodyVersion") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) MessageBodyVersion() (uint32, error) { - return _MockE2EUSDCTokenMessenger.Contract.MessageBodyVersion(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) MessageBodyVersion() (uint32, error) { - return _MockE2EUSDCTokenMessenger.Contract.MessageBodyVersion(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCaller) SNonce(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _MockE2EUSDCTokenMessenger.contract.Call(opts, &out, "s_nonce") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) SNonce() (uint64, error) { - return _MockE2EUSDCTokenMessenger.Contract.SNonce(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerCallerSession) SNonce() (uint64, error) { - return _MockE2EUSDCTokenMessenger.Contract.SNonce(&_MockE2EUSDCTokenMessenger.CallOpts) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactor) DepositForBurn(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.contract.Transact(opts, "depositForBurn", amount, destinationDomain, mintRecipient, burnToken, destinationCaller, maxFee, minFinalityThreshold) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) DepositForBurn(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.DepositForBurn(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller, maxFee, minFinalityThreshold) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorSession) DepositForBurn(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.DepositForBurn(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller, maxFee, minFinalityThreshold) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactor) DepositForBurnWithCaller(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.contract.Transact(opts, "depositForBurnWithCaller", amount, destinationDomain, mintRecipient, burnToken, destinationCaller) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerSession) DepositForBurnWithCaller(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.DepositForBurnWithCaller(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller) -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerTransactorSession) DepositForBurnWithCaller(amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) { - return _MockE2EUSDCTokenMessenger.Contract.DepositForBurnWithCaller(&_MockE2EUSDCTokenMessenger.TransactOpts, amount, destinationDomain, mintRecipient, burnToken, destinationCaller) -} - -type MockE2EUSDCTokenMessengerDepositForBurnIterator struct { - Event *MockE2EUSDCTokenMessengerDepositForBurn - - contract *bind.BoundContract - event string - - logs chan types.Log - sub ethereum.Subscription - done bool - fail error -} - -func (it *MockE2EUSDCTokenMessengerDepositForBurnIterator) Next() bool { - - if it.fail != nil { - return false - } - - if it.done { - select { - case log := <-it.logs: - it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - - select { - case log := <-it.logs: - it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -func (it *MockE2EUSDCTokenMessengerDepositForBurnIterator) Error() error { - return it.fail -} - -func (it *MockE2EUSDCTokenMessengerDepositForBurnIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -type MockE2EUSDCTokenMessengerDepositForBurn struct { - Nonce uint64 - BurnToken common.Address - Amount *big.Int - Depositor common.Address - MintRecipient [32]byte - DestinationDomain uint32 - DestinationTokenMessenger [32]byte - DestinationCaller [32]byte - Raw types.Log -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) FilterDepositForBurn(opts *bind.FilterOpts, nonce []uint64, burnToken []common.Address, depositor []common.Address) (*MockE2EUSDCTokenMessengerDepositForBurnIterator, error) { - - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - var burnTokenRule []interface{} - for _, burnTokenItem := range burnToken { - burnTokenRule = append(burnTokenRule, burnTokenItem) - } - - var depositorRule []interface{} - for _, depositorItem := range depositor { - depositorRule = append(depositorRule, depositorItem) - } - - logs, sub, err := _MockE2EUSDCTokenMessenger.contract.FilterLogs(opts, "DepositForBurn", nonceRule, burnTokenRule, depositorRule) - if err != nil { - return nil, err - } - return &MockE2EUSDCTokenMessengerDepositForBurnIterator{contract: _MockE2EUSDCTokenMessenger.contract, event: "DepositForBurn", logs: logs, sub: sub}, nil -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) WatchDepositForBurn(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn, nonce []uint64, burnToken []common.Address, depositor []common.Address) (event.Subscription, error) { - - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - var burnTokenRule []interface{} - for _, burnTokenItem := range burnToken { - burnTokenRule = append(burnTokenRule, burnTokenItem) - } - - var depositorRule []interface{} - for _, depositorItem := range depositor { - depositorRule = append(depositorRule, depositorItem) - } - - logs, sub, err := _MockE2EUSDCTokenMessenger.contract.WatchLogs(opts, "DepositForBurn", nonceRule, burnTokenRule, depositorRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - - event := new(MockE2EUSDCTokenMessengerDepositForBurn) - if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) ParseDepositForBurn(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn, error) { - event := new(MockE2EUSDCTokenMessengerDepositForBurn) - if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -type MockE2EUSDCTokenMessengerDepositForBurn0Iterator struct { - Event *MockE2EUSDCTokenMessengerDepositForBurn0 - - contract *bind.BoundContract - event string - - logs chan types.Log - sub ethereum.Subscription - done bool - fail error -} - -func (it *MockE2EUSDCTokenMessengerDepositForBurn0Iterator) Next() bool { - - if it.fail != nil { - return false - } - - if it.done { - select { - case log := <-it.logs: - it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn0) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - - select { - case log := <-it.logs: - it.Event = new(MockE2EUSDCTokenMessengerDepositForBurn0) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -func (it *MockE2EUSDCTokenMessengerDepositForBurn0Iterator) Error() error { - return it.fail -} - -func (it *MockE2EUSDCTokenMessengerDepositForBurn0Iterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -type MockE2EUSDCTokenMessengerDepositForBurn0 struct { - BurnToken common.Address - Amount *big.Int - Depositor common.Address - MintRecipient [32]byte - DestinationDomain uint32 - DestinationTokenMessenger [32]byte - DestinationCaller [32]byte - MaxFee uint32 - MinFinalityThreshold uint32 - HookData []byte - Raw types.Log -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) FilterDepositForBurn0(opts *bind.FilterOpts, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (*MockE2EUSDCTokenMessengerDepositForBurn0Iterator, error) { - - var burnTokenRule []interface{} - for _, burnTokenItem := range burnToken { - burnTokenRule = append(burnTokenRule, burnTokenItem) - } - - var depositorRule []interface{} - for _, depositorItem := range depositor { - depositorRule = append(depositorRule, depositorItem) - } - - var minFinalityThresholdRule []interface{} - for _, minFinalityThresholdItem := range minFinalityThreshold { - minFinalityThresholdRule = append(minFinalityThresholdRule, minFinalityThresholdItem) - } - - logs, sub, err := _MockE2EUSDCTokenMessenger.contract.FilterLogs(opts, "DepositForBurn0", burnTokenRule, depositorRule, minFinalityThresholdRule) - if err != nil { - return nil, err - } - return &MockE2EUSDCTokenMessengerDepositForBurn0Iterator{contract: _MockE2EUSDCTokenMessenger.contract, event: "DepositForBurn0", logs: logs, sub: sub}, nil -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) WatchDepositForBurn0(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn0, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (event.Subscription, error) { - - var burnTokenRule []interface{} - for _, burnTokenItem := range burnToken { - burnTokenRule = append(burnTokenRule, burnTokenItem) - } - - var depositorRule []interface{} - for _, depositorItem := range depositor { - depositorRule = append(depositorRule, depositorItem) - } - - var minFinalityThresholdRule []interface{} - for _, minFinalityThresholdItem := range minFinalityThreshold { - minFinalityThresholdRule = append(minFinalityThresholdRule, minFinalityThresholdItem) - } - - logs, sub, err := _MockE2EUSDCTokenMessenger.contract.WatchLogs(opts, "DepositForBurn0", burnTokenRule, depositorRule, minFinalityThresholdRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - - event := new(MockE2EUSDCTokenMessengerDepositForBurn0) - if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn0", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessengerFilterer) ParseDepositForBurn0(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn0, error) { - event := new(MockE2EUSDCTokenMessengerDepositForBurn0) - if err := _MockE2EUSDCTokenMessenger.contract.UnpackLog(event, "DepositForBurn0", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -func (MockE2EUSDCTokenMessengerDepositForBurn) Topic() common.Hash { - return common.HexToHash("0x2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c0") -} - -func (MockE2EUSDCTokenMessengerDepositForBurn0) Topic() common.Hash { - return common.HexToHash("0x6a4c152b4ad8c08f204453d58ef2ac1c0bb69627dd545cf47507d32d036e67d5") -} - -func (_MockE2EUSDCTokenMessenger *MockE2EUSDCTokenMessenger) Address() common.Address { - return _MockE2EUSDCTokenMessenger.address -} - -type MockE2EUSDCTokenMessengerInterface interface { - DESTINATIONTOKENMESSENGER(opts *bind.CallOpts) ([32]byte, error) - - GetMinFeeAmount(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) - - LocalMessageTransmitter(opts *bind.CallOpts) (common.Address, error) - - LocalMessageTransmitterWithRelay(opts *bind.CallOpts) (common.Address, error) - - MessageBodyVersion(opts *bind.CallOpts) (uint32, error) - - SNonce(opts *bind.CallOpts) (uint64, error) - - DepositForBurn(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte, maxFee uint32, minFinalityThreshold uint32) (*types.Transaction, error) - - DepositForBurnWithCaller(opts *bind.TransactOpts, amount *big.Int, destinationDomain uint32, mintRecipient [32]byte, burnToken common.Address, destinationCaller [32]byte) (*types.Transaction, error) - - FilterDepositForBurn(opts *bind.FilterOpts, nonce []uint64, burnToken []common.Address, depositor []common.Address) (*MockE2EUSDCTokenMessengerDepositForBurnIterator, error) - - WatchDepositForBurn(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn, nonce []uint64, burnToken []common.Address, depositor []common.Address) (event.Subscription, error) - - ParseDepositForBurn(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn, error) - - FilterDepositForBurn0(opts *bind.FilterOpts, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (*MockE2EUSDCTokenMessengerDepositForBurn0Iterator, error) - - WatchDepositForBurn0(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTokenMessengerDepositForBurn0, burnToken []common.Address, depositor []common.Address, minFinalityThreshold []uint32) (event.Subscription, error) - - ParseDepositForBurn0(log types.Log) (*MockE2EUSDCTokenMessengerDepositForBurn0, error) - - Address() common.Address -} diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go deleted file mode 100644 index 536585493d..0000000000 --- a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_metadata.go +++ /dev/null @@ -1,7 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - - -package mock_usdc_token_messenger - -var SolidityStandardInput = "{\"version\":\"v0.8.26+commit.8a97fa7a\",\"language\":\"Solidity\",\"settings\":{\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":true,\"bytecodeHash\":\"none\",\"useLiteralContent\":false},\"optimizer\":{\"enabled\":true,\"runs\":80000},\"outputSelection\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/pools/USDC/interfaces/ITokenMessenger.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/MockE2EUSDCTokenMessenger.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]}},\"remappings\":[\"forge-std/=node_modules/@chainlink/contracts/src/v0.8/vendor/forge-std/src/\",\"@chainlink/contracts/=node_modules/@chainlink/contracts/\",\"@openzeppelin/contracts@4.8.3/=node_modules/@openzeppelin/contracts-4.8.3/\",\"@openzeppelin/contracts@5.0.2/=node_modules/@openzeppelin/contracts-5.0.2/\"],\"viaIR\":true},\"sources\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\ninterface IMessageTransmitter {\\n /// @notice Unlocks USDC tokens on the destination chain\\n /// @param message The original message on the source chain\\n /// * Message format:\\n /// * Field Bytes Type Index\\n /// * version 4 uint32 0\\n /// * sourceDomain 4 uint32 4\\n /// * destinationDomain 4 uint32 8\\n /// * nonce 8 uint64 12\\n /// * sender 32 bytes32 20\\n /// * recipient 32 bytes32 52\\n /// * destinationCaller 32 bytes32 84\\n /// * messageBody dynamic bytes 116\\n /// param attestation A valid attestation is the concatenated 65-byte signature(s) of\\n /// exactly `thresholdSignature` signatures, in increasing order of attester address.\\n /// ***If the attester addresses recovered from signatures are not in increasing order,\\n /// signature verification will fail.***\\n /// If incorrect number of signatures or duplicate signatures are supplied,\\n /// signature verification will fail.\\n function receiveMessage(bytes calldata message, bytes calldata attestation) external returns (bool success);\\n\\n /// Returns domain of chain on which the contract is deployed.\\n /// @dev immutable\\n function localDomain() external view returns (uint32);\\n\\n /// Returns message format version.\\n /// @dev immutable\\n function version() external view returns (uint32);\\n}\\n\"},\"contracts/pools/USDC/interfaces/ITokenMessenger.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\ninterface ITokenMessenger {\\n /// @notice Emitted when a DepositForBurn message is sent\\n /// @param nonce Unique nonce reserved by message\\n /// @param burnToken Address of token burnt on source domain\\n /// @param amount Deposit amount\\n /// @param depositor Address where deposit is transferred from\\n /// @param mintRecipient Address receiving minted tokens on destination domain as bytes32\\n /// @param destinationDomain Destination domain\\n /// @param destinationTokenMessenger Address of TokenMessenger on destination domain as bytes32\\n /// @param destinationCaller Authorized caller as bytes32 of receiveMessage() on destination domain,\\n /// if not equal to bytes32(0). If equal to bytes32(0), any address can call receiveMessage().\\n event DepositForBurn(\\n uint64 indexed nonce,\\n address indexed burnToken,\\n uint256 amount,\\n address indexed depositor,\\n bytes32 mintRecipient,\\n uint32 destinationDomain,\\n bytes32 destinationTokenMessenger,\\n bytes32 destinationCaller\\n );\\n\\n /// @notice Burns the tokens on the source side to produce a nonce through\\n /// Circles Cross Chain Transfer Protocol.\\n /// @param amount Amount of tokens to deposit and burn.\\n /// @param destinationDomain Destination domain identifier.\\n /// @param mintRecipient Address of mint recipient on destination domain.\\n /// @param burnToken Address of contract to burn deposited tokens, on local domain.\\n /// @param destinationCaller Caller on the destination domain, as bytes32.\\n /// @return nonce The unique nonce used in unlocking the funds on the destination chain.\\n /// @dev emits DepositForBurn\\n function depositForBurnWithCaller(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller\\n ) external returns (uint64 nonce);\\n\\n /// @notice Emitted when a DepositForBurn message is sent on CCTP V2\\n /// @notice Emitted when a DepositForBurn message is sent\\n /// @param burnToken address of token burnt on source domain\\n /// @param amount deposit amount\\n /// @param depositor address where deposit is transferred from\\n /// @param mintRecipient address receiving minted tokens on destination domain as bytes32\\n /// @param destinationDomain destination domain\\n /// @param destinationTokenMessenger address of TokenMessenger on destination domain as bytes32\\n /// @param destinationCaller authorized caller as bytes32 of receiveMessage() on destination domain.\\n /// If equal to bytes32(0), any address can broadcast the message.\\n /// @param maxFee maximum fee to pay on destination domain, in units of burnToken\\n /// @param minFinalityThreshold the minimum finality at which the message should be attested to.\\n /// @param hookData optional hook for execution on destination domain\\n event DepositForBurn(\\n address indexed burnToken,\\n uint256 amount,\\n address indexed depositor,\\n bytes32 mintRecipient,\\n uint32 destinationDomain,\\n bytes32 destinationTokenMessenger,\\n bytes32 destinationCaller,\\n uint32 maxFee,\\n uint32 indexed minFinalityThreshold,\\n bytes hookData\\n );\\n\\n /// @notice Burns the tokens on the source side through Circles Cross Chain Transfer Protocol V2.\\n /// @param amount Amount of tokens to deposit and burn.\\n /// @param destinationDomain Destination domain identifier.\\n /// @param mintRecipient Address of mint recipient on destination domain.\\n /// @param burnToken Address of contract to burn deposited tokens, on local domain.\\n /// @param destinationCaller Caller on the destination domain, as bytes32.\\n /// @param maxFee Maximum fee to be paid for fast burn, specified in burnToken. Should be 0 when using non-fast mode.\\n /// @param minFinalityThreshold Minimum finality threshold at which the burn will be attested\\n /// should be 2000 for Standard, 1000 for Fast.\\n /// @dev This function is only available for CCTP V2.\\n function depositForBurn(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller,\\n uint32 maxFee,\\n uint32 minFinalityThreshold\\n ) external;\\n\\n /// Returns the version of the message body format.\\n /// @dev immutable\\n function messageBodyVersion() external view returns (uint32);\\n\\n /// Returns local Message Transmitter responsible for sending and receiving messages\\n /// to/from remote domainsmessage transmitter for this token messenger.\\n /// @dev immutable\\n function localMessageTransmitter() external view returns (address);\\n}\\n\"},\"contracts/test/mocks/MockE2EUSDCTokenMessenger.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.24;\\n\\nimport {ITokenMessenger} from \\\"../../pools/USDC/interfaces/ITokenMessenger.sol\\\";\\nimport {IMessageTransmitterWithRelay} from \\\"./interfaces/IMessageTransmitterWithRelay.sol\\\";\\nimport {IBurnMintERC20} from \\\"@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\\\";\\n\\n// This contract mocks both the ITokenMessenger and IMessageTransmitter\\n// contracts involved with the Cross Chain Token Protocol.\\n// solhint-disable\\ncontract MockE2EUSDCTokenMessenger is ITokenMessenger {\\n uint32 private immutable i_messageBodyVersion;\\n address private immutable i_transmitter;\\n\\n bytes32 public constant DESTINATION_TOKEN_MESSENGER = keccak256(\\\"i_destinationTokenMessenger\\\");\\n\\n uint64 public s_nonce;\\n\\n // Local Message Transmitter responsible for sending and receiving messages to/from remote domains\\n IMessageTransmitterWithRelay public immutable localMessageTransmitterWithRelay;\\n\\n constructor(uint32 version, address transmitter) {\\n i_messageBodyVersion = version;\\n s_nonce = 1;\\n i_transmitter = transmitter;\\n localMessageTransmitterWithRelay = IMessageTransmitterWithRelay(transmitter);\\n }\\n\\n // The mock function is based on the same function in https://github.com/circlefin/evm-cctp-contracts/blob/master/src/TokenMessenger.sol\\n function depositForBurnWithCaller(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller\\n ) external returns (uint64) {\\n IBurnMintERC20(burnToken).transferFrom(msg.sender, address(this), amount);\\n IBurnMintERC20(burnToken).burn(amount);\\n // Format message body\\n bytes memory _burnMessage = _formatMessage(\\n i_messageBodyVersion,\\n bytes32(uint256(uint160(burnToken))),\\n mintRecipient,\\n amount,\\n bytes32(uint256(uint160(msg.sender)))\\n );\\n s_nonce =\\n _sendDepositForBurnMessage(destinationDomain, DESTINATION_TOKEN_MESSENGER, destinationCaller, _burnMessage);\\n emit DepositForBurn(\\n s_nonce,\\n burnToken,\\n amount,\\n msg.sender,\\n mintRecipient,\\n destinationDomain,\\n DESTINATION_TOKEN_MESSENGER,\\n destinationCaller\\n );\\n return s_nonce;\\n }\\n\\n // The mock function is based on the same function in https://github.com/circlefin/evm-cctp-contracts/blob/master/src/v2/TokenMessengerV2.sol\\n function depositForBurn(\\n uint256 amount,\\n uint32 destinationDomain,\\n bytes32 mintRecipient,\\n address burnToken,\\n bytes32 destinationCaller,\\n uint32 maxFee,\\n uint32 minFinalityThreshold\\n ) external {\\n IBurnMintERC20(burnToken).transferFrom(msg.sender, address(this), amount);\\n IBurnMintERC20(burnToken).burn(amount);\\n\\n bytes calldata _emptyHookData = msg.data[0:0];\\n\\n // Format message body\\n bytes memory _burnMessage = _formatBurnMessage(\\n i_messageBodyVersion, // version\\n bytes32(uint256(uint160(burnToken))), // burnToken\\n mintRecipient, // mintRecipient\\n amount, // amount\\n bytes32(uint256(uint160(msg.sender))), // messageSender\\n 0, // maxFee\\n _emptyHookData // hookData\\n );\\n\\n _sendDepositForBurnMessage(destinationDomain, DESTINATION_TOKEN_MESSENGER, destinationCaller, _burnMessage);\\n\\n emit DepositForBurn(\\n burnToken,\\n amount,\\n msg.sender,\\n mintRecipient,\\n destinationDomain,\\n DESTINATION_TOKEN_MESSENGER,\\n destinationCaller,\\n maxFee,\\n minFinalityThreshold,\\n _emptyHookData\\n );\\n }\\n\\n function messageBodyVersion() external view returns (uint32) {\\n return i_messageBodyVersion;\\n }\\n\\n function localMessageTransmitter() external view returns (address) {\\n return i_transmitter;\\n }\\n\\n /**\\n * @notice Sends a BurnMessage through the local message transmitter\\n * @dev calls local message transmitter's sendMessage() function if `_destinationCaller` == bytes32(0),\\n * or else calls sendMessageWithCaller().\\n * @param _destinationDomain destination domain\\n * @param _destinationTokenMessenger address of registered TokenMessenger contract on destination domain, as bytes32\\n * @param _destinationCaller caller on the destination domain, as bytes32. If `_destinationCaller` == bytes32(0),\\n * any address can call receiveMessage() on destination domain.\\n * @param _burnMessage formatted BurnMessage bytes (message body)\\n * @return nonce unique nonce reserved by message\\n */\\n function _sendDepositForBurnMessage(\\n uint32 _destinationDomain,\\n bytes32 _destinationTokenMessenger,\\n bytes32 _destinationCaller,\\n bytes memory _burnMessage\\n ) internal returns (uint64 nonce) {\\n if (_destinationCaller == bytes32(0)) {\\n return localMessageTransmitterWithRelay.sendMessage(_destinationDomain, _destinationTokenMessenger, _burnMessage);\\n } else {\\n return localMessageTransmitterWithRelay.sendMessageWithCaller(\\n _destinationDomain, _destinationTokenMessenger, _destinationCaller, _burnMessage\\n );\\n }\\n }\\n\\n /**\\n * @notice Formats Burn message under CCTP V1\\n * @param _version The message body version\\n * @param _burnToken The burn token address on source domain as bytes32\\n * @param _mintRecipient The mint recipient address as bytes32\\n * @param _amount The burn amount\\n * @param _messageSender The message sender\\n * @return Burn formatted message.\\n */\\n function _formatMessage(\\n uint32 _version,\\n bytes32 _burnToken,\\n bytes32 _mintRecipient,\\n uint256 _amount,\\n bytes32 _messageSender\\n ) internal pure returns (bytes memory) {\\n return abi.encodePacked(_version, _burnToken, _mintRecipient, _amount, _messageSender);\\n }\\n\\n /**\\n * @notice Formats Burn message according to the format of CCTP V2\\n * @param _version The message body version\\n * @param _burnToken The burn token address on source domain as bytes32\\n * @param _mintRecipient The mint recipient address as bytes32\\n * @param _amount The burn amount\\n * @param _messageSender The message sender\\n * @param _maxFee The maximum fee to be paid on destination domain\\n * @param _hookData Optional hook data for processing on the destination domain\\n * @return Burn formatted message.\\n */\\n function _formatBurnMessage(\\n uint32 _version,\\n bytes32 _burnToken,\\n bytes32 _mintRecipient,\\n uint256 _amount,\\n bytes32 _messageSender,\\n uint256 _maxFee,\\n bytes calldata _hookData\\n ) internal pure returns (bytes memory) {\\n // Uses the encoding scheme defined at https://github.com/circlefin/evm-cctp-contracts/blob/master/src/messages/v2/BurnMessageV2.sol#L68\\n return abi.encodePacked(\\n _version, _burnToken, _mintRecipient, _amount, _messageSender, _maxFee, uint256(0), uint256(0), _hookData\\n );\\n }\\n}\\n\"},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\nimport {IMessageTransmitter} from \\\"../../../pools/USDC/interfaces/IMessageTransmitter.sol\\\";\\n\\n// This follows https://github.com/circlefin/evm-cctp-contracts/blob/master/src/interfaces/IMessageTransmitter.sol\\ninterface IMessageTransmitterWithRelay is IMessageTransmitter {\\n /**\\n * @notice Sends an outgoing message from the source domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessage(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n\\n /**\\n * @notice Sends an outgoing message from the source domain, with a specified caller on the\\n * destination domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * WARNING: if the `destinationCaller` does not represent a valid address as bytes32, then it will not be possible\\n * to broadcast the message on the destination domain. This is an advanced feature, and the standard\\n * sendMessage() should be preferred for use cases where a specific destination caller is not required.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param destinationCaller caller on the destination domain, as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessageWithCaller(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes32 destinationCaller,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport {IERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/IERC20.sol\\\";\\n\\ninterface IBurnMintERC20 is IERC20 {\\n /// @notice Mints new tokens for a given address.\\n /// @param account The address to mint the new tokens to.\\n /// @param amount The number of tokens to be minted.\\n /// @dev this function increases the total supply.\\n function mint(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from the sender.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(\\n uint256 amount\\n ) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burnFrom(address account, uint256 amount) external;\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\"}}}" diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go deleted file mode 100644 index 8504feca3c..0000000000 --- a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_messenger/mock_usdc_token_messenger_zksync.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. -package mock_usdc_token_messenger - -import ( - "context" - "crypto/rand" - "fmt" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/zksync-sdk/zksync2-go/accounts" - "github.com/zksync-sdk/zksync2-go/clients" - "github.com/zksync-sdk/zksync2-go/types" -) - -func DeployMockE2EUSDCTokenMessengerZk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *MockE2EUSDCTokenMessenger, error) { - var calldata []byte - if len(args) > 0 { - abi, err := MockE2EUSDCTokenMessengerMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - calldata, err = abi.Pack("", args...) - if err != nil { - return common.Address{}, nil, nil, err - } - } - - salt := make([]byte, 32) - n, err := rand.Read(salt) - if err != nil { - return common.Address{}, nil, nil, err - } - if n != len(salt) { - return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) - } - - txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ - Bytecode: ZkBytecode, - Calldata: calldata, - Salt: salt, - }) - if err != nil { - return common.Address{}, nil, nil, err - } - - receipt, err := client.WaitMined(context.Background(), txHash) - if err != nil { - return common.Address{}, nil, nil, err - } - - address := receipt.ContractAddress - contract, err := NewMockE2EUSDCTokenMessenger(address, backend) - if err != nil { - return common.Address{}, nil, nil, err - } - - return address, receipt, contract, nil -} - -var ZkBytecode = common.Hex2Bytes("000f0000000000020000006003100270000000f9033001970000000100200190000000fb0000c13d0000008002000039000000400020043f000000040030008c000001de0000413d000000000201043b000000e002200270000000ff0020009c000001350000a13d000001000020009c0000014c0000213d000001030020009c000001570000613d000001040020009c000001de0000c13d000000e40030008c000001de0000413d0000000002000416000000000002004b000001de0000c13d0000000402100370000000000402043b0000002402100370000000000502043b000000f90050009c000001de0000213d0000004402100370000000000602043b0000006402100370000000000202043b000000fc0020009c000001de0000213d0000008403100370000000000703043b000000a403100370000000000303043b000000f90030009c000001de0000213d000000c401100370000000000101043b000900000001001d000000f90010009c000001de0000213d000300000003001d000400000007001d000600000006001d000500000005001d0000010a01000041000000800010043f0000000001000411000000fc01100197000000840010043f0000000001000410000000fc01100197000000a40010043f000700000004001d000000c40040043f0000000001000414000000f90010009c000000f901008041000000c0011002100000010b011001c7000800000002001d03e103d70000040f0000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000530000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000004f0000c13d000000000006004b000000600000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000001fe0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c0000000803000029000001de0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000001de0000c13d0000010c01000041000000000010044300000004003004430000000001000414000000f90010009c000000f901008041000000c0011002100000010d011001c7000080020200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000000001004b00000008020000290000000703000029000001de0000613d000000400400043d0000010e010000410000000001140436000100000001001d00000004014000390000000000310435000000f90040009c000200000004001d000000f901000041000000000104401900000040011002100000000003000414000000f90030009c000000f903008041000000c003300210000000000113019f0000010f011001c703e103d70000040f0000000100200190000002690000613d0000000201000029000001170010009c000002460000813d0000000201000029000000400010043f000001110100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c7000080050200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000e001100210000000010200002900000000001204350000000203000029000000840130003900000000020004110000000000210435000000640130003900000007020000290000000000210435000000440130003900000006020000290000000000210435000000240130003900000008020000290000000000210435000000e401000039000000000013043500000104013000390000000000010435000000e4013000390000000000010435000000c4013000390000000000010435000000a4013000390000000000010435000001180030009c000002460000213d0000000301000029000300f90010019b0000000901000029000900f90010019b00000002030000290000012001300039000000400010043f0000000501000029000000040200002903e102aa0000040f000000400100043d000000200210003900000006030000290000000000320435000000400210003900000005030000290000000000320435000000600210003900000108030000410000000000320435000000800210003900000004030000290000000000320435000000a00210003900000003030000290000000000320435000000c002100039000000e003000039000000000032043500000007020000290000000000210435000000e002100039000000000002043500000100021000390000000000020435000000f90010009c000000f90100804100000040011002100000000002000414000000f90020009c000000f902008041000000c002200210000000000112019f00000119011001c70000800d0200003900000004030000390000011a0400004100000008050000290000000006000411000000090700002903e103d70000040f0000000100200190000001de0000613d0000000001000019000003e20001042e0000000002000416000000000002004b000001de0000c13d0000001f02300039000000fa02200197000000e002200039000000400020043f0000001f0430018f000000fb05300198000000e0025000390000010c0000613d000000e006000039000000000701034f000000007807043c0000000006860436000000000026004b000001080000c13d000000000004004b000001190000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000400030008c000001de0000413d000000e00200043d000000f90020009c000001de0000213d000001000100043d000000fc0010009c000001de0000213d000000800020043f000000000300041a000000fd0330019700000001033001bf000000000030041b000000a00010043f000000c00010043f0000014000000443000001600020044300000020020000390000018000200443000001a0001004430000004003000039000001c000300443000001e000100443000001000020044300000003010000390000012000100443000000fe01000041000003e20001042e000001050020009c000001620000613d000001060020009c000001730000613d000001070020009c000001de0000c13d0000000001000416000000000001004b000001de0000c13d0000000001000412000d00000001001d000c00000000003d0000800501000039000000440300003900000000040004150000000d0440008a0000000504400210000001110200004103e103be0000040f000000f901100197000000800010043f0000010901000041000003e20001042e000001010020009c0000017b0000613d000001020020009c000001de0000c13d0000000001000416000000000001004b000001de0000c13d0000010801000041000000800010043f0000010901000041000003e20001042e0000000001000416000000000001004b000001de0000c13d0000000001000412000b00000001001d000a00400000003d0000800501000039000000440300003900000000040004150000000b0440008a0000016c0000013d0000000001000416000000000001004b000001de0000c13d0000000001000412000f00000001001d000e00200000003d0000800501000039000000440300003900000000040004150000000f0440008a0000000504400210000001110200004103e103be0000040f000000fc01100197000000800010043f0000010901000041000003e20001042e0000000001000416000000000001004b000001de0000c13d000000000100041a0000011001100197000000800010043f0000010901000041000003e20001042e000000a40030008c000001de0000413d0000000002000416000000000002004b000001de0000c13d0000000402100370000000000302043b0000002402100370000000000402043b000000f90040009c000001de0000213d0000004402100370000000000502043b0000006402100370000000000202043b000000fc0020009c000001de0000213d000700000005001d000600000004001d0000008401100370000000000101043b000500000001001d0000010a01000041000000800010043f0000000001000411000000fc01100197000000840010043f0000000001000410000000fc01100197000000a40010043f000800000003001d000000c40030043f0000000001000414000000f90010009c000000f901008041000000c0011002100000010b011001c7000900000002001d03e103d70000040f000000800a0000390000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000001b10000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000001ad0000c13d000000000006004b000001be0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000001e00000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c0000000903000029000001de0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b000001de0000c13d0000010c01000041000000000010044300000004003004430000000001000414000000f90010009c000000f901008041000000c0011002100000010d011001c7000080020200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000000001004b000000090200002900000008030000290000020a0000c13d0000000001000019000003e3000104300000001f0530018f000000fb06300198000000400200043d0000000004620019000001eb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000001e70000c13d000000000005004b000001f80000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000f90020009c000000f9020080410000004002200210000000000112019f000003e3000104300000001f0530018f000000fb06300198000000400200043d0000000004620019000001eb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002050000c13d000001eb0000013d000000400400043d0000010e010000410000000001140436000300000001001d00000004014000390000000000310435000000f90040009c000400000004001d000000f901000041000000000104401900000040011002100000000003000414000000f90030009c000000f903008041000000c003300210000000000113019f0000010f011001c703e103d70000040f00000001002001900000024d0000613d0000000401000029000001100010009c000002460000213d0000000401000029000000400010043f000001110100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c7000080050200003903e103dc0000040f00000001002001900000024c0000613d000000000101043b000000e00110021000000003020000290000000000120435000000040300002900000084013000390000000002000411000000000021043500000064013000390000000802000029000000000021043500000044013000390000000702000029000000000021043500000024013000390000000902000029000000000021043500000084010000390000000000130435000001130030009c000002760000a13d0000011b01000041000000000010043f0000004101000039000000040010043f0000010f01000041000003e300010430000000000001042f00000060061002700000001f0460018f000000fb05600198000000400200043d0000000003520019000002590000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000002550000c13d000000f906600197000000000004004b000002670000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000001f90000013d00000060061002700000001f0460018f000000fb05600198000000400200043d0000000003520019000002590000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000002710000c13d000002590000013d0000000403000029000000c001300039000000400010043f0000000601000029000000050200002903e102aa0000040f0000011005100197000000000100041a000000fd01100197000000000151019f000000000010041b000000400100043d00000020021000390000000703000029000000000032043500000040021000390000000603000029000000000032043500000108020000410000006003100039000000000023043500000080021000390000000503000029000000000032043500000008020000290000000000210435000000f90010009c000000f90100804100000040011002100000000002000414000000f90020009c000000f902008041000000c002200210000000000112019f00000114011001c70000800d0200003900000004030000390000011504000041000800000005001d0000000906000029000000000700041103e103d70000040f0000000100200190000001de0000613d000000400100043d00000008020000290000000000210435000000f90010009c000000f901008041000000400110021000000116011001c7000003e20001042e0003000000000002000000400900043d000000840a9000390000006404900039000000440590003900000024069000390000000407900039000000f901100197000000000002004b000300000009001d0000031f0000613d0000011c080000410000000000890435000000000017043500000108010000410000000000160435000000000025043500000080010000390000000000140435000000001603043400000000006a0435000000a405900039000000000006004b000002ca0000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000062004b000002c30000413d000000000165001900000000000104350000011101000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c70000800502000039000200000005001d000100000006001d03e103dc0000040f00000001002001900000038c0000613d00000001020000290000001f022000390000011e02200197000000030300002900000000023200490000000202200029000000f90020009c000000f9020080410000006002200210000000f90030009c000000f9030080410000004003300210000000000232019f000000000301043b0000000001000414000000f90010009c000000f901008041000000c001100210000000000121019f000000fc0230019703e103d70000040f000000030b0000290000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000003020000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000002fe0000c13d000000000006004b0000030f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000003930000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000001100010009c0000038d0000213d00000001002001900000038d0000c13d000000400010043f0000001f0030008c000003860000213d0000038a0000013d0000011d0200004100000000002904350000000000170435000001080100004100000000001604350000006001000039000000000015043500000000150304340000000000540435000000000005004b000003320000613d00000000020000190000000003a200190000000004210019000000000404043300000000004304350000002002200039000000000052004b0000032b0000413d00000000015a001900000000000104350000011101000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000000f90010009c000000f901008041000000c00110021000000112011001c7000080050200003900020000000a001d000100000005001d03e103dc0000040f00000001002001900000038c0000613d00000001020000290000001f022000390000011e02200197000000030300002900000000023200490000000202200029000000f90020009c000000f9020080410000006002200210000000f90030009c000000f9030080410000004003300210000000000232019f000000000301043b0000000001000414000000f90010009c000000f901008041000000c001100210000000000121019f000000fc0230019703e103d70000040f000000030b0000290000006003100270000000f903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000036a0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000003660000c13d000000000006004b000003770000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f000000000065043500000001002001900000039f0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000001100010009c0000038d0000213d00000001002001900000038d0000c13d000000400010043f000000200030008c0000038a0000413d00000000010b0433000001100010009c0000038a0000213d000000000001042d0000000001000019000003e300010430000000000001042f0000011b01000041000000000010043f0000004101000039000000040010043f0000010f01000041000003e3000104300000001f0530018f000000fb06300198000000400200043d0000000004620019000003aa0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000039a0000c13d000003aa0000013d0000001f0530018f000000fb06300198000000400200043d0000000004620019000003aa0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003a60000c13d000000000005004b000003b70000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000f90020009c000000f9020080410000004002200210000000000112019f000003e300010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b000003c10000413d000000f90030009c000000f90300804100000060013002100000000002000414000000f90020009c000000f902008041000000c002200210000000000112019f0000011f011001c7000000000205001903e103dc0000040f0000000100200190000003d60000613d000000000101043b000000000001042d000000000001042f000003da002104210000000102000039000000000001042d0000000002000019000000000001042d000003df002104230000000102000039000000000001042d0000000002000019000000000001042d000003e100000432000003e20001042e000003e30001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000020000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000000000a250c66900000000000000000000000000000000000000000000000000000000f856ddb500000000000000000000000000000000000000000000000000000000f856ddb600000000000000000000000000000000000000000000000000000000fb8406a900000000000000000000000000000000000000000000000000000000a250c66a00000000000000000000000000000000000000000000000000000000d04857b0000000000000000000000000000000000000000000000000000000002c121921000000000000000000000000000000000000000000000000000000007eccf63e000000000000000000000000000000000000000000000000000000009cdbb18117c71eed51b181d8ae1908b4743526c6dbf099c201f158a1acd5f6718e82e8f6000000000000000000000000000000000000002000000080000000000000000023b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000042966c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f02000000000000000000000000000000000000a00000000000000000000000002fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000fffffffffffffedf02000000000000000000000000000000000001000000000000000000000000006a4c152b4ad8c08f204453d58ef2ac1c0bb69627dd545cf47507d32d036e67d54e487b7100000000000000000000000000000000000000000000000000000000f7259a75000000000000000000000000000000000000000000000000000000000ba469bc00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00200000200000000000000000000000000000000000000000000000000000000bda777ecf18d5ce611fe91db789302c7dcd8531e79c872419c42efd6f6181a6f") diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go deleted file mode 100644 index 05ca93c19d..0000000000 --- a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter.go +++ /dev/null @@ -1,457 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package mock_usdc_token_transmitter - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -var MockE2EUSDCTransmitterMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_version\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_localDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"localDomain\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nextAvailableNonce\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveMessage\",\"inputs\":[{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"s_shouldSucceed\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sendMessage\",\"inputs\":[{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"recipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"messageBody\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendMessageWithCaller\",\"inputs\":[{\"name\":\"destinationDomain\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"recipient\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destinationCaller\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"messageBody\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setShouldSucceed\",\"inputs\":[{\"name\":\"shouldSucceed\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"MessageSent\",\"inputs\":[{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", - Bin: "0x60e0346100c857601f610ab038819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101516001600160a01b03811692908390036100c85760805260a052600160ff19600054161760005560c0526040516109bb90816100f5823960805181818161011f0152818161063c0152610704015260a05181818161014901528181610418015261072e015260c051816105550152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036100c85756fe6080604052600436101561001257600080fd5b6000803560e01c80630ba469bc1461066057806354fd4d501461060157806357ecfd28146104c45780637a642935146104845780638371744e1461043c5780638d3638f4146103dd5780639e31ddb61461036e5763f7259a751461007557600080fd5b3461036b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b576100ac61086b565b6044359160243560643567ffffffffffffffff8111610367576100d3903690600401610883565b9480156102e3576100e2610921565b94831561028557866020976101ed946094947fffffffff0000000000000000000000000000000000000000000000000000000097604051988996817f000000000000000000000000000000000000000000000000000000000000000060e01b168e890152817f000000000000000000000000000000000000000000000000000000000000000060e01b16602489015260e01b1660288701527fffffffffffffffff0000000000000000000000000000000000000000000000008b60c01b16602c87015233603487015260548601526074850152848401378101858382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826108b1565b604051918483528151918286850152815b838110610271575050827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846040948585977f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b0369901015201168101030190a167ffffffffffffffff60405191168152f35b8181018701518582016040015286016101fe565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f526563697069656e74206d757374206265206e6f6e7a65726f000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f44657374696e6174696f6e2063616c6c6572206d757374206265206e6f6e7a6560448201527f726f0000000000000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b80fd5b503461036b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b576004358015158091036103d95760ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815580f35b5080fd5b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5767ffffffffffffffff6020915460081c16604051908152f35b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5760ff60209154166040519015158152f35b503461036b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5760043567ffffffffffffffff81116103d957610514903690600401610883565b60243567ffffffffffffffff81116105fd57610534903690600401610883565b505060b8116103d9578173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691823b156103d957604460a4918360405195869485937f40c10f19000000000000000000000000000000000000000000000000000000008552013560601c6004840152600160248401525af180156105f2579160ff91816020946105e2575b505054166040519015158152f35b6105eb916108b1565b38816105d4565b6040513d84823e3d90fd5b8380fd5b503461036b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461036b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261036b5761069861086b565b906024359060443567ffffffffffffffff81116103d9576106bd903690600401610883565b90926106c7610921565b93811561028557602095837fffffffff00000000000000000000000000000000000000000000000000000000946094936107d395604051978895817f000000000000000000000000000000000000000000000000000000000000000060e01b168d880152817f000000000000000000000000000000000000000000000000000000000000000060e01b16602488015260e01b1660288601527fffffffffffffffff0000000000000000000000000000000000000000000000008a60c01b16602c8601523360348601526054850152876074850152848401378101858382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826108b1565b604051918483528151918286850152815b838110610857575050827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846040948585977f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b0369901015201168101030190a167ffffffffffffffff60405191168152f35b8181018701518582016040015286016107e4565b6004359063ffffffff8216820361087e57565b600080fd5b9181601f8401121561087e5782359167ffffffffffffffff831161087e576020838186019501011161087e57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108f257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005467ffffffffffffffff8160081c16906001820167ffffffffffffffff811161097f5768ffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff9160081b1691161760005590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea164736f6c634300081a000a", -} - -var MockE2EUSDCTransmitterABI = MockE2EUSDCTransmitterMetaData.ABI - -var MockE2EUSDCTransmitterBin = MockE2EUSDCTransmitterMetaData.Bin - -func DeployMockE2EUSDCTransmitter(auth *bind.TransactOpts, backend bind.ContractBackend, _version uint32, _localDomain uint32, token common.Address) (common.Address, *types.Transaction, *MockE2EUSDCTransmitter, error) { - parsed, err := MockE2EUSDCTransmitterMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - if parsed == nil { - return common.Address{}, nil, nil, errors.New("GetABI returned nil") - } - - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MockE2EUSDCTransmitterBin), backend, _version, _localDomain, token) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &MockE2EUSDCTransmitter{address: address, abi: *parsed, MockE2EUSDCTransmitterCaller: MockE2EUSDCTransmitterCaller{contract: contract}, MockE2EUSDCTransmitterTransactor: MockE2EUSDCTransmitterTransactor{contract: contract}, MockE2EUSDCTransmitterFilterer: MockE2EUSDCTransmitterFilterer{contract: contract}}, nil -} - -type MockE2EUSDCTransmitter struct { - address common.Address - abi abi.ABI - MockE2EUSDCTransmitterCaller - MockE2EUSDCTransmitterTransactor - MockE2EUSDCTransmitterFilterer -} - -type MockE2EUSDCTransmitterCaller struct { - contract *bind.BoundContract -} - -type MockE2EUSDCTransmitterTransactor struct { - contract *bind.BoundContract -} - -type MockE2EUSDCTransmitterFilterer struct { - contract *bind.BoundContract -} - -type MockE2EUSDCTransmitterSession struct { - Contract *MockE2EUSDCTransmitter - CallOpts bind.CallOpts - TransactOpts bind.TransactOpts -} - -type MockE2EUSDCTransmitterCallerSession struct { - Contract *MockE2EUSDCTransmitterCaller - CallOpts bind.CallOpts -} - -type MockE2EUSDCTransmitterTransactorSession struct { - Contract *MockE2EUSDCTransmitterTransactor - TransactOpts bind.TransactOpts -} - -type MockE2EUSDCTransmitterRaw struct { - Contract *MockE2EUSDCTransmitter -} - -type MockE2EUSDCTransmitterCallerRaw struct { - Contract *MockE2EUSDCTransmitterCaller -} - -type MockE2EUSDCTransmitterTransactorRaw struct { - Contract *MockE2EUSDCTransmitterTransactor -} - -func NewMockE2EUSDCTransmitter(address common.Address, backend bind.ContractBackend) (*MockE2EUSDCTransmitter, error) { - abi, err := abi.JSON(strings.NewReader(MockE2EUSDCTransmitterABI)) - if err != nil { - return nil, err - } - contract, err := bindMockE2EUSDCTransmitter(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &MockE2EUSDCTransmitter{address: address, abi: abi, MockE2EUSDCTransmitterCaller: MockE2EUSDCTransmitterCaller{contract: contract}, MockE2EUSDCTransmitterTransactor: MockE2EUSDCTransmitterTransactor{contract: contract}, MockE2EUSDCTransmitterFilterer: MockE2EUSDCTransmitterFilterer{contract: contract}}, nil -} - -func NewMockE2EUSDCTransmitterCaller(address common.Address, caller bind.ContractCaller) (*MockE2EUSDCTransmitterCaller, error) { - contract, err := bindMockE2EUSDCTransmitter(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &MockE2EUSDCTransmitterCaller{contract: contract}, nil -} - -func NewMockE2EUSDCTransmitterTransactor(address common.Address, transactor bind.ContractTransactor) (*MockE2EUSDCTransmitterTransactor, error) { - contract, err := bindMockE2EUSDCTransmitter(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &MockE2EUSDCTransmitterTransactor{contract: contract}, nil -} - -func NewMockE2EUSDCTransmitterFilterer(address common.Address, filterer bind.ContractFilterer) (*MockE2EUSDCTransmitterFilterer, error) { - contract, err := bindMockE2EUSDCTransmitter(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &MockE2EUSDCTransmitterFilterer{contract: contract}, nil -} - -func bindMockE2EUSDCTransmitter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := MockE2EUSDCTransmitterMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _MockE2EUSDCTransmitter.Contract.MockE2EUSDCTransmitterCaller.contract.Call(opts, result, method, params...) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.MockE2EUSDCTransmitterTransactor.contract.Transfer(opts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.MockE2EUSDCTransmitterTransactor.contract.Transact(opts, method, params...) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _MockE2EUSDCTransmitter.Contract.contract.Call(opts, result, method, params...) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.contract.Transfer(opts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.contract.Transact(opts, method, params...) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) LocalDomain(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "localDomain") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) LocalDomain() (uint32, error) { - return _MockE2EUSDCTransmitter.Contract.LocalDomain(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) LocalDomain() (uint32, error) { - return _MockE2EUSDCTransmitter.Contract.LocalDomain(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) NextAvailableNonce(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "nextAvailableNonce") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) NextAvailableNonce() (uint64, error) { - return _MockE2EUSDCTransmitter.Contract.NextAvailableNonce(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) NextAvailableNonce() (uint64, error) { - return _MockE2EUSDCTransmitter.Contract.NextAvailableNonce(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) SShouldSucceed(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "s_shouldSucceed") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SShouldSucceed() (bool, error) { - return _MockE2EUSDCTransmitter.Contract.SShouldSucceed(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) SShouldSucceed() (bool, error) { - return _MockE2EUSDCTransmitter.Contract.SShouldSucceed(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCaller) Version(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _MockE2EUSDCTransmitter.contract.Call(opts, &out, "version") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) Version() (uint32, error) { - return _MockE2EUSDCTransmitter.Contract.Version(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterCallerSession) Version() (uint32, error) { - return _MockE2EUSDCTransmitter.Contract.Version(&_MockE2EUSDCTransmitter.CallOpts) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) ReceiveMessage(opts *bind.TransactOpts, message []byte, arg1 []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.contract.Transact(opts, "receiveMessage", message, arg1) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) ReceiveMessage(message []byte, arg1 []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.ReceiveMessage(&_MockE2EUSDCTransmitter.TransactOpts, message, arg1) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) ReceiveMessage(message []byte, arg1 []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.ReceiveMessage(&_MockE2EUSDCTransmitter.TransactOpts, message, arg1) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) SendMessage(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.contract.Transact(opts, "sendMessage", destinationDomain, recipient, messageBody) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SendMessage(destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.SendMessage(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, messageBody) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) SendMessage(destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.SendMessage(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, messageBody) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) SendMessageWithCaller(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.contract.Transact(opts, "sendMessageWithCaller", destinationDomain, recipient, destinationCaller, messageBody) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SendMessageWithCaller(destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.SendMessageWithCaller(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, destinationCaller, messageBody) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) SendMessageWithCaller(destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.SendMessageWithCaller(&_MockE2EUSDCTransmitter.TransactOpts, destinationDomain, recipient, destinationCaller, messageBody) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactor) SetShouldSucceed(opts *bind.TransactOpts, shouldSucceed bool) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.contract.Transact(opts, "setShouldSucceed", shouldSucceed) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterSession) SetShouldSucceed(shouldSucceed bool) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.SetShouldSucceed(&_MockE2EUSDCTransmitter.TransactOpts, shouldSucceed) -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterTransactorSession) SetShouldSucceed(shouldSucceed bool) (*types.Transaction, error) { - return _MockE2EUSDCTransmitter.Contract.SetShouldSucceed(&_MockE2EUSDCTransmitter.TransactOpts, shouldSucceed) -} - -type MockE2EUSDCTransmitterMessageSentIterator struct { - Event *MockE2EUSDCTransmitterMessageSent - - contract *bind.BoundContract - event string - - logs chan types.Log - sub ethereum.Subscription - done bool - fail error -} - -func (it *MockE2EUSDCTransmitterMessageSentIterator) Next() bool { - - if it.fail != nil { - return false - } - - if it.done { - select { - case log := <-it.logs: - it.Event = new(MockE2EUSDCTransmitterMessageSent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - - select { - case log := <-it.logs: - it.Event = new(MockE2EUSDCTransmitterMessageSent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -func (it *MockE2EUSDCTransmitterMessageSentIterator) Error() error { - return it.fail -} - -func (it *MockE2EUSDCTransmitterMessageSentIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -type MockE2EUSDCTransmitterMessageSent struct { - Message []byte - Raw types.Log -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterFilterer) FilterMessageSent(opts *bind.FilterOpts) (*MockE2EUSDCTransmitterMessageSentIterator, error) { - - logs, sub, err := _MockE2EUSDCTransmitter.contract.FilterLogs(opts, "MessageSent") - if err != nil { - return nil, err - } - return &MockE2EUSDCTransmitterMessageSentIterator{contract: _MockE2EUSDCTransmitter.contract, event: "MessageSent", logs: logs, sub: sub}, nil -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterFilterer) WatchMessageSent(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTransmitterMessageSent) (event.Subscription, error) { - - logs, sub, err := _MockE2EUSDCTransmitter.contract.WatchLogs(opts, "MessageSent") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - - event := new(MockE2EUSDCTransmitterMessageSent) - if err := _MockE2EUSDCTransmitter.contract.UnpackLog(event, "MessageSent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitterFilterer) ParseMessageSent(log types.Log) (*MockE2EUSDCTransmitterMessageSent, error) { - event := new(MockE2EUSDCTransmitterMessageSent) - if err := _MockE2EUSDCTransmitter.contract.UnpackLog(event, "MessageSent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -func (MockE2EUSDCTransmitterMessageSent) Topic() common.Hash { - return common.HexToHash("0x8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036") -} - -func (_MockE2EUSDCTransmitter *MockE2EUSDCTransmitter) Address() common.Address { - return _MockE2EUSDCTransmitter.address -} - -type MockE2EUSDCTransmitterInterface interface { - LocalDomain(opts *bind.CallOpts) (uint32, error) - - NextAvailableNonce(opts *bind.CallOpts) (uint64, error) - - SShouldSucceed(opts *bind.CallOpts) (bool, error) - - Version(opts *bind.CallOpts) (uint32, error) - - ReceiveMessage(opts *bind.TransactOpts, message []byte, arg1 []byte) (*types.Transaction, error) - - SendMessage(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, messageBody []byte) (*types.Transaction, error) - - SendMessageWithCaller(opts *bind.TransactOpts, destinationDomain uint32, recipient [32]byte, destinationCaller [32]byte, messageBody []byte) (*types.Transaction, error) - - SetShouldSucceed(opts *bind.TransactOpts, shouldSucceed bool) (*types.Transaction, error) - - FilterMessageSent(opts *bind.FilterOpts) (*MockE2EUSDCTransmitterMessageSentIterator, error) - - WatchMessageSent(opts *bind.WatchOpts, sink chan<- *MockE2EUSDCTransmitterMessageSent) (event.Subscription, error) - - ParseMessageSent(log types.Log) (*MockE2EUSDCTransmitterMessageSent, error) - - Address() common.Address -} diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go deleted file mode 100644 index dad440d64e..0000000000 --- a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_metadata.go +++ /dev/null @@ -1,7 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - - -package mock_usdc_token_transmitter - -var SolidityStandardInput = "{\"version\":\"v0.8.26+commit.8a97fa7a\",\"language\":\"Solidity\",\"settings\":{\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":true,\"bytecodeHash\":\"none\",\"useLiteralContent\":false},\"optimizer\":{\"enabled\":true,\"runs\":80000},\"outputSelection\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/MockE2EUSDCTransmitter.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/interfaces/IGetCCIPAdmin.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/BurnMintERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/access/AccessControl.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/access/IAccessControl.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/ERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/ERC20Burnable.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/IERC20Metadata.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Context.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Strings.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/ERC165.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/IERC165.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]},\"node_modules/@openzeppelin/contracts-4.8.3/utils/math/Math.sol\":{\"\":[\"ast\"],\"*\":[\"abi\",\"evm.bytecode.object\",\"evm.bytecode.sourceMap\",\"evm.bytecode.linkReferences\",\"evm.deployedBytecode.object\",\"evm.deployedBytecode.sourceMap\",\"evm.deployedBytecode.linkReferences\",\"evm.deployedBytecode.immutableReferences\",\"evm.methodIdentifiers\",\"metadata\"]}},\"remappings\":[\"forge-std/=node_modules/@chainlink/contracts/src/v0.8/vendor/forge-std/src/\",\"@chainlink/contracts/=node_modules/@chainlink/contracts/\",\"@openzeppelin/contracts@4.8.3/=node_modules/@openzeppelin/contracts-4.8.3/\",\"@openzeppelin/contracts@5.0.2/=node_modules/@openzeppelin/contracts-5.0.2/\"],\"viaIR\":true},\"sources\":{\"contracts/pools/USDC/interfaces/IMessageTransmitter.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\ninterface IMessageTransmitter {\\n /// @notice Unlocks USDC tokens on the destination chain\\n /// @param message The original message on the source chain\\n /// * Message format:\\n /// * Field Bytes Type Index\\n /// * version 4 uint32 0\\n /// * sourceDomain 4 uint32 4\\n /// * destinationDomain 4 uint32 8\\n /// * nonce 8 uint64 12\\n /// * sender 32 bytes32 20\\n /// * recipient 32 bytes32 52\\n /// * destinationCaller 32 bytes32 84\\n /// * messageBody dynamic bytes 116\\n /// param attestation A valid attestation is the concatenated 65-byte signature(s) of\\n /// exactly `thresholdSignature` signatures, in increasing order of attester address.\\n /// ***If the attester addresses recovered from signatures are not in increasing order,\\n /// signature verification will fail.***\\n /// If incorrect number of signatures or duplicate signatures are supplied,\\n /// signature verification will fail.\\n function receiveMessage(bytes calldata message, bytes calldata attestation) external returns (bool success);\\n\\n /// Returns domain of chain on which the contract is deployed.\\n /// @dev immutable\\n function localDomain() external view returns (uint32);\\n\\n /// Returns message format version.\\n /// @dev immutable\\n function version() external view returns (uint32);\\n}\\n\"},\"contracts/test/mocks/MockE2EUSDCTransmitter.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\nimport {IMessageTransmitterWithRelay} from \\\"./interfaces/IMessageTransmitterWithRelay.sol\\\";\\n\\nimport {BurnMintERC20} from \\\"@chainlink/contracts/src/v0.8/shared/token/ERC20/BurnMintERC20.sol\\\";\\n\\n// solhint-disable\\ncontract MockE2EUSDCTransmitter is IMessageTransmitterWithRelay {\\n // Indicated whether the receiveMessage() call should succeed.\\n bool public s_shouldSucceed;\\n uint32 private immutable i_version;\\n uint32 private immutable i_localDomain;\\n // Next available nonce from this source domain\\n uint64 public nextAvailableNonce;\\n\\n BurnMintERC20 internal immutable i_token;\\n\\n /**\\n * @notice Emitted when a new message is dispatched\\n * @param message Raw bytes of message\\n */\\n event MessageSent(bytes message);\\n\\n constructor(uint32 _version, uint32 _localDomain, address token) {\\n i_version = _version;\\n i_localDomain = _localDomain;\\n s_shouldSucceed = true;\\n\\n i_token = BurnMintERC20(token);\\n }\\n\\n /// @param message The original message on the source chain\\n /// * Message format:\\n /// * Field Bytes Type Index\\n /// * version 4 uint32 0\\n /// * sourceDomain 4 uint32 4\\n /// * destinationDomain 4 uint32 8\\n /// * nonce 8 uint64 12\\n /// * sender 32 bytes32 20\\n /// * recipient 32 bytes32 52\\n /// * destinationCaller 32 bytes32 84\\n /// * messageBody dynamic bytes 116\\n function receiveMessage(bytes calldata message, bytes calldata) external returns (bool success) {\\n // The receiver of the funds is the _mintRecipient in the following encoded format\\n // function _formatMessage(\\n // uint32 _version, 4\\n // bytes32 _burnToken, 32\\n // bytes32 _mintRecipient, 32, first 12 empty for EVM addresses\\n // uint256 _amount,\\n // bytes32 _messageSender\\n // ) internal pure returns (bytes memory) {\\n // return abi.encodePacked(_version, _burnToken, _mintRecipient, _amount, _messageSender);\\n // }\\n address recipient = address(bytes20(message[116 + 36 + 12:116 + 36 + 12 + 20]));\\n // We always mint 1 token to not complicate the test.\\n i_token.mint(recipient, 1);\\n\\n return s_shouldSucceed;\\n }\\n\\n function setShouldSucceed(\\n bool shouldSucceed\\n ) external {\\n s_shouldSucceed = shouldSucceed;\\n }\\n\\n function version() external view returns (uint32) {\\n return i_version;\\n }\\n\\n function localDomain() external view returns (uint32) {\\n return i_localDomain;\\n }\\n\\n /**\\n * This is based on similar function in https://github.com/circlefin/evm-cctp-contracts/blob/master/src/MessageTransmitter.sol\\n * @notice Send the message to the destination domain and recipient\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination chain as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessage(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes calldata messageBody\\n ) external returns (uint64) {\\n bytes32 _emptyDestinationCaller = bytes32(0);\\n uint64 _nonce = _reserveAndIncrementNonce();\\n bytes32 _messageSender = bytes32(uint256(uint160((msg.sender))));\\n\\n _sendMessage(destinationDomain, recipient, _emptyDestinationCaller, _messageSender, _nonce, messageBody);\\n\\n return _nonce;\\n }\\n\\n /**\\n * @notice Send the message to the destination domain and recipient, for a specified `destinationCaller` on the\\n * destination domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * WARNING: if the `destinationCaller` does not represent a valid address, then it will not be possible\\n * to broadcast the message on the destination domain. This is an advanced feature, and the standard\\n * sendMessage() should be preferred for use cases where a specific destination caller is not required.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param destinationCaller caller on the destination domain, as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessageWithCaller(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes32 destinationCaller,\\n bytes calldata messageBody\\n ) external returns (uint64) {\\n require(destinationCaller != bytes32(0), \\\"Destination caller must be nonzero\\\");\\n\\n uint64 _nonce = _reserveAndIncrementNonce();\\n bytes32 _messageSender = bytes32(uint256(uint160((msg.sender))));\\n\\n _sendMessage(destinationDomain, recipient, destinationCaller, _messageSender, _nonce, messageBody);\\n\\n return _nonce;\\n }\\n\\n /**\\n * Reserve and increment next available nonce\\n * @return nonce reserved\\n */\\n function _reserveAndIncrementNonce() internal returns (uint64) {\\n uint64 _nonceReserved = nextAvailableNonce;\\n nextAvailableNonce = nextAvailableNonce + 1;\\n return _nonceReserved;\\n }\\n\\n /**\\n * @notice Send the message to the destination domain and recipient. If `_destinationCaller` is not equal to bytes32(0),\\n * the message can only be received on the destination chain when called by `_destinationCaller`.\\n * @dev Format the message and emit `MessageSent` event with message information.\\n * @param _destinationDomain Domain of destination chain\\n * @param _recipient Address of message recipient on destination domain as bytes32\\n * @param _destinationCaller caller on the destination domain, as bytes32\\n * @param _sender message sender, as bytes32\\n * @param _nonce nonce reserved for message\\n * @param _messageBody Raw bytes content of message\\n */\\n function _sendMessage(\\n uint32 _destinationDomain,\\n bytes32 _recipient,\\n bytes32 _destinationCaller,\\n bytes32 _sender,\\n uint64 _nonce,\\n bytes calldata _messageBody\\n ) internal {\\n require(_recipient != bytes32(0), \\\"Recipient must be nonzero\\\");\\n // serialize message\\n bytes memory _message = abi.encodePacked(\\n i_version, i_localDomain, _destinationDomain, _nonce, _sender, _recipient, _destinationCaller, _messageBody\\n );\\n\\n // Emit MessageSent event\\n emit MessageSent(_message);\\n }\\n}\\n\"},\"contracts/test/mocks/interfaces/IMessageTransmitterWithRelay.sol\":{\"content\":\"/*\\n * Copyright (c) 2022, Circle Internet Financial Limited.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\npragma solidity ^0.8.0;\\n\\nimport {IMessageTransmitter} from \\\"../../../pools/USDC/interfaces/IMessageTransmitter.sol\\\";\\n\\n// This follows https://github.com/circlefin/evm-cctp-contracts/blob/master/src/interfaces/IMessageTransmitter.sol\\ninterface IMessageTransmitterWithRelay is IMessageTransmitter {\\n /**\\n * @notice Sends an outgoing message from the source domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessage(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n\\n /**\\n * @notice Sends an outgoing message from the source domain, with a specified caller on the\\n * destination domain.\\n * @dev Increment nonce, format the message, and emit `MessageSent` event with message information.\\n * WARNING: if the `destinationCaller` does not represent a valid address as bytes32, then it will not be possible\\n * to broadcast the message on the destination domain. This is an advanced feature, and the standard\\n * sendMessage() should be preferred for use cases where a specific destination caller is not required.\\n * @param destinationDomain Domain of destination chain\\n * @param recipient Address of message recipient on destination domain as bytes32\\n * @param destinationCaller caller on the destination domain, as bytes32\\n * @param messageBody Raw bytes content of message\\n * @return nonce reserved by message\\n */\\n function sendMessageWithCaller(\\n uint32 destinationDomain,\\n bytes32 recipient,\\n bytes32 destinationCaller,\\n bytes calldata messageBody\\n ) external returns (uint64);\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/interfaces/IGetCCIPAdmin.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface IGetCCIPAdmin {\\n /// @notice Returns the admin of the token.\\n /// @dev This method is named to never conflict with existing methods.\\n function getCCIPAdmin() external view returns (address);\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/BurnMintERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.4;\\n\\nimport {IGetCCIPAdmin} from \\\"../../../shared/interfaces/IGetCCIPAdmin.sol\\\";\\nimport {IBurnMintERC20} from \\\"../../../shared/token/ERC20/IBurnMintERC20.sol\\\";\\n\\nimport {AccessControl} from \\\"@openzeppelin/contracts@4.8.3/access/AccessControl.sol\\\";\\nimport {IAccessControl} from \\\"@openzeppelin/contracts@4.8.3/access/IAccessControl.sol\\\";\\nimport {ERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/ERC20.sol\\\";\\nimport {IERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/IERC20.sol\\\";\\nimport {ERC20Burnable} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/extensions/ERC20Burnable.sol\\\";\\nimport {IERC165} from \\\"@openzeppelin/contracts@4.8.3/utils/introspection/IERC165.sol\\\";\\n\\n/// @notice A basic ERC20 compatible token contract with burn and minting roles.\\n/// @dev The total supply can be limited during deployment.\\ncontract BurnMintERC20 is IBurnMintERC20, IGetCCIPAdmin, IERC165, ERC20Burnable, AccessControl {\\n error MaxSupplyExceeded(uint256 supplyAfterMint);\\n error InvalidRecipient(address recipient);\\n\\n event CCIPAdminTransferred(address indexed previousAdmin, address indexed newAdmin);\\n\\n /// @dev The number of decimals for the token\\n uint8 internal immutable i_decimals;\\n\\n /// @dev The maximum supply of the token, 0 if unlimited\\n uint256 internal immutable i_maxSupply;\\n\\n /// @dev the CCIPAdmin can be used to register with the CCIP token admin registry, but has no other special powers,\\n /// and can only be transferred by the owner.\\n address internal s_ccipAdmin;\\n\\n bytes32 public constant MINTER_ROLE = keccak256(\\\"MINTER_ROLE\\\");\\n bytes32 public constant BURNER_ROLE = keccak256(\\\"BURNER_ROLE\\\");\\n\\n /// @dev the underscores in parameter names are used to suppress compiler warnings about shadowing ERC20 functions\\n constructor(\\n string memory name,\\n string memory symbol,\\n uint8 decimals_,\\n uint256 maxSupply_,\\n uint256 preMint\\n ) ERC20(name, symbol) {\\n i_decimals = decimals_;\\n i_maxSupply = maxSupply_;\\n\\n s_ccipAdmin = msg.sender;\\n\\n // Mint the initial supply to the new Owner, saving gas by not calling if the mint amount is zero\\n if (preMint != 0) _mint(msg.sender, preMint);\\n\\n // Set up the owner as the initial minter and burner\\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\\n }\\n\\n /// @inheritdoc IERC165\\n function supportsInterface(\\n bytes4 interfaceId\\n ) public pure virtual override(AccessControl, IERC165) returns (bool) {\\n return interfaceId == type(IERC20).interfaceId || interfaceId == type(IBurnMintERC20).interfaceId\\n || interfaceId == type(IERC165).interfaceId || interfaceId == type(IAccessControl).interfaceId\\n || interfaceId == type(IGetCCIPAdmin).interfaceId;\\n }\\n\\n // ================================================================\\n // │ ERC20 │\\n // ================================================================\\n\\n /// @dev Returns the number of decimals used in its user representation.\\n function decimals() public view virtual override returns (uint8) {\\n return i_decimals;\\n }\\n\\n /// @dev Returns the max supply of the token, 0 if unlimited.\\n function maxSupply() public view virtual returns (uint256) {\\n return i_maxSupply;\\n }\\n\\n /// @dev Uses OZ ERC20 _transfer to disallow sending to address(0).\\n /// @dev Disallows sending to address(this)\\n function _transfer(address from, address to, uint256 amount) internal virtual override {\\n if (to == address(this)) revert InvalidRecipient(to);\\n\\n super._transfer(from, to, amount);\\n }\\n\\n /// @dev Uses OZ ERC20 _approve to disallow approving for address(0).\\n /// @dev Disallows approving for address(this)\\n function _approve(address owner, address spender, uint256 amount) internal virtual override {\\n if (spender == address(this)) revert InvalidRecipient(spender);\\n\\n super._approve(owner, spender, amount);\\n }\\n\\n // ================================================================\\n // │ Burning \\u0026 minting │\\n // ================================================================\\n\\n /// @inheritdoc ERC20Burnable\\n /// @dev Uses OZ ERC20 _burn to disallow burning from address(0).\\n /// @dev Decreases the total supply.\\n function burn(\\n uint256 amount\\n ) public virtual override(IBurnMintERC20, ERC20Burnable) onlyRole(BURNER_ROLE) {\\n super.burn(amount);\\n }\\n\\n /// @inheritdoc IBurnMintERC20\\n /// @dev Alias for BurnFrom for compatibility with the older naming convention.\\n /// @dev Uses burnFrom for all validation \\u0026 logic.\\n function burn(address account, uint256 amount) public virtual override {\\n burnFrom(account, amount);\\n }\\n\\n /// @inheritdoc ERC20Burnable\\n /// @dev Uses OZ ERC20 _burn to disallow burning from address(0).\\n /// @dev Decreases the total supply.\\n function burnFrom(\\n address account,\\n uint256 amount\\n ) public virtual override(IBurnMintERC20, ERC20Burnable) onlyRole(BURNER_ROLE) {\\n super.burnFrom(account, amount);\\n }\\n\\n /// @inheritdoc IBurnMintERC20\\n /// @dev Uses OZ ERC20 _mint to disallow minting to address(0).\\n /// @dev Disallows minting to address(this)\\n /// @dev Increases the total supply.\\n function mint(address account, uint256 amount) external virtual override onlyRole(MINTER_ROLE) {\\n if (account == address(this)) revert InvalidRecipient(account);\\n if (i_maxSupply != 0 \\u0026\\u0026 totalSupply() + amount \\u003e i_maxSupply) revert MaxSupplyExceeded(totalSupply() + amount);\\n\\n _mint(account, amount);\\n }\\n\\n // ================================================================\\n // │ Roles │\\n // ================================================================\\n\\n /// @notice grants both mint and burn roles to `burnAndMinter`.\\n /// @dev calls public functions so this function does not require\\n /// access controls. This is handled in the inner functions.\\n function grantMintAndBurnRoles(\\n address burnAndMinter\\n ) external virtual {\\n grantRole(MINTER_ROLE, burnAndMinter);\\n grantRole(BURNER_ROLE, burnAndMinter);\\n }\\n\\n /// @notice Returns the current CCIPAdmin\\n function getCCIPAdmin() external view virtual returns (address) {\\n return s_ccipAdmin;\\n }\\n\\n /// @notice Transfers the CCIPAdmin role to a new address\\n /// @dev only the owner can call this function, NOT the current ccipAdmin, and 1-step ownership transfer is used.\\n /// @param newAdmin The address to transfer the CCIPAdmin role to. Setting to address(0) is a valid way to revoke\\n /// the role\\n function setCCIPAdmin(\\n address newAdmin\\n ) external virtual onlyRole(DEFAULT_ADMIN_ROLE) {\\n address currentAdmin = s_ccipAdmin;\\n\\n s_ccipAdmin = newAdmin;\\n\\n emit CCIPAdminTransferred(currentAdmin, newAdmin);\\n }\\n}\\n\"},\"node_modules/@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport {IERC20} from \\\"@openzeppelin/contracts@4.8.3/token/ERC20/IERC20.sol\\\";\\n\\ninterface IBurnMintERC20 is IERC20 {\\n /// @notice Mints new tokens for a given address.\\n /// @param account The address to mint the new tokens to.\\n /// @param amount The number of tokens to be minted.\\n /// @dev this function increases the total supply.\\n function mint(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from the sender.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(\\n uint256 amount\\n ) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burn(address account, uint256 amount) external;\\n\\n /// @notice Burns tokens from a given address..\\n /// @param account The address to burn tokens from.\\n /// @param amount The number of tokens to be burned.\\n /// @dev this function decreases the total supply.\\n function burnFrom(address account, uint256 amount) external;\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```\\n * function foo() public {\\n * require(hasRole(MY_ROLE, msg.sender));\\n * ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n struct RoleData {\\n mapping(address =\\u003e bool) members;\\n bytes32 adminRole;\\n }\\n\\n mapping(bytes32 =\\u003e RoleData) private _roles;\\n\\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n /**\\n * @dev Modifier that checks that an account has a specific role. Reverts\\n * with a standardized message including the required role.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n *\\n * _Available since v4.1._\\n */\\n modifier onlyRole(bytes32 role) {\\n _checkRole(role);\\n _;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n return _roles[role].members[account];\\n }\\n\\n /**\\n * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n * Overriding this function changes the behavior of the {onlyRole} modifier.\\n *\\n * Format of the revert message is described in {_checkRole}.\\n *\\n * _Available since v4.6._\\n */\\n function _checkRole(bytes32 role) internal view virtual {\\n _checkRole(role, _msgSender());\\n }\\n\\n /**\\n * @dev Revert with a standard message if `account` is missing `role`.\\n *\\n * The format of the revert reason is given by the following regular expression:\\n *\\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n */\\n function _checkRole(bytes32 role, address account) internal view virtual {\\n if (!hasRole(role, account)) {\\n revert(\\n string(\\n abi.encodePacked(\\n \\\"AccessControl: account \\\",\\n Strings.toHexString(account),\\n \\\" is missing role \\\",\\n Strings.toHexString(uint256(role), 32)\\n )\\n )\\n );\\n }\\n }\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n return _roles[role].adminRole;\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function renounceRole(bytes32 role, address account) public virtual override {\\n require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n _revokeRole(role, account);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event. Note that unlike {grantRole}, this function doesn't perform any\\n * checks on the calling account.\\n *\\n * May emit a {RoleGranted} event.\\n *\\n * [WARNING]\\n * ====\\n * This function should only be called from the constructor when setting\\n * up the initial roles for the system.\\n *\\n * Using this function in any other way is effectively circumventing the admin\\n * system imposed by {AccessControl}.\\n * ====\\n *\\n * NOTE: This function is deprecated in favor of {_grantRole}.\\n */\\n function _setupRole(bytes32 role, address account) internal virtual {\\n _grantRole(role, account);\\n }\\n\\n /**\\n * @dev Sets `adminRole` as ``role``'s admin role.\\n *\\n * Emits a {RoleAdminChanged} event.\\n */\\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n bytes32 previousAdminRole = getRoleAdmin(role);\\n _roles[role].adminRole = adminRole;\\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n }\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleGranted} event.\\n */\\n function _grantRole(bytes32 role, address account) internal virtual {\\n if (!hasRole(role, account)) {\\n _roles[role].members[account] = true;\\n emit RoleGranted(role, account, _msgSender());\\n }\\n }\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * Internal function without access restriction.\\n *\\n * May emit a {RoleRevoked} event.\\n */\\n function _revokeRole(bytes32 role, address account) internal virtual {\\n if (hasRole(role, account)) {\\n _roles[role].members[account] = false;\\n emit RoleRevoked(role, account, _msgSender());\\n }\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n /**\\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n *\\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n * {RoleAdminChanged} not being emitted signaling this.\\n *\\n * _Available since v3.1._\\n */\\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n /**\\n * @dev Emitted when `account` is granted `role`.\\n *\\n * `sender` is the account that originated the contract call, an admin role\\n * bearer except when using {AccessControl-_setupRole}.\\n */\\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Emitted when `account` is revoked `role`.\\n *\\n * `sender` is the account that originated the contract call:\\n * - if using `revokeRole`, it is the admin role bearer\\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n */\\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n /**\\n * @dev Returns `true` if `account` has been granted `role`.\\n */\\n function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n /**\\n * @dev Returns the admin role that controls `role`. See {grantRole} and\\n * {revokeRole}.\\n *\\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n */\\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n /**\\n * @dev Grants `role` to `account`.\\n *\\n * If `account` had not been already granted `role`, emits a {RoleGranted}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function grantRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from `account`.\\n *\\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n *\\n * Requirements:\\n *\\n * - the caller must have ``role``'s admin role.\\n */\\n function revokeRole(bytes32 role, address account) external;\\n\\n /**\\n * @dev Revokes `role` from the calling account.\\n *\\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n * purpose is to provide a mechanism for accounts to lose their privileges\\n * if they are compromised (such as when a trusted device is misplaced).\\n *\\n * If the calling account had been granted `role`, emits a {RoleRevoked}\\n * event.\\n *\\n * Requirements:\\n *\\n * - the caller must be `account`.\\n */\\n function renounceRole(bytes32 role, address account) external;\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address =\\u003e uint256) private _balances;\\n\\n mapping(address =\\u003e mapping(address =\\u003e uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance \\u003e= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance \\u003e= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance \\u003e= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount \\u003c= accountBalance \\u003c= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance \\u003e= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/ERC20Burnable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC20.sol\\\";\\nimport \\\"../../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Extension of {ERC20} that allows token holders to destroy both their own\\n * tokens and those that they have an allowance for, in a way that can be\\n * recognized off-chain (via event analysis).\\n */\\nabstract contract ERC20Burnable is Context, ERC20 {\\n /**\\n * @dev Destroys `amount` tokens from the caller.\\n *\\n * See {ERC20-_burn}.\\n */\\n function burn(uint256 amount) public virtual {\\n _burn(_msgSender(), amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, deducting from the caller's\\n * allowance.\\n *\\n * See {ERC20-_burn} and {ERC20-allowance}.\\n *\\n * Requirements:\\n *\\n * - the caller must have allowance for ``accounts``'s tokens of at least\\n * `amount`.\\n */\\n function burnFrom(address account, uint256 amount) public virtual {\\n _spendAllowance(account, _msgSender(), amount);\\n _burn(account, amount);\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i \\u003e 1; --i) {\\n buffer[i] = _SYMBOLS[value \\u0026 0xf];\\n value \\u003e\\u003e= 4;\\n }\\n require(value == 0, \\\"Strings: hex length insufficient\\\");\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\"},\"node_modules/@openzeppelin/contracts-4.8.3/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n enum Rounding {\\n Down, // Toward negative infinity\\n Up, // Toward infinity\\n Zero // Toward zero\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a \\u003e b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a \\u003c b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a \\u0026 b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds up instead\\n * of rounding down.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n * with further edits by Uniswap Labs also under MIT license.\\n */\\n function mulDiv(\\n uint256 x,\\n uint256 y,\\n uint256 denominator\\n ) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod0 := mul(x, y)\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n require(denominator \\u003e prod1);\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always \\u003e= 1.\\n // See https://cs.stackexchange.com/q/138556/92363.\\n\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\n uint256 twos = denominator \\u0026 (~denominator + 1);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n // in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(\\n uint256 x,\\n uint256 y,\\n uint256 denominator,\\n Rounding rounding\\n ) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (rounding == Rounding.Up \\u0026\\u0026 mulmod(x, y, denominator) \\u003e 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) \\u003c= a \\u003c 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) \\u003c= a \\u003c 2**(log2(a) + 1)`\\n // → `sqrt(2**k) \\u003c= sqrt(a) \\u003c sqrt(2**(k+1))`\\n // → `2**(k/2) \\u003c= sqrt(a) \\u003c 2**((k+1)/2) \\u003c= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 \\u003c\\u003c (log2(a) \\u003e\\u003e 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n result = (result + a / result) \\u003e\\u003e 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 result * result \\u003c a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value \\u003e\\u003e 128 \\u003e 0) {\\n value \\u003e\\u003e= 128;\\n result += 128;\\n }\\n if (value \\u003e\\u003e 64 \\u003e 0) {\\n value \\u003e\\u003e= 64;\\n result += 64;\\n }\\n if (value \\u003e\\u003e 32 \\u003e 0) {\\n value \\u003e\\u003e= 32;\\n result += 32;\\n }\\n if (value \\u003e\\u003e 16 \\u003e 0) {\\n value \\u003e\\u003e= 16;\\n result += 16;\\n }\\n if (value \\u003e\\u003e 8 \\u003e 0) {\\n value \\u003e\\u003e= 8;\\n result += 8;\\n }\\n if (value \\u003e\\u003e 4 \\u003e 0) {\\n value \\u003e\\u003e= 4;\\n result += 4;\\n }\\n if (value \\u003e\\u003e 2 \\u003e 0) {\\n value \\u003e\\u003e= 2;\\n result += 2;\\n }\\n if (value \\u003e\\u003e 1 \\u003e 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 1 \\u003c\\u003c result \\u003c value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value \\u003e= 10**64) {\\n value /= 10**64;\\n result += 64;\\n }\\n if (value \\u003e= 10**32) {\\n value /= 10**32;\\n result += 32;\\n }\\n if (value \\u003e= 10**16) {\\n value /= 10**16;\\n result += 16;\\n }\\n if (value \\u003e= 10**8) {\\n value /= 10**8;\\n result += 8;\\n }\\n if (value \\u003e= 10**4) {\\n value /= 10**4;\\n result += 4;\\n }\\n if (value \\u003e= 10**2) {\\n value /= 10**2;\\n result += 2;\\n }\\n if (value \\u003e= 10**1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 10**result \\u003c value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256, rounded down, of a positive value.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value \\u003e\\u003e 128 \\u003e 0) {\\n value \\u003e\\u003e= 128;\\n result += 16;\\n }\\n if (value \\u003e\\u003e 64 \\u003e 0) {\\n value \\u003e\\u003e= 64;\\n result += 8;\\n }\\n if (value \\u003e\\u003e 32 \\u003e 0) {\\n value \\u003e\\u003e= 32;\\n result += 4;\\n }\\n if (value \\u003e\\u003e 16 \\u003e 0) {\\n value \\u003e\\u003e= 16;\\n result += 2;\\n }\\n if (value \\u003e\\u003e 8 \\u003e 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (rounding == Rounding.Up \\u0026\\u0026 1 \\u003c\\u003c (result * 8) \\u003c value ? 1 : 0);\\n }\\n }\\n}\\n\"}}}" diff --git a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go b/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go deleted file mode 100644 index f7e2217f71..0000000000 --- a/chains/evm/gobindings/generated/v1_6_0/mock_usdc_token_transmitter/mock_usdc_token_transmitter_zksync.go +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. -package mock_usdc_token_transmitter - -import ( - "context" - "crypto/rand" - "fmt" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/zksync-sdk/zksync2-go/accounts" - "github.com/zksync-sdk/zksync2-go/clients" - "github.com/zksync-sdk/zksync2-go/types" -) - -func DeployMockE2EUSDCTransmitterZk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *MockE2EUSDCTransmitter, error) { - var calldata []byte - if len(args) > 0 { - abi, err := MockE2EUSDCTransmitterMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - calldata, err = abi.Pack("", args...) - if err != nil { - return common.Address{}, nil, nil, err - } - } - - salt := make([]byte, 32) - n, err := rand.Read(salt) - if err != nil { - return common.Address{}, nil, nil, err - } - if n != len(salt) { - return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) - } - - txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ - Bytecode: ZkBytecode, - Calldata: calldata, - Salt: salt, - }) - if err != nil { - return common.Address{}, nil, nil, err - } - - receipt, err := client.WaitMined(context.Background(), txHash) - if err != nil { - return common.Address{}, nil, nil, err - } - - address := receipt.ContractAddress - contract, err := NewMockE2EUSDCTransmitter(address, backend) - if err != nil { - return common.Address{}, nil, nil, err - } - - return address, receipt, contract, nil -} - -var ZkBytecode = common.Hex2Bytes("0001000000000002000b00000000000200000000000103550000006003100270000000be033001970000000100200190000000200000c13d0000008002000039000000400020043f000000040030008c000002bc0000413d000000000201043b000000e002200270000000c30020009c0000005d0000213d000000c90020009c000000740000213d000000cc0020009c000000b10000613d000000cd0020009c000002bc0000c13d0000000001000416000000000001004b000002bc0000c13d0000000001000412000b00000001001d000a00000000003d0000800501000039000000440300003900000000040004150000000b0440008a0000006d0000013d0000000002000416000000000002004b000002bc0000c13d0000001f02300039000000bf02200197000000e002200039000000400020043f0000001f0430018f000000c005300198000000e002500039000000310000613d000000e006000039000000000701034f000000007807043c0000000006860436000000000026004b0000002d0000c13d000000000004004b0000003e0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600030008c000002bc0000413d000000e00100043d000000be0010009c000002bc0000213d000001000200043d000000be0020009c000002bc0000213d000001200300043d000000c10030009c000002bc0000213d000000800010043f000000a00020043f000000000500041a000000e70450019700000001044001bf000000000040041b000000c00030043f0000014000000443000001600010044300000020010000390000018000100443000001a0002004430000004002000039000001c000200443000001e000300443000001000010044300000003010000390000012000100443000000c201000041000002f50001042e000000c40020009c000000820000213d000000c70020009c0000015e0000613d000000c80020009c000002bc0000c13d0000000001000416000000000001004b000002bc0000c13d0000000001000412000900000001001d000800200000003d000080050100003900000044030000390000000004000415000000090440008a0000000504400210000000d10200004102f402d10000040f000000be01100197000000800010043f000000dd01000041000002f50001042e000000ca0020009c000001670000613d000000cb0020009c000002bc0000c13d0000000001000416000000000001004b000002bc0000c13d000000000100041a000000ff001001900000000001000039000000010100c039000000800010043f000000dd01000041000002f50001042e000000c50020009c000001da0000613d000000c60020009c000002bc0000c13d000000840030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000402100370000000000602043b000000be0060009c000002bc0000213d0000004402100370000000000502043b0000002402100370000000000702043b0000006402100370000000000202043b000000ce0020009c000002bc0000213d0000002304200039000000000034004b000002bc0000813d0000000408200039000000000181034f000000000401043b000000ce0040009c000002bc0000213d00000000014200190000002401100039000000000031004b000002bc0000213d000000000005004b000001ec0000c13d000000d901000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f000000da01000041000000c40010043f000000db01000041000000e40010043f000000dc01000041000002f600010430000000640030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000402100370000000000502043b000000be0050009c000002bc0000213d0000002402100370000000000602043b0000004402100370000000000202043b000000ce0020009c000002bc0000213d0000002304200039000000000034004b000002bc0000813d0000000407200039000000000171034f000000000401043b000000ce0040009c000002bc0000213d00000000014200190000002401100039000000000031004b000002bc0000213d000000000100041a0000000808100270000000ce03800197000000ce0030009c000001f10000613d000000cf0110019700000008023002100000010002200039000000d002200197000000000112019f000000000010041b000000000006004b000002060000613d000300000008001d000400000007001d000500000006001d000600000005001d000700000004001d000200000003001d000000d10100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a00010043f000000d101000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a40010043f0000000601000029000000e001100210000000a80010043f0000000301000029000000c001100210000000ac0010043f0000000001000411000000b40010043f0000000501000029000000d40010043f0000000702000029000000e8032001980000001f0420018f000001140230003900000004050000290000002005500039000000f40000043f00000000055003670000011b0000613d0000011406000039000000000705034f000000007807043c0000000006860436000000000026004b000001170000c13d000000000004004b000001280000613d000000000335034f0000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000703000029000001140230003900000000000204350000007402300039000000800020043f000000b302300039000000e804200197000000e20040009c000002630000813d0000008002400039000000400020043f00000020030000390000000000320435000000a005400039000000800300043d0000000000350435000000c004400039000000000003004b000001430000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000035004b0000013c0000413d0000001f05300039000000e8015001970000000003430019000000000003043500000040011000390000006003100210000000d40010009c000000d503008041000000be0020009c000000be020080410000004001200210000000000113019f0000000002000414000000be0020009c000000be02008041000000c0022002100000000001210019000000d60110009a0000800d020000390000000103000039000000d70400004102f402ea0000040f0000000100200190000002bc0000613d000000400100043d0000000202000029000002b60000013d0000000001000416000000000001004b000002bc0000c13d000000000100041a0000000801100270000000ce01100197000000800010043f000000dd01000041000002f50001042e000000440030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000402100370000000000402043b000000ce0040009c000002bc0000213d0000002302400039000000000032004b000002bc0000813d0000000406400039000000000261034f000000000202043b000000ce0020009c000002bc0000213d00000000042400190000002404400039000000000034004b000002bc0000213d0000002404100370000000000404043b000000ce0040009c000002bc0000213d0000002305400039000000000035004b000002bc0000813d0000000405400039000000000151034f000000000101043b000000ce0010009c000002bc0000213d000000b80020008c000002bc0000413d00000000011400190000002401100039000000000031004b000002bc0000213d000700000006001d000000d101000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000de020000410000000000200443000000c101100197000600000001001d00000004001004430000000001000414000000be0010009c000000be01008041000000c001100210000000df011001c7000080020200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000000001004b0000000702000029000002bc0000613d000000400400043d000000e0010000410000000000140435000000c4012000390000000001100367000000000101043b000000240240003900000001030000390000000000320435000000600110027000000004024000390000000000120435000000be0040009c000700000004001d000000be01000041000000000104401900000040011002100000000002000414000000be0020009c000000be02008041000000c002200210000000000112019f000000e1011001c7000000060200002902f402ea0000040f00000001002001900000026a0000613d0000000701000029000000000200001902f402be0000040f000000000100041a000000ff001001900000000001000039000000010100c039000000400200043d0000000000120435000000be0020009c000000be020080410000004001200210000000d8011001c7000002f50001042e000000240030008c000002bc0000413d0000000002000416000000000002004b000002bc0000c13d0000000401100370000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b000002bc0000c13d000000000300041a000000e702300197000000000112019f000000000010041b0000000001000019000002f50001042e000000000100041a0000000803100270000000ce02300197000000ce0020009c000001f70000c13d000000e301000041000000000010043f0000001101000039000000040010043f000000e401000041000002f600010430000200000003001d000300000008001d000500000006001d000600000005001d000700000004001d000000cf01100197000100000002001d00000008022002100000010002200039000000d002200197000000000112019f000000000010041b000400000007001d000000000007004b000002100000c13d000000d901000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f000000e501000041000000c40010043f000000e601000041000002f600010430000000d10100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a00010043f000000d101000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000000be0010009c000000be01008041000000c001100210000000d2011001c7000080050200003902f402ef0000040f0000000100200190000002690000613d000000000101043b000000e001100210000000a40010043f0000000501000029000000e001100210000000a80010043f0000000201000029000000c001100210000000ac0010043f0000000001000411000000b40010043f0000000401000029000000d40010043f0000000601000029000000f40010043f0000000702000029000000e8032001980000001f0420018f00000114023000390000000305000029000000200550003900000000055003670000024d0000613d0000011406000039000000000705034f000000007807043c0000000006860436000000000026004b000002490000c13d000000000004004b0000025a0000613d000000000335034f0000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000703000029000001140230003900000000000204350000007402300039000000800020043f000000b302300039000000e804200197000000d30040009c0000028a0000a13d000000e301000041000000000010043f0000004101000039000000040010043f000000e401000041000002f600010430000000000001042f00000060061002700000001f0460018f000000c005600198000000400200043d0000000003520019000002760000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000002720000c13d000000be06600197000000000004004b000002840000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000000be0020009c000000be020080410000004002200210000000000112019f000002f6000104300000008002400039000000400020043f00000020030000390000000000320435000000a005400039000000800300043d0000000000350435000000c004400039000000000003004b0000029c0000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000035004b000002950000413d0000001f05300039000000e8015001970000000003430019000000000003043500000040011000390000006003100210000000d40010009c000000d503008041000000be0020009c000000be020080410000004001200210000000000113019f0000000002000414000000be0020009c000000be02008041000000c0022002100000000001210019000000d60110009a0000800d020000390000000103000039000000d70400004102f402ea0000040f0000000100200190000002bc0000613d000000400100043d00000001020000290000000000210435000000be0010009c000000be010080410000004001100210000000d8011001c7000002f50001042e0000000001000019000002f6000104300000001f02200039000000e8022001970000000001120019000000000021004b00000000020000390000000102004039000000ce0010009c000002ca0000213d0000000100200190000002ca0000c13d000000400010043f000000000001042d000000e301000041000000000010043f0000004101000039000000040010043f000000e401000041000002f600010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b000002d40000413d000000be0030009c000000be0300804100000060013002100000000002000414000000be0020009c000000be02008041000000c002200210000000000112019f000000e9011001c7000000000205001902f402ef0000040f0000000100200190000002e90000613d000000000101043b000000000001042d000000000001042f000002ed002104210000000102000039000000000001042d0000000002000019000000000001042d000002f2002104230000000102000039000000000001042d0000000002000019000000000001042d000002f400000432000002f50001042e000002f600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000200000000000000000000000000000100000001000000000000000000000000000000000000000000000000000000000000000000000000008371744d000000000000000000000000000000000000000000000000000000009e31ddb5000000000000000000000000000000000000000000000000000000009e31ddb600000000000000000000000000000000000000000000000000000000f7259a75000000000000000000000000000000000000000000000000000000008371744e000000000000000000000000000000000000000000000000000000008d3638f40000000000000000000000000000000000000000000000000000000057ecfd270000000000000000000000000000000000000000000000000000000057ecfd28000000000000000000000000000000000000000000000000000000007a642935000000000000000000000000000000000000000000000000000000000ba469bc0000000000000000000000000000000000000000000000000000000054fd4d50000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff0000000000000000000000000000000000000000000000ffffffffffffffff00310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000ffffffff000000000000000000000000fe000000000000000000000000000000000000000000000000000000000000008c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036000000000000000000000000000000000000002000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000044657374696e6174696f6e2063616c6c6572206d757374206265206e6f6e7a65726f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000000000000000000000000000000000000200000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000040c10f19000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff804e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000526563697069656e74206d757374206265206e6f6e7a65726f000000000000000000000000000000000000000000000000000064000000800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0020000020000000000000000000000000000000000000000000000000000000013fc59561f1f4bc22bdc9cd2ea02f354a719b9eccc64738b49f75920829280b4") From 7b19576027ff7036b7034ce3f922e8c1da6dbf7a Mon Sep 17 00:00:00 2001 From: Balamurali Gopalswami Date: Wed, 21 Jan 2026 12:21:33 -0500 Subject: [PATCH 05/13] review comments --- .../operations/ping_pong_dapp/ping_pong_dapp.go | 0 .../factory_burn_mint_erc20/factory_burn_mint_erc20.go | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename chains/evm/deployment/{v1_6_0 => v1_5_0}/operations/ping_pong_dapp/ping_pong_dapp.go (100%) rename chains/evm/deployment/{v1_0_0 => v1_5_1}/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go (95%) diff --git a/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go b/chains/evm/deployment/v1_5_0/operations/ping_pong_dapp/ping_pong_dapp.go similarity index 100% rename from chains/evm/deployment/v1_6_0/operations/ping_pong_dapp/ping_pong_dapp.go rename to chains/evm/deployment/v1_5_0/operations/ping_pong_dapp/ping_pong_dapp.go diff --git a/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go b/chains/evm/deployment/v1_5_1/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go similarity index 95% rename from chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go rename to chains/evm/deployment/v1_5_1/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go index c1a42c592d..8095238134 100644 --- a/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go +++ b/chains/evm/deployment/v1_5_1/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go @@ -24,11 +24,11 @@ type ConstructorArgs struct { var Deploy = contract.NewDeploy(contract.DeployParams[ConstructorArgs]{ Name: "factory_burn_mint_erc20:deploy", - Version: utils.Version_1_0_0, + Version: utils.Version_1_5_1, Description: "Deploys the FactoryBurnMintERC20 token contract", ContractMetadata: factory_burn_mint_erc20.FactoryBurnMintERC20MetaData, BytecodeByTypeAndVersion: map[string]contract.Bytecode{ - cldf_deployment.NewTypeAndVersion(ContractType, *utils.Version_1_0_0).String(): { + cldf_deployment.NewTypeAndVersion(ContractType, *utils.Version_1_5_1).String(): { EVM: common.FromHex(factory_burn_mint_erc20.FactoryBurnMintERC20Bin), }, }, From e3ef7e062cbf0ae6714fa9ba5dcda96e3d24c663 Mon Sep 17 00:00:00 2001 From: Balamurali Gopalswami Date: Wed, 21 Jan 2026 12:46:29 -0500 Subject: [PATCH 06/13] Replace factory bnmerc20 with bnmerc20 --- .../v1_6_4/changesets/set_domains_test.go | 36 ++++++------ .../usdc_token_pool_cctp_v2_deploy_test.go | 56 +++++++++---------- 2 files changed, 45 insertions(+), 47 deletions(-) diff --git a/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go b/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go index 09b7395bc8..6232a795a2 100644 --- a/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/set_domains_test.go @@ -19,8 +19,8 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_messenger" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_transmitter" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/cctp_message_transmitter_proxy" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/factory_burn_mint_erc20" usdc_token_pool_cctp_v2_bindings "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_4/usdc_token_pool_cctp_v2" + "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc20" ) func TestSetDomainsSequence(t *testing.T) { @@ -34,18 +34,17 @@ func TestSetDomainsSequence(t *testing.T) { evmChain := e.BlockChains.EVMChains()[chainSelector] - // Deploy a real ERC20 token using factory_burn_mint_erc20 - tokenAddress, tx, _, err := factory_burn_mint_erc20.DeployFactoryBurnMintERC20( + // Deploy a mock USDC token with 6 decimals (USDC pool validates decimals) + tokenAddress, tx, _, err := burn_mint_erc20.DeployBurnMintERC20( evmChain.DeployerKey, evmChain.Client, - "TestToken", - "TEST", - 6, - big.NewInt(0), // maxSupply (0 = unlimited) - big.NewInt(0), // preMint - evmChain.DeployerKey.From, // newOwner + "TestUSDC", + "USDC", + 6, // decimals - must be 6 for USDC pool compatibility + big.NewInt(0), // maxSupply (0 = unlimited) + big.NewInt(0), // preMint ) - require.NoError(t, err, "Failed to deploy FactoryBurnMintERC20 token") + require.NoError(t, err, "Failed to deploy mock USDC token") _, err = evmChain.Confirm(tx) require.NoError(t, err, "Failed to confirm token deployment transaction") @@ -159,18 +158,17 @@ func TestSetDomainsChangeset_MultipleAddressesOnSameChain(t *testing.T) { evmChain := e.BlockChains.EVMChains()[chainSelector] - // Deploy a real ERC20 token using factory_burn_mint_erc20 - tokenAddress, tx, _, err := factory_burn_mint_erc20.DeployFactoryBurnMintERC20( + // Deploy a mock USDC token with 6 decimals (USDC pool validates decimals) + tokenAddress, tx, _, err := burn_mint_erc20.DeployBurnMintERC20( evmChain.DeployerKey, evmChain.Client, - "TestToken", - "TEST6", - 6, - big.NewInt(0), - big.NewInt(0), - evmChain.DeployerKey.From, + "TestUSDC", + "USDC", + 6, // decimals - must be 6 for USDC pool compatibility + big.NewInt(0), // maxSupply (0 = unlimited) + big.NewInt(0), // preMint ) - require.NoError(t, err, "Failed to deploy FactoryBurnMintERC20 token") + require.NoError(t, err, "Failed to deploy mock USDC token") _, err = evmChain.Confirm(tx) require.NoError(t, err, "Failed to confirm token deployment transaction") diff --git a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go index 5fb5f1803e..da32c5fab2 100644 --- a/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/usdc_token_pool_cctp_v2_deploy_test.go @@ -19,13 +19,13 @@ import ( usdc_token_pool_cctp_v2_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/usdc_token_pool_cctp_v2" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_messenger" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/latest/mock_usdc_token_transmitter" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/factory_burn_mint_erc20" cctp_message_transmitter_proxy_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/cctp_message_transmitter_proxy" usdc_token_pool_cctp_v2_binding "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_4/usdc_token_pool_cctp_v2" "github.com/smartcontractkit/chainlink-ccip/deployment/deploy" "github.com/smartcontractkit/chainlink-ccip/deployment/testhelpers" deploymentutils "github.com/smartcontractkit/chainlink-ccip/deployment/utils" "github.com/smartcontractkit/chainlink-ccip/deployment/utils/mcms" + "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc20" ) func TestUSDCTokenPoolCCTPV2DeployChangeset_ProvidedTokenAddress(t *testing.T) { @@ -39,19 +39,19 @@ func TestUSDCTokenPoolCCTPV2DeployChangeset_ProvidedTokenAddress(t *testing.T) { e.DataStore = ds.Seal() evmChain := e.BlockChains.EVMChains()[chainSelector] - tokenAddress, tx, _, err := factory_burn_mint_erc20.DeployFactoryBurnMintERC20( + // Deploy a mock USDC token with 6 decimals (USDC pool validates decimals) + tokenAddress, tx, _, err := burn_mint_erc20.DeployBurnMintERC20( evmChain.DeployerKey, evmChain.Client, - "TestToken", - "TEST6", - 6, - big.NewInt(0), // maxSupply (0 = unlimited) - big.NewInt(0), // preMint - evmChain.DeployerKey.From, // newOwner + "TestUSDC", + "USDC", + 6, // decimals - must be 6 for USDC pool compatibility + big.NewInt(0), // maxSupply (0 = unlimited) + big.NewInt(0), // preMint ) - require.NoError(t, err, "Failed to deploy FactoryBurnMintERC20 token") + require.NoError(t, err, "Failed to deploy mock USDC token") _, err = evmChain.Confirm(tx) - require.NoError(t, err, "Failed to confirm FactoryBurnMintERC20 token deployment transaction") + require.NoError(t, err, "Failed to confirm token deployment transaction") // Add the USDCToken address to the datastore so that it can be used in the changeset err = ds.Addresses().Add(datastore.AddressRef{ @@ -230,19 +230,19 @@ func TestUSDCTokenPoolCCTPV2DeployChangeset_StoredTokenAddress(t *testing.T) { e.DataStore = ds.Seal() evmChain := e.BlockChains.EVMChains()[chainSelector] - tokenAddress, tx, _, err := factory_burn_mint_erc20.DeployFactoryBurnMintERC20( + // Deploy a mock USDC token with 6 decimals (USDC pool validates decimals) + tokenAddress, tx, _, err := burn_mint_erc20.DeployBurnMintERC20( evmChain.DeployerKey, evmChain.Client, - "TestToken", - "TEST6", - 6, - big.NewInt(0), // maxSupply (0 = unlimited) - big.NewInt(0), // preMint - evmChain.DeployerKey.From, // newOwner + "TestUSDC", + "USDC", + 6, // decimals - must be 6 for USDC pool compatibility + big.NewInt(0), // maxSupply (0 = unlimited) + big.NewInt(0), // preMint ) - require.NoError(t, err, "Failed to deploy FactoryBurnMintERC20 token") + require.NoError(t, err, "Failed to deploy mock USDC token") _, err = evmChain.Confirm(tx) - require.NoError(t, err, "Failed to confirm FactoryBurnMintERC20 token deployment transaction") + require.NoError(t, err, "Failed to confirm token deployment transaction") err = ds.Addresses().Add(datastore.AddressRef{ Type: datastore.ContractType("USDCToken"), Version: semver.MustParse("1.0.0"), @@ -419,19 +419,19 @@ func TestUSDCTokenPoolCCTPV2DeployChangeset_InvalidTokenAddress(t *testing.T) { e.DataStore = ds.Seal() evmChain := e.BlockChains.EVMChains()[chainSelector] - tokenAddress, tx, _, err := factory_burn_mint_erc20.DeployFactoryBurnMintERC20( + // Deploy a mock USDC token with 6 decimals (USDC pool validates decimals) + tokenAddress, tx, _, err := burn_mint_erc20.DeployBurnMintERC20( evmChain.DeployerKey, evmChain.Client, - "TestToken", - "TEST6", - 6, - big.NewInt(0), // maxSupply (0 = unlimited) - big.NewInt(0), // preMint - evmChain.DeployerKey.From, // newOwner + "TestUSDC", + "USDC", + 6, // decimals - must be 6 for USDC pool compatibility + big.NewInt(0), // maxSupply (0 = unlimited) + big.NewInt(0), // preMint ) - require.NoError(t, err, "Failed to deploy FactoryBurnMintERC20 token") + require.NoError(t, err, "Failed to deploy mock USDC token") _, err = evmChain.Confirm(tx) - require.NoError(t, err, "Failed to confirm FactoryBurnMintERC20 token deployment transaction") + require.NoError(t, err, "Failed to confirm token deployment transaction") err = ds.Addresses().Add(datastore.AddressRef{ Type: "USDCToken", Version: semver.MustParse("1.0.0"), From 1e7252296053e4768182f3a6d9c1e534aec2e047 Mon Sep 17 00:00:00 2001 From: Balamurali Gopalswami Date: Wed, 21 Jan 2026 12:57:46 -0500 Subject: [PATCH 07/13] more test has factory bnmerc20 --- .../v1_6_4/changesets/apply_chain_updates_test.go | 7 +++---- .../v1_6_4/changesets/modify_remote_pools_test.go | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go b/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go index e29d6b1965..4485b6fc58 100644 --- a/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/apply_chain_updates_test.go @@ -16,8 +16,8 @@ import ( token_pool_ops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_4/operations/token_pool" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/burn_mint_token_pool" token_pool_bindings "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/token_pool" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_2/factory_burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/deployment/utils/mcms" + "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc20" ) func TestApplyChainUpdatesChangeset(t *testing.T) { @@ -36,7 +36,7 @@ func TestApplyChainUpdatesChangeset(t *testing.T) { evmChain := e.BlockChains.EVMChains()[chainSelector] // Deploy a mock BurnMintERC20 token contract for use as the pooled token in the BurnMintTokenPool - burnMintERC20Addr, tx, _, err := factory_burn_mint_erc20.DeployFactoryBurnMintERC20( + burnMintERC20Addr, tx, _, err := burn_mint_erc20.DeployBurnMintERC20( evmChain.DeployerKey, evmChain.Client, "TestBurnMintToken", // name @@ -44,9 +44,8 @@ func TestApplyChainUpdatesChangeset(t *testing.T) { 18, // decimals big.NewInt(0), // max supply big.NewInt(0), // pre mint - common.Address{1}, // new owner ) - require.NoError(t, err, "Failed to deploy") + require.NoError(t, err, "Failed to deploy BurnMintERC20 token") _, err = evmChain.Confirm(tx) require.NoError(t, err, "Failed to confirm BurnMintERC20 deployment transaction") diff --git a/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go b/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go index 514c4c73fe..09cb9e0a99 100644 --- a/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go +++ b/chains/evm/deployment/v1_6_4/changesets/modify_remote_pools_test.go @@ -21,8 +21,7 @@ import ( token_pool_bindings "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/token_pool" "github.com/ethereum/go-ethereum/accounts/abi/bind" - - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/factory_burn_mint_erc20" + "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc20" ) func TestModifyRemotePoolsChangeset(t *testing.T) { @@ -41,7 +40,7 @@ func TestModifyRemotePoolsChangeset(t *testing.T) { evmChain := e.BlockChains.EVMChains()[chainSelector] // Deploy a mock BurnMintERC20 token contract for use as the pooled token in the BurnMintTokenPool - burnMintERC20Addr, tx, _, err := factory_burn_mint_erc20.DeployFactoryBurnMintERC20( + burnMintERC20Addr, tx, _, err := burn_mint_erc20.DeployBurnMintERC20( evmChain.DeployerKey, evmChain.Client, "TestBurnMintToken", // name @@ -49,8 +48,8 @@ func TestModifyRemotePoolsChangeset(t *testing.T) { 18, // decimals big.NewInt(0), // max supply big.NewInt(0), // pre mint - common.Address{1}, // new owner ) + require.NoError(t, err, "Failed to deploy BurnMintERC20 token") _, err = evmChain.Confirm(tx) require.NoError(t, err, "Failed to confirm BurnMintERC20 deployment transaction") From 169fdb13b141f9cc22be656f82591d30229ac8a4 Mon Sep 17 00:00:00 2001 From: Balamurali Gopalswami Date: Wed, 21 Jan 2026 13:57:05 -0500 Subject: [PATCH 08/13] Remove option to deploy factory_burn_mint_erc20 directly --- .../factory_burn_mint_erc20.go | 36 ------------------- .../evm/deployment/v1_6_0/sequences/token.go | 20 ----------- 2 files changed, 56 deletions(-) delete mode 100644 chains/evm/deployment/v1_5_1/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go diff --git a/chains/evm/deployment/v1_5_1/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go b/chains/evm/deployment/v1_5_1/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go deleted file mode 100644 index 8095238134..0000000000 --- a/chains/evm/deployment/v1_5_1/operations/factory_burn_mint_erc20/factory_burn_mint_erc20.go +++ /dev/null @@ -1,36 +0,0 @@ -package factory_burn_mint_erc20 - -import ( - "math/big" - - "github.com/ethereum/go-ethereum/common" - - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_1/factory_burn_mint_erc20" - "github.com/smartcontractkit/chainlink-ccip/deployment/utils" - cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment" -) - -var ContractType cldf_deployment.ContractType = "FactoryBurnMintERC20Token" - -type ConstructorArgs struct { - Name string - Symbol string - Decimals uint8 - MaxSupply *big.Int - PreMint *big.Int - NewOwner common.Address -} - -var Deploy = contract.NewDeploy(contract.DeployParams[ConstructorArgs]{ - Name: "factory_burn_mint_erc20:deploy", - Version: utils.Version_1_5_1, - Description: "Deploys the FactoryBurnMintERC20 token contract", - ContractMetadata: factory_burn_mint_erc20.FactoryBurnMintERC20MetaData, - BytecodeByTypeAndVersion: map[string]contract.Bytecode{ - cldf_deployment.NewTypeAndVersion(ContractType, *utils.Version_1_5_1).String(): { - EVM: common.FromHex(factory_burn_mint_erc20.FactoryBurnMintERC20Bin), - }, - }, - Validate: func(args ConstructorArgs) error { return nil }, -}) diff --git a/chains/evm/deployment/v1_6_0/sequences/token.go b/chains/evm/deployment/v1_6_0/sequences/token.go index 9be009571a..8c54bcf7fb 100644 --- a/chains/evm/deployment/v1_6_0/sequences/token.go +++ b/chains/evm/deployment/v1_6_0/sequences/token.go @@ -12,7 +12,6 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20_with_drip" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/erc20" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20" tokenapi "github.com/smartcontractkit/chainlink-ccip/deployment/tokens" common_utils "github.com/smartcontractkit/chainlink-ccip/deployment/utils" "github.com/smartcontractkit/chainlink-ccip/deployment/utils/sequences" @@ -41,7 +40,6 @@ func tokenSupportsAdminRole(tokenType deployment.ContractType) bool { func tokenSupportsCCIPAdmin(tokenType deployment.ContractType) bool { switch tokenType { case burn_mint_erc20.ContractType, - factory_burn_mint_erc20.ContractType, burn_mint_erc20_with_drip.ContractType: return true default: @@ -92,24 +90,6 @@ var DeployToken = cldf_ops.NewSequence( return sequences.OnChainOutput{}, fmt.Errorf("failed to deploy BurnMintERC20 token: %w", err) } - case factory_burn_mint_erc20.ContractType: - tokenRef, err = contract.MaybeDeployContract(b, factory_burn_mint_erc20.Deploy, chain, contract.DeployInput[factory_burn_mint_erc20.ConstructorArgs]{ - TypeAndVersion: deployment.NewTypeAndVersion(factory_burn_mint_erc20.ContractType, *common_utils.Version_1_0_0), - ChainSelector: chain.Selector, - Args: factory_burn_mint_erc20.ConstructorArgs{ - Name: input.Name, - Symbol: input.Symbol, - Decimals: input.Decimals, - MaxSupply: input.Supply, - PreMint: input.PreMint, // pre-mint given amount to deployer address. Not advised to use against mainnet. - NewOwner: common.HexToAddress(input.ExternalAdmin[0]), // Owner of the token contract (converted from chain-agnostic string) and we expect to have only one address given - }, - Qualifier: &qualifier, - }, nil) - if err != nil { - return sequences.OnChainOutput{}, fmt.Errorf("failed to deploy FactoryBurnMintERC20 token: %w", err) - } - case burn_mint_erc20_with_drip.ContractType: tokenRef, err = contract.MaybeDeployContract(b, burn_mint_erc20_with_drip.Deploy, chain, contract.DeployInput[burn_mint_erc20_with_drip.ConstructorArgs]{ TypeAndVersion: deployment.NewTypeAndVersion(burn_mint_erc20_with_drip.ContractType, *common_utils.Version_1_0_0), From c4b392d4d6a4264d55d7f45559f68198f56d6ff5 Mon Sep 17 00:00:00 2001 From: Balamurali Gopalswami Date: Wed, 21 Jan 2026 14:56:28 -0500 Subject: [PATCH 09/13] lint fix --- chains/evm/deployment/go.mod | 2 +- chains/evm/deployment/go.sum | 4 ++-- chains/evm/deployment/v1_6_0/sequences/adapter.go | 2 +- .../v1_6_0/sequences/deploy_chain_contracts.go | 5 +++-- .../evm/deployment/v1_6_0/sequences/token_test.go | 13 ------------- devenv/go.mod | 2 +- devenv/go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- 9 files changed, 13 insertions(+), 25 deletions(-) diff --git a/chains/evm/deployment/go.mod b/chains/evm/deployment/go.mod index 0c9dac6266..2d10e9ba83 100644 --- a/chains/evm/deployment/go.mod +++ b/chains/evm/deployment/go.mod @@ -23,7 +23,7 @@ require ( github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96 github.com/smartcontractkit/chainlink-deployments-framework v0.74.2 github.com/smartcontractkit/chainlink-evm v0.3.3 - github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 + github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd github.com/smartcontractkit/mcms v0.31.1 github.com/stretchr/testify v1.11.1 github.com/zksync-sdk/zksync2-go v1.1.1-0.20250620124214-2c742ee399c6 diff --git a/chains/evm/deployment/go.sum b/chains/evm/deployment/go.sum index fb084d9371..30e0b0c0f1 100644 --- a/chains/evm/deployment/go.sum +++ b/chains/evm/deployment/go.sum @@ -692,8 +692,8 @@ github.com/smartcontractkit/chainlink-deployments-framework v0.74.2 h1:OP4TAlIz8 github.com/smartcontractkit/chainlink-deployments-framework v0.74.2/go.mod h1:YHsMLM5bS9rhvXssmsJtvhmF4tDAm/kdmQi+ws/PLEw= github.com/smartcontractkit/chainlink-evm v0.3.3 h1:JqwyJEtnNEUaoQQPoOBTT4sn2lpdIZHtf0Hr0M60YDw= github.com/smartcontractkit/chainlink-evm v0.3.3/go.mod h1:q0ZBvaoisNaqC8NcMYWNPTjee88nQktDEeJMQHq3hVI= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 h1:SRMNzCdQnF2x6+QlL5YSzVeWyJb/BXqMrg+zSGaBPVg= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3/go.mod h1:3Lsp38qxen9PABVF+O5eocveQev+hyo9HLAgRodBD4Q= +github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd h1:sK+pK4epQp20yQ7XztwrVgkTkRAr4FY+TvEegW8RuQk= +github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd/go.mod h1:7Jlt72+V9891y3LnGwHzmQwt9tfEGYryRKiGlQHo/o8= github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9 h1:QRWXJusIj/IRY5Pl3JclNvDre0cZPd/5NbILwc4RV2M= github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q= github.com/smartcontractkit/chainlink-protos/job-distributor v0.17.0 h1:xHPmFDhff7QpeFxKsZfk+24j4AlnQiFjjRh5O87Peu4= diff --git a/chains/evm/deployment/v1_6_0/sequences/adapter.go b/chains/evm/deployment/v1_6_0/sequences/adapter.go index 0d4ebc7651..640eb75f60 100644 --- a/chains/evm/deployment/v1_6_0/sequences/adapter.go +++ b/chains/evm/deployment/v1_6_0/sequences/adapter.go @@ -12,10 +12,10 @@ import ( link "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/link" weth "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/weth" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_2_0/operations/router" + pingpongdapp "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_5_0/operations/ping_pong_dapp" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/fee_quoter" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/offramp" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/onramp" - pingpongdapp "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp" tokensapi "github.com/smartcontractkit/chainlink-ccip/deployment/tokens" datastore_utils "github.com/smartcontractkit/chainlink-ccip/deployment/utils/datastore" cldf_chain "github.com/smartcontractkit/chainlink-deployments-framework/chain" diff --git a/chains/evm/deployment/v1_6_0/sequences/deploy_chain_contracts.go b/chains/evm/deployment/v1_6_0/sequences/deploy_chain_contracts.go index 32dd90e32f..47dcdfe444 100644 --- a/chains/evm/deployment/v1_6_0/sequences/deploy_chain_contracts.go +++ b/chains/evm/deployment/v1_6_0/sequences/deploy_chain_contracts.go @@ -8,6 +8,8 @@ import ( "github.com/Masterminds/semver/v3" "github.com/ethereum/go-ethereum/common" + mcms_types "github.com/smartcontractkit/mcms/types" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract" "github.com/smartcontractkit/chainlink-deployments-framework/chain" cldf_chain "github.com/smartcontractkit/chainlink-deployments-framework/chain" @@ -15,19 +17,18 @@ import ( "github.com/smartcontractkit/chainlink-deployments-framework/deployment" "github.com/smartcontractkit/chainlink-deployments-framework/operations" cldf_ops "github.com/smartcontractkit/chainlink-deployments-framework/operations" - mcms_types "github.com/smartcontractkit/mcms/types" evm1_0_0 "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/adapters" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/link" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/rmn_proxy" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/weth" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_2_0/operations/router" + pingpongdappops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_5_0/operations/ping_pong_dapp" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_5_0/operations/token_admin_registry" fqops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/fee_quoter" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/nonce_manager" offrampops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/offramp" onrampops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/onramp" - pingpongdappops "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/ping_pong_dapp" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/operations/rmn_remote" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_6_3/fee_quoter" deployops "github.com/smartcontractkit/chainlink-ccip/deployment/deploy" diff --git a/chains/evm/deployment/v1_6_0/sequences/token_test.go b/chains/evm/deployment/v1_6_0/sequences/token_test.go index 572bc395ce..eeacb78dce 100644 --- a/chains/evm/deployment/v1_6_0/sequences/token_test.go +++ b/chains/evm/deployment/v1_6_0/sequences/token_test.go @@ -18,7 +18,6 @@ import ( "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/burn_mint_erc20_with_drip" "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/erc20" - "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_0_0/operations/factory_burn_mint_erc20" bnm_bindings "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc20" tokensapi "github.com/smartcontractkit/chainlink-ccip/deployment/tokens" @@ -66,18 +65,6 @@ func TestEVMTokenDeployments(t *testing.T) { preMint: big.NewInt(0).Mul(big.NewInt(1e6), big.NewInt(1e18)), // 1 million tokens requiresSupply: true, }, - { - name: "FactoryBurnMintERC20Token", - tokenType: factory_burn_mint_erc20.ContractType, - tokenName: "Test Factory BurnMint ERC20", - tokenSymbol: "TFBMERC20", - decimals: 6, - ccipAdmin: "0x1111111111111111111111111111111111111111", - supply: big.NewInt(0).Mul(big.NewInt(1e9), big.NewInt(1e18)), - preMint: big.NewInt(0).Mul(big.NewInt(1e6), big.NewInt(1e18)), - requiresOwner: true, - requiresSupply: true, - }, { name: "BurnMintERC20WithDripToken", tokenType: burn_mint_erc20_with_drip.ContractType, diff --git a/devenv/go.mod b/devenv/go.mod index a16bf7daf6..5192c398e1 100644 --- a/devenv/go.mod +++ b/devenv/go.mod @@ -41,7 +41,7 @@ require ( github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96 github.com/smartcontractkit/chainlink-deployments-framework v0.74.2 github.com/smartcontractkit/chainlink-evm v0.3.3 - github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 + github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd github.com/smartcontractkit/chainlink-testing-framework/framework v0.12.6 github.com/smartcontractkit/chainlink-testing-framework/wasp v1.51.1 github.com/smartcontractkit/libocr v0.0.0-20250912173940-f3ab0246e23d diff --git a/devenv/go.sum b/devenv/go.sum index 53c8e789a7..c98f2af8be 100644 --- a/devenv/go.sum +++ b/devenv/go.sum @@ -1052,8 +1052,8 @@ github.com/smartcontractkit/chainlink-deployments-framework v0.74.2 h1:OP4TAlIz8 github.com/smartcontractkit/chainlink-deployments-framework v0.74.2/go.mod h1:YHsMLM5bS9rhvXssmsJtvhmF4tDAm/kdmQi+ws/PLEw= github.com/smartcontractkit/chainlink-evm v0.3.3 h1:JqwyJEtnNEUaoQQPoOBTT4sn2lpdIZHtf0Hr0M60YDw= github.com/smartcontractkit/chainlink-evm v0.3.3/go.mod h1:q0ZBvaoisNaqC8NcMYWNPTjee88nQktDEeJMQHq3hVI= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 h1:SRMNzCdQnF2x6+QlL5YSzVeWyJb/BXqMrg+zSGaBPVg= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3/go.mod h1:3Lsp38qxen9PABVF+O5eocveQev+hyo9HLAgRodBD4Q= +github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd h1:sK+pK4epQp20yQ7XztwrVgkTkRAr4FY+TvEegW8RuQk= +github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd/go.mod h1:7Jlt72+V9891y3LnGwHzmQwt9tfEGYryRKiGlQHo/o8= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250717121125-2350c82883e2 h1:JU1JUrkzdAUHsOYdS9DENPkJfmrxweFRPRSztad6oPM= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250717121125-2350c82883e2/go.mod h1:+pRGfDej1r7cHMs1dYmuyPuOZzYB9Q+PKu0FvZOYlmw= github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20251210101658-1c5c8e4c4f15 h1:IXF7+k8I1YY/yvXC1wnS3FAAggtCy6ByEQ9hv/F2FvQ= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 7e90b17599..135b20f2dc 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -226,7 +226,7 @@ require ( github.com/smartcontractkit/chainlink-aptos v0.0.0-20251024142440-51f2ad2652a2 // indirect github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96 // indirect github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 // indirect - github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 // indirect + github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.17.0 // indirect github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b // indirect github.com/smartcontractkit/chainlink-sui v0.0.0-20251104205009-00bd79b81471 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 439cfad591..1a138ed4d3 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -690,8 +690,8 @@ github.com/smartcontractkit/chainlink-deployments-framework v0.74.2 h1:OP4TAlIz8 github.com/smartcontractkit/chainlink-deployments-framework v0.74.2/go.mod h1:YHsMLM5bS9rhvXssmsJtvhmF4tDAm/kdmQi+ws/PLEw= github.com/smartcontractkit/chainlink-evm v0.3.3 h1:JqwyJEtnNEUaoQQPoOBTT4sn2lpdIZHtf0Hr0M60YDw= github.com/smartcontractkit/chainlink-evm v0.3.3/go.mod h1:q0ZBvaoisNaqC8NcMYWNPTjee88nQktDEeJMQHq3hVI= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 h1:SRMNzCdQnF2x6+QlL5YSzVeWyJb/BXqMrg+zSGaBPVg= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3/go.mod h1:3Lsp38qxen9PABVF+O5eocveQev+hyo9HLAgRodBD4Q= +github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd h1:sK+pK4epQp20yQ7XztwrVgkTkRAr4FY+TvEegW8RuQk= +github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd/go.mod h1:7Jlt72+V9891y3LnGwHzmQwt9tfEGYryRKiGlQHo/o8= github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9 h1:QRWXJusIj/IRY5Pl3JclNvDre0cZPd/5NbILwc4RV2M= github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q= github.com/smartcontractkit/chainlink-protos/job-distributor v0.17.0 h1:xHPmFDhff7QpeFxKsZfk+24j4AlnQiFjjRh5O87Peu4= From 6779e7872a4b8c0670eeec61ebf28f2f1f45531a Mon Sep 17 00:00:00 2001 From: Balamurali Gopalswami Date: Wed, 21 Jan 2026 15:20:07 -0500 Subject: [PATCH 10/13] make generate --- go.md | 2 +- .../v1/ocrtypecodecpb/ocrtypes.pb.go | 2546 +++++------------ 2 files changed, 710 insertions(+), 1838 deletions(-) diff --git a/go.md b/go.md index f84966e6bb..3c4b67fa83 100644 --- a/go.md +++ b/go.md @@ -132,7 +132,7 @@ flowchart LR chainlink-evm --> chainlink-protos/svr chainlink-evm --> chainlink-tron/relayer click chainlink-evm href "https://github.com/smartcontractkit/chainlink-evm" - chainlink-evm/gethwrappers + chainlink-evm/gethwrappers --> chainlink-evm/gethwrappers/helpers click chainlink-evm/gethwrappers href "https://github.com/smartcontractkit/chainlink-evm" chainlink-evm/gethwrappers/helpers click chainlink-evm/gethwrappers/helpers href "https://github.com/smartcontractkit/chainlink-evm" diff --git a/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go b/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go index c97c0765fc..ff402fc8a1 100644 --- a/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go +++ b/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 +// protoc-gen-go v1.36.6 // protoc v5.28.0 // source: pkg/ocrtypecodec/v1/ocrtypes.proto @@ -12,6 +12,7 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -22,20 +23,17 @@ const ( ) type CommitQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MerkleRootQuery *MerkleRootQuery `protobuf:"bytes,1,opt,name=merkle_root_query,json=merkleRootQuery,proto3" json:"merkle_root_query,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + MerkleRootQuery *MerkleRootQuery `protobuf:"bytes,1,opt,name=merkle_root_query,json=merkleRootQuery,proto3" json:"merkle_root_query,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CommitQuery) Reset() { *x = CommitQuery{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitQuery) String() string { @@ -46,7 +44,7 @@ func (*CommitQuery) ProtoMessage() {} func (x *CommitQuery) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -69,25 +67,22 @@ func (x *CommitQuery) GetMerkleRootQuery() *MerkleRootQuery { } type CommitObservation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` MerkleRootObs *MerkleRootObservation `protobuf:"bytes,1,opt,name=merkle_root_obs,json=merkleRootObs,proto3" json:"merkle_root_obs,omitempty"` TokenPriceObs *TokenPriceObservation `protobuf:"bytes,2,opt,name=token_price_obs,json=tokenPriceObs,proto3" json:"token_price_obs,omitempty"` ChainFeeObs *ChainFeeObservation `protobuf:"bytes,3,opt,name=chain_fee_obs,json=chainFeeObs,proto3" json:"chain_fee_obs,omitempty"` DiscoveryObs *DiscoveryObservation `protobuf:"bytes,4,opt,name=discovery_obs,json=discoveryObs,proto3" json:"discovery_obs,omitempty"` - FChain map[uint64]int32 `protobuf:"bytes,5,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f - OnchainPriceOcrSeqNum uint64 `protobuf:"varint,6,opt,name=onchain_price_ocr_seq_num,json=onchainPriceOcrSeqNum,proto3" json:"onchain_price_ocr_seq_num,omitempty"` // the ocr sequence number of the last report with prices seen onchain + FChain map[uint64]int32 `protobuf:"bytes,5,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f + OnchainPriceOcrSeqNum uint64 `protobuf:"varint,6,opt,name=onchain_price_ocr_seq_num,json=onchainPriceOcrSeqNum,proto3" json:"onchain_price_ocr_seq_num,omitempty"` // the ocr sequence number of the last report with prices seen onchain + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CommitObservation) Reset() { *x = CommitObservation{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitObservation) String() string { @@ -98,7 +93,7 @@ func (*CommitObservation) ProtoMessage() {} func (x *CommitObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -156,23 +151,20 @@ func (x *CommitObservation) GetOnchainPriceOcrSeqNum() uint64 { } type CommitOutcome struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MerkleRootOutcome *MerkleRootOutcome `protobuf:"bytes,1,opt,name=merkle_root_outcome,json=merkleRootOutcome,proto3" json:"merkle_root_outcome,omitempty"` - TokenPriceOutcome *TokenPriceOutcome `protobuf:"bytes,2,opt,name=token_price_outcome,json=tokenPriceOutcome,proto3" json:"token_price_outcome,omitempty"` - ChainFeeOutcome *ChainFeeOutcome `protobuf:"bytes,3,opt,name=chain_fee_outcome,json=chainFeeOutcome,proto3" json:"chain_fee_outcome,omitempty"` - MainOutcome *MainOutcome `protobuf:"bytes,4,opt,name=main_outcome,json=mainOutcome,proto3" json:"main_outcome,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + MerkleRootOutcome *MerkleRootOutcome `protobuf:"bytes,1,opt,name=merkle_root_outcome,json=merkleRootOutcome,proto3" json:"merkle_root_outcome,omitempty"` + TokenPriceOutcome *TokenPriceOutcome `protobuf:"bytes,2,opt,name=token_price_outcome,json=tokenPriceOutcome,proto3" json:"token_price_outcome,omitempty"` + ChainFeeOutcome *ChainFeeOutcome `protobuf:"bytes,3,opt,name=chain_fee_outcome,json=chainFeeOutcome,proto3" json:"chain_fee_outcome,omitempty"` + MainOutcome *MainOutcome `protobuf:"bytes,4,opt,name=main_outcome,json=mainOutcome,proto3" json:"main_outcome,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CommitOutcome) Reset() { *x = CommitOutcome{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitOutcome) String() string { @@ -183,7 +175,7 @@ func (*CommitOutcome) ProtoMessage() {} func (x *CommitOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -227,28 +219,25 @@ func (x *CommitOutcome) GetMainOutcome() *MainOutcome { } type ExecObservation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommitReports map[uint64]*CommitObservations `protobuf:"bytes,1,rep,name=commit_reports,json=commitReports,proto3" json:"commit_reports,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to commitObservations - SeqNumsToMsgs map[uint64]*SeqNumToMessage `protobuf:"bytes,2,rep,name=seq_nums_to_msgs,json=seqNumsToMsgs,proto3" json:"seq_nums_to_msgs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to seqNum to msg - MsgHashes map[uint64]*SeqNumToBytes `protobuf:"bytes,3,rep,name=msg_hashes,json=msgHashes,proto3" json:"msg_hashes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to seqNum to bytes32 + state protoimpl.MessageState `protogen:"open.v1"` + CommitReports map[uint64]*CommitObservations `protobuf:"bytes,1,rep,name=commit_reports,json=commitReports,proto3" json:"commit_reports,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to commitObservations + SeqNumsToMsgs map[uint64]*SeqNumToMessage `protobuf:"bytes,2,rep,name=seq_nums_to_msgs,json=seqNumsToMsgs,proto3" json:"seq_nums_to_msgs,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to seqNum to msg + MsgHashes map[uint64]*SeqNumToBytes `protobuf:"bytes,3,rep,name=msg_hashes,json=msgHashes,proto3" json:"msg_hashes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to seqNum to bytes32 TokenDataObservations *TokenDataObservations `protobuf:"bytes,4,opt,name=token_data_observations,json=tokenDataObservations,proto3" json:"token_data_observations,omitempty"` // Deprecated: Marked as deprecated in pkg/ocrtypecodec/v1/ocrtypes.proto. CostlyMessages [][]byte `protobuf:"bytes,5,rep,name=costly_messages,json=costlyMessages,proto3" json:"costly_messages,omitempty"` // DEPRECATED: Message IDs of costly messages - Nonces map[uint64]*StringAddrToNonce `protobuf:"bytes,6,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Nonces map[uint64]*StringAddrToNonce `protobuf:"bytes,6,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` Contracts *DiscoveryObservation `protobuf:"bytes,7,opt,name=contracts,proto3" json:"contracts,omitempty"` - FChain map[uint64]int32 `protobuf:"bytes,8,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f + FChain map[uint64]int32 `protobuf:"bytes,8,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExecObservation) Reset() { *x = ExecObservation{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecObservation) String() string { @@ -259,7 +248,7 @@ func (*ExecObservation) ProtoMessage() {} func (x *ExecObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -332,23 +321,20 @@ func (x *ExecObservation) GetFChain() map[uint64]int32 { } type ExecOutcome struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` PluginState string `protobuf:"bytes,1,opt,name=plugin_state,json=pluginState,proto3" json:"plugin_state,omitempty"` CommitReports []*CommitData `protobuf:"bytes,2,rep,name=commit_reports,json=commitReports,proto3" json:"commit_reports,omitempty"` ExecutePluginReport *ExecutePluginReport `protobuf:"bytes,3,opt,name=execute_plugin_report,json=executePluginReport,proto3" json:"execute_plugin_report,omitempty"` // DEPRECATED: Use execute_plugin_reports instead ExecutePluginReports []*ExecutePluginReport `protobuf:"bytes,4,rep,name=execute_plugin_reports,json=executePluginReports,proto3" json:"execute_plugin_reports,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExecOutcome) Reset() { *x = ExecOutcome{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecOutcome) String() string { @@ -359,7 +345,7 @@ func (*ExecOutcome) ProtoMessage() {} func (x *ExecOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -403,21 +389,18 @@ func (x *ExecOutcome) GetExecutePluginReports() []*ExecutePluginReport { } type MerkleRootQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RetryRmnSignatures bool `protobuf:"varint,1,opt,name=retry_rmn_signatures,json=retryRmnSignatures,proto3" json:"retry_rmn_signatures,omitempty"` - RmnSignatures *ReportSignatures `protobuf:"bytes,2,opt,name=rmn_signatures,json=rmnSignatures,proto3" json:"rmn_signatures,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + RetryRmnSignatures bool `protobuf:"varint,1,opt,name=retry_rmn_signatures,json=retryRmnSignatures,proto3" json:"retry_rmn_signatures,omitempty"` + RmnSignatures *ReportSignatures `protobuf:"bytes,2,opt,name=rmn_signatures,json=rmnSignatures,proto3" json:"rmn_signatures,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MerkleRootQuery) Reset() { *x = MerkleRootQuery{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MerkleRootQuery) String() string { @@ -428,7 +411,7 @@ func (*MerkleRootQuery) ProtoMessage() {} func (x *MerkleRootQuery) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -458,21 +441,18 @@ func (x *MerkleRootQuery) GetRmnSignatures() *ReportSignatures { } type ReportSignatures struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Signatures []*SignatureEcdsa `protobuf:"bytes,1,rep,name=signatures,proto3" json:"signatures,omitempty"` + LaneUpdates []*DestChainUpdate `protobuf:"bytes,2,rep,name=lane_updates,json=laneUpdates,proto3" json:"lane_updates,omitempty"` unknownFields protoimpl.UnknownFields - - Signatures []*SignatureEcdsa `protobuf:"bytes,1,rep,name=signatures,proto3" json:"signatures,omitempty"` - LaneUpdates []*DestChainUpdate `protobuf:"bytes,2,rep,name=lane_updates,json=laneUpdates,proto3" json:"lane_updates,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReportSignatures) Reset() { *x = ReportSignatures{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReportSignatures) String() string { @@ -483,7 +463,7 @@ func (*ReportSignatures) ProtoMessage() {} func (x *ReportSignatures) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -513,21 +493,18 @@ func (x *ReportSignatures) GetLaneUpdates() []*DestChainUpdate { } type SignatureEcdsa struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + R []byte `protobuf:"bytes,1,opt,name=r,proto3" json:"r,omitempty"` + S []byte `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` unknownFields protoimpl.UnknownFields - - R []byte `protobuf:"bytes,1,opt,name=r,proto3" json:"r,omitempty"` - S []byte `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SignatureEcdsa) Reset() { *x = SignatureEcdsa{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SignatureEcdsa) String() string { @@ -538,7 +515,7 @@ func (*SignatureEcdsa) ProtoMessage() {} func (x *SignatureEcdsa) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -568,22 +545,19 @@ func (x *SignatureEcdsa) GetS() []byte { } type DestChainUpdate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + LaneSource *SourceChainMeta `protobuf:"bytes,1,opt,name=lane_source,json=laneSource,proto3" json:"lane_source,omitempty"` + SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` + Root []byte `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` // bytes32 unknownFields protoimpl.UnknownFields - - LaneSource *SourceChainMeta `protobuf:"bytes,1,opt,name=lane_source,json=laneSource,proto3" json:"lane_source,omitempty"` - SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` - Root []byte `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` // bytes32 + sizeCache protoimpl.SizeCache } func (x *DestChainUpdate) Reset() { *x = DestChainUpdate{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DestChainUpdate) String() string { @@ -594,7 +568,7 @@ func (*DestChainUpdate) ProtoMessage() {} func (x *DestChainUpdate) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -631,25 +605,22 @@ func (x *DestChainUpdate) GetRoot() []byte { } type MerkleRootObservation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MerkleRoots []*MerkleRootChain `protobuf:"bytes,1,rep,name=merkle_roots,json=merkleRoots,proto3" json:"merkle_roots,omitempty"` - RmnEnabledChains map[uint64]bool `protobuf:"bytes,2,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to bool - OnRampMaxSeqNums []*SeqNumChain `protobuf:"bytes,3,rep,name=on_ramp_max_seq_nums,json=onRampMaxSeqNums,proto3" json:"on_ramp_max_seq_nums,omitempty"` - OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,4,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` - RmnRemoteConfig *RmnRemoteConfig `protobuf:"bytes,5,opt,name=rmn_remote_config,json=rmnRemoteConfig,proto3" json:"rmn_remote_config,omitempty"` - FChain map[uint64]int32 `protobuf:"bytes,6,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f + state protoimpl.MessageState `protogen:"open.v1"` + MerkleRoots []*MerkleRootChain `protobuf:"bytes,1,rep,name=merkle_roots,json=merkleRoots,proto3" json:"merkle_roots,omitempty"` + RmnEnabledChains map[uint64]bool `protobuf:"bytes,2,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to bool + OnRampMaxSeqNums []*SeqNumChain `protobuf:"bytes,3,rep,name=on_ramp_max_seq_nums,json=onRampMaxSeqNums,proto3" json:"on_ramp_max_seq_nums,omitempty"` + OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,4,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` + RmnRemoteConfig *RmnRemoteConfig `protobuf:"bytes,5,opt,name=rmn_remote_config,json=rmnRemoteConfig,proto3" json:"rmn_remote_config,omitempty"` + FChain map[uint64]int32 `protobuf:"bytes,6,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MerkleRootObservation) Reset() { *x = MerkleRootObservation{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MerkleRootObservation) String() string { @@ -660,7 +631,7 @@ func (*MerkleRootObservation) ProtoMessage() {} func (x *MerkleRootObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -718,25 +689,22 @@ func (x *MerkleRootObservation) GetFChain() map[uint64]int32 { } type RmnRemoteConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ContractAddress []byte `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` - ConfigDigest []byte `protobuf:"bytes,2,opt,name=config_digest,json=configDigest,proto3" json:"config_digest,omitempty"` - Signers []*RemoteSignerInfo `protobuf:"bytes,3,rep,name=signers,proto3" json:"signers,omitempty"` - FSign uint64 `protobuf:"varint,4,opt,name=f_sign,json=fSign,proto3" json:"f_sign,omitempty"` - ConfigVersion uint32 `protobuf:"varint,5,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` - RmnReportVersion []byte `protobuf:"bytes,6,opt,name=rmn_report_version,json=rmnReportVersion,proto3" json:"rmn_report_version,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ContractAddress []byte `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + ConfigDigest []byte `protobuf:"bytes,2,opt,name=config_digest,json=configDigest,proto3" json:"config_digest,omitempty"` + Signers []*RemoteSignerInfo `protobuf:"bytes,3,rep,name=signers,proto3" json:"signers,omitempty"` + FSign uint64 `protobuf:"varint,4,opt,name=f_sign,json=fSign,proto3" json:"f_sign,omitempty"` + ConfigVersion uint32 `protobuf:"varint,5,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` + RmnReportVersion []byte `protobuf:"bytes,6,opt,name=rmn_report_version,json=rmnReportVersion,proto3" json:"rmn_report_version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RmnRemoteConfig) Reset() { *x = RmnRemoteConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RmnRemoteConfig) String() string { @@ -747,7 +715,7 @@ func (*RmnRemoteConfig) ProtoMessage() {} func (x *RmnRemoteConfig) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -805,21 +773,18 @@ func (x *RmnRemoteConfig) GetRmnReportVersion() []byte { } type RemoteSignerInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OnchainPublicKey []byte `protobuf:"bytes,1,opt,name=onchain_public_key,json=onchainPublicKey,proto3" json:"onchain_public_key,omitempty"` - NodeIndex uint64 `protobuf:"varint,2,opt,name=node_index,json=nodeIndex,proto3" json:"node_index,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + OnchainPublicKey []byte `protobuf:"bytes,1,opt,name=onchain_public_key,json=onchainPublicKey,proto3" json:"onchain_public_key,omitempty"` + NodeIndex uint64 `protobuf:"varint,2,opt,name=node_index,json=nodeIndex,proto3" json:"node_index,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RemoteSignerInfo) Reset() { *x = RemoteSignerInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoteSignerInfo) String() string { @@ -830,7 +795,7 @@ func (*RemoteSignerInfo) ProtoMessage() {} func (x *RemoteSignerInfo) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -860,23 +825,20 @@ func (x *RemoteSignerInfo) GetNodeIndex() uint64 { } type TokenPriceObservation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FeedTokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=feed_token_prices,json=feedTokenPrices,proto3" json:"feed_token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - FeeQuoterTokenUpdates map[string]*TimestampedBig `protobuf:"bytes,2,rep,name=fee_quoter_token_updates,json=feeQuoterTokenUpdates,proto3" json:"fee_quoter_token_updates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - FChain map[uint64]int32 `protobuf:"bytes,3,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f + state protoimpl.MessageState `protogen:"open.v1"` + FeedTokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=feed_token_prices,json=feedTokenPrices,proto3" json:"feed_token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + FeeQuoterTokenUpdates map[string]*TimestampedBig `protobuf:"bytes,2,rep,name=fee_quoter_token_updates,json=feeQuoterTokenUpdates,proto3" json:"fee_quoter_token_updates,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + FChain map[uint64]int32 `protobuf:"bytes,3,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f Timestamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TokenPriceObservation) Reset() { *x = TokenPriceObservation{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TokenPriceObservation) String() string { @@ -887,7 +849,7 @@ func (*TokenPriceObservation) ProtoMessage() {} func (x *TokenPriceObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -931,24 +893,21 @@ func (x *TokenPriceObservation) GetTimestamp() *timestamppb.Timestamp { } type ChainFeeObservation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FeeComponents map[uint64]*ChainFeeComponents `protobuf:"bytes,1,rep,name=fee_components,json=feeComponents,proto3" json:"fee_components,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to ChainFeeComponents - NativeTokenPrices map[uint64][]byte `protobuf:"bytes,2,rep,name=native_token_prices,json=nativeTokenPrices,proto3" json:"native_token_prices,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to bigInt bytes - ChainFeeUpdates map[uint64]*ChainFeeUpdate `protobuf:"bytes,3,rep,name=chain_fee_updates,json=chainFeeUpdates,proto3" json:"chain_fee_updates,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to ChainFeeUpdate - FChain map[uint64]int32 `protobuf:"bytes,4,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f + state protoimpl.MessageState `protogen:"open.v1"` + FeeComponents map[uint64]*ChainFeeComponents `protobuf:"bytes,1,rep,name=fee_components,json=feeComponents,proto3" json:"fee_components,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to ChainFeeComponents + NativeTokenPrices map[uint64][]byte `protobuf:"bytes,2,rep,name=native_token_prices,json=nativeTokenPrices,proto3" json:"native_token_prices,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to bigInt bytes + ChainFeeUpdates map[uint64]*ChainFeeUpdate `protobuf:"bytes,3,rep,name=chain_fee_updates,json=chainFeeUpdates,proto3" json:"chain_fee_updates,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to ChainFeeUpdate + FChain map[uint64]int32 `protobuf:"bytes,4,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f TimestampNow *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp_now,json=timestampNow,proto3" json:"timestamp_now,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChainFeeObservation) Reset() { *x = ChainFeeObservation{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChainFeeObservation) String() string { @@ -959,7 +918,7 @@ func (*ChainFeeObservation) ProtoMessage() {} func (x *ChainFeeObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1010,21 +969,18 @@ func (x *ChainFeeObservation) GetTimestampNow() *timestamppb.Timestamp { } type ChainFeeComponents struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ExecutionFee []byte `protobuf:"bytes,1,opt,name=execution_fee,json=executionFee,proto3" json:"execution_fee,omitempty"` // bigInt bytes - DataAvailabilityFee []byte `protobuf:"bytes,2,opt,name=data_availability_fee,json=dataAvailabilityFee,proto3" json:"data_availability_fee,omitempty"` // bigInt bytes + state protoimpl.MessageState `protogen:"open.v1"` + ExecutionFee []byte `protobuf:"bytes,1,opt,name=execution_fee,json=executionFee,proto3" json:"execution_fee,omitempty"` // bigInt bytes + DataAvailabilityFee []byte `protobuf:"bytes,2,opt,name=data_availability_fee,json=dataAvailabilityFee,proto3" json:"data_availability_fee,omitempty"` // bigInt bytes + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChainFeeComponents) Reset() { *x = ChainFeeComponents{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChainFeeComponents) String() string { @@ -1035,7 +991,7 @@ func (*ChainFeeComponents) ProtoMessage() {} func (x *ChainFeeComponents) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1065,21 +1021,18 @@ func (x *ChainFeeComponents) GetDataAvailabilityFee() []byte { } type ChainFeeUpdate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChainFee *ComponentsUSDPrices `protobuf:"bytes,1,opt,name=chain_fee,json=chainFee,proto3" json:"chain_fee,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` unknownFields protoimpl.UnknownFields - - ChainFee *ComponentsUSDPrices `protobuf:"bytes,1,opt,name=chain_fee,json=chainFee,proto3" json:"chain_fee,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChainFeeUpdate) Reset() { *x = ChainFeeUpdate{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChainFeeUpdate) String() string { @@ -1090,7 +1043,7 @@ func (*ChainFeeUpdate) ProtoMessage() {} func (x *ChainFeeUpdate) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1120,21 +1073,18 @@ func (x *ChainFeeUpdate) GetTimestamp() *timestamppb.Timestamp { } type ComponentsUSDPrices struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ExecutionFeePriceUsd []byte `protobuf:"bytes,1,opt,name=execution_fee_price_usd,json=executionFeePriceUsd,proto3" json:"execution_fee_price_usd,omitempty"` // bigInt bytes - DataAvFeePriceUsd []byte `protobuf:"bytes,2,opt,name=data_av_fee_price_usd,json=dataAvFeePriceUsd,proto3" json:"data_av_fee_price_usd,omitempty"` // bigInt bytes + state protoimpl.MessageState `protogen:"open.v1"` + ExecutionFeePriceUsd []byte `protobuf:"bytes,1,opt,name=execution_fee_price_usd,json=executionFeePriceUsd,proto3" json:"execution_fee_price_usd,omitempty"` // bigInt bytes + DataAvFeePriceUsd []byte `protobuf:"bytes,2,opt,name=data_av_fee_price_usd,json=dataAvFeePriceUsd,proto3" json:"data_av_fee_price_usd,omitempty"` // bigInt bytes + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ComponentsUSDPrices) Reset() { *x = ComponentsUSDPrices{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ComponentsUSDPrices) String() string { @@ -1145,7 +1095,7 @@ func (*ComponentsUSDPrices) ProtoMessage() {} func (x *ComponentsUSDPrices) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1175,21 +1125,18 @@ func (x *ComponentsUSDPrices) GetDataAvFeePriceUsd() []byte { } type DiscoveryObservation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FChain map[uint64]int32 `protobuf:"bytes,1,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f + state protoimpl.MessageState `protogen:"open.v1"` + FChain map[uint64]int32 `protobuf:"bytes,1,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f ContractNames *ContractNameChainAddresses `protobuf:"bytes,2,opt,name=contract_names,json=contractNames,proto3" json:"contract_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DiscoveryObservation) Reset() { *x = DiscoveryObservation{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DiscoveryObservation) String() string { @@ -1200,7 +1147,7 @@ func (*DiscoveryObservation) ProtoMessage() {} func (x *DiscoveryObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1230,20 +1177,17 @@ func (x *DiscoveryObservation) GetContractNames() *ContractNameChainAddresses { } type ContractNameChainAddresses struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Addresses map[string]*ChainAddressMap `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // contract name to chain to address unknownFields protoimpl.UnknownFields - - Addresses map[string]*ChainAddressMap `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // contract name to chain to address + sizeCache protoimpl.SizeCache } func (x *ContractNameChainAddresses) Reset() { *x = ContractNameChainAddresses{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ContractNameChainAddresses) String() string { @@ -1254,7 +1198,7 @@ func (*ContractNameChainAddresses) ProtoMessage() {} func (x *ContractNameChainAddresses) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1277,20 +1221,17 @@ func (x *ContractNameChainAddresses) GetAddresses() map[string]*ChainAddressMap } type ChainAddressMap struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChainAddresses map[uint64][]byte `protobuf:"bytes,1,rep,name=chain_addresses,json=chainAddresses,proto3" json:"chain_addresses,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to address + state protoimpl.MessageState `protogen:"open.v1"` + ChainAddresses map[uint64][]byte `protobuf:"bytes,1,rep,name=chain_addresses,json=chainAddresses,proto3" json:"chain_addresses,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to address + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChainAddressMap) Reset() { *x = ChainAddressMap{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChainAddressMap) String() string { @@ -1301,7 +1242,7 @@ func (*ChainAddressMap) ProtoMessage() {} func (x *ChainAddressMap) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1324,27 +1265,24 @@ func (x *ChainAddressMap) GetChainAddresses() map[uint64][]byte { } type MerkleRootOutcome struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OutcomeType int32 `protobuf:"varint,1,opt,name=outcome_type,json=outcomeType,proto3" json:"outcome_type,omitempty"` - RangesSelectedForReport []*ChainRange `protobuf:"bytes,2,rep,name=ranges_selected_for_report,json=rangesSelectedForReport,proto3" json:"ranges_selected_for_report,omitempty"` - RootsToReport []*MerkleRootChain `protobuf:"bytes,3,rep,name=roots_to_report,json=rootsToReport,proto3" json:"roots_to_report,omitempty"` - RmnEnabledChains map[uint64]bool `protobuf:"bytes,4,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to bool - OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,5,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` - ReportTransmissionCheckAttempts uint32 `protobuf:"varint,6,opt,name=report_transmission_check_attempts,json=reportTransmissionCheckAttempts,proto3" json:"report_transmission_check_attempts,omitempty"` - RmnReportSignatures []*SignatureEcdsa `protobuf:"bytes,7,rep,name=rmn_report_signatures,json=rmnReportSignatures,proto3" json:"rmn_report_signatures,omitempty"` - RmnRemoteCfg *RmnRemoteConfig `protobuf:"bytes,8,opt,name=rmn_remote_cfg,json=rmnRemoteCfg,proto3" json:"rmn_remote_cfg,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + OutcomeType int32 `protobuf:"varint,1,opt,name=outcome_type,json=outcomeType,proto3" json:"outcome_type,omitempty"` + RangesSelectedForReport []*ChainRange `protobuf:"bytes,2,rep,name=ranges_selected_for_report,json=rangesSelectedForReport,proto3" json:"ranges_selected_for_report,omitempty"` + RootsToReport []*MerkleRootChain `protobuf:"bytes,3,rep,name=roots_to_report,json=rootsToReport,proto3" json:"roots_to_report,omitempty"` + RmnEnabledChains map[uint64]bool `protobuf:"bytes,4,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to bool + OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,5,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` + ReportTransmissionCheckAttempts uint32 `protobuf:"varint,6,opt,name=report_transmission_check_attempts,json=reportTransmissionCheckAttempts,proto3" json:"report_transmission_check_attempts,omitempty"` + RmnReportSignatures []*SignatureEcdsa `protobuf:"bytes,7,rep,name=rmn_report_signatures,json=rmnReportSignatures,proto3" json:"rmn_report_signatures,omitempty"` + RmnRemoteCfg *RmnRemoteConfig `protobuf:"bytes,8,opt,name=rmn_remote_cfg,json=rmnRemoteCfg,proto3" json:"rmn_remote_cfg,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MerkleRootOutcome) Reset() { *x = MerkleRootOutcome{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MerkleRootOutcome) String() string { @@ -1355,7 +1293,7 @@ func (*MerkleRootOutcome) ProtoMessage() {} func (x *MerkleRootOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1427,20 +1365,17 @@ func (x *MerkleRootOutcome) GetRmnRemoteCfg() *RmnRemoteConfig { } type TokenPriceOutcome struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=token_prices,json=tokenPrices,proto3" json:"token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - TokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=token_prices,json=tokenPrices,proto3" json:"token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *TokenPriceOutcome) Reset() { *x = TokenPriceOutcome{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TokenPriceOutcome) String() string { @@ -1451,7 +1386,7 @@ func (*TokenPriceOutcome) ProtoMessage() {} func (x *TokenPriceOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1474,20 +1409,17 @@ func (x *TokenPriceOutcome) GetTokenPrices() map[string][]byte { } type ChainFeeOutcome struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + GasPrices []*GasPriceChain `protobuf:"bytes,1,rep,name=gas_prices,json=gasPrices,proto3" json:"gas_prices,omitempty"` unknownFields protoimpl.UnknownFields - - GasPrices []*GasPriceChain `protobuf:"bytes,1,rep,name=gas_prices,json=gasPrices,proto3" json:"gas_prices,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChainFeeOutcome) Reset() { *x = ChainFeeOutcome{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChainFeeOutcome) String() string { @@ -1498,7 +1430,7 @@ func (*ChainFeeOutcome) ProtoMessage() {} func (x *ChainFeeOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1521,21 +1453,18 @@ func (x *ChainFeeOutcome) GetGasPrices() []*GasPriceChain { } type GasPriceChain struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + GasPrice []byte `protobuf:"bytes,2,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` unknownFields protoimpl.UnknownFields - - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - GasPrice []byte `protobuf:"bytes,2,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GasPriceChain) Reset() { *x = GasPriceChain{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GasPriceChain) String() string { @@ -1546,7 +1475,7 @@ func (*GasPriceChain) ProtoMessage() {} func (x *GasPriceChain) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1576,21 +1505,18 @@ func (x *GasPriceChain) GetGasPrice() []byte { } type MainOutcome struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - InflightPriceOcrSequenceNumber uint64 `protobuf:"varint,1,opt,name=inflight_price_ocr_sequence_number,json=inflightPriceOcrSequenceNumber,proto3" json:"inflight_price_ocr_sequence_number,omitempty"` - RemainingPriceChecks int32 `protobuf:"varint,2,opt,name=remaining_price_checks,json=remainingPriceChecks,proto3" json:"remaining_price_checks,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + InflightPriceOcrSequenceNumber uint64 `protobuf:"varint,1,opt,name=inflight_price_ocr_sequence_number,json=inflightPriceOcrSequenceNumber,proto3" json:"inflight_price_ocr_sequence_number,omitempty"` + RemainingPriceChecks int32 `protobuf:"varint,2,opt,name=remaining_price_checks,json=remainingPriceChecks,proto3" json:"remaining_price_checks,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MainOutcome) Reset() { *x = MainOutcome{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MainOutcome) String() string { @@ -1601,7 +1527,7 @@ func (*MainOutcome) ProtoMessage() {} func (x *MainOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1631,20 +1557,17 @@ func (x *MainOutcome) GetRemainingPriceChecks() int32 { } type CommitObservations struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + CommitData []*CommitData `protobuf:"bytes,1,rep,name=commit_data,json=commitData,proto3" json:"commit_data,omitempty"` unknownFields protoimpl.UnknownFields - - CommitData []*CommitData `protobuf:"bytes,1,rep,name=commit_data,json=commitData,proto3" json:"commit_data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CommitObservations) Reset() { *x = CommitObservations{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitObservations) String() string { @@ -1655,7 +1578,7 @@ func (*CommitObservations) ProtoMessage() {} func (x *CommitObservations) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1678,10 +1601,7 @@ func (x *CommitObservations) GetCommitData() []*CommitData { } type CommitData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` SourceChain uint64 `protobuf:"varint,1,opt,name=source_chain,json=sourceChain,proto3" json:"source_chain,omitempty"` OnRampAddress []byte `protobuf:"bytes,2,opt,name=on_ramp_address,json=onRampAddress,proto3" json:"on_ramp_address,omitempty"` Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` @@ -1694,15 +1614,15 @@ type CommitData struct { // Deprecated: Marked as deprecated in pkg/ocrtypecodec/v1/ocrtypes.proto. CostlyMessages [][]byte `protobuf:"bytes,10,rep,name=costly_messages,json=costlyMessages,proto3" json:"costly_messages,omitempty"` // DEPRECATED: Message IDs of costly messages MessageTokenData []*MessageTokenData `protobuf:"bytes,11,rep,name=message_token_data,json=messageTokenData,proto3" json:"message_token_data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CommitData) Reset() { *x = CommitData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitData) String() string { @@ -1713,7 +1633,7 @@ func (*CommitData) ProtoMessage() {} func (x *CommitData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1807,20 +1727,17 @@ func (x *CommitData) GetMessageTokenData() []*MessageTokenData { } type MessageTokenData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TokenData []*TokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty"` unknownFields protoimpl.UnknownFields - - TokenData []*TokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MessageTokenData) Reset() { *x = MessageTokenData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageTokenData) String() string { @@ -1831,7 +1748,7 @@ func (*MessageTokenData) ProtoMessage() {} func (x *MessageTokenData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1854,21 +1771,18 @@ func (x *MessageTokenData) GetTokenData() []*TokenData { } type TokenData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TokenData) Reset() { *x = TokenData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TokenData) String() string { @@ -1879,7 +1793,7 @@ func (*TokenData) ProtoMessage() {} func (x *TokenData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1909,20 +1823,17 @@ func (x *TokenData) GetData() []byte { } type SeqNumToMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Messages map[uint64]*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Messages map[uint64]*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *SeqNumToMessage) Reset() { *x = SeqNumToMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SeqNumToMessage) String() string { @@ -1933,7 +1844,7 @@ func (*SeqNumToMessage) ProtoMessage() {} func (x *SeqNumToMessage) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1956,20 +1867,17 @@ func (x *SeqNumToMessage) GetMessages() map[uint64]*Message { } type SeqNumToBytes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SeqNumToBytes map[uint64][]byte `protobuf:"bytes,1,rep,name=seq_num_to_bytes,json=seqNumToBytes,proto3" json:"seq_num_to_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - SeqNumToBytes map[uint64][]byte `protobuf:"bytes,1,rep,name=seq_num_to_bytes,json=seqNumToBytes,proto3" json:"seq_num_to_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *SeqNumToBytes) Reset() { *x = SeqNumToBytes{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SeqNumToBytes) String() string { @@ -1980,7 +1888,7 @@ func (*SeqNumToBytes) ProtoMessage() {} func (x *SeqNumToBytes) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2003,20 +1911,17 @@ func (x *SeqNumToBytes) GetSeqNumToBytes() map[uint64][]byte { } type TokenDataObservations struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TokenData map[uint64]*SeqNumToTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - TokenData map[uint64]*SeqNumToTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *TokenDataObservations) Reset() { *x = TokenDataObservations{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TokenDataObservations) String() string { @@ -2027,7 +1932,7 @@ func (*TokenDataObservations) ProtoMessage() {} func (x *TokenDataObservations) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2050,20 +1955,17 @@ func (x *TokenDataObservations) GetTokenData() map[uint64]*SeqNumToTokenData { } type SeqNumToTokenData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TokenData map[uint64]*MessageTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - TokenData map[uint64]*MessageTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *SeqNumToTokenData) Reset() { *x = SeqNumToTokenData{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SeqNumToTokenData) String() string { @@ -2074,7 +1976,7 @@ func (*SeqNumToTokenData) ProtoMessage() {} func (x *SeqNumToTokenData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2097,28 +1999,25 @@ func (x *SeqNumToTokenData) GetTokenData() map[uint64]*MessageTokenData { } type Message struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Header *RampMessageHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` - Sender []byte `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` // address - Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - Receiver []byte `protobuf:"bytes,4,opt,name=receiver,proto3" json:"receiver,omitempty"` // address - ExtraArgs []byte `protobuf:"bytes,5,opt,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"` - FeeToken []byte `protobuf:"bytes,7,opt,name=fee_token,json=feeToken,proto3" json:"fee_token,omitempty"` // address - FeeTokenAmount []byte `protobuf:"bytes,8,opt,name=fee_token_amount,json=feeTokenAmount,proto3" json:"fee_token_amount,omitempty"` // bigInt bytes - FeeValueJuels []byte `protobuf:"bytes,9,opt,name=fee_value_juels,json=feeValueJuels,proto3" json:"fee_value_juels,omitempty"` // bigInt bytes - TokenAmounts []*RampTokenAmount `protobuf:"bytes,10,rep,name=token_amounts,json=tokenAmounts,proto3" json:"token_amounts,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Header *RampMessageHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Sender []byte `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` // address + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Receiver []byte `protobuf:"bytes,4,opt,name=receiver,proto3" json:"receiver,omitempty"` // address + ExtraArgs []byte `protobuf:"bytes,5,opt,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"` + FeeToken []byte `protobuf:"bytes,7,opt,name=fee_token,json=feeToken,proto3" json:"fee_token,omitempty"` // address + FeeTokenAmount []byte `protobuf:"bytes,8,opt,name=fee_token_amount,json=feeTokenAmount,proto3" json:"fee_token_amount,omitempty"` // bigInt bytes + FeeValueJuels []byte `protobuf:"bytes,9,opt,name=fee_value_juels,json=feeValueJuels,proto3" json:"fee_value_juels,omitempty"` // bigInt bytes + TokenAmounts []*RampTokenAmount `protobuf:"bytes,10,rep,name=token_amounts,json=tokenAmounts,proto3" json:"token_amounts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Message) Reset() { *x = Message{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Message) String() string { @@ -2129,7 +2028,7 @@ func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2208,27 +2107,24 @@ func (x *Message) GetTokenAmounts() []*RampTokenAmount { } type RampMessageHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MessageId []byte `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` - SourceChainSelector uint64 `protobuf:"varint,2,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` - DestChainSelector uint64 `protobuf:"varint,3,opt,name=dest_chain_selector,json=destChainSelector,proto3" json:"dest_chain_selector,omitempty"` - SequenceNumber uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` - Nonce uint64 `protobuf:"varint,5,opt,name=nonce,proto3" json:"nonce,omitempty"` - MsgHash []byte `protobuf:"bytes,6,opt,name=msg_hash,json=msgHash,proto3" json:"msg_hash,omitempty"` - OnRamp []byte `protobuf:"bytes,7,opt,name=on_ramp,json=onRamp,proto3" json:"on_ramp,omitempty"` // address - TxHash string `protobuf:"bytes,8,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + MessageId []byte `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + SourceChainSelector uint64 `protobuf:"varint,2,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` + DestChainSelector uint64 `protobuf:"varint,3,opt,name=dest_chain_selector,json=destChainSelector,proto3" json:"dest_chain_selector,omitempty"` + SequenceNumber uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + Nonce uint64 `protobuf:"varint,5,opt,name=nonce,proto3" json:"nonce,omitempty"` + MsgHash []byte `protobuf:"bytes,6,opt,name=msg_hash,json=msgHash,proto3" json:"msg_hash,omitempty"` + OnRamp []byte `protobuf:"bytes,7,opt,name=on_ramp,json=onRamp,proto3" json:"on_ramp,omitempty"` // address + TxHash string `protobuf:"bytes,8,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RampMessageHeader) Reset() { *x = RampMessageHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RampMessageHeader) String() string { @@ -2239,7 +2135,7 @@ func (*RampMessageHeader) ProtoMessage() {} func (x *RampMessageHeader) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2311,24 +2207,21 @@ func (x *RampMessageHeader) GetTxHash() string { } type RampTokenAmount struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SourcePoolAddress []byte `protobuf:"bytes,1,opt,name=source_pool_address,json=sourcePoolAddress,proto3" json:"source_pool_address,omitempty"` // address - DestTokenAddress []byte `protobuf:"bytes,2,opt,name=dest_token_address,json=destTokenAddress,proto3" json:"dest_token_address,omitempty"` // address - ExtraData []byte `protobuf:"bytes,3,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"` - Amount []byte `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` // bigInt bytes - DestExecData []byte `protobuf:"bytes,5,opt,name=dest_exec_data,json=destExecData,proto3" json:"dest_exec_data,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SourcePoolAddress []byte `protobuf:"bytes,1,opt,name=source_pool_address,json=sourcePoolAddress,proto3" json:"source_pool_address,omitempty"` // address + DestTokenAddress []byte `protobuf:"bytes,2,opt,name=dest_token_address,json=destTokenAddress,proto3" json:"dest_token_address,omitempty"` // address + ExtraData []byte `protobuf:"bytes,3,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"` + Amount []byte `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` // bigInt bytes + DestExecData []byte `protobuf:"bytes,5,opt,name=dest_exec_data,json=destExecData,proto3" json:"dest_exec_data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RampTokenAmount) Reset() { *x = RampTokenAmount{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RampTokenAmount) String() string { @@ -2339,7 +2232,7 @@ func (*RampTokenAmount) ProtoMessage() {} func (x *RampTokenAmount) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2390,20 +2283,17 @@ func (x *RampTokenAmount) GetDestExecData() []byte { } type StringAddrToNonce struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Nonces map[string]uint64 `protobuf:"bytes,1,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // address string to nonce unknownFields protoimpl.UnknownFields - - Nonces map[string]uint64 `protobuf:"bytes,1,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // address string to nonce + sizeCache protoimpl.SizeCache } func (x *StringAddrToNonce) Reset() { *x = StringAddrToNonce{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StringAddrToNonce) String() string { @@ -2414,7 +2304,7 @@ func (*StringAddrToNonce) ProtoMessage() {} func (x *StringAddrToNonce) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2437,20 +2327,17 @@ func (x *StringAddrToNonce) GetNonces() map[string]uint64 { } type ExecutePluginReport struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChainReports []*ChainReport `protobuf:"bytes,1,rep,name=chain_reports,json=chainReports,proto3" json:"chain_reports,omitempty"` unknownFields protoimpl.UnknownFields - - ChainReports []*ChainReport `protobuf:"bytes,1,rep,name=chain_reports,json=chainReports,proto3" json:"chain_reports,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ExecutePluginReport) Reset() { *x = ExecutePluginReport{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecutePluginReport) String() string { @@ -2461,7 +2348,7 @@ func (*ExecutePluginReport) ProtoMessage() {} func (x *ExecutePluginReport) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2484,24 +2371,21 @@ func (x *ExecutePluginReport) GetChainReports() []*ChainReport { } type ChainReport struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` - Messages []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"` - OffchainTokenData []*RepeatedBytes `protobuf:"bytes,3,rep,name=offchain_token_data,json=offchainTokenData,proto3" json:"offchain_token_data,omitempty"` - Proofs [][]byte `protobuf:"bytes,4,rep,name=proofs,proto3" json:"proofs,omitempty"` - ProofFlagBits []byte `protobuf:"bytes,5,opt,name=proof_flag_bits,json=proofFlagBits,proto3" json:"proof_flag_bits,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` + Messages []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"` + OffchainTokenData []*RepeatedBytes `protobuf:"bytes,3,rep,name=offchain_token_data,json=offchainTokenData,proto3" json:"offchain_token_data,omitempty"` + Proofs [][]byte `protobuf:"bytes,4,rep,name=proofs,proto3" json:"proofs,omitempty"` + ProofFlagBits []byte `protobuf:"bytes,5,opt,name=proof_flag_bits,json=proofFlagBits,proto3" json:"proof_flag_bits,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChainReport) Reset() { *x = ChainReport{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChainReport) String() string { @@ -2512,7 +2396,7 @@ func (*ChainReport) ProtoMessage() {} func (x *ChainReport) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2563,20 +2447,17 @@ func (x *ChainReport) GetProofFlagBits() []byte { } type RepeatedBytes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items [][]byte `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items [][]byte `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RepeatedBytes) Reset() { *x = RepeatedBytes{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RepeatedBytes) String() string { @@ -2587,7 +2468,7 @@ func (*RepeatedBytes) ProtoMessage() {} func (x *RepeatedBytes) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2610,21 +2491,18 @@ func (x *RepeatedBytes) GetItems() [][]byte { } type SeqNumRange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + MinMsgNr uint64 `protobuf:"varint,1,opt,name=min_msg_nr,json=minMsgNr,proto3" json:"min_msg_nr,omitempty"` + MaxMsgNr uint64 `protobuf:"varint,2,opt,name=max_msg_nr,json=maxMsgNr,proto3" json:"max_msg_nr,omitempty"` unknownFields protoimpl.UnknownFields - - MinMsgNr uint64 `protobuf:"varint,1,opt,name=min_msg_nr,json=minMsgNr,proto3" json:"min_msg_nr,omitempty"` - MaxMsgNr uint64 `protobuf:"varint,2,opt,name=max_msg_nr,json=maxMsgNr,proto3" json:"max_msg_nr,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SeqNumRange) Reset() { *x = SeqNumRange{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SeqNumRange) String() string { @@ -2635,7 +2513,7 @@ func (*SeqNumRange) ProtoMessage() {} func (x *SeqNumRange) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2665,21 +2543,18 @@ func (x *SeqNumRange) GetMaxMsgNr() uint64 { } type SeqNumChain struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + SeqNum uint64 `protobuf:"varint,2,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"` unknownFields protoimpl.UnknownFields - - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - SeqNum uint64 `protobuf:"varint,2,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SeqNumChain) Reset() { *x = SeqNumChain{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SeqNumChain) String() string { @@ -2690,7 +2565,7 @@ func (*SeqNumChain) ProtoMessage() {} func (x *SeqNumChain) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2720,21 +2595,18 @@ func (x *SeqNumChain) GetSeqNum() uint64 { } type ChainRange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` unknownFields protoimpl.UnknownFields - - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChainRange) Reset() { *x = ChainRange{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChainRange) String() string { @@ -2745,7 +2617,7 @@ func (*ChainRange) ProtoMessage() {} func (x *ChainRange) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2775,21 +2647,18 @@ func (x *ChainRange) GetSeqNumRange() *SeqNumRange { } type SourceChainMeta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` - OnrampAddress []byte `protobuf:"bytes,2,opt,name=onramp_address,json=onrampAddress,proto3" json:"onramp_address,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` + OnrampAddress []byte `protobuf:"bytes,2,opt,name=onramp_address,json=onrampAddress,proto3" json:"onramp_address,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SourceChainMeta) Reset() { *x = SourceChainMeta{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SourceChainMeta) String() string { @@ -2800,7 +2669,7 @@ func (*SourceChainMeta) ProtoMessage() {} func (x *SourceChainMeta) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2830,23 +2699,20 @@ func (x *SourceChainMeta) GetOnrampAddress() []byte { } type MerkleRootChain struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + OnRampAddress []byte `protobuf:"bytes,2,opt,name=on_ramp_address,json=onRampAddress,proto3" json:"on_ramp_address,omitempty"` + SeqNumsRange *SeqNumRange `protobuf:"bytes,3,opt,name=seq_nums_range,json=seqNumsRange,proto3" json:"seq_nums_range,omitempty"` + MerkleRoot []byte `protobuf:"bytes,4,opt,name=merkle_root,json=merkleRoot,proto3" json:"merkle_root,omitempty"` unknownFields protoimpl.UnknownFields - - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - OnRampAddress []byte `protobuf:"bytes,2,opt,name=on_ramp_address,json=onRampAddress,proto3" json:"on_ramp_address,omitempty"` - SeqNumsRange *SeqNumRange `protobuf:"bytes,3,opt,name=seq_nums_range,json=seqNumsRange,proto3" json:"seq_nums_range,omitempty"` - MerkleRoot []byte `protobuf:"bytes,4,opt,name=merkle_root,json=merkleRoot,proto3" json:"merkle_root,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MerkleRootChain) Reset() { *x = MerkleRootChain{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MerkleRootChain) String() string { @@ -2857,7 +2723,7 @@ func (*MerkleRootChain) ProtoMessage() {} func (x *MerkleRootChain) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2901,21 +2767,18 @@ func (x *MerkleRootChain) GetMerkleRoot() []byte { } type TimestampedBig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *TimestampedBig) Reset() { *x = TimestampedBig{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TimestampedBig) String() string { @@ -2926,7 +2789,7 @@ func (*TimestampedBig) ProtoMessage() {} func (x *TimestampedBig) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2957,744 +2820,308 @@ func (x *TimestampedBig) GetValue() []byte { var File_pkg_ocrtypecodec_v1_ocrtypes_proto protoreflect.FileDescriptor -var file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc = []byte{ - 0x0a, 0x22, 0x70, 0x6b, 0x67, 0x2f, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, - 0x65, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5f, 0x0a, 0x0b, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x6d, 0x65, 0x72, - 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, - 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, - 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x65, 0x72, 0x6b, - 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x9b, 0x04, 0x0a, 0x11, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x52, 0x0a, 0x0f, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x6b, 0x67, - 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, - 0x6f, 0x74, 0x4f, 0x62, 0x73, 0x12, 0x52, 0x0a, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, - 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, - 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, - 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, - 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x19, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x63, 0x72, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, - 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x63, 0x72, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x1a, 0x39, - 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd6, 0x02, 0x0a, 0x0d, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x6d, - 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, - 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, - 0x52, 0x11, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, - 0x6f, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, - 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x0f, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x43, 0x0a, - 0x0c, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x4f, 0x75, - 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x4f, 0x75, 0x74, 0x63, 0x6f, - 0x6d, 0x65, 0x22, 0xe9, 0x08, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, - 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x10, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, - 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x54, 0x6f, - 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x65, 0x71, 0x4e, 0x75, - 0x6d, 0x73, 0x54, 0x6f, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, - 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x17, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x62, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, - 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x15, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x6f, 0x73, 0x74, 0x6c, 0x79, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x63, - 0x6f, 0x73, 0x74, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x48, 0x0a, - 0x06, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, - 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x06, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x6b, 0x67, - 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, - 0x12, 0x49, 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, - 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x69, 0x0a, 0x12, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, - 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, - 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x66, 0x0a, 0x12, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, - 0x73, 0x54, 0x6f, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, - 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, - 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x61, 0x0a, 0x0b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x64, - 0x72, 0x54, 0x6f, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, - 0x02, 0x0a, 0x0b, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, - 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, - 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, - 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x72, 0x6b, - 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x72, - 0x65, 0x74, 0x72, 0x79, 0x5f, 0x72, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x74, 0x72, 0x79, - 0x52, 0x6d, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x4c, 0x0a, - 0x0e, 0x72, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, - 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x0d, 0x72, 0x6d, - 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x10, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, - 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, - 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x45, 0x63, 0x64, 0x73, 0x61, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0c, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, - 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x0b, 0x6c, 0x61, 0x6e, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x2c, - 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x63, 0x64, 0x73, 0x61, - 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x72, 0x12, 0x0c, - 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x73, 0x22, 0xb2, 0x01, 0x0a, - 0x0f, 0x44, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x45, 0x0a, 0x0b, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, - 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0a, 0x6c, 0x61, 0x6e, - 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x71, 0x5f, 0x6e, - 0x75, 0x6d, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x0b, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x6f, 0x6f, - 0x74, 0x22, 0x9b, 0x05, 0x0a, 0x15, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, - 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x6d, - 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, - 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, - 0x6f, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x0b, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, - 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x12, 0x72, 0x6d, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x40, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, - 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x6d, 0x6e, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x10, 0x72, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x14, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x5f, - 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, - 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x4d, 0x61, 0x78, 0x53, - 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x6f, 0x66, 0x66, 0x5f, 0x72, 0x61, - 0x6d, 0x70, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, - 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x12, 0x6f, 0x66, 0x66, 0x52, 0x61, 0x6d, - 0x70, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x50, 0x0a, 0x11, - 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, - 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6d, - 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x72, - 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, - 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x36, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, - 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, - 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, - 0x43, 0x0a, 0x15, 0x52, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x8e, 0x02, 0x0a, 0x0f, 0x52, 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, - 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, - 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x66, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, - 0x72, 0x6d, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x5f, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x10, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, - 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x22, 0xfd, 0x04, 0x0a, 0x15, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x11, 0x66, - 0x65, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, - 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x18, 0x66, 0x65, 0x65, 0x5f, - 0x71, 0x75, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x6b, 0x67, - 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x15, 0x66, 0x65, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x6b, 0x67, 0x2e, - 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x1a, 0x42, 0x0a, 0x14, 0x46, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6d, 0x0a, 0x1a, 0x46, 0x65, 0x65, 0x51, 0x75, - 0x6f, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, - 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x42, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xba, 0x06, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, - 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0e, 0x66, 0x65, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, - 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, - 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x43, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, - 0x66, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x6f, 0x0a, - 0x13, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x6b, 0x67, - 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6e, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x69, - 0x0a, 0x11, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x6b, 0x67, 0x2e, - 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, - 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x07, 0x66, 0x5f, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x6b, 0x67, - 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x6f, 0x77, 0x1a, 0x69, 0x0a, 0x12, 0x46, 0x65, 0x65, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x43, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x14, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, - 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, - 0x0a, 0x12, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x66, - 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x64, 0x61, 0x74, 0x61, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x22, 0x91, 0x01, - 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x45, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x55, 0x53, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x08, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0x7e, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x55, - 0x53, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, - 0x75, 0x73, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, 0x64, 0x12, - 0x30, 0x0a, 0x15, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x76, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, - 0x64, 0x61, 0x74, 0x61, 0x41, 0x76, 0x46, 0x65, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, - 0x64, 0x22, 0xf9, 0x01, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, - 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x07, 0x66, 0x5f, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x6b, - 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x56, 0x0a, 0x0e, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, - 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xde, 0x01, - 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3e, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, - 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x62, 0x0a, 0x0e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x4d, 0x61, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb7, - 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, - 0x61, 0x70, 0x12, 0x61, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x6b, - 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, - 0x70, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdb, 0x05, 0x0a, 0x11, 0x4d, 0x65, 0x72, - 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x5c, 0x0a, 0x1a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, - 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x17, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x4c, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, - 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x0d, - 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x6a, 0x0a, - 0x12, 0x72, 0x6d, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x6b, 0x67, 0x2e, - 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, - 0x65, 0x2e, 0x52, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x72, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x6f, 0x66, 0x66, - 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, - 0x75, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, - 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x12, 0x6f, 0x66, 0x66, - 0x52, 0x61, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x12, - 0x4b, 0x0a, 0x22, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x15, - 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, - 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x63, 0x64, 0x73, 0x61, - 0x52, 0x13, 0x72, 0x6d, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x66, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x0c, 0x72, 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x66, - 0x67, 0x1a, 0x43, 0x0a, 0x15, 0x52, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaf, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x0c, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, - 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x67, - 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, - 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x52, 0x09, 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x22, 0x49, - 0x0a, 0x0d, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, - 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x0b, 0x4d, 0x61, - 0x69, 0x6e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x22, 0x69, 0x6e, 0x66, - 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x63, 0x72, 0x5f, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x4f, 0x63, 0x72, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, - 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x22, 0xa6, 0x04, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, - 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x6b, 0x6c, - 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x54, 0x0a, 0x15, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, - 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, - 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x13, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6b, 0x67, - 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x6f, - 0x73, 0x74, 0x6c, 0x79, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x73, 0x74, 0x6c, 0x79, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0x51, 0x0a, 0x10, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x3d, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, - 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, - 0x35, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbc, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x71, 0x4e, 0x75, - 0x6d, 0x54, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, - 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x59, 0x0a, 0x0d, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, - 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb1, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, - 0x54, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x73, 0x65, 0x71, 0x5f, 0x6e, - 0x75, 0x6d, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, - 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, - 0x54, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x53, 0x65, 0x71, 0x4e, 0x75, - 0x6d, 0x54, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd7, 0x01, 0x0a, 0x15, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, - 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, - 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0xce, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x1a, - 0x63, 0x0a, 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, - 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xea, 0x02, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x41, 0x72, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x65, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x65, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, - 0x66, 0x65, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, - 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6a, 0x75, 0x65, 0x6c, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x4a, 0x75, 0x65, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6d, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x11, 0x52, 0x61, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, - 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x12, 0x17, 0x0a, - 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x52, 0x61, 0x6d, 0x70, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, - 0x6f, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, - 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x24, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, - 0x63, 0x44, 0x61, 0x74, 0x61, 0x22, 0x9a, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x41, 0x64, 0x64, 0x72, 0x54, 0x6f, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x6e, - 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6b, - 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x64, 0x72, 0x54, 0x6f, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x06, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x5c, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x22, 0x8f, 0x02, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, - 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x52, - 0x0a, 0x13, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x6b, - 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, - 0x11, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x46, 0x6c, 0x61, 0x67, 0x42, 0x69, - 0x74, 0x73, 0x22, 0x25, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x49, 0x0a, 0x0b, 0x53, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, - 0x6d, 0x73, 0x67, 0x5f, 0x6e, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, - 0x6e, 0x4d, 0x73, 0x67, 0x4e, 0x72, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x73, - 0x67, 0x5f, 0x6e, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4d, - 0x73, 0x67, 0x4e, 0x72, 0x22, 0x43, 0x0a, 0x0b, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, - 0x12, 0x17, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x22, 0x6f, 0x0a, 0x0a, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x73, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x53, 0x65, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, - 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x73, - 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x6c, 0x0a, 0x0f, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x32, 0x0a, - 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x6e, 0x72, 0x61, 0x6d, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x6e, 0x72, 0x61, 0x6d, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x72, - 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, - 0x72, 0x61, 0x6d, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x46, 0x0a, 0x0e, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x73, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, - 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x72, - 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x60, 0x0a, 0x0e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x42, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x13, 0x5a, 0x11, - 0x2e, 0x2f, 0x3b, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc = "" + + "\n" + + "\"pkg/ocrtypecodec/v1/ocrtypes.proto\x12\x13pkg.ocrtypecodec.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"_\n" + + "\vCommitQuery\x12P\n" + + "\x11merkle_root_query\x18\x01 \x01(\v2$.pkg.ocrtypecodec.v1.MerkleRootQueryR\x0fmerkleRootQuery\"\x9b\x04\n" + + "\x11CommitObservation\x12R\n" + + "\x0fmerkle_root_obs\x18\x01 \x01(\v2*.pkg.ocrtypecodec.v1.MerkleRootObservationR\rmerkleRootObs\x12R\n" + + "\x0ftoken_price_obs\x18\x02 \x01(\v2*.pkg.ocrtypecodec.v1.TokenPriceObservationR\rtokenPriceObs\x12L\n" + + "\rchain_fee_obs\x18\x03 \x01(\v2(.pkg.ocrtypecodec.v1.ChainFeeObservationR\vchainFeeObs\x12N\n" + + "\rdiscovery_obs\x18\x04 \x01(\v2).pkg.ocrtypecodec.v1.DiscoveryObservationR\fdiscoveryObs\x12K\n" + + "\af_chain\x18\x05 \x03(\v22.pkg.ocrtypecodec.v1.CommitObservation.FChainEntryR\x06fChain\x128\n" + + "\x19onchain_price_ocr_seq_num\x18\x06 \x01(\x04R\x15onchainPriceOcrSeqNum\x1a9\n" + + "\vFChainEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xd6\x02\n" + + "\rCommitOutcome\x12V\n" + + "\x13merkle_root_outcome\x18\x01 \x01(\v2&.pkg.ocrtypecodec.v1.MerkleRootOutcomeR\x11merkleRootOutcome\x12V\n" + + "\x13token_price_outcome\x18\x02 \x01(\v2&.pkg.ocrtypecodec.v1.TokenPriceOutcomeR\x11tokenPriceOutcome\x12P\n" + + "\x11chain_fee_outcome\x18\x03 \x01(\v2$.pkg.ocrtypecodec.v1.ChainFeeOutcomeR\x0fchainFeeOutcome\x12C\n" + + "\fmain_outcome\x18\x04 \x01(\v2 .pkg.ocrtypecodec.v1.MainOutcomeR\vmainOutcome\"\xe9\b\n" + + "\x0fExecObservation\x12^\n" + + "\x0ecommit_reports\x18\x01 \x03(\v27.pkg.ocrtypecodec.v1.ExecObservation.CommitReportsEntryR\rcommitReports\x12`\n" + + "\x10seq_nums_to_msgs\x18\x02 \x03(\v27.pkg.ocrtypecodec.v1.ExecObservation.SeqNumsToMsgsEntryR\rseqNumsToMsgs\x12R\n" + + "\n" + + "msg_hashes\x18\x03 \x03(\v23.pkg.ocrtypecodec.v1.ExecObservation.MsgHashesEntryR\tmsgHashes\x12b\n" + + "\x17token_data_observations\x18\x04 \x01(\v2*.pkg.ocrtypecodec.v1.TokenDataObservationsR\x15tokenDataObservations\x12+\n" + + "\x0fcostly_messages\x18\x05 \x03(\fB\x02\x18\x01R\x0ecostlyMessages\x12H\n" + + "\x06nonces\x18\x06 \x03(\v20.pkg.ocrtypecodec.v1.ExecObservation.NoncesEntryR\x06nonces\x12G\n" + + "\tcontracts\x18\a \x01(\v2).pkg.ocrtypecodec.v1.DiscoveryObservationR\tcontracts\x12I\n" + + "\af_chain\x18\b \x03(\v20.pkg.ocrtypecodec.v1.ExecObservation.FChainEntryR\x06fChain\x1ai\n" + + "\x12CommitReportsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12=\n" + + "\x05value\x18\x02 \x01(\v2'.pkg.ocrtypecodec.v1.CommitObservationsR\x05value:\x028\x01\x1af\n" + + "\x12SeqNumsToMsgsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12:\n" + + "\x05value\x18\x02 \x01(\v2$.pkg.ocrtypecodec.v1.SeqNumToMessageR\x05value:\x028\x01\x1a`\n" + + "\x0eMsgHashesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x128\n" + + "\x05value\x18\x02 \x01(\v2\".pkg.ocrtypecodec.v1.SeqNumToBytesR\x05value:\x028\x01\x1aa\n" + + "\vNoncesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12<\n" + + "\x05value\x18\x02 \x01(\v2&.pkg.ocrtypecodec.v1.StringAddrToNonceR\x05value:\x028\x01\x1a9\n" + + "\vFChainEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xb6\x02\n" + + "\vExecOutcome\x12!\n" + + "\fplugin_state\x18\x01 \x01(\tR\vpluginState\x12F\n" + + "\x0ecommit_reports\x18\x02 \x03(\v2\x1f.pkg.ocrtypecodec.v1.CommitDataR\rcommitReports\x12\\\n" + + "\x15execute_plugin_report\x18\x03 \x01(\v2(.pkg.ocrtypecodec.v1.ExecutePluginReportR\x13executePluginReport\x12^\n" + + "\x16execute_plugin_reports\x18\x04 \x03(\v2(.pkg.ocrtypecodec.v1.ExecutePluginReportR\x14executePluginReports\"\x91\x01\n" + + "\x0fMerkleRootQuery\x120\n" + + "\x14retry_rmn_signatures\x18\x01 \x01(\bR\x12retryRmnSignatures\x12L\n" + + "\x0ermn_signatures\x18\x02 \x01(\v2%.pkg.ocrtypecodec.v1.ReportSignaturesR\rrmnSignatures\"\xa0\x01\n" + + "\x10ReportSignatures\x12C\n" + + "\n" + + "signatures\x18\x01 \x03(\v2#.pkg.ocrtypecodec.v1.SignatureEcdsaR\n" + + "signatures\x12G\n" + + "\flane_updates\x18\x02 \x03(\v2$.pkg.ocrtypecodec.v1.DestChainUpdateR\vlaneUpdates\",\n" + + "\x0eSignatureEcdsa\x12\f\n" + + "\x01r\x18\x01 \x01(\fR\x01r\x12\f\n" + + "\x01s\x18\x02 \x01(\fR\x01s\"\xb2\x01\n" + + "\x0fDestChainUpdate\x12E\n" + + "\vlane_source\x18\x01 \x01(\v2$.pkg.ocrtypecodec.v1.SourceChainMetaR\n" + + "laneSource\x12D\n" + + "\rseq_num_range\x18\x02 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\vseqNumRange\x12\x12\n" + + "\x04root\x18\x03 \x01(\fR\x04root\"\x9b\x05\n" + + "\x15MerkleRootObservation\x12G\n" + + "\fmerkle_roots\x18\x01 \x03(\v2$.pkg.ocrtypecodec.v1.MerkleRootChainR\vmerkleRoots\x12n\n" + + "\x12rmn_enabled_chains\x18\x02 \x03(\v2@.pkg.ocrtypecodec.v1.MerkleRootObservation.RmnEnabledChainsEntryR\x10rmnEnabledChains\x12P\n" + + "\x14on_ramp_max_seq_nums\x18\x03 \x03(\v2 .pkg.ocrtypecodec.v1.SeqNumChainR\x10onRampMaxSeqNums\x12T\n" + + "\x16off_ramp_next_seq_nums\x18\x04 \x03(\v2 .pkg.ocrtypecodec.v1.SeqNumChainR\x12offRampNextSeqNums\x12P\n" + + "\x11rmn_remote_config\x18\x05 \x01(\v2$.pkg.ocrtypecodec.v1.RmnRemoteConfigR\x0frmnRemoteConfig\x12O\n" + + "\af_chain\x18\x06 \x03(\v26.pkg.ocrtypecodec.v1.MerkleRootObservation.FChainEntryR\x06fChain\x1aC\n" + + "\x15RmnEnabledChainsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\x1a9\n" + + "\vFChainEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x8e\x02\n" + + "\x0fRmnRemoteConfig\x12)\n" + + "\x10contract_address\x18\x01 \x01(\fR\x0fcontractAddress\x12#\n" + + "\rconfig_digest\x18\x02 \x01(\fR\fconfigDigest\x12?\n" + + "\asigners\x18\x03 \x03(\v2%.pkg.ocrtypecodec.v1.RemoteSignerInfoR\asigners\x12\x15\n" + + "\x06f_sign\x18\x04 \x01(\x04R\x05fSign\x12%\n" + + "\x0econfig_version\x18\x05 \x01(\rR\rconfigVersion\x12,\n" + + "\x12rmn_report_version\x18\x06 \x01(\fR\x10rmnReportVersion\"_\n" + + "\x10RemoteSignerInfo\x12,\n" + + "\x12onchain_public_key\x18\x01 \x01(\fR\x10onchainPublicKey\x12\x1d\n" + + "\n" + + "node_index\x18\x02 \x01(\x04R\tnodeIndex\"\xfd\x04\n" + + "\x15TokenPriceObservation\x12k\n" + + "\x11feed_token_prices\x18\x01 \x03(\v2?.pkg.ocrtypecodec.v1.TokenPriceObservation.FeedTokenPricesEntryR\x0ffeedTokenPrices\x12~\n" + + "\x18fee_quoter_token_updates\x18\x02 \x03(\v2E.pkg.ocrtypecodec.v1.TokenPriceObservation.FeeQuoterTokenUpdatesEntryR\x15feeQuoterTokenUpdates\x12O\n" + + "\af_chain\x18\x03 \x03(\v26.pkg.ocrtypecodec.v1.TokenPriceObservation.FChainEntryR\x06fChain\x128\n" + + "\ttimestamp\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x1aB\n" + + "\x14FeedTokenPricesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1am\n" + + "\x1aFeeQuoterTokenUpdatesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x129\n" + + "\x05value\x18\x02 \x01(\v2#.pkg.ocrtypecodec.v1.TimestampedBigR\x05value:\x028\x01\x1a9\n" + + "\vFChainEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xba\x06\n" + + "\x13ChainFeeObservation\x12b\n" + + "\x0efee_components\x18\x01 \x03(\v2;.pkg.ocrtypecodec.v1.ChainFeeObservation.FeeComponentsEntryR\rfeeComponents\x12o\n" + + "\x13native_token_prices\x18\x02 \x03(\v2?.pkg.ocrtypecodec.v1.ChainFeeObservation.NativeTokenPricesEntryR\x11nativeTokenPrices\x12i\n" + + "\x11chain_fee_updates\x18\x03 \x03(\v2=.pkg.ocrtypecodec.v1.ChainFeeObservation.ChainFeeUpdatesEntryR\x0fchainFeeUpdates\x12M\n" + + "\af_chain\x18\x04 \x03(\v24.pkg.ocrtypecodec.v1.ChainFeeObservation.FChainEntryR\x06fChain\x12?\n" + + "\rtimestamp_now\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\ftimestampNow\x1ai\n" + + "\x12FeeComponentsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12=\n" + + "\x05value\x18\x02 \x01(\v2'.pkg.ocrtypecodec.v1.ChainFeeComponentsR\x05value:\x028\x01\x1aD\n" + + "\x16NativeTokenPricesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1ag\n" + + "\x14ChainFeeUpdatesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x129\n" + + "\x05value\x18\x02 \x01(\v2#.pkg.ocrtypecodec.v1.ChainFeeUpdateR\x05value:\x028\x01\x1a9\n" + + "\vFChainEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"m\n" + + "\x12ChainFeeComponents\x12#\n" + + "\rexecution_fee\x18\x01 \x01(\fR\fexecutionFee\x122\n" + + "\x15data_availability_fee\x18\x02 \x01(\fR\x13dataAvailabilityFee\"\x91\x01\n" + + "\x0eChainFeeUpdate\x12E\n" + + "\tchain_fee\x18\x01 \x01(\v2(.pkg.ocrtypecodec.v1.ComponentsUSDPricesR\bchainFee\x128\n" + + "\ttimestamp\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"~\n" + + "\x13ComponentsUSDPrices\x125\n" + + "\x17execution_fee_price_usd\x18\x01 \x01(\fR\x14executionFeePriceUsd\x120\n" + + "\x15data_av_fee_price_usd\x18\x02 \x01(\fR\x11dataAvFeePriceUsd\"\xf9\x01\n" + + "\x14DiscoveryObservation\x12N\n" + + "\af_chain\x18\x01 \x03(\v25.pkg.ocrtypecodec.v1.DiscoveryObservation.FChainEntryR\x06fChain\x12V\n" + + "\x0econtract_names\x18\x02 \x01(\v2/.pkg.ocrtypecodec.v1.ContractNameChainAddressesR\rcontractNames\x1a9\n" + + "\vFChainEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xde\x01\n" + + "\x1aContractNameChainAddresses\x12\\\n" + + "\taddresses\x18\x01 \x03(\v2>.pkg.ocrtypecodec.v1.ContractNameChainAddresses.AddressesEntryR\taddresses\x1ab\n" + + "\x0eAddressesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12:\n" + + "\x05value\x18\x02 \x01(\v2$.pkg.ocrtypecodec.v1.ChainAddressMapR\x05value:\x028\x01\"\xb7\x01\n" + + "\x0fChainAddressMap\x12a\n" + + "\x0fchain_addresses\x18\x01 \x03(\v28.pkg.ocrtypecodec.v1.ChainAddressMap.ChainAddressesEntryR\x0echainAddresses\x1aA\n" + + "\x13ChainAddressesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\xdb\x05\n" + + "\x11MerkleRootOutcome\x12!\n" + + "\foutcome_type\x18\x01 \x01(\x05R\voutcomeType\x12\\\n" + + "\x1aranges_selected_for_report\x18\x02 \x03(\v2\x1f.pkg.ocrtypecodec.v1.ChainRangeR\x17rangesSelectedForReport\x12L\n" + + "\x0froots_to_report\x18\x03 \x03(\v2$.pkg.ocrtypecodec.v1.MerkleRootChainR\rrootsToReport\x12j\n" + + "\x12rmn_enabled_chains\x18\x04 \x03(\v2<.pkg.ocrtypecodec.v1.MerkleRootOutcome.RmnEnabledChainsEntryR\x10rmnEnabledChains\x12T\n" + + "\x16off_ramp_next_seq_nums\x18\x05 \x03(\v2 .pkg.ocrtypecodec.v1.SeqNumChainR\x12offRampNextSeqNums\x12K\n" + + "\"report_transmission_check_attempts\x18\x06 \x01(\rR\x1freportTransmissionCheckAttempts\x12W\n" + + "\x15rmn_report_signatures\x18\a \x03(\v2#.pkg.ocrtypecodec.v1.SignatureEcdsaR\x13rmnReportSignatures\x12J\n" + + "\x0ermn_remote_cfg\x18\b \x01(\v2$.pkg.ocrtypecodec.v1.RmnRemoteConfigR\frmnRemoteCfg\x1aC\n" + + "\x15RmnEnabledChainsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"\xaf\x01\n" + + "\x11TokenPriceOutcome\x12Z\n" + + "\ftoken_prices\x18\x01 \x03(\v27.pkg.ocrtypecodec.v1.TokenPriceOutcome.TokenPricesEntryR\vtokenPrices\x1a>\n" + + "\x10TokenPricesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"T\n" + + "\x0fChainFeeOutcome\x12A\n" + + "\n" + + "gas_prices\x18\x01 \x03(\v2\".pkg.ocrtypecodec.v1.GasPriceChainR\tgasPrices\"I\n" + + "\rGasPriceChain\x12\x1b\n" + + "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12\x1b\n" + + "\tgas_price\x18\x02 \x01(\fR\bgasPrice\"\x8f\x01\n" + + "\vMainOutcome\x12J\n" + + "\"inflight_price_ocr_sequence_number\x18\x01 \x01(\x04R\x1einflightPriceOcrSequenceNumber\x124\n" + + "\x16remaining_price_checks\x18\x02 \x01(\x05R\x14remainingPriceChecks\"V\n" + + "\x12CommitObservations\x12@\n" + + "\vcommit_data\x18\x01 \x03(\v2\x1f.pkg.ocrtypecodec.v1.CommitDataR\n" + + "commitData\"\xa6\x04\n" + + "\n" + + "CommitData\x12!\n" + + "\fsource_chain\x18\x01 \x01(\x04R\vsourceChain\x12&\n" + + "\x0fon_ramp_address\x18\x02 \x01(\fR\ronRampAddress\x128\n" + + "\ttimestamp\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x12\x1b\n" + + "\tblock_num\x18\x04 \x01(\x04R\bblockNum\x12\x1f\n" + + "\vmerkle_root\x18\x05 \x01(\fR\n" + + "merkleRoot\x12T\n" + + "\x15sequence_number_range\x18\x06 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\x13sequenceNumberRange\x12+\n" + + "\x11executed_messages\x18\a \x03(\x04R\x10executedMessages\x128\n" + + "\bmessages\x18\b \x03(\v2\x1c.pkg.ocrtypecodec.v1.MessageR\bmessages\x12\x16\n" + + "\x06hashes\x18\t \x03(\fR\x06hashes\x12+\n" + + "\x0fcostly_messages\x18\n" + + " \x03(\fB\x02\x18\x01R\x0ecostlyMessages\x12S\n" + + "\x12message_token_data\x18\v \x03(\v2%.pkg.ocrtypecodec.v1.MessageTokenDataR\x10messageTokenData\"Q\n" + + "\x10MessageTokenData\x12=\n" + + "\n" + + "token_data\x18\x01 \x03(\v2\x1e.pkg.ocrtypecodec.v1.TokenDataR\ttokenData\"5\n" + + "\tTokenData\x12\x14\n" + + "\x05ready\x18\x01 \x01(\bR\x05ready\x12\x12\n" + + "\x04data\x18\x02 \x01(\fR\x04data\"\xbc\x01\n" + + "\x0fSeqNumToMessage\x12N\n" + + "\bmessages\x18\x01 \x03(\v22.pkg.ocrtypecodec.v1.SeqNumToMessage.MessagesEntryR\bmessages\x1aY\n" + + "\rMessagesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x122\n" + + "\x05value\x18\x02 \x01(\v2\x1c.pkg.ocrtypecodec.v1.MessageR\x05value:\x028\x01\"\xb1\x01\n" + + "\rSeqNumToBytes\x12^\n" + + "\x10seq_num_to_bytes\x18\x01 \x03(\v25.pkg.ocrtypecodec.v1.SeqNumToBytes.SeqNumToBytesEntryR\rseqNumToBytes\x1a@\n" + + "\x12SeqNumToBytesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\xd7\x01\n" + + "\x15TokenDataObservations\x12X\n" + + "\n" + + "token_data\x18\x01 \x03(\v29.pkg.ocrtypecodec.v1.TokenDataObservations.TokenDataEntryR\ttokenData\x1ad\n" + + "\x0eTokenDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12<\n" + + "\x05value\x18\x02 \x01(\v2&.pkg.ocrtypecodec.v1.SeqNumToTokenDataR\x05value:\x028\x01\"\xce\x01\n" + + "\x11SeqNumToTokenData\x12T\n" + + "\n" + + "token_data\x18\x01 \x03(\v25.pkg.ocrtypecodec.v1.SeqNumToTokenData.TokenDataEntryR\ttokenData\x1ac\n" + + "\x0eTokenDataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\x04R\x03key\x12;\n" + + "\x05value\x18\x02 \x01(\v2%.pkg.ocrtypecodec.v1.MessageTokenDataR\x05value:\x028\x01\"\xea\x02\n" + + "\aMessage\x12>\n" + + "\x06header\x18\x01 \x01(\v2&.pkg.ocrtypecodec.v1.RampMessageHeaderR\x06header\x12\x16\n" + + "\x06sender\x18\x02 \x01(\fR\x06sender\x12\x12\n" + + "\x04data\x18\x03 \x01(\fR\x04data\x12\x1a\n" + + "\breceiver\x18\x04 \x01(\fR\breceiver\x12\x1d\n" + + "\n" + + "extra_args\x18\x05 \x01(\fR\textraArgs\x12\x1b\n" + + "\tfee_token\x18\a \x01(\fR\bfeeToken\x12(\n" + + "\x10fee_token_amount\x18\b \x01(\fR\x0efeeTokenAmount\x12&\n" + + "\x0ffee_value_juels\x18\t \x01(\fR\rfeeValueJuels\x12I\n" + + "\rtoken_amounts\x18\n" + + " \x03(\v2$.pkg.ocrtypecodec.v1.RampTokenAmountR\ftokenAmounts\"\xa2\x02\n" + + "\x11RampMessageHeader\x12\x1d\n" + + "\n" + + "message_id\x18\x01 \x01(\fR\tmessageId\x122\n" + + "\x15source_chain_selector\x18\x02 \x01(\x04R\x13sourceChainSelector\x12.\n" + + "\x13dest_chain_selector\x18\x03 \x01(\x04R\x11destChainSelector\x12'\n" + + "\x0fsequence_number\x18\x04 \x01(\x04R\x0esequenceNumber\x12\x14\n" + + "\x05nonce\x18\x05 \x01(\x04R\x05nonce\x12\x19\n" + + "\bmsg_hash\x18\x06 \x01(\fR\amsgHash\x12\x17\n" + + "\aon_ramp\x18\a \x01(\fR\x06onRamp\x12\x17\n" + + "\atx_hash\x18\b \x01(\tR\x06txHash\"\xcc\x01\n" + + "\x0fRampTokenAmount\x12.\n" + + "\x13source_pool_address\x18\x01 \x01(\fR\x11sourcePoolAddress\x12,\n" + + "\x12dest_token_address\x18\x02 \x01(\fR\x10destTokenAddress\x12\x1d\n" + + "\n" + + "extra_data\x18\x03 \x01(\fR\textraData\x12\x16\n" + + "\x06amount\x18\x04 \x01(\fR\x06amount\x12$\n" + + "\x0edest_exec_data\x18\x05 \x01(\fR\fdestExecData\"\x9a\x01\n" + + "\x11StringAddrToNonce\x12J\n" + + "\x06nonces\x18\x01 \x03(\v22.pkg.ocrtypecodec.v1.StringAddrToNonce.NoncesEntryR\x06nonces\x1a9\n" + + "\vNoncesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x04R\x05value:\x028\x01\"\\\n" + + "\x13ExecutePluginReport\x12E\n" + + "\rchain_reports\x18\x01 \x03(\v2 .pkg.ocrtypecodec.v1.ChainReportR\fchainReports\"\x8f\x02\n" + + "\vChainReport\x122\n" + + "\x15source_chain_selector\x18\x01 \x01(\x04R\x13sourceChainSelector\x128\n" + + "\bmessages\x18\x02 \x03(\v2\x1c.pkg.ocrtypecodec.v1.MessageR\bmessages\x12R\n" + + "\x13offchain_token_data\x18\x03 \x03(\v2\".pkg.ocrtypecodec.v1.RepeatedBytesR\x11offchainTokenData\x12\x16\n" + + "\x06proofs\x18\x04 \x03(\fR\x06proofs\x12&\n" + + "\x0fproof_flag_bits\x18\x05 \x01(\fR\rproofFlagBits\"%\n" + + "\rRepeatedBytes\x12\x14\n" + + "\x05items\x18\x01 \x03(\fR\x05items\"I\n" + + "\vSeqNumRange\x12\x1c\n" + + "\n" + + "min_msg_nr\x18\x01 \x01(\x04R\bminMsgNr\x12\x1c\n" + + "\n" + + "max_msg_nr\x18\x02 \x01(\x04R\bmaxMsgNr\"C\n" + + "\vSeqNumChain\x12\x1b\n" + + "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12\x17\n" + + "\aseq_num\x18\x02 \x01(\x04R\x06seqNum\"o\n" + + "\n" + + "ChainRange\x12\x1b\n" + + "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12D\n" + + "\rseq_num_range\x18\x02 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\vseqNumRange\"l\n" + + "\x0fSourceChainMeta\x122\n" + + "\x15source_chain_selector\x18\x01 \x01(\x04R\x13sourceChainSelector\x12%\n" + + "\x0eonramp_address\x18\x02 \x01(\fR\ronrampAddress\"\xbf\x01\n" + + "\x0fMerkleRootChain\x12\x1b\n" + + "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12&\n" + + "\x0fon_ramp_address\x18\x02 \x01(\fR\ronRampAddress\x12F\n" + + "\x0eseq_nums_range\x18\x03 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\fseqNumsRange\x12\x1f\n" + + "\vmerkle_root\x18\x04 \x01(\fR\n" + + "merkleRoot\"`\n" + + "\x0eTimestampedBig\x128\n" + + "\ttimestamp\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05valueB\x13Z\x11./;ocrtypecodecpbb\x06proto3" var ( file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescOnce sync.Once - file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData = file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc + file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData []byte ) func file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescGZIP() []byte { file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescOnce.Do(func() { - file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData) + file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc), len(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc))) }) return file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData } var file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes = make([]protoimpl.MessageInfo, 71) -var file_pkg_ocrtypecodec_v1_ocrtypes_proto_goTypes = []interface{}{ +var file_pkg_ocrtypecodec_v1_ocrtypes_proto_goTypes = []any{ (*CommitQuery)(nil), // 0: pkg.ocrtypecodec.v1.CommitQuery (*CommitObservation)(nil), // 1: pkg.ocrtypecodec.v1.CommitObservation (*CommitOutcome)(nil), // 2: pkg.ocrtypecodec.v1.CommitOutcome @@ -3866,565 +3293,11 @@ func file_pkg_ocrtypecodec_v1_ocrtypes_proto_init() { if File_pkg_ocrtypecodec_v1_ocrtypes_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitQuery); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitObservation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitOutcome); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExecObservation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExecOutcome); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MerkleRootQuery); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportSignatures); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignatureEcdsa); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DestChainUpdate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MerkleRootObservation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RmnRemoteConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoteSignerInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenPriceObservation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainFeeObservation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainFeeComponents); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainFeeUpdate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ComponentsUSDPrices); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscoveryObservation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractNameChainAddresses); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainAddressMap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MerkleRootOutcome); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenPriceOutcome); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainFeeOutcome); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GasPriceChain); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MainOutcome); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitObservations); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommitData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessageTokenData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SeqNumToMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SeqNumToBytes); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenDataObservations); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SeqNumToTokenData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Message); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RampMessageHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RampTokenAmount); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StringAddrToNonce); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExecutePluginReport); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainReport); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedBytes); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SeqNumRange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SeqNumChain); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainRange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SourceChainMeta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MerkleRootChain); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TimestampedBig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc), len(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc)), NumEnums: 0, NumMessages: 71, NumExtensions: 0, @@ -4435,7 +3308,6 @@ func file_pkg_ocrtypecodec_v1_ocrtypes_proto_init() { MessageInfos: file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes, }.Build() File_pkg_ocrtypecodec_v1_ocrtypes_proto = out.File - file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc = nil file_pkg_ocrtypecodec_v1_ocrtypes_proto_goTypes = nil file_pkg_ocrtypecodec_v1_ocrtypes_proto_depIdxs = nil } From 12fe296dd6613135c019fd7a3d4432b2a07690e7 Mon Sep 17 00:00:00 2001 From: Agustina Aldasoro Date: Tue, 27 Jan 2026 16:34:34 -0500 Subject: [PATCH 11/13] go sum --- chains/evm/deployment/go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/chains/evm/deployment/go.sum b/chains/evm/deployment/go.sum index ab2c61e53b..17056ca5b5 100644 --- a/chains/evm/deployment/go.sum +++ b/chains/evm/deployment/go.sum @@ -694,8 +694,6 @@ github.com/smartcontractkit/chainlink-evm v0.3.3 h1:JqwyJEtnNEUaoQQPoOBTT4sn2lpd github.com/smartcontractkit/chainlink-evm v0.3.3/go.mod h1:q0ZBvaoisNaqC8NcMYWNPTjee88nQktDEeJMQHq3hVI= github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd h1:sK+pK4epQp20yQ7XztwrVgkTkRAr4FY+TvEegW8RuQk= github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd/go.mod h1:7Jlt72+V9891y3LnGwHzmQwt9tfEGYryRKiGlQHo/o8= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 h1:SRMNzCdQnF2x6+QlL5YSzVeWyJb/BXqMrg+zSGaBPVg= -github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3/go.mod h1:3Lsp38qxen9PABVF+O5eocveQev+hyo9HLAgRodBD4Q= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250717121125-2350c82883e2 h1:JU1JUrkzdAUHsOYdS9DENPkJfmrxweFRPRSztad6oPM= github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250717121125-2350c82883e2/go.mod h1:+pRGfDej1r7cHMs1dYmuyPuOZzYB9Q+PKu0FvZOYlmw= github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9 h1:QRWXJusIj/IRY5Pl3JclNvDre0cZPd/5NbILwc4RV2M= From 595e9fef24f0cae8ce3cae6265f09533e3d3e97b Mon Sep 17 00:00:00 2001 From: Agustina Aldasoro Date: Tue, 27 Jan 2026 17:18:44 -0500 Subject: [PATCH 12/13] Fix mocks --- .../v1/ocrtypecodecpb/ocrtypes.pb.go | 2546 ++++++++++++----- 1 file changed, 1837 insertions(+), 709 deletions(-) diff --git a/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go b/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go index ff402fc8a1..c97c0765fc 100644 --- a/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go +++ b/pkg/ocrtypecodec/v1/ocrtypecodecpb/ocrtypes.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.6 +// protoc-gen-go v1.31.0 // protoc v5.28.0 // source: pkg/ocrtypecodec/v1/ocrtypes.proto @@ -12,7 +12,6 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" - unsafe "unsafe" ) const ( @@ -23,17 +22,20 @@ const ( ) type CommitQuery struct { - state protoimpl.MessageState `protogen:"open.v1"` - MerkleRootQuery *MerkleRootQuery `protobuf:"bytes,1,opt,name=merkle_root_query,json=merkleRootQuery,proto3" json:"merkle_root_query,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MerkleRootQuery *MerkleRootQuery `protobuf:"bytes,1,opt,name=merkle_root_query,json=merkleRootQuery,proto3" json:"merkle_root_query,omitempty"` } func (x *CommitQuery) Reset() { *x = CommitQuery{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CommitQuery) String() string { @@ -44,7 +46,7 @@ func (*CommitQuery) ProtoMessage() {} func (x *CommitQuery) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -67,22 +69,25 @@ func (x *CommitQuery) GetMerkleRootQuery() *MerkleRootQuery { } type CommitObservation struct { - state protoimpl.MessageState `protogen:"open.v1"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + MerkleRootObs *MerkleRootObservation `protobuf:"bytes,1,opt,name=merkle_root_obs,json=merkleRootObs,proto3" json:"merkle_root_obs,omitempty"` TokenPriceObs *TokenPriceObservation `protobuf:"bytes,2,opt,name=token_price_obs,json=tokenPriceObs,proto3" json:"token_price_obs,omitempty"` ChainFeeObs *ChainFeeObservation `protobuf:"bytes,3,opt,name=chain_fee_obs,json=chainFeeObs,proto3" json:"chain_fee_obs,omitempty"` DiscoveryObs *DiscoveryObservation `protobuf:"bytes,4,opt,name=discovery_obs,json=discoveryObs,proto3" json:"discovery_obs,omitempty"` - FChain map[uint64]int32 `protobuf:"bytes,5,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f - OnchainPriceOcrSeqNum uint64 `protobuf:"varint,6,opt,name=onchain_price_ocr_seq_num,json=onchainPriceOcrSeqNum,proto3" json:"onchain_price_ocr_seq_num,omitempty"` // the ocr sequence number of the last report with prices seen onchain - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + FChain map[uint64]int32 `protobuf:"bytes,5,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f + OnchainPriceOcrSeqNum uint64 `protobuf:"varint,6,opt,name=onchain_price_ocr_seq_num,json=onchainPriceOcrSeqNum,proto3" json:"onchain_price_ocr_seq_num,omitempty"` // the ocr sequence number of the last report with prices seen onchain } func (x *CommitObservation) Reset() { *x = CommitObservation{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CommitObservation) String() string { @@ -93,7 +98,7 @@ func (*CommitObservation) ProtoMessage() {} func (x *CommitObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -151,20 +156,23 @@ func (x *CommitObservation) GetOnchainPriceOcrSeqNum() uint64 { } type CommitOutcome struct { - state protoimpl.MessageState `protogen:"open.v1"` - MerkleRootOutcome *MerkleRootOutcome `protobuf:"bytes,1,opt,name=merkle_root_outcome,json=merkleRootOutcome,proto3" json:"merkle_root_outcome,omitempty"` - TokenPriceOutcome *TokenPriceOutcome `protobuf:"bytes,2,opt,name=token_price_outcome,json=tokenPriceOutcome,proto3" json:"token_price_outcome,omitempty"` - ChainFeeOutcome *ChainFeeOutcome `protobuf:"bytes,3,opt,name=chain_fee_outcome,json=chainFeeOutcome,proto3" json:"chain_fee_outcome,omitempty"` - MainOutcome *MainOutcome `protobuf:"bytes,4,opt,name=main_outcome,json=mainOutcome,proto3" json:"main_outcome,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MerkleRootOutcome *MerkleRootOutcome `protobuf:"bytes,1,opt,name=merkle_root_outcome,json=merkleRootOutcome,proto3" json:"merkle_root_outcome,omitempty"` + TokenPriceOutcome *TokenPriceOutcome `protobuf:"bytes,2,opt,name=token_price_outcome,json=tokenPriceOutcome,proto3" json:"token_price_outcome,omitempty"` + ChainFeeOutcome *ChainFeeOutcome `protobuf:"bytes,3,opt,name=chain_fee_outcome,json=chainFeeOutcome,proto3" json:"chain_fee_outcome,omitempty"` + MainOutcome *MainOutcome `protobuf:"bytes,4,opt,name=main_outcome,json=mainOutcome,proto3" json:"main_outcome,omitempty"` } func (x *CommitOutcome) Reset() { *x = CommitOutcome{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CommitOutcome) String() string { @@ -175,7 +183,7 @@ func (*CommitOutcome) ProtoMessage() {} func (x *CommitOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -219,25 +227,28 @@ func (x *CommitOutcome) GetMainOutcome() *MainOutcome { } type ExecObservation struct { - state protoimpl.MessageState `protogen:"open.v1"` - CommitReports map[uint64]*CommitObservations `protobuf:"bytes,1,rep,name=commit_reports,json=commitReports,proto3" json:"commit_reports,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to commitObservations - SeqNumsToMsgs map[uint64]*SeqNumToMessage `protobuf:"bytes,2,rep,name=seq_nums_to_msgs,json=seqNumsToMsgs,proto3" json:"seq_nums_to_msgs,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to seqNum to msg - MsgHashes map[uint64]*SeqNumToBytes `protobuf:"bytes,3,rep,name=msg_hashes,json=msgHashes,proto3" json:"msg_hashes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to seqNum to bytes32 + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommitReports map[uint64]*CommitObservations `protobuf:"bytes,1,rep,name=commit_reports,json=commitReports,proto3" json:"commit_reports,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to commitObservations + SeqNumsToMsgs map[uint64]*SeqNumToMessage `protobuf:"bytes,2,rep,name=seq_nums_to_msgs,json=seqNumsToMsgs,proto3" json:"seq_nums_to_msgs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to seqNum to msg + MsgHashes map[uint64]*SeqNumToBytes `protobuf:"bytes,3,rep,name=msg_hashes,json=msgHashes,proto3" json:"msg_hashes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to seqNum to bytes32 TokenDataObservations *TokenDataObservations `protobuf:"bytes,4,opt,name=token_data_observations,json=tokenDataObservations,proto3" json:"token_data_observations,omitempty"` // Deprecated: Marked as deprecated in pkg/ocrtypecodec/v1/ocrtypes.proto. CostlyMessages [][]byte `protobuf:"bytes,5,rep,name=costly_messages,json=costlyMessages,proto3" json:"costly_messages,omitempty"` // DEPRECATED: Message IDs of costly messages - Nonces map[uint64]*StringAddrToNonce `protobuf:"bytes,6,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Nonces map[uint64]*StringAddrToNonce `protobuf:"bytes,6,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Contracts *DiscoveryObservation `protobuf:"bytes,7,opt,name=contracts,proto3" json:"contracts,omitempty"` - FChain map[uint64]int32 `protobuf:"bytes,8,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + FChain map[uint64]int32 `protobuf:"bytes,8,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f } func (x *ExecObservation) Reset() { *x = ExecObservation{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ExecObservation) String() string { @@ -248,7 +259,7 @@ func (*ExecObservation) ProtoMessage() {} func (x *ExecObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -321,20 +332,23 @@ func (x *ExecObservation) GetFChain() map[uint64]int32 { } type ExecOutcome struct { - state protoimpl.MessageState `protogen:"open.v1"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + PluginState string `protobuf:"bytes,1,opt,name=plugin_state,json=pluginState,proto3" json:"plugin_state,omitempty"` CommitReports []*CommitData `protobuf:"bytes,2,rep,name=commit_reports,json=commitReports,proto3" json:"commit_reports,omitempty"` ExecutePluginReport *ExecutePluginReport `protobuf:"bytes,3,opt,name=execute_plugin_report,json=executePluginReport,proto3" json:"execute_plugin_report,omitempty"` // DEPRECATED: Use execute_plugin_reports instead ExecutePluginReports []*ExecutePluginReport `protobuf:"bytes,4,rep,name=execute_plugin_reports,json=executePluginReports,proto3" json:"execute_plugin_reports,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache } func (x *ExecOutcome) Reset() { *x = ExecOutcome{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ExecOutcome) String() string { @@ -345,7 +359,7 @@ func (*ExecOutcome) ProtoMessage() {} func (x *ExecOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -389,18 +403,21 @@ func (x *ExecOutcome) GetExecutePluginReports() []*ExecutePluginReport { } type MerkleRootQuery struct { - state protoimpl.MessageState `protogen:"open.v1"` - RetryRmnSignatures bool `protobuf:"varint,1,opt,name=retry_rmn_signatures,json=retryRmnSignatures,proto3" json:"retry_rmn_signatures,omitempty"` - RmnSignatures *ReportSignatures `protobuf:"bytes,2,opt,name=rmn_signatures,json=rmnSignatures,proto3" json:"rmn_signatures,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RetryRmnSignatures bool `protobuf:"varint,1,opt,name=retry_rmn_signatures,json=retryRmnSignatures,proto3" json:"retry_rmn_signatures,omitempty"` + RmnSignatures *ReportSignatures `protobuf:"bytes,2,opt,name=rmn_signatures,json=rmnSignatures,proto3" json:"rmn_signatures,omitempty"` } func (x *MerkleRootQuery) Reset() { *x = MerkleRootQuery{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *MerkleRootQuery) String() string { @@ -411,7 +428,7 @@ func (*MerkleRootQuery) ProtoMessage() {} func (x *MerkleRootQuery) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -441,18 +458,21 @@ func (x *MerkleRootQuery) GetRmnSignatures() *ReportSignatures { } type ReportSignatures struct { - state protoimpl.MessageState `protogen:"open.v1"` - Signatures []*SignatureEcdsa `protobuf:"bytes,1,rep,name=signatures,proto3" json:"signatures,omitempty"` - LaneUpdates []*DestChainUpdate `protobuf:"bytes,2,rep,name=lane_updates,json=laneUpdates,proto3" json:"lane_updates,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Signatures []*SignatureEcdsa `protobuf:"bytes,1,rep,name=signatures,proto3" json:"signatures,omitempty"` + LaneUpdates []*DestChainUpdate `protobuf:"bytes,2,rep,name=lane_updates,json=laneUpdates,proto3" json:"lane_updates,omitempty"` } func (x *ReportSignatures) Reset() { *x = ReportSignatures{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ReportSignatures) String() string { @@ -463,7 +483,7 @@ func (*ReportSignatures) ProtoMessage() {} func (x *ReportSignatures) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -493,18 +513,21 @@ func (x *ReportSignatures) GetLaneUpdates() []*DestChainUpdate { } type SignatureEcdsa struct { - state protoimpl.MessageState `protogen:"open.v1"` - R []byte `protobuf:"bytes,1,opt,name=r,proto3" json:"r,omitempty"` - S []byte `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + R []byte `protobuf:"bytes,1,opt,name=r,proto3" json:"r,omitempty"` + S []byte `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` } func (x *SignatureEcdsa) Reset() { *x = SignatureEcdsa{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SignatureEcdsa) String() string { @@ -515,7 +538,7 @@ func (*SignatureEcdsa) ProtoMessage() {} func (x *SignatureEcdsa) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -545,19 +568,22 @@ func (x *SignatureEcdsa) GetS() []byte { } type DestChainUpdate struct { - state protoimpl.MessageState `protogen:"open.v1"` - LaneSource *SourceChainMeta `protobuf:"bytes,1,opt,name=lane_source,json=laneSource,proto3" json:"lane_source,omitempty"` - SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` - Root []byte `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` // bytes32 - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LaneSource *SourceChainMeta `protobuf:"bytes,1,opt,name=lane_source,json=laneSource,proto3" json:"lane_source,omitempty"` + SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` + Root []byte `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` // bytes32 } func (x *DestChainUpdate) Reset() { *x = DestChainUpdate{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *DestChainUpdate) String() string { @@ -568,7 +594,7 @@ func (*DestChainUpdate) ProtoMessage() {} func (x *DestChainUpdate) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -605,22 +631,25 @@ func (x *DestChainUpdate) GetRoot() []byte { } type MerkleRootObservation struct { - state protoimpl.MessageState `protogen:"open.v1"` - MerkleRoots []*MerkleRootChain `protobuf:"bytes,1,rep,name=merkle_roots,json=merkleRoots,proto3" json:"merkle_roots,omitempty"` - RmnEnabledChains map[uint64]bool `protobuf:"bytes,2,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to bool - OnRampMaxSeqNums []*SeqNumChain `protobuf:"bytes,3,rep,name=on_ramp_max_seq_nums,json=onRampMaxSeqNums,proto3" json:"on_ramp_max_seq_nums,omitempty"` - OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,4,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` - RmnRemoteConfig *RmnRemoteConfig `protobuf:"bytes,5,opt,name=rmn_remote_config,json=rmnRemoteConfig,proto3" json:"rmn_remote_config,omitempty"` - FChain map[uint64]int32 `protobuf:"bytes,6,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MerkleRoots []*MerkleRootChain `protobuf:"bytes,1,rep,name=merkle_roots,json=merkleRoots,proto3" json:"merkle_roots,omitempty"` + RmnEnabledChains map[uint64]bool `protobuf:"bytes,2,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to bool + OnRampMaxSeqNums []*SeqNumChain `protobuf:"bytes,3,rep,name=on_ramp_max_seq_nums,json=onRampMaxSeqNums,proto3" json:"on_ramp_max_seq_nums,omitempty"` + OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,4,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` + RmnRemoteConfig *RmnRemoteConfig `protobuf:"bytes,5,opt,name=rmn_remote_config,json=rmnRemoteConfig,proto3" json:"rmn_remote_config,omitempty"` + FChain map[uint64]int32 `protobuf:"bytes,6,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f } func (x *MerkleRootObservation) Reset() { *x = MerkleRootObservation{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *MerkleRootObservation) String() string { @@ -631,7 +660,7 @@ func (*MerkleRootObservation) ProtoMessage() {} func (x *MerkleRootObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -689,22 +718,25 @@ func (x *MerkleRootObservation) GetFChain() map[uint64]int32 { } type RmnRemoteConfig struct { - state protoimpl.MessageState `protogen:"open.v1"` - ContractAddress []byte `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` - ConfigDigest []byte `protobuf:"bytes,2,opt,name=config_digest,json=configDigest,proto3" json:"config_digest,omitempty"` - Signers []*RemoteSignerInfo `protobuf:"bytes,3,rep,name=signers,proto3" json:"signers,omitempty"` - FSign uint64 `protobuf:"varint,4,opt,name=f_sign,json=fSign,proto3" json:"f_sign,omitempty"` - ConfigVersion uint32 `protobuf:"varint,5,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` - RmnReportVersion []byte `protobuf:"bytes,6,opt,name=rmn_report_version,json=rmnReportVersion,proto3" json:"rmn_report_version,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ContractAddress []byte `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + ConfigDigest []byte `protobuf:"bytes,2,opt,name=config_digest,json=configDigest,proto3" json:"config_digest,omitempty"` + Signers []*RemoteSignerInfo `protobuf:"bytes,3,rep,name=signers,proto3" json:"signers,omitempty"` + FSign uint64 `protobuf:"varint,4,opt,name=f_sign,json=fSign,proto3" json:"f_sign,omitempty"` + ConfigVersion uint32 `protobuf:"varint,5,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` + RmnReportVersion []byte `protobuf:"bytes,6,opt,name=rmn_report_version,json=rmnReportVersion,proto3" json:"rmn_report_version,omitempty"` } func (x *RmnRemoteConfig) Reset() { *x = RmnRemoteConfig{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *RmnRemoteConfig) String() string { @@ -715,7 +747,7 @@ func (*RmnRemoteConfig) ProtoMessage() {} func (x *RmnRemoteConfig) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -773,18 +805,21 @@ func (x *RmnRemoteConfig) GetRmnReportVersion() []byte { } type RemoteSignerInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - OnchainPublicKey []byte `protobuf:"bytes,1,opt,name=onchain_public_key,json=onchainPublicKey,proto3" json:"onchain_public_key,omitempty"` - NodeIndex uint64 `protobuf:"varint,2,opt,name=node_index,json=nodeIndex,proto3" json:"node_index,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OnchainPublicKey []byte `protobuf:"bytes,1,opt,name=onchain_public_key,json=onchainPublicKey,proto3" json:"onchain_public_key,omitempty"` + NodeIndex uint64 `protobuf:"varint,2,opt,name=node_index,json=nodeIndex,proto3" json:"node_index,omitempty"` } func (x *RemoteSignerInfo) Reset() { *x = RemoteSignerInfo{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *RemoteSignerInfo) String() string { @@ -795,7 +830,7 @@ func (*RemoteSignerInfo) ProtoMessage() {} func (x *RemoteSignerInfo) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -825,20 +860,23 @@ func (x *RemoteSignerInfo) GetNodeIndex() uint64 { } type TokenPriceObservation struct { - state protoimpl.MessageState `protogen:"open.v1"` - FeedTokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=feed_token_prices,json=feedTokenPrices,proto3" json:"feed_token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - FeeQuoterTokenUpdates map[string]*TimestampedBig `protobuf:"bytes,2,rep,name=fee_quoter_token_updates,json=feeQuoterTokenUpdates,proto3" json:"fee_quoter_token_updates,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - FChain map[uint64]int32 `protobuf:"bytes,3,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FeedTokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=feed_token_prices,json=feedTokenPrices,proto3" json:"feed_token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + FeeQuoterTokenUpdates map[string]*TimestampedBig `protobuf:"bytes,2,rep,name=fee_quoter_token_updates,json=feeQuoterTokenUpdates,proto3" json:"fee_quoter_token_updates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + FChain map[uint64]int32 `protobuf:"bytes,3,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f Timestamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache } func (x *TokenPriceObservation) Reset() { *x = TokenPriceObservation{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *TokenPriceObservation) String() string { @@ -849,7 +887,7 @@ func (*TokenPriceObservation) ProtoMessage() {} func (x *TokenPriceObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -893,21 +931,24 @@ func (x *TokenPriceObservation) GetTimestamp() *timestamppb.Timestamp { } type ChainFeeObservation struct { - state protoimpl.MessageState `protogen:"open.v1"` - FeeComponents map[uint64]*ChainFeeComponents `protobuf:"bytes,1,rep,name=fee_components,json=feeComponents,proto3" json:"fee_components,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to ChainFeeComponents - NativeTokenPrices map[uint64][]byte `protobuf:"bytes,2,rep,name=native_token_prices,json=nativeTokenPrices,proto3" json:"native_token_prices,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to bigInt bytes - ChainFeeUpdates map[uint64]*ChainFeeUpdate `protobuf:"bytes,3,rep,name=chain_fee_updates,json=chainFeeUpdates,proto3" json:"chain_fee_updates,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to ChainFeeUpdate - FChain map[uint64]int32 `protobuf:"bytes,4,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FeeComponents map[uint64]*ChainFeeComponents `protobuf:"bytes,1,rep,name=fee_components,json=feeComponents,proto3" json:"fee_components,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to ChainFeeComponents + NativeTokenPrices map[uint64][]byte `protobuf:"bytes,2,rep,name=native_token_prices,json=nativeTokenPrices,proto3" json:"native_token_prices,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to bigInt bytes + ChainFeeUpdates map[uint64]*ChainFeeUpdate `protobuf:"bytes,3,rep,name=chain_fee_updates,json=chainFeeUpdates,proto3" json:"chain_fee_updates,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to ChainFeeUpdate + FChain map[uint64]int32 `protobuf:"bytes,4,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f TimestampNow *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp_now,json=timestampNow,proto3" json:"timestamp_now,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache } func (x *ChainFeeObservation) Reset() { *x = ChainFeeObservation{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ChainFeeObservation) String() string { @@ -918,7 +959,7 @@ func (*ChainFeeObservation) ProtoMessage() {} func (x *ChainFeeObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -969,18 +1010,21 @@ func (x *ChainFeeObservation) GetTimestampNow() *timestamppb.Timestamp { } type ChainFeeComponents struct { - state protoimpl.MessageState `protogen:"open.v1"` - ExecutionFee []byte `protobuf:"bytes,1,opt,name=execution_fee,json=executionFee,proto3" json:"execution_fee,omitempty"` // bigInt bytes - DataAvailabilityFee []byte `protobuf:"bytes,2,opt,name=data_availability_fee,json=dataAvailabilityFee,proto3" json:"data_availability_fee,omitempty"` // bigInt bytes - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExecutionFee []byte `protobuf:"bytes,1,opt,name=execution_fee,json=executionFee,proto3" json:"execution_fee,omitempty"` // bigInt bytes + DataAvailabilityFee []byte `protobuf:"bytes,2,opt,name=data_availability_fee,json=dataAvailabilityFee,proto3" json:"data_availability_fee,omitempty"` // bigInt bytes } func (x *ChainFeeComponents) Reset() { *x = ChainFeeComponents{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ChainFeeComponents) String() string { @@ -991,7 +1035,7 @@ func (*ChainFeeComponents) ProtoMessage() {} func (x *ChainFeeComponents) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1021,18 +1065,21 @@ func (x *ChainFeeComponents) GetDataAvailabilityFee() []byte { } type ChainFeeUpdate struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChainFee *ComponentsUSDPrices `protobuf:"bytes,1,opt,name=chain_fee,json=chainFee,proto3" json:"chain_fee,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainFee *ComponentsUSDPrices `protobuf:"bytes,1,opt,name=chain_fee,json=chainFee,proto3" json:"chain_fee,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *ChainFeeUpdate) Reset() { *x = ChainFeeUpdate{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ChainFeeUpdate) String() string { @@ -1043,7 +1090,7 @@ func (*ChainFeeUpdate) ProtoMessage() {} func (x *ChainFeeUpdate) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1073,18 +1120,21 @@ func (x *ChainFeeUpdate) GetTimestamp() *timestamppb.Timestamp { } type ComponentsUSDPrices struct { - state protoimpl.MessageState `protogen:"open.v1"` - ExecutionFeePriceUsd []byte `protobuf:"bytes,1,opt,name=execution_fee_price_usd,json=executionFeePriceUsd,proto3" json:"execution_fee_price_usd,omitempty"` // bigInt bytes - DataAvFeePriceUsd []byte `protobuf:"bytes,2,opt,name=data_av_fee_price_usd,json=dataAvFeePriceUsd,proto3" json:"data_av_fee_price_usd,omitempty"` // bigInt bytes - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExecutionFeePriceUsd []byte `protobuf:"bytes,1,opt,name=execution_fee_price_usd,json=executionFeePriceUsd,proto3" json:"execution_fee_price_usd,omitempty"` // bigInt bytes + DataAvFeePriceUsd []byte `protobuf:"bytes,2,opt,name=data_av_fee_price_usd,json=dataAvFeePriceUsd,proto3" json:"data_av_fee_price_usd,omitempty"` // bigInt bytes } func (x *ComponentsUSDPrices) Reset() { *x = ComponentsUSDPrices{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ComponentsUSDPrices) String() string { @@ -1095,7 +1145,7 @@ func (*ComponentsUSDPrices) ProtoMessage() {} func (x *ComponentsUSDPrices) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1125,18 +1175,21 @@ func (x *ComponentsUSDPrices) GetDataAvFeePriceUsd() []byte { } type DiscoveryObservation struct { - state protoimpl.MessageState `protogen:"open.v1"` - FChain map[uint64]int32 `protobuf:"bytes,1,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to f - ContractNames *ContractNameChainAddresses `protobuf:"bytes,2,opt,name=contract_names,json=contractNames,proto3" json:"contract_names,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FChain map[uint64]int32 `protobuf:"bytes,1,rep,name=f_chain,json=fChain,proto3" json:"f_chain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to f + ContractNames *ContractNameChainAddresses `protobuf:"bytes,2,opt,name=contract_names,json=contractNames,proto3" json:"contract_names,omitempty"` } func (x *DiscoveryObservation) Reset() { *x = DiscoveryObservation{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *DiscoveryObservation) String() string { @@ -1147,7 +1200,7 @@ func (*DiscoveryObservation) ProtoMessage() {} func (x *DiscoveryObservation) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1177,17 +1230,20 @@ func (x *DiscoveryObservation) GetContractNames() *ContractNameChainAddresses { } type ContractNameChainAddresses struct { - state protoimpl.MessageState `protogen:"open.v1"` - Addresses map[string]*ChainAddressMap `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // contract name to chain to address - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses map[string]*ChainAddressMap `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // contract name to chain to address } func (x *ContractNameChainAddresses) Reset() { *x = ContractNameChainAddresses{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ContractNameChainAddresses) String() string { @@ -1198,7 +1254,7 @@ func (*ContractNameChainAddresses) ProtoMessage() {} func (x *ContractNameChainAddresses) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1221,17 +1277,20 @@ func (x *ContractNameChainAddresses) GetAddresses() map[string]*ChainAddressMap } type ChainAddressMap struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChainAddresses map[uint64][]byte `protobuf:"bytes,1,rep,name=chain_addresses,json=chainAddresses,proto3" json:"chain_addresses,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // chainSelector to address - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainAddresses map[uint64][]byte `protobuf:"bytes,1,rep,name=chain_addresses,json=chainAddresses,proto3" json:"chain_addresses,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // chainSelector to address } func (x *ChainAddressMap) Reset() { *x = ChainAddressMap{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ChainAddressMap) String() string { @@ -1242,7 +1301,7 @@ func (*ChainAddressMap) ProtoMessage() {} func (x *ChainAddressMap) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1265,24 +1324,27 @@ func (x *ChainAddressMap) GetChainAddresses() map[uint64][]byte { } type MerkleRootOutcome struct { - state protoimpl.MessageState `protogen:"open.v1"` - OutcomeType int32 `protobuf:"varint,1,opt,name=outcome_type,json=outcomeType,proto3" json:"outcome_type,omitempty"` - RangesSelectedForReport []*ChainRange `protobuf:"bytes,2,rep,name=ranges_selected_for_report,json=rangesSelectedForReport,proto3" json:"ranges_selected_for_report,omitempty"` - RootsToReport []*MerkleRootChain `protobuf:"bytes,3,rep,name=roots_to_report,json=rootsToReport,proto3" json:"roots_to_report,omitempty"` - RmnEnabledChains map[uint64]bool `protobuf:"bytes,4,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // chainSelector to bool - OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,5,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` - ReportTransmissionCheckAttempts uint32 `protobuf:"varint,6,opt,name=report_transmission_check_attempts,json=reportTransmissionCheckAttempts,proto3" json:"report_transmission_check_attempts,omitempty"` - RmnReportSignatures []*SignatureEcdsa `protobuf:"bytes,7,rep,name=rmn_report_signatures,json=rmnReportSignatures,proto3" json:"rmn_report_signatures,omitempty"` - RmnRemoteCfg *RmnRemoteConfig `protobuf:"bytes,8,opt,name=rmn_remote_cfg,json=rmnRemoteCfg,proto3" json:"rmn_remote_cfg,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OutcomeType int32 `protobuf:"varint,1,opt,name=outcome_type,json=outcomeType,proto3" json:"outcome_type,omitempty"` + RangesSelectedForReport []*ChainRange `protobuf:"bytes,2,rep,name=ranges_selected_for_report,json=rangesSelectedForReport,proto3" json:"ranges_selected_for_report,omitempty"` + RootsToReport []*MerkleRootChain `protobuf:"bytes,3,rep,name=roots_to_report,json=rootsToReport,proto3" json:"roots_to_report,omitempty"` + RmnEnabledChains map[uint64]bool `protobuf:"bytes,4,rep,name=rmn_enabled_chains,json=rmnEnabledChains,proto3" json:"rmn_enabled_chains,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // chainSelector to bool + OffRampNextSeqNums []*SeqNumChain `protobuf:"bytes,5,rep,name=off_ramp_next_seq_nums,json=offRampNextSeqNums,proto3" json:"off_ramp_next_seq_nums,omitempty"` + ReportTransmissionCheckAttempts uint32 `protobuf:"varint,6,opt,name=report_transmission_check_attempts,json=reportTransmissionCheckAttempts,proto3" json:"report_transmission_check_attempts,omitempty"` + RmnReportSignatures []*SignatureEcdsa `protobuf:"bytes,7,rep,name=rmn_report_signatures,json=rmnReportSignatures,proto3" json:"rmn_report_signatures,omitempty"` + RmnRemoteCfg *RmnRemoteConfig `protobuf:"bytes,8,opt,name=rmn_remote_cfg,json=rmnRemoteCfg,proto3" json:"rmn_remote_cfg,omitempty"` } func (x *MerkleRootOutcome) Reset() { *x = MerkleRootOutcome{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *MerkleRootOutcome) String() string { @@ -1293,7 +1355,7 @@ func (*MerkleRootOutcome) ProtoMessage() {} func (x *MerkleRootOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1365,17 +1427,20 @@ func (x *MerkleRootOutcome) GetRmnRemoteCfg() *RmnRemoteConfig { } type TokenPriceOutcome struct { - state protoimpl.MessageState `protogen:"open.v1"` - TokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=token_prices,json=tokenPrices,proto3" json:"token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TokenPrices map[string][]byte `protobuf:"bytes,1,rep,name=token_prices,json=tokenPrices,proto3" json:"token_prices,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *TokenPriceOutcome) Reset() { *x = TokenPriceOutcome{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *TokenPriceOutcome) String() string { @@ -1386,7 +1451,7 @@ func (*TokenPriceOutcome) ProtoMessage() {} func (x *TokenPriceOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1409,17 +1474,20 @@ func (x *TokenPriceOutcome) GetTokenPrices() map[string][]byte { } type ChainFeeOutcome struct { - state protoimpl.MessageState `protogen:"open.v1"` - GasPrices []*GasPriceChain `protobuf:"bytes,1,rep,name=gas_prices,json=gasPrices,proto3" json:"gas_prices,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GasPrices []*GasPriceChain `protobuf:"bytes,1,rep,name=gas_prices,json=gasPrices,proto3" json:"gas_prices,omitempty"` } func (x *ChainFeeOutcome) Reset() { *x = ChainFeeOutcome{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ChainFeeOutcome) String() string { @@ -1430,7 +1498,7 @@ func (*ChainFeeOutcome) ProtoMessage() {} func (x *ChainFeeOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1453,18 +1521,21 @@ func (x *ChainFeeOutcome) GetGasPrices() []*GasPriceChain { } type GasPriceChain struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - GasPrice []byte `protobuf:"bytes,2,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + GasPrice []byte `protobuf:"bytes,2,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` } func (x *GasPriceChain) Reset() { *x = GasPriceChain{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *GasPriceChain) String() string { @@ -1475,7 +1546,7 @@ func (*GasPriceChain) ProtoMessage() {} func (x *GasPriceChain) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1505,18 +1576,21 @@ func (x *GasPriceChain) GetGasPrice() []byte { } type MainOutcome struct { - state protoimpl.MessageState `protogen:"open.v1"` - InflightPriceOcrSequenceNumber uint64 `protobuf:"varint,1,opt,name=inflight_price_ocr_sequence_number,json=inflightPriceOcrSequenceNumber,proto3" json:"inflight_price_ocr_sequence_number,omitempty"` - RemainingPriceChecks int32 `protobuf:"varint,2,opt,name=remaining_price_checks,json=remainingPriceChecks,proto3" json:"remaining_price_checks,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InflightPriceOcrSequenceNumber uint64 `protobuf:"varint,1,opt,name=inflight_price_ocr_sequence_number,json=inflightPriceOcrSequenceNumber,proto3" json:"inflight_price_ocr_sequence_number,omitempty"` + RemainingPriceChecks int32 `protobuf:"varint,2,opt,name=remaining_price_checks,json=remainingPriceChecks,proto3" json:"remaining_price_checks,omitempty"` } func (x *MainOutcome) Reset() { *x = MainOutcome{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *MainOutcome) String() string { @@ -1527,7 +1601,7 @@ func (*MainOutcome) ProtoMessage() {} func (x *MainOutcome) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1557,17 +1631,20 @@ func (x *MainOutcome) GetRemainingPriceChecks() int32 { } type CommitObservations struct { - state protoimpl.MessageState `protogen:"open.v1"` - CommitData []*CommitData `protobuf:"bytes,1,rep,name=commit_data,json=commitData,proto3" json:"commit_data,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommitData []*CommitData `protobuf:"bytes,1,rep,name=commit_data,json=commitData,proto3" json:"commit_data,omitempty"` } func (x *CommitObservations) Reset() { *x = CommitObservations{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CommitObservations) String() string { @@ -1578,7 +1655,7 @@ func (*CommitObservations) ProtoMessage() {} func (x *CommitObservations) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1601,7 +1678,10 @@ func (x *CommitObservations) GetCommitData() []*CommitData { } type CommitData struct { - state protoimpl.MessageState `protogen:"open.v1"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + SourceChain uint64 `protobuf:"varint,1,opt,name=source_chain,json=sourceChain,proto3" json:"source_chain,omitempty"` OnRampAddress []byte `protobuf:"bytes,2,opt,name=on_ramp_address,json=onRampAddress,proto3" json:"on_ramp_address,omitempty"` Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` @@ -1614,15 +1694,15 @@ type CommitData struct { // Deprecated: Marked as deprecated in pkg/ocrtypecodec/v1/ocrtypes.proto. CostlyMessages [][]byte `protobuf:"bytes,10,rep,name=costly_messages,json=costlyMessages,proto3" json:"costly_messages,omitempty"` // DEPRECATED: Message IDs of costly messages MessageTokenData []*MessageTokenData `protobuf:"bytes,11,rep,name=message_token_data,json=messageTokenData,proto3" json:"message_token_data,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache } func (x *CommitData) Reset() { *x = CommitData{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *CommitData) String() string { @@ -1633,7 +1713,7 @@ func (*CommitData) ProtoMessage() {} func (x *CommitData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1727,17 +1807,20 @@ func (x *CommitData) GetMessageTokenData() []*MessageTokenData { } type MessageTokenData struct { - state protoimpl.MessageState `protogen:"open.v1"` - TokenData []*TokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TokenData []*TokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty"` } func (x *MessageTokenData) Reset() { *x = MessageTokenData{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *MessageTokenData) String() string { @@ -1748,7 +1831,7 @@ func (*MessageTokenData) ProtoMessage() {} func (x *MessageTokenData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1771,18 +1854,21 @@ func (x *MessageTokenData) GetTokenData() []*TokenData { } type TokenData struct { - state protoimpl.MessageState `protogen:"open.v1"` - Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } func (x *TokenData) Reset() { *x = TokenData{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *TokenData) String() string { @@ -1793,7 +1879,7 @@ func (*TokenData) ProtoMessage() {} func (x *TokenData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1823,17 +1909,20 @@ func (x *TokenData) GetData() []byte { } type SeqNumToMessage struct { - state protoimpl.MessageState `protogen:"open.v1"` - Messages map[uint64]*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages map[uint64]*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *SeqNumToMessage) Reset() { *x = SeqNumToMessage{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SeqNumToMessage) String() string { @@ -1844,7 +1933,7 @@ func (*SeqNumToMessage) ProtoMessage() {} func (x *SeqNumToMessage) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1867,17 +1956,20 @@ func (x *SeqNumToMessage) GetMessages() map[uint64]*Message { } type SeqNumToBytes struct { - state protoimpl.MessageState `protogen:"open.v1"` - SeqNumToBytes map[uint64][]byte `protobuf:"bytes,1,rep,name=seq_num_to_bytes,json=seqNumToBytes,proto3" json:"seq_num_to_bytes,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SeqNumToBytes map[uint64][]byte `protobuf:"bytes,1,rep,name=seq_num_to_bytes,json=seqNumToBytes,proto3" json:"seq_num_to_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *SeqNumToBytes) Reset() { *x = SeqNumToBytes{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SeqNumToBytes) String() string { @@ -1888,7 +1980,7 @@ func (*SeqNumToBytes) ProtoMessage() {} func (x *SeqNumToBytes) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1911,17 +2003,20 @@ func (x *SeqNumToBytes) GetSeqNumToBytes() map[uint64][]byte { } type TokenDataObservations struct { - state protoimpl.MessageState `protogen:"open.v1"` - TokenData map[uint64]*SeqNumToTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TokenData map[uint64]*SeqNumToTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *TokenDataObservations) Reset() { *x = TokenDataObservations{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *TokenDataObservations) String() string { @@ -1932,7 +2027,7 @@ func (*TokenDataObservations) ProtoMessage() {} func (x *TokenDataObservations) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1955,17 +2050,20 @@ func (x *TokenDataObservations) GetTokenData() map[uint64]*SeqNumToTokenData { } type SeqNumToTokenData struct { - state protoimpl.MessageState `protogen:"open.v1"` - TokenData map[uint64]*MessageTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TokenData map[uint64]*MessageTokenData `protobuf:"bytes,1,rep,name=token_data,json=tokenData,proto3" json:"token_data,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *SeqNumToTokenData) Reset() { *x = SeqNumToTokenData{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SeqNumToTokenData) String() string { @@ -1976,7 +2074,7 @@ func (*SeqNumToTokenData) ProtoMessage() {} func (x *SeqNumToTokenData) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1999,25 +2097,28 @@ func (x *SeqNumToTokenData) GetTokenData() map[uint64]*MessageTokenData { } type Message struct { - state protoimpl.MessageState `protogen:"open.v1"` - Header *RampMessageHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` - Sender []byte `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` // address - Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - Receiver []byte `protobuf:"bytes,4,opt,name=receiver,proto3" json:"receiver,omitempty"` // address - ExtraArgs []byte `protobuf:"bytes,5,opt,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"` - FeeToken []byte `protobuf:"bytes,7,opt,name=fee_token,json=feeToken,proto3" json:"fee_token,omitempty"` // address - FeeTokenAmount []byte `protobuf:"bytes,8,opt,name=fee_token_amount,json=feeTokenAmount,proto3" json:"fee_token_amount,omitempty"` // bigInt bytes - FeeValueJuels []byte `protobuf:"bytes,9,opt,name=fee_value_juels,json=feeValueJuels,proto3" json:"fee_value_juels,omitempty"` // bigInt bytes - TokenAmounts []*RampTokenAmount `protobuf:"bytes,10,rep,name=token_amounts,json=tokenAmounts,proto3" json:"token_amounts,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Header *RampMessageHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Sender []byte `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` // address + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Receiver []byte `protobuf:"bytes,4,opt,name=receiver,proto3" json:"receiver,omitempty"` // address + ExtraArgs []byte `protobuf:"bytes,5,opt,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"` + FeeToken []byte `protobuf:"bytes,7,opt,name=fee_token,json=feeToken,proto3" json:"fee_token,omitempty"` // address + FeeTokenAmount []byte `protobuf:"bytes,8,opt,name=fee_token_amount,json=feeTokenAmount,proto3" json:"fee_token_amount,omitempty"` // bigInt bytes + FeeValueJuels []byte `protobuf:"bytes,9,opt,name=fee_value_juels,json=feeValueJuels,proto3" json:"fee_value_juels,omitempty"` // bigInt bytes + TokenAmounts []*RampTokenAmount `protobuf:"bytes,10,rep,name=token_amounts,json=tokenAmounts,proto3" json:"token_amounts,omitempty"` } func (x *Message) Reset() { *x = Message{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *Message) String() string { @@ -2028,7 +2129,7 @@ func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2107,24 +2208,27 @@ func (x *Message) GetTokenAmounts() []*RampTokenAmount { } type RampMessageHeader struct { - state protoimpl.MessageState `protogen:"open.v1"` - MessageId []byte `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` - SourceChainSelector uint64 `protobuf:"varint,2,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` - DestChainSelector uint64 `protobuf:"varint,3,opt,name=dest_chain_selector,json=destChainSelector,proto3" json:"dest_chain_selector,omitempty"` - SequenceNumber uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` - Nonce uint64 `protobuf:"varint,5,opt,name=nonce,proto3" json:"nonce,omitempty"` - MsgHash []byte `protobuf:"bytes,6,opt,name=msg_hash,json=msgHash,proto3" json:"msg_hash,omitempty"` - OnRamp []byte `protobuf:"bytes,7,opt,name=on_ramp,json=onRamp,proto3" json:"on_ramp,omitempty"` // address - TxHash string `protobuf:"bytes,8,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MessageId []byte `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` + SourceChainSelector uint64 `protobuf:"varint,2,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` + DestChainSelector uint64 `protobuf:"varint,3,opt,name=dest_chain_selector,json=destChainSelector,proto3" json:"dest_chain_selector,omitempty"` + SequenceNumber uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + Nonce uint64 `protobuf:"varint,5,opt,name=nonce,proto3" json:"nonce,omitempty"` + MsgHash []byte `protobuf:"bytes,6,opt,name=msg_hash,json=msgHash,proto3" json:"msg_hash,omitempty"` + OnRamp []byte `protobuf:"bytes,7,opt,name=on_ramp,json=onRamp,proto3" json:"on_ramp,omitempty"` // address + TxHash string `protobuf:"bytes,8,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` } func (x *RampMessageHeader) Reset() { *x = RampMessageHeader{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *RampMessageHeader) String() string { @@ -2135,7 +2239,7 @@ func (*RampMessageHeader) ProtoMessage() {} func (x *RampMessageHeader) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2207,21 +2311,24 @@ func (x *RampMessageHeader) GetTxHash() string { } type RampTokenAmount struct { - state protoimpl.MessageState `protogen:"open.v1"` - SourcePoolAddress []byte `protobuf:"bytes,1,opt,name=source_pool_address,json=sourcePoolAddress,proto3" json:"source_pool_address,omitempty"` // address - DestTokenAddress []byte `protobuf:"bytes,2,opt,name=dest_token_address,json=destTokenAddress,proto3" json:"dest_token_address,omitempty"` // address - ExtraData []byte `protobuf:"bytes,3,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"` - Amount []byte `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` // bigInt bytes - DestExecData []byte `protobuf:"bytes,5,opt,name=dest_exec_data,json=destExecData,proto3" json:"dest_exec_data,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SourcePoolAddress []byte `protobuf:"bytes,1,opt,name=source_pool_address,json=sourcePoolAddress,proto3" json:"source_pool_address,omitempty"` // address + DestTokenAddress []byte `protobuf:"bytes,2,opt,name=dest_token_address,json=destTokenAddress,proto3" json:"dest_token_address,omitempty"` // address + ExtraData []byte `protobuf:"bytes,3,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"` + Amount []byte `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` // bigInt bytes + DestExecData []byte `protobuf:"bytes,5,opt,name=dest_exec_data,json=destExecData,proto3" json:"dest_exec_data,omitempty"` } func (x *RampTokenAmount) Reset() { *x = RampTokenAmount{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *RampTokenAmount) String() string { @@ -2232,7 +2339,7 @@ func (*RampTokenAmount) ProtoMessage() {} func (x *RampTokenAmount) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2283,17 +2390,20 @@ func (x *RampTokenAmount) GetDestExecData() []byte { } type StringAddrToNonce struct { - state protoimpl.MessageState `protogen:"open.v1"` - Nonces map[string]uint64 `protobuf:"bytes,1,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // address string to nonce - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nonces map[string]uint64 `protobuf:"bytes,1,rep,name=nonces,proto3" json:"nonces,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // address string to nonce } func (x *StringAddrToNonce) Reset() { *x = StringAddrToNonce{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *StringAddrToNonce) String() string { @@ -2304,7 +2414,7 @@ func (*StringAddrToNonce) ProtoMessage() {} func (x *StringAddrToNonce) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2327,17 +2437,20 @@ func (x *StringAddrToNonce) GetNonces() map[string]uint64 { } type ExecutePluginReport struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChainReports []*ChainReport `protobuf:"bytes,1,rep,name=chain_reports,json=chainReports,proto3" json:"chain_reports,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainReports []*ChainReport `protobuf:"bytes,1,rep,name=chain_reports,json=chainReports,proto3" json:"chain_reports,omitempty"` } func (x *ExecutePluginReport) Reset() { *x = ExecutePluginReport{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ExecutePluginReport) String() string { @@ -2348,7 +2461,7 @@ func (*ExecutePluginReport) ProtoMessage() {} func (x *ExecutePluginReport) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2371,21 +2484,24 @@ func (x *ExecutePluginReport) GetChainReports() []*ChainReport { } type ChainReport struct { - state protoimpl.MessageState `protogen:"open.v1"` - SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` - Messages []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"` - OffchainTokenData []*RepeatedBytes `protobuf:"bytes,3,rep,name=offchain_token_data,json=offchainTokenData,proto3" json:"offchain_token_data,omitempty"` - Proofs [][]byte `protobuf:"bytes,4,rep,name=proofs,proto3" json:"proofs,omitempty"` - ProofFlagBits []byte `protobuf:"bytes,5,opt,name=proof_flag_bits,json=proofFlagBits,proto3" json:"proof_flag_bits,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` + Messages []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"` + OffchainTokenData []*RepeatedBytes `protobuf:"bytes,3,rep,name=offchain_token_data,json=offchainTokenData,proto3" json:"offchain_token_data,omitempty"` + Proofs [][]byte `protobuf:"bytes,4,rep,name=proofs,proto3" json:"proofs,omitempty"` + ProofFlagBits []byte `protobuf:"bytes,5,opt,name=proof_flag_bits,json=proofFlagBits,proto3" json:"proof_flag_bits,omitempty"` } func (x *ChainReport) Reset() { *x = ChainReport{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ChainReport) String() string { @@ -2396,7 +2512,7 @@ func (*ChainReport) ProtoMessage() {} func (x *ChainReport) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2447,17 +2563,20 @@ func (x *ChainReport) GetProofFlagBits() []byte { } type RepeatedBytes struct { - state protoimpl.MessageState `protogen:"open.v1"` - Items [][]byte `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items [][]byte `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` } func (x *RepeatedBytes) Reset() { *x = RepeatedBytes{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *RepeatedBytes) String() string { @@ -2468,7 +2587,7 @@ func (*RepeatedBytes) ProtoMessage() {} func (x *RepeatedBytes) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2491,18 +2610,21 @@ func (x *RepeatedBytes) GetItems() [][]byte { } type SeqNumRange struct { - state protoimpl.MessageState `protogen:"open.v1"` - MinMsgNr uint64 `protobuf:"varint,1,opt,name=min_msg_nr,json=minMsgNr,proto3" json:"min_msg_nr,omitempty"` - MaxMsgNr uint64 `protobuf:"varint,2,opt,name=max_msg_nr,json=maxMsgNr,proto3" json:"max_msg_nr,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MinMsgNr uint64 `protobuf:"varint,1,opt,name=min_msg_nr,json=minMsgNr,proto3" json:"min_msg_nr,omitempty"` + MaxMsgNr uint64 `protobuf:"varint,2,opt,name=max_msg_nr,json=maxMsgNr,proto3" json:"max_msg_nr,omitempty"` } func (x *SeqNumRange) Reset() { *x = SeqNumRange{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SeqNumRange) String() string { @@ -2513,7 +2635,7 @@ func (*SeqNumRange) ProtoMessage() {} func (x *SeqNumRange) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2543,18 +2665,21 @@ func (x *SeqNumRange) GetMaxMsgNr() uint64 { } type SeqNumChain struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - SeqNum uint64 `protobuf:"varint,2,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + SeqNum uint64 `protobuf:"varint,2,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"` } func (x *SeqNumChain) Reset() { *x = SeqNumChain{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SeqNumChain) String() string { @@ -2565,7 +2690,7 @@ func (*SeqNumChain) ProtoMessage() {} func (x *SeqNumChain) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2595,18 +2720,21 @@ func (x *SeqNumChain) GetSeqNum() uint64 { } type ChainRange struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + SeqNumRange *SeqNumRange `protobuf:"bytes,2,opt,name=seq_num_range,json=seqNumRange,proto3" json:"seq_num_range,omitempty"` } func (x *ChainRange) Reset() { *x = ChainRange{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *ChainRange) String() string { @@ -2617,7 +2745,7 @@ func (*ChainRange) ProtoMessage() {} func (x *ChainRange) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2647,18 +2775,21 @@ func (x *ChainRange) GetSeqNumRange() *SeqNumRange { } type SourceChainMeta struct { - state protoimpl.MessageState `protogen:"open.v1"` - SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` - OnrampAddress []byte `protobuf:"bytes,2,opt,name=onramp_address,json=onrampAddress,proto3" json:"onramp_address,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SourceChainSelector uint64 `protobuf:"varint,1,opt,name=source_chain_selector,json=sourceChainSelector,proto3" json:"source_chain_selector,omitempty"` + OnrampAddress []byte `protobuf:"bytes,2,opt,name=onramp_address,json=onrampAddress,proto3" json:"onramp_address,omitempty"` } func (x *SourceChainMeta) Reset() { *x = SourceChainMeta{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *SourceChainMeta) String() string { @@ -2669,7 +2800,7 @@ func (*SourceChainMeta) ProtoMessage() {} func (x *SourceChainMeta) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2699,20 +2830,23 @@ func (x *SourceChainMeta) GetOnrampAddress() []byte { } type MerkleRootChain struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` - OnRampAddress []byte `protobuf:"bytes,2,opt,name=on_ramp_address,json=onRampAddress,proto3" json:"on_ramp_address,omitempty"` - SeqNumsRange *SeqNumRange `protobuf:"bytes,3,opt,name=seq_nums_range,json=seqNumsRange,proto3" json:"seq_nums_range,omitempty"` - MerkleRoot []byte `protobuf:"bytes,4,opt,name=merkle_root,json=merkleRoot,proto3" json:"merkle_root,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainSel uint64 `protobuf:"varint,1,opt,name=chain_sel,json=chainSel,proto3" json:"chain_sel,omitempty"` + OnRampAddress []byte `protobuf:"bytes,2,opt,name=on_ramp_address,json=onRampAddress,proto3" json:"on_ramp_address,omitempty"` + SeqNumsRange *SeqNumRange `protobuf:"bytes,3,opt,name=seq_nums_range,json=seqNumsRange,proto3" json:"seq_nums_range,omitempty"` + MerkleRoot []byte `protobuf:"bytes,4,opt,name=merkle_root,json=merkleRoot,proto3" json:"merkle_root,omitempty"` } func (x *MerkleRootChain) Reset() { *x = MerkleRootChain{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *MerkleRootChain) String() string { @@ -2723,7 +2857,7 @@ func (*MerkleRootChain) ProtoMessage() {} func (x *MerkleRootChain) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2767,18 +2901,21 @@ func (x *MerkleRootChain) GetMerkleRoot() []byte { } type TimestampedBig struct { - state protoimpl.MessageState `protogen:"open.v1"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - unknownFields protoimpl.UnknownFields + state protoimpl.MessageState sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *TimestampedBig) Reset() { *x = TimestampedBig{} - mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if protoimpl.UnsafeEnabled { + mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } func (x *TimestampedBig) String() string { @@ -2789,7 +2926,7 @@ func (*TimestampedBig) ProtoMessage() {} func (x *TimestampedBig) ProtoReflect() protoreflect.Message { mi := &file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45] - if x != nil { + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2820,308 +2957,744 @@ func (x *TimestampedBig) GetValue() []byte { var File_pkg_ocrtypecodec_v1_ocrtypes_proto protoreflect.FileDescriptor -const file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc = "" + - "\n" + - "\"pkg/ocrtypecodec/v1/ocrtypes.proto\x12\x13pkg.ocrtypecodec.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"_\n" + - "\vCommitQuery\x12P\n" + - "\x11merkle_root_query\x18\x01 \x01(\v2$.pkg.ocrtypecodec.v1.MerkleRootQueryR\x0fmerkleRootQuery\"\x9b\x04\n" + - "\x11CommitObservation\x12R\n" + - "\x0fmerkle_root_obs\x18\x01 \x01(\v2*.pkg.ocrtypecodec.v1.MerkleRootObservationR\rmerkleRootObs\x12R\n" + - "\x0ftoken_price_obs\x18\x02 \x01(\v2*.pkg.ocrtypecodec.v1.TokenPriceObservationR\rtokenPriceObs\x12L\n" + - "\rchain_fee_obs\x18\x03 \x01(\v2(.pkg.ocrtypecodec.v1.ChainFeeObservationR\vchainFeeObs\x12N\n" + - "\rdiscovery_obs\x18\x04 \x01(\v2).pkg.ocrtypecodec.v1.DiscoveryObservationR\fdiscoveryObs\x12K\n" + - "\af_chain\x18\x05 \x03(\v22.pkg.ocrtypecodec.v1.CommitObservation.FChainEntryR\x06fChain\x128\n" + - "\x19onchain_price_ocr_seq_num\x18\x06 \x01(\x04R\x15onchainPriceOcrSeqNum\x1a9\n" + - "\vFChainEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xd6\x02\n" + - "\rCommitOutcome\x12V\n" + - "\x13merkle_root_outcome\x18\x01 \x01(\v2&.pkg.ocrtypecodec.v1.MerkleRootOutcomeR\x11merkleRootOutcome\x12V\n" + - "\x13token_price_outcome\x18\x02 \x01(\v2&.pkg.ocrtypecodec.v1.TokenPriceOutcomeR\x11tokenPriceOutcome\x12P\n" + - "\x11chain_fee_outcome\x18\x03 \x01(\v2$.pkg.ocrtypecodec.v1.ChainFeeOutcomeR\x0fchainFeeOutcome\x12C\n" + - "\fmain_outcome\x18\x04 \x01(\v2 .pkg.ocrtypecodec.v1.MainOutcomeR\vmainOutcome\"\xe9\b\n" + - "\x0fExecObservation\x12^\n" + - "\x0ecommit_reports\x18\x01 \x03(\v27.pkg.ocrtypecodec.v1.ExecObservation.CommitReportsEntryR\rcommitReports\x12`\n" + - "\x10seq_nums_to_msgs\x18\x02 \x03(\v27.pkg.ocrtypecodec.v1.ExecObservation.SeqNumsToMsgsEntryR\rseqNumsToMsgs\x12R\n" + - "\n" + - "msg_hashes\x18\x03 \x03(\v23.pkg.ocrtypecodec.v1.ExecObservation.MsgHashesEntryR\tmsgHashes\x12b\n" + - "\x17token_data_observations\x18\x04 \x01(\v2*.pkg.ocrtypecodec.v1.TokenDataObservationsR\x15tokenDataObservations\x12+\n" + - "\x0fcostly_messages\x18\x05 \x03(\fB\x02\x18\x01R\x0ecostlyMessages\x12H\n" + - "\x06nonces\x18\x06 \x03(\v20.pkg.ocrtypecodec.v1.ExecObservation.NoncesEntryR\x06nonces\x12G\n" + - "\tcontracts\x18\a \x01(\v2).pkg.ocrtypecodec.v1.DiscoveryObservationR\tcontracts\x12I\n" + - "\af_chain\x18\b \x03(\v20.pkg.ocrtypecodec.v1.ExecObservation.FChainEntryR\x06fChain\x1ai\n" + - "\x12CommitReportsEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12=\n" + - "\x05value\x18\x02 \x01(\v2'.pkg.ocrtypecodec.v1.CommitObservationsR\x05value:\x028\x01\x1af\n" + - "\x12SeqNumsToMsgsEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12:\n" + - "\x05value\x18\x02 \x01(\v2$.pkg.ocrtypecodec.v1.SeqNumToMessageR\x05value:\x028\x01\x1a`\n" + - "\x0eMsgHashesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x128\n" + - "\x05value\x18\x02 \x01(\v2\".pkg.ocrtypecodec.v1.SeqNumToBytesR\x05value:\x028\x01\x1aa\n" + - "\vNoncesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12<\n" + - "\x05value\x18\x02 \x01(\v2&.pkg.ocrtypecodec.v1.StringAddrToNonceR\x05value:\x028\x01\x1a9\n" + - "\vFChainEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xb6\x02\n" + - "\vExecOutcome\x12!\n" + - "\fplugin_state\x18\x01 \x01(\tR\vpluginState\x12F\n" + - "\x0ecommit_reports\x18\x02 \x03(\v2\x1f.pkg.ocrtypecodec.v1.CommitDataR\rcommitReports\x12\\\n" + - "\x15execute_plugin_report\x18\x03 \x01(\v2(.pkg.ocrtypecodec.v1.ExecutePluginReportR\x13executePluginReport\x12^\n" + - "\x16execute_plugin_reports\x18\x04 \x03(\v2(.pkg.ocrtypecodec.v1.ExecutePluginReportR\x14executePluginReports\"\x91\x01\n" + - "\x0fMerkleRootQuery\x120\n" + - "\x14retry_rmn_signatures\x18\x01 \x01(\bR\x12retryRmnSignatures\x12L\n" + - "\x0ermn_signatures\x18\x02 \x01(\v2%.pkg.ocrtypecodec.v1.ReportSignaturesR\rrmnSignatures\"\xa0\x01\n" + - "\x10ReportSignatures\x12C\n" + - "\n" + - "signatures\x18\x01 \x03(\v2#.pkg.ocrtypecodec.v1.SignatureEcdsaR\n" + - "signatures\x12G\n" + - "\flane_updates\x18\x02 \x03(\v2$.pkg.ocrtypecodec.v1.DestChainUpdateR\vlaneUpdates\",\n" + - "\x0eSignatureEcdsa\x12\f\n" + - "\x01r\x18\x01 \x01(\fR\x01r\x12\f\n" + - "\x01s\x18\x02 \x01(\fR\x01s\"\xb2\x01\n" + - "\x0fDestChainUpdate\x12E\n" + - "\vlane_source\x18\x01 \x01(\v2$.pkg.ocrtypecodec.v1.SourceChainMetaR\n" + - "laneSource\x12D\n" + - "\rseq_num_range\x18\x02 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\vseqNumRange\x12\x12\n" + - "\x04root\x18\x03 \x01(\fR\x04root\"\x9b\x05\n" + - "\x15MerkleRootObservation\x12G\n" + - "\fmerkle_roots\x18\x01 \x03(\v2$.pkg.ocrtypecodec.v1.MerkleRootChainR\vmerkleRoots\x12n\n" + - "\x12rmn_enabled_chains\x18\x02 \x03(\v2@.pkg.ocrtypecodec.v1.MerkleRootObservation.RmnEnabledChainsEntryR\x10rmnEnabledChains\x12P\n" + - "\x14on_ramp_max_seq_nums\x18\x03 \x03(\v2 .pkg.ocrtypecodec.v1.SeqNumChainR\x10onRampMaxSeqNums\x12T\n" + - "\x16off_ramp_next_seq_nums\x18\x04 \x03(\v2 .pkg.ocrtypecodec.v1.SeqNumChainR\x12offRampNextSeqNums\x12P\n" + - "\x11rmn_remote_config\x18\x05 \x01(\v2$.pkg.ocrtypecodec.v1.RmnRemoteConfigR\x0frmnRemoteConfig\x12O\n" + - "\af_chain\x18\x06 \x03(\v26.pkg.ocrtypecodec.v1.MerkleRootObservation.FChainEntryR\x06fChain\x1aC\n" + - "\x15RmnEnabledChainsEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\x1a9\n" + - "\vFChainEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\x8e\x02\n" + - "\x0fRmnRemoteConfig\x12)\n" + - "\x10contract_address\x18\x01 \x01(\fR\x0fcontractAddress\x12#\n" + - "\rconfig_digest\x18\x02 \x01(\fR\fconfigDigest\x12?\n" + - "\asigners\x18\x03 \x03(\v2%.pkg.ocrtypecodec.v1.RemoteSignerInfoR\asigners\x12\x15\n" + - "\x06f_sign\x18\x04 \x01(\x04R\x05fSign\x12%\n" + - "\x0econfig_version\x18\x05 \x01(\rR\rconfigVersion\x12,\n" + - "\x12rmn_report_version\x18\x06 \x01(\fR\x10rmnReportVersion\"_\n" + - "\x10RemoteSignerInfo\x12,\n" + - "\x12onchain_public_key\x18\x01 \x01(\fR\x10onchainPublicKey\x12\x1d\n" + - "\n" + - "node_index\x18\x02 \x01(\x04R\tnodeIndex\"\xfd\x04\n" + - "\x15TokenPriceObservation\x12k\n" + - "\x11feed_token_prices\x18\x01 \x03(\v2?.pkg.ocrtypecodec.v1.TokenPriceObservation.FeedTokenPricesEntryR\x0ffeedTokenPrices\x12~\n" + - "\x18fee_quoter_token_updates\x18\x02 \x03(\v2E.pkg.ocrtypecodec.v1.TokenPriceObservation.FeeQuoterTokenUpdatesEntryR\x15feeQuoterTokenUpdates\x12O\n" + - "\af_chain\x18\x03 \x03(\v26.pkg.ocrtypecodec.v1.TokenPriceObservation.FChainEntryR\x06fChain\x128\n" + - "\ttimestamp\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x1aB\n" + - "\x14FeedTokenPricesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1am\n" + - "\x1aFeeQuoterTokenUpdatesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x129\n" + - "\x05value\x18\x02 \x01(\v2#.pkg.ocrtypecodec.v1.TimestampedBigR\x05value:\x028\x01\x1a9\n" + - "\vFChainEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xba\x06\n" + - "\x13ChainFeeObservation\x12b\n" + - "\x0efee_components\x18\x01 \x03(\v2;.pkg.ocrtypecodec.v1.ChainFeeObservation.FeeComponentsEntryR\rfeeComponents\x12o\n" + - "\x13native_token_prices\x18\x02 \x03(\v2?.pkg.ocrtypecodec.v1.ChainFeeObservation.NativeTokenPricesEntryR\x11nativeTokenPrices\x12i\n" + - "\x11chain_fee_updates\x18\x03 \x03(\v2=.pkg.ocrtypecodec.v1.ChainFeeObservation.ChainFeeUpdatesEntryR\x0fchainFeeUpdates\x12M\n" + - "\af_chain\x18\x04 \x03(\v24.pkg.ocrtypecodec.v1.ChainFeeObservation.FChainEntryR\x06fChain\x12?\n" + - "\rtimestamp_now\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\ftimestampNow\x1ai\n" + - "\x12FeeComponentsEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12=\n" + - "\x05value\x18\x02 \x01(\v2'.pkg.ocrtypecodec.v1.ChainFeeComponentsR\x05value:\x028\x01\x1aD\n" + - "\x16NativeTokenPricesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1ag\n" + - "\x14ChainFeeUpdatesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x129\n" + - "\x05value\x18\x02 \x01(\v2#.pkg.ocrtypecodec.v1.ChainFeeUpdateR\x05value:\x028\x01\x1a9\n" + - "\vFChainEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"m\n" + - "\x12ChainFeeComponents\x12#\n" + - "\rexecution_fee\x18\x01 \x01(\fR\fexecutionFee\x122\n" + - "\x15data_availability_fee\x18\x02 \x01(\fR\x13dataAvailabilityFee\"\x91\x01\n" + - "\x0eChainFeeUpdate\x12E\n" + - "\tchain_fee\x18\x01 \x01(\v2(.pkg.ocrtypecodec.v1.ComponentsUSDPricesR\bchainFee\x128\n" + - "\ttimestamp\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"~\n" + - "\x13ComponentsUSDPrices\x125\n" + - "\x17execution_fee_price_usd\x18\x01 \x01(\fR\x14executionFeePriceUsd\x120\n" + - "\x15data_av_fee_price_usd\x18\x02 \x01(\fR\x11dataAvFeePriceUsd\"\xf9\x01\n" + - "\x14DiscoveryObservation\x12N\n" + - "\af_chain\x18\x01 \x03(\v25.pkg.ocrtypecodec.v1.DiscoveryObservation.FChainEntryR\x06fChain\x12V\n" + - "\x0econtract_names\x18\x02 \x01(\v2/.pkg.ocrtypecodec.v1.ContractNameChainAddressesR\rcontractNames\x1a9\n" + - "\vFChainEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"\xde\x01\n" + - "\x1aContractNameChainAddresses\x12\\\n" + - "\taddresses\x18\x01 \x03(\v2>.pkg.ocrtypecodec.v1.ContractNameChainAddresses.AddressesEntryR\taddresses\x1ab\n" + - "\x0eAddressesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12:\n" + - "\x05value\x18\x02 \x01(\v2$.pkg.ocrtypecodec.v1.ChainAddressMapR\x05value:\x028\x01\"\xb7\x01\n" + - "\x0fChainAddressMap\x12a\n" + - "\x0fchain_addresses\x18\x01 \x03(\v28.pkg.ocrtypecodec.v1.ChainAddressMap.ChainAddressesEntryR\x0echainAddresses\x1aA\n" + - "\x13ChainAddressesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\xdb\x05\n" + - "\x11MerkleRootOutcome\x12!\n" + - "\foutcome_type\x18\x01 \x01(\x05R\voutcomeType\x12\\\n" + - "\x1aranges_selected_for_report\x18\x02 \x03(\v2\x1f.pkg.ocrtypecodec.v1.ChainRangeR\x17rangesSelectedForReport\x12L\n" + - "\x0froots_to_report\x18\x03 \x03(\v2$.pkg.ocrtypecodec.v1.MerkleRootChainR\rrootsToReport\x12j\n" + - "\x12rmn_enabled_chains\x18\x04 \x03(\v2<.pkg.ocrtypecodec.v1.MerkleRootOutcome.RmnEnabledChainsEntryR\x10rmnEnabledChains\x12T\n" + - "\x16off_ramp_next_seq_nums\x18\x05 \x03(\v2 .pkg.ocrtypecodec.v1.SeqNumChainR\x12offRampNextSeqNums\x12K\n" + - "\"report_transmission_check_attempts\x18\x06 \x01(\rR\x1freportTransmissionCheckAttempts\x12W\n" + - "\x15rmn_report_signatures\x18\a \x03(\v2#.pkg.ocrtypecodec.v1.SignatureEcdsaR\x13rmnReportSignatures\x12J\n" + - "\x0ermn_remote_cfg\x18\b \x01(\v2$.pkg.ocrtypecodec.v1.RmnRemoteConfigR\frmnRemoteCfg\x1aC\n" + - "\x15RmnEnabledChainsEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"\xaf\x01\n" + - "\x11TokenPriceOutcome\x12Z\n" + - "\ftoken_prices\x18\x01 \x03(\v27.pkg.ocrtypecodec.v1.TokenPriceOutcome.TokenPricesEntryR\vtokenPrices\x1a>\n" + - "\x10TokenPricesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"T\n" + - "\x0fChainFeeOutcome\x12A\n" + - "\n" + - "gas_prices\x18\x01 \x03(\v2\".pkg.ocrtypecodec.v1.GasPriceChainR\tgasPrices\"I\n" + - "\rGasPriceChain\x12\x1b\n" + - "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12\x1b\n" + - "\tgas_price\x18\x02 \x01(\fR\bgasPrice\"\x8f\x01\n" + - "\vMainOutcome\x12J\n" + - "\"inflight_price_ocr_sequence_number\x18\x01 \x01(\x04R\x1einflightPriceOcrSequenceNumber\x124\n" + - "\x16remaining_price_checks\x18\x02 \x01(\x05R\x14remainingPriceChecks\"V\n" + - "\x12CommitObservations\x12@\n" + - "\vcommit_data\x18\x01 \x03(\v2\x1f.pkg.ocrtypecodec.v1.CommitDataR\n" + - "commitData\"\xa6\x04\n" + - "\n" + - "CommitData\x12!\n" + - "\fsource_chain\x18\x01 \x01(\x04R\vsourceChain\x12&\n" + - "\x0fon_ramp_address\x18\x02 \x01(\fR\ronRampAddress\x128\n" + - "\ttimestamp\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x12\x1b\n" + - "\tblock_num\x18\x04 \x01(\x04R\bblockNum\x12\x1f\n" + - "\vmerkle_root\x18\x05 \x01(\fR\n" + - "merkleRoot\x12T\n" + - "\x15sequence_number_range\x18\x06 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\x13sequenceNumberRange\x12+\n" + - "\x11executed_messages\x18\a \x03(\x04R\x10executedMessages\x128\n" + - "\bmessages\x18\b \x03(\v2\x1c.pkg.ocrtypecodec.v1.MessageR\bmessages\x12\x16\n" + - "\x06hashes\x18\t \x03(\fR\x06hashes\x12+\n" + - "\x0fcostly_messages\x18\n" + - " \x03(\fB\x02\x18\x01R\x0ecostlyMessages\x12S\n" + - "\x12message_token_data\x18\v \x03(\v2%.pkg.ocrtypecodec.v1.MessageTokenDataR\x10messageTokenData\"Q\n" + - "\x10MessageTokenData\x12=\n" + - "\n" + - "token_data\x18\x01 \x03(\v2\x1e.pkg.ocrtypecodec.v1.TokenDataR\ttokenData\"5\n" + - "\tTokenData\x12\x14\n" + - "\x05ready\x18\x01 \x01(\bR\x05ready\x12\x12\n" + - "\x04data\x18\x02 \x01(\fR\x04data\"\xbc\x01\n" + - "\x0fSeqNumToMessage\x12N\n" + - "\bmessages\x18\x01 \x03(\v22.pkg.ocrtypecodec.v1.SeqNumToMessage.MessagesEntryR\bmessages\x1aY\n" + - "\rMessagesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x122\n" + - "\x05value\x18\x02 \x01(\v2\x1c.pkg.ocrtypecodec.v1.MessageR\x05value:\x028\x01\"\xb1\x01\n" + - "\rSeqNumToBytes\x12^\n" + - "\x10seq_num_to_bytes\x18\x01 \x03(\v25.pkg.ocrtypecodec.v1.SeqNumToBytes.SeqNumToBytesEntryR\rseqNumToBytes\x1a@\n" + - "\x12SeqNumToBytesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\xd7\x01\n" + - "\x15TokenDataObservations\x12X\n" + - "\n" + - "token_data\x18\x01 \x03(\v29.pkg.ocrtypecodec.v1.TokenDataObservations.TokenDataEntryR\ttokenData\x1ad\n" + - "\x0eTokenDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12<\n" + - "\x05value\x18\x02 \x01(\v2&.pkg.ocrtypecodec.v1.SeqNumToTokenDataR\x05value:\x028\x01\"\xce\x01\n" + - "\x11SeqNumToTokenData\x12T\n" + - "\n" + - "token_data\x18\x01 \x03(\v25.pkg.ocrtypecodec.v1.SeqNumToTokenData.TokenDataEntryR\ttokenData\x1ac\n" + - "\x0eTokenDataEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\x04R\x03key\x12;\n" + - "\x05value\x18\x02 \x01(\v2%.pkg.ocrtypecodec.v1.MessageTokenDataR\x05value:\x028\x01\"\xea\x02\n" + - "\aMessage\x12>\n" + - "\x06header\x18\x01 \x01(\v2&.pkg.ocrtypecodec.v1.RampMessageHeaderR\x06header\x12\x16\n" + - "\x06sender\x18\x02 \x01(\fR\x06sender\x12\x12\n" + - "\x04data\x18\x03 \x01(\fR\x04data\x12\x1a\n" + - "\breceiver\x18\x04 \x01(\fR\breceiver\x12\x1d\n" + - "\n" + - "extra_args\x18\x05 \x01(\fR\textraArgs\x12\x1b\n" + - "\tfee_token\x18\a \x01(\fR\bfeeToken\x12(\n" + - "\x10fee_token_amount\x18\b \x01(\fR\x0efeeTokenAmount\x12&\n" + - "\x0ffee_value_juels\x18\t \x01(\fR\rfeeValueJuels\x12I\n" + - "\rtoken_amounts\x18\n" + - " \x03(\v2$.pkg.ocrtypecodec.v1.RampTokenAmountR\ftokenAmounts\"\xa2\x02\n" + - "\x11RampMessageHeader\x12\x1d\n" + - "\n" + - "message_id\x18\x01 \x01(\fR\tmessageId\x122\n" + - "\x15source_chain_selector\x18\x02 \x01(\x04R\x13sourceChainSelector\x12.\n" + - "\x13dest_chain_selector\x18\x03 \x01(\x04R\x11destChainSelector\x12'\n" + - "\x0fsequence_number\x18\x04 \x01(\x04R\x0esequenceNumber\x12\x14\n" + - "\x05nonce\x18\x05 \x01(\x04R\x05nonce\x12\x19\n" + - "\bmsg_hash\x18\x06 \x01(\fR\amsgHash\x12\x17\n" + - "\aon_ramp\x18\a \x01(\fR\x06onRamp\x12\x17\n" + - "\atx_hash\x18\b \x01(\tR\x06txHash\"\xcc\x01\n" + - "\x0fRampTokenAmount\x12.\n" + - "\x13source_pool_address\x18\x01 \x01(\fR\x11sourcePoolAddress\x12,\n" + - "\x12dest_token_address\x18\x02 \x01(\fR\x10destTokenAddress\x12\x1d\n" + - "\n" + - "extra_data\x18\x03 \x01(\fR\textraData\x12\x16\n" + - "\x06amount\x18\x04 \x01(\fR\x06amount\x12$\n" + - "\x0edest_exec_data\x18\x05 \x01(\fR\fdestExecData\"\x9a\x01\n" + - "\x11StringAddrToNonce\x12J\n" + - "\x06nonces\x18\x01 \x03(\v22.pkg.ocrtypecodec.v1.StringAddrToNonce.NoncesEntryR\x06nonces\x1a9\n" + - "\vNoncesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x04R\x05value:\x028\x01\"\\\n" + - "\x13ExecutePluginReport\x12E\n" + - "\rchain_reports\x18\x01 \x03(\v2 .pkg.ocrtypecodec.v1.ChainReportR\fchainReports\"\x8f\x02\n" + - "\vChainReport\x122\n" + - "\x15source_chain_selector\x18\x01 \x01(\x04R\x13sourceChainSelector\x128\n" + - "\bmessages\x18\x02 \x03(\v2\x1c.pkg.ocrtypecodec.v1.MessageR\bmessages\x12R\n" + - "\x13offchain_token_data\x18\x03 \x03(\v2\".pkg.ocrtypecodec.v1.RepeatedBytesR\x11offchainTokenData\x12\x16\n" + - "\x06proofs\x18\x04 \x03(\fR\x06proofs\x12&\n" + - "\x0fproof_flag_bits\x18\x05 \x01(\fR\rproofFlagBits\"%\n" + - "\rRepeatedBytes\x12\x14\n" + - "\x05items\x18\x01 \x03(\fR\x05items\"I\n" + - "\vSeqNumRange\x12\x1c\n" + - "\n" + - "min_msg_nr\x18\x01 \x01(\x04R\bminMsgNr\x12\x1c\n" + - "\n" + - "max_msg_nr\x18\x02 \x01(\x04R\bmaxMsgNr\"C\n" + - "\vSeqNumChain\x12\x1b\n" + - "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12\x17\n" + - "\aseq_num\x18\x02 \x01(\x04R\x06seqNum\"o\n" + - "\n" + - "ChainRange\x12\x1b\n" + - "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12D\n" + - "\rseq_num_range\x18\x02 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\vseqNumRange\"l\n" + - "\x0fSourceChainMeta\x122\n" + - "\x15source_chain_selector\x18\x01 \x01(\x04R\x13sourceChainSelector\x12%\n" + - "\x0eonramp_address\x18\x02 \x01(\fR\ronrampAddress\"\xbf\x01\n" + - "\x0fMerkleRootChain\x12\x1b\n" + - "\tchain_sel\x18\x01 \x01(\x04R\bchainSel\x12&\n" + - "\x0fon_ramp_address\x18\x02 \x01(\fR\ronRampAddress\x12F\n" + - "\x0eseq_nums_range\x18\x03 \x01(\v2 .pkg.ocrtypecodec.v1.SeqNumRangeR\fseqNumsRange\x12\x1f\n" + - "\vmerkle_root\x18\x04 \x01(\fR\n" + - "merkleRoot\"`\n" + - "\x0eTimestampedBig\x128\n" + - "\ttimestamp\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\x12\x14\n" + - "\x05value\x18\x02 \x01(\fR\x05valueB\x13Z\x11./;ocrtypecodecpbb\x06proto3" +var file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x70, 0x6b, 0x67, 0x2f, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5f, 0x0a, 0x0b, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x6d, 0x65, 0x72, + 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, + 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, + 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x65, 0x72, 0x6b, + 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x9b, 0x04, 0x0a, 0x11, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x52, 0x0a, 0x0f, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x6b, 0x67, + 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, + 0x6f, 0x74, 0x4f, 0x62, 0x73, 0x12, 0x52, 0x0a, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, + 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x19, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x63, 0x72, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, + 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x63, 0x72, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x1a, 0x39, + 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd6, 0x02, 0x0a, 0x0d, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x6d, + 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, + 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, + 0x52, 0x11, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, + 0x6f, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, + 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x0f, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x43, 0x0a, + 0x0c, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x4f, 0x75, + 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x4f, 0x75, 0x74, 0x63, 0x6f, + 0x6d, 0x65, 0x22, 0xe9, 0x08, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x10, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, + 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x37, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x54, 0x6f, + 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x65, 0x71, 0x4e, 0x75, + 0x6d, 0x73, 0x54, 0x6f, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, + 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x17, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x15, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x6f, 0x73, 0x74, 0x6c, 0x79, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x63, + 0x6f, 0x73, 0x74, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x48, 0x0a, + 0x06, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x6b, 0x67, + 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, + 0x12, 0x49, 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x69, 0x0a, 0x12, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x66, 0x0a, 0x12, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, + 0x73, 0x54, 0x6f, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, + 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x61, 0x0a, 0x0b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x64, + 0x72, 0x54, 0x6f, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, + 0x02, 0x0a, 0x0b, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, + 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, + 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x16, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, + 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x72, 0x6b, + 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x72, + 0x65, 0x74, 0x72, 0x79, 0x5f, 0x72, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x74, 0x72, 0x79, + 0x52, 0x6d, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x4c, 0x0a, + 0x0e, 0x72, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, + 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x0d, 0x72, 0x6d, + 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x10, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, + 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x45, 0x63, 0x64, 0x73, 0x61, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0c, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x0b, 0x6c, 0x61, 0x6e, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x2c, + 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x63, 0x64, 0x73, 0x61, + 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x72, 0x12, 0x0c, + 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x73, 0x22, 0xb2, 0x01, 0x0a, + 0x0f, 0x44, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x45, 0x0a, 0x0b, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, + 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0a, 0x6c, 0x61, 0x6e, + 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x71, 0x5f, 0x6e, + 0x75, 0x6d, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x0b, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x6f, 0x6f, + 0x74, 0x22, 0x9b, 0x05, 0x0a, 0x15, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, + 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x6d, + 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, + 0x6f, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x0b, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, + 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x12, 0x72, 0x6d, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x40, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, + 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x6d, 0x6e, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x10, 0x72, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x14, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x4d, 0x61, 0x78, 0x53, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x6f, 0x66, 0x66, 0x5f, 0x72, 0x61, + 0x6d, 0x70, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, + 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, + 0x4e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x12, 0x6f, 0x66, 0x66, 0x52, 0x61, 0x6d, + 0x70, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x50, 0x0a, 0x11, + 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, + 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6d, + 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x72, + 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, + 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x36, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, + 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, + 0x43, 0x0a, 0x15, 0x52, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x8e, 0x02, 0x0a, 0x0f, 0x52, 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, + 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x66, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, + 0x72, 0x6d, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x5f, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x10, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, + 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0xfd, 0x04, 0x0a, 0x15, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x11, 0x66, + 0x65, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, + 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x18, 0x66, 0x65, 0x65, 0x5f, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x70, 0x6b, 0x67, + 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x72, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x15, 0x66, 0x65, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x07, 0x66, 0x5f, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x6b, 0x67, 0x2e, + 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x1a, 0x42, 0x0a, 0x14, 0x46, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6d, 0x0a, 0x1a, 0x46, 0x65, 0x65, 0x51, 0x75, + 0x6f, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, + 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x42, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xba, 0x06, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0e, 0x66, 0x65, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, + 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x66, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x6f, 0x0a, + 0x13, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x6b, 0x67, + 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6e, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x69, + 0x0a, 0x11, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x6b, 0x67, 0x2e, + 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, + 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x07, 0x66, 0x5f, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x6b, 0x67, + 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x6f, 0x77, 0x1a, 0x69, 0x0a, 0x12, 0x46, 0x65, 0x65, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x14, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, + 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, + 0x0a, 0x12, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x66, + 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x64, 0x61, 0x74, 0x61, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x22, 0x91, 0x01, + 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x45, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x73, 0x55, 0x53, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x7e, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x55, + 0x53, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, + 0x75, 0x73, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, 0x64, 0x12, + 0x30, 0x0a, 0x15, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x76, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x76, 0x46, 0x65, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x73, + 0x64, 0x22, 0xf9, 0x01, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x07, 0x66, 0x5f, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x56, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xde, 0x01, + 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3e, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x62, 0x0a, 0x0e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x4d, 0x61, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb7, + 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, + 0x61, 0x70, 0x12, 0x61, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, + 0x70, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdb, 0x05, 0x0a, 0x11, 0x4d, 0x65, 0x72, + 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x5c, 0x0a, 0x1a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, + 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x17, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x4c, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, + 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x0d, + 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x6a, 0x0a, + 0x12, 0x72, 0x6d, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x6b, 0x67, 0x2e, + 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, + 0x65, 0x2e, 0x52, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x72, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x6f, 0x66, 0x66, + 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, + 0x75, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, + 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x12, 0x6f, 0x66, 0x66, + 0x52, 0x61, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x73, 0x12, + 0x4b, 0x0a, 0x22, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x15, + 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x63, 0x64, 0x73, 0x61, + 0x52, 0x13, 0x72, 0x6d, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x6d, 0x6e, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x66, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0c, 0x72, 0x6d, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x66, + 0x67, 0x1a, 0x43, 0x0a, 0x15, 0x52, 0x6d, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaf, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x0c, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x54, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x46, 0x65, 0x65, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x67, + 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x52, 0x09, 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x22, 0x49, + 0x0a, 0x0d, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x0b, 0x4d, 0x61, + 0x69, 0x6e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x22, 0x69, 0x6e, 0x66, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x63, 0x72, 0x5f, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x4f, 0x63, 0x72, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, + 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x22, 0xa6, 0x04, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x6b, 0x6c, + 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x54, 0x0a, 0x15, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, + 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, + 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x13, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6b, 0x67, + 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x6f, + 0x73, 0x74, 0x6c, 0x79, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x73, 0x74, 0x6c, 0x79, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0x51, 0x0a, 0x10, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3d, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, + 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, + 0x35, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbc, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x71, 0x4e, 0x75, + 0x6d, 0x54, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, + 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x59, 0x0a, 0x0d, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, + 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb1, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, + 0x54, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x73, 0x65, 0x71, 0x5f, 0x6e, + 0x75, 0x6d, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, + 0x54, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x53, 0x65, 0x71, 0x4e, 0x75, + 0x6d, 0x54, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd7, 0x01, 0x0a, 0x15, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, + 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, + 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xce, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x54, 0x6f, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x1a, + 0x63, 0x0a, 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xea, 0x02, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x41, 0x72, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x65, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x65, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, + 0x66, 0x65, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, + 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6a, 0x75, 0x65, 0x6c, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x4a, 0x75, 0x65, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6d, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x11, 0x52, 0x61, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, + 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x52, 0x61, 0x6d, 0x70, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, + 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x24, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x22, 0x9a, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x41, 0x64, 0x64, 0x72, 0x54, 0x6f, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x64, 0x72, 0x54, 0x6f, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x5c, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x22, 0x8f, 0x02, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6b, 0x67, 0x2e, 0x6f, 0x63, 0x72, + 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x52, + 0x0a, 0x13, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, + 0x11, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x46, 0x6c, 0x61, 0x67, 0x42, 0x69, + 0x74, 0x73, 0x22, 0x25, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x49, 0x0a, 0x0b, 0x53, 0x65, 0x71, + 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, + 0x6d, 0x73, 0x67, 0x5f, 0x6e, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, + 0x6e, 0x4d, 0x73, 0x67, 0x4e, 0x72, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x73, + 0x67, 0x5f, 0x6e, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4d, + 0x73, 0x67, 0x4e, 0x72, 0x22, 0x43, 0x0a, 0x0b, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, + 0x12, 0x17, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x22, 0x6f, 0x0a, 0x0a, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x73, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x53, 0x65, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, + 0x67, 0x2e, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x73, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x6c, 0x0a, 0x0f, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x32, 0x0a, + 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x6e, 0x72, 0x61, 0x6d, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x6e, 0x72, 0x61, 0x6d, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x72, + 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, + 0x72, 0x61, 0x6d, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x6e, 0x52, 0x61, 0x6d, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x46, 0x0a, 0x0e, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x73, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x6b, 0x67, 0x2e, + 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x71, + 0x4e, 0x75, 0x6d, 0x73, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x72, + 0x6b, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, + 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x60, 0x0a, 0x0e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x42, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x13, 0x5a, 0x11, + 0x2e, 0x2f, 0x3b, 0x6f, 0x63, 0x72, 0x74, 0x79, 0x70, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} var ( file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescOnce sync.Once - file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData []byte + file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData = file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc ) func file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescGZIP() []byte { file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescOnce.Do(func() { - file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc), len(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc))) + file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData) }) return file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDescData } var file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes = make([]protoimpl.MessageInfo, 71) -var file_pkg_ocrtypecodec_v1_ocrtypes_proto_goTypes = []any{ +var file_pkg_ocrtypecodec_v1_ocrtypes_proto_goTypes = []interface{}{ (*CommitQuery)(nil), // 0: pkg.ocrtypecodec.v1.CommitQuery (*CommitObservation)(nil), // 1: pkg.ocrtypecodec.v1.CommitObservation (*CommitOutcome)(nil), // 2: pkg.ocrtypecodec.v1.CommitOutcome @@ -3293,11 +3866,565 @@ func file_pkg_ocrtypecodec_v1_ocrtypes_proto_init() { if File_pkg_ocrtypecodec_v1_ocrtypes_proto != nil { return } + if !protoimpl.UnsafeEnabled { + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommitQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommitObservation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommitOutcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecObservation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecOutcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MerkleRootQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportSignatures); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignatureEcdsa); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestChainUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MerkleRootObservation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RmnRemoteConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoteSignerInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenPriceObservation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainFeeObservation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainFeeComponents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainFeeUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComponentsUSDPrices); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiscoveryObservation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContractNameChainAddresses); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainAddressMap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MerkleRootOutcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenPriceOutcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainFeeOutcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GasPriceChain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MainOutcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommitObservations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommitData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageTokenData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SeqNumToMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SeqNumToBytes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenDataObservations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SeqNumToTokenData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RampMessageHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RampTokenAmount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringAddrToNonce); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutePluginReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepeatedBytes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SeqNumRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SeqNumChain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SourceChainMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MerkleRootChain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimestampedBig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc), len(file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc)), + RawDescriptor: file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc, NumEnums: 0, NumMessages: 71, NumExtensions: 0, @@ -3308,6 +4435,7 @@ func file_pkg_ocrtypecodec_v1_ocrtypes_proto_init() { MessageInfos: file_pkg_ocrtypecodec_v1_ocrtypes_proto_msgTypes, }.Build() File_pkg_ocrtypecodec_v1_ocrtypes_proto = out.File + file_pkg_ocrtypecodec_v1_ocrtypes_proto_rawDesc = nil file_pkg_ocrtypecodec_v1_ocrtypes_proto_goTypes = nil file_pkg_ocrtypecodec_v1_ocrtypes_proto_depIdxs = nil } From 42033fc58cd40767b991349f27c6e57970a80b80 Mon Sep 17 00:00:00 2001 From: Agustina Aldasoro Date: Tue, 27 Jan 2026 17:32:13 -0500 Subject: [PATCH 13/13] Fix imports --- devenv/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devenv/go.mod b/devenv/go.mod index 5f06793818..0b16a1d88f 100644 --- a/devenv/go.mod +++ b/devenv/go.mod @@ -41,7 +41,7 @@ require ( github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96 github.com/smartcontractkit/chainlink-deployments-framework v0.75.2-0.20260120092221-c83e6ba1e827 github.com/smartcontractkit/chainlink-evm v0.3.3 // indirect - github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20250808121824-2c3544aab8f3 + github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd github.com/smartcontractkit/chainlink-testing-framework/framework v0.12.6 github.com/smartcontractkit/chainlink-testing-framework/wasp v1.51.1 github.com/smartcontractkit/libocr v0.0.0-20250912173940-f3ab0246e23d