diff --git a/core/config/docs/core.toml b/core/config/docs/core.toml index 0a8e6aba3be..c2fc2560fb1 100644 --- a/core/config/docs/core.toml +++ b/core/config/docs/core.toml @@ -597,3 +597,8 @@ SamplingRatio = 1.0 # Example [Tracing.Attributes] # env is an example user specified key-value pair env = "test" # Example + +[TxmAsService] +# Enabled turns Transaction Manager as a service feature on or off. When enabled exposes endpoint to submit arbitrary EVM transaction +# using one of the keys enabled for the specified chain. +Enabled = false # Default diff --git a/core/services/chainlink/mocks/general_config.go b/core/services/chainlink/mocks/general_config.go index 98796e90053..4592cc218b6 100644 --- a/core/services/chainlink/mocks/general_config.go +++ b/core/services/chainlink/mocks/general_config.go @@ -591,6 +591,22 @@ func (_m *GeneralConfig) Tracing() config.Tracing { return r0 } +// TxmAsService provides a mock function with given fields: +func (_m *GeneralConfig) TxmAsService() config.TxmAsService { + ret := _m.Called() + + var r0 config.TxmAsService + if rf, ok := ret.Get(0).(func() config.TxmAsService); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(config.TxmAsService) + } + } + + return r0 +} + // Validate provides a mock function with given fields: func (_m *GeneralConfig) Validate() error { ret := _m.Called() diff --git a/core/web/resolver/testdata/config-empty-effective.toml b/core/web/resolver/testdata/config-empty-effective.toml index f5d775fe744..55edfd0cf01 100644 --- a/core/web/resolver/testdata/config-empty-effective.toml +++ b/core/web/resolver/testdata/config-empty-effective.toml @@ -232,3 +232,6 @@ Enabled = false CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 + +[TxmAsService] +Enabled = false diff --git a/core/web/resolver/testdata/config-full.toml b/core/web/resolver/testdata/config-full.toml index 95d898c353b..3d5adbbc049 100644 --- a/core/web/resolver/testdata/config-full.toml +++ b/core/web/resolver/testdata/config-full.toml @@ -243,6 +243,9 @@ SamplingRatio = 1.0 env = 'dev' test = 'load' +[TxmAsService] +Enabled = false + [[EVM]] ChainID = '1' Enabled = false diff --git a/core/web/resolver/testdata/config-multi-chain-effective.toml b/core/web/resolver/testdata/config-multi-chain-effective.toml index 9dd0be8f5d2..853e393d58c 100644 --- a/core/web/resolver/testdata/config-multi-chain-effective.toml +++ b/core/web/resolver/testdata/config-multi-chain-effective.toml @@ -233,6 +233,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + [[EVM]] ChainID = '1' AutoCreateKey = true diff --git a/docs/CONFIG.md b/docs/CONFIG.md index 1eb9cd5023d..55e4c84348a 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -1638,6 +1638,20 @@ env = "test" # Example ``` env is an example user specified key-value pair +## TxmAsService +```toml +[TxmAsService] +Enabled = false # Default +``` + + +### Enabled +```toml +Enabled = false # Default +``` +Enabled turns Transaction Manager as a service feature on or off. When enabled exposes endpoint to submit arbitrary EVM transaction +using one of the keys enabled for the specified chain. + ## EVM EVM defaults depend on ChainID: diff --git a/testdata/scripts/node/validate/default.txtar b/testdata/scripts/node/validate/default.txtar index 8a3b1af96fa..d7ef0ac7bbb 100644 --- a/testdata/scripts/node/validate/default.txtar +++ b/testdata/scripts/node/validate/default.txtar @@ -245,6 +245,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + Invalid configuration: invalid secrets: 2 errors: - Database.URL: empty: must be provided and non-empty - Password.Keystore: empty: must be provided and non-empty diff --git a/testdata/scripts/node/validate/disk-based-logging-disabled.txtar b/testdata/scripts/node/validate/disk-based-logging-disabled.txtar index 31fded1b423..0dd9c2e8a17 100644 --- a/testdata/scripts/node/validate/disk-based-logging-disabled.txtar +++ b/testdata/scripts/node/validate/disk-based-logging-disabled.txtar @@ -289,6 +289,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + [[EVM]] ChainID = '1' AutoCreateKey = true diff --git a/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar b/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar index 78fc976912c..3939df994e5 100644 --- a/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar +++ b/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar @@ -289,6 +289,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + [[EVM]] ChainID = '1' AutoCreateKey = true diff --git a/testdata/scripts/node/validate/disk-based-logging.txtar b/testdata/scripts/node/validate/disk-based-logging.txtar index 226a7bbb3b4..bf7b1e0c412 100644 --- a/testdata/scripts/node/validate/disk-based-logging.txtar +++ b/testdata/scripts/node/validate/disk-based-logging.txtar @@ -289,6 +289,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + [[EVM]] ChainID = '1' AutoCreateKey = true diff --git a/testdata/scripts/node/validate/invalid.txtar b/testdata/scripts/node/validate/invalid.txtar index 5cd3d567467..389f98a60b5 100644 --- a/testdata/scripts/node/validate/invalid.txtar +++ b/testdata/scripts/node/validate/invalid.txtar @@ -279,6 +279,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + [[EVM]] ChainID = '1' AutoCreateKey = true diff --git a/testdata/scripts/node/validate/valid.txtar b/testdata/scripts/node/validate/valid.txtar index fd24150b587..d1f3230be8b 100644 --- a/testdata/scripts/node/validate/valid.txtar +++ b/testdata/scripts/node/validate/valid.txtar @@ -286,6 +286,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + [[EVM]] ChainID = '1' AutoCreateKey = true diff --git a/testdata/scripts/node/validate/warnings.txtar b/testdata/scripts/node/validate/warnings.txtar index 828d953da9a..8fa48027607 100644 --- a/testdata/scripts/node/validate/warnings.txtar +++ b/testdata/scripts/node/validate/warnings.txtar @@ -282,6 +282,9 @@ CollectorTarget = '' NodeID = '' SamplingRatio = 0.0 +[TxmAsService] +Enabled = false + # Configuration warning: 2 errors: - P2P.V1: is deprecated and will be removed in a future version