From 4962d40dc23574e78b8c79cb9fa095e765be84d4 Mon Sep 17 00:00:00 2001 From: amit-momin <108959691+amit-momin@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:18:18 -0600 Subject: [PATCH 01/13] Add Pharos Atlantic support (#306) * Added Pharos Atlantic support * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- cre/capabilities/blockchain/evm/v1alpha/client.proto | 4 ++++ cre/go/installer/pkg/embedded_gen.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/cre/capabilities/blockchain/evm/v1alpha/client.proto b/cre/capabilities/blockchain/evm/v1alpha/client.proto index 3884c16e..c30d26bb 100644 --- a/cre/capabilities/blockchain/evm/v1alpha/client.proto +++ b/cre/capabilities/blockchain/evm/v1alpha/client.proto @@ -265,6 +265,10 @@ service Client { key: "jovay-testnet" value: 945045181441419236 }, + { + key: "pharos-atlantic-testnet" + value: 16098325658947243212 + }, { key: "pharos-mainnet" value: 7801139999541420232 diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 0b5ed0f9..e24731b7 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -461,6 +461,10 @@ service Client { key: "jovay-testnet" value: 945045181441419236 }, + { + key: "pharos-atlantic-testnet" + value: 16098325658947243212 + }, { key: "pharos-mainnet" value: 7801139999541420232 From ecda729848f6527637d67eaaf899a4da8790b407 Mon Sep 17 00:00:00 2001 From: cawthorne Date: Tue, 10 Mar 2026 14:25:26 +0000 Subject: [PATCH 02/13] aptos proto: add ledger_version to ViewRequest (#310) * aptos proto: add ledger_version to ViewRequest * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- cre/capabilities/blockchain/aptos/v1alpha/client.proto | 1 + cre/go/installer/pkg/embedded_gen.go | 1 + 2 files changed, 2 insertions(+) diff --git a/cre/capabilities/blockchain/aptos/v1alpha/client.proto b/cre/capabilities/blockchain/aptos/v1alpha/client.proto index bd3f2003..4eab040e 100644 --- a/cre/capabilities/blockchain/aptos/v1alpha/client.proto +++ b/cre/capabilities/blockchain/aptos/v1alpha/client.proto @@ -25,6 +25,7 @@ message AccountAPTBalanceReply { message ViewRequest { ViewPayload payload = 1; + optional uint64 ledger_version = 2; // nil means use latest ledger version } message ViewReply { diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index e24731b7..95f63df4 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -28,6 +28,7 @@ message AccountAPTBalanceReply { message ViewRequest { ViewPayload payload = 1; + optional uint64 ledger_version = 2; // nil means use latest ledger version } message ViewReply { From 49d3e11526a247be57b7e8eef5fd2cc0c9d2219d Mon Sep 17 00:00:00 2001 From: amit-momin <108959691+amit-momin@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:24:17 -0500 Subject: [PATCH 03/13] Add xlayer, megaeth, cronos, mantle, tac, unichain, scroll, sonic testnet support (#308) * Added xlayer megaeth cronos mantle tac unichain scroll sonic support * Auto-fix: buf format, gofmt, go generate, go mod tidy * Added celo sepolia * Auto-fix: buf format, gofmt, go generate, go mod tidy * Added gnosis chiado * Auto-fix: buf format, gofmt, go generate, go mod tidy * Removed celo sepolia * Auto-fix: buf format, gofmt, go generate, go mod tidy * Removed gnosis chiado * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- .../blockchain/evm/v1alpha/client.proto | 32 +++++++++++++++++++ cre/go/installer/pkg/embedded_gen.go | 32 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/cre/capabilities/blockchain/evm/v1alpha/client.proto b/cre/capabilities/blockchain/evm/v1alpha/client.proto index c30d26bb..afb37662 100644 --- a/cre/capabilities/blockchain/evm/v1alpha/client.proto +++ b/cre/capabilities/blockchain/evm/v1alpha/client.proto @@ -193,6 +193,10 @@ service Client { key: "binance_smart_chain-testnet" value: 13264668187771770619 }, + { + key: "cronos-testnet" + value: 2995292832068775165 + }, { key: "ethereum-mainnet" value: 5009297550715157269 @@ -237,10 +241,22 @@ service Client { key: "ethereum-testnet-sepolia-linea-1" value: 5719461335882077547 }, + { + key: "ethereum-testnet-sepolia-mantle-1" + value: 8236463271206331221 + }, { key: "ethereum-testnet-sepolia-optimism-1" value: 5224473277236331295 }, + { + key: "ethereum-testnet-sepolia-scroll-1" + value: 2279865765895943307 + }, + { + key: "ethereum-testnet-sepolia-unichain-1" + value: 14135854469784514356 + }, { key: "ethereum-testnet-sepolia-worldchain-1" value: 5299555114858065850 @@ -265,6 +281,10 @@ service Client { key: "jovay-testnet" value: 945045181441419236 }, + { + key: "megaeth-testnet-2" + value: 18241817625092392675 + }, { key: "pharos-atlantic-testnet" value: 16098325658947243212 @@ -288,6 +308,18 @@ service Client { { key: "private-testnet-andesite" value: 6915682381028791124 + }, + { + key: "sonic-testnet" + value: 1763698235108410440 + }, + { + key: "tac-testnet" + value: 9488606126177218005 + }, + { + key: "xlayer-testnet" + value: 10212741611335999305 } ] } diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 95f63df4..bae8b267 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -390,6 +390,10 @@ service Client { key: "binance_smart_chain-testnet" value: 13264668187771770619 }, + { + key: "cronos-testnet" + value: 2995292832068775165 + }, { key: "ethereum-mainnet" value: 5009297550715157269 @@ -434,10 +438,22 @@ service Client { key: "ethereum-testnet-sepolia-linea-1" value: 5719461335882077547 }, + { + key: "ethereum-testnet-sepolia-mantle-1" + value: 8236463271206331221 + }, { key: "ethereum-testnet-sepolia-optimism-1" value: 5224473277236331295 }, + { + key: "ethereum-testnet-sepolia-scroll-1" + value: 2279865765895943307 + }, + { + key: "ethereum-testnet-sepolia-unichain-1" + value: 14135854469784514356 + }, { key: "ethereum-testnet-sepolia-worldchain-1" value: 5299555114858065850 @@ -462,6 +478,10 @@ service Client { key: "jovay-testnet" value: 945045181441419236 }, + { + key: "megaeth-testnet-2" + value: 18241817625092392675 + }, { key: "pharos-atlantic-testnet" value: 16098325658947243212 @@ -485,6 +505,18 @@ service Client { { key: "private-testnet-andesite" value: 6915682381028791124 + }, + { + key: "sonic-testnet" + value: 1763698235108410440 + }, + { + key: "tac-testnet" + value: 9488606126177218005 + }, + { + key: "xlayer-testnet" + value: 10212741611335999305 } ] } From ca9c2571f76562310fe4696d2bf7b4e71982f9d9 Mon Sep 17 00:00:00 2001 From: amit-momin <108959691+amit-momin@users.noreply.github.com> Date: Fri, 13 Mar 2026 14:14:29 -0500 Subject: [PATCH 04/13] Add andesite chain (#313) * Added andesite chain * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- cre/capabilities/blockchain/evm/v1alpha/client.proto | 4 ++++ cre/go/installer/pkg/embedded_gen.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/cre/capabilities/blockchain/evm/v1alpha/client.proto b/cre/capabilities/blockchain/evm/v1alpha/client.proto index afb37662..b2fafb91 100644 --- a/cre/capabilities/blockchain/evm/v1alpha/client.proto +++ b/cre/capabilities/blockchain/evm/v1alpha/client.proto @@ -197,6 +197,10 @@ service Client { key: "cronos-testnet" value: 2995292832068775165 }, + { + key: "dtcc-testnet-andesite" + value: 15513093881969820114 + }, { key: "ethereum-mainnet" value: 5009297550715157269 diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index bae8b267..34e4b0fc 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -394,6 +394,10 @@ service Client { key: "cronos-testnet" value: 2995292832068775165 }, + { + key: "dtcc-testnet-andesite" + value: 15513093881969820114 + }, { key: "ethereum-mainnet" value: 5009297550715157269 From 56621684c29d6941642f6b59f6c054a0a4f12b70 Mon Sep 17 00:00:00 2001 From: amit-momin <108959691+amit-momin@users.noreply.github.com> Date: Mon, 16 Mar 2026 16:23:26 -0500 Subject: [PATCH 05/13] Add new mainnet chains to client proto (#315) * Added new mainnet chains to client proto * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- .../blockchain/evm/v1alpha/client.proto | 36 +++++++++++++++++++ cre/go/installer/pkg/embedded_gen.go | 36 +++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/cre/capabilities/blockchain/evm/v1alpha/client.proto b/cre/capabilities/blockchain/evm/v1alpha/client.proto index b2fafb91..75b087af 100644 --- a/cre/capabilities/blockchain/evm/v1alpha/client.proto +++ b/cre/capabilities/blockchain/evm/v1alpha/client.proto @@ -193,6 +193,10 @@ service Client { key: "binance_smart_chain-testnet" value: 13264668187771770619 }, + { + key: "celo-mainnet" + value: 1346049177634351622 + }, { key: "cronos-testnet" value: 2995292832068775165 @@ -213,10 +217,26 @@ service Client { key: "ethereum-mainnet-base-1" value: 15971525489660198786 }, + { + key: "ethereum-mainnet-ink-1" + value: 3461204551265785888 + }, + { + key: "ethereum-mainnet-linea-1" + value: 4627098889531055414 + }, + { + key: "ethereum-mainnet-mantle-1" + value: 1556008542357238666 + }, { key: "ethereum-mainnet-optimism-1" value: 3734403246176062136 }, + { + key: "ethereum-mainnet-scroll-1" + value: 13204309965629103672 + }, { key: "ethereum-mainnet-worldchain-1" value: 2049429975587534727 @@ -269,6 +289,10 @@ service Client { key: "ethereum-testnet-sepolia-zksync-1" value: 6898391096552792247 }, + { + key: "gnosis_chain-mainnet" + value: 465200170687744372 + }, { key: "hyperliquid-testnet" value: 4286062357653186312 @@ -285,6 +309,10 @@ service Client { key: "jovay-testnet" value: 945045181441419236 }, + { + key: "megaeth-mainnet" + value: 6093540873831549674 + }, { key: "megaeth-testnet-2" value: 18241817625092392675 @@ -297,6 +325,10 @@ service Client { key: "pharos-mainnet" value: 7801139999541420232 }, + { + key: "plasma-mainnet" + value: 9335212494177455608 + }, { key: "plasma-testnet" value: 3967220077692964309 @@ -313,6 +345,10 @@ service Client { key: "private-testnet-andesite" value: 6915682381028791124 }, + { + key: "sonic-mainnet" + value: 1673871237479749969 + }, { key: "sonic-testnet" value: 1763698235108410440 diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 34e4b0fc..bf6c580c 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -390,6 +390,10 @@ service Client { key: "binance_smart_chain-testnet" value: 13264668187771770619 }, + { + key: "celo-mainnet" + value: 1346049177634351622 + }, { key: "cronos-testnet" value: 2995292832068775165 @@ -410,10 +414,26 @@ service Client { key: "ethereum-mainnet-base-1" value: 15971525489660198786 }, + { + key: "ethereum-mainnet-ink-1" + value: 3461204551265785888 + }, + { + key: "ethereum-mainnet-linea-1" + value: 4627098889531055414 + }, + { + key: "ethereum-mainnet-mantle-1" + value: 1556008542357238666 + }, { key: "ethereum-mainnet-optimism-1" value: 3734403246176062136 }, + { + key: "ethereum-mainnet-scroll-1" + value: 13204309965629103672 + }, { key: "ethereum-mainnet-worldchain-1" value: 2049429975587534727 @@ -466,6 +486,10 @@ service Client { key: "ethereum-testnet-sepolia-zksync-1" value: 6898391096552792247 }, + { + key: "gnosis_chain-mainnet" + value: 465200170687744372 + }, { key: "hyperliquid-testnet" value: 4286062357653186312 @@ -482,6 +506,10 @@ service Client { key: "jovay-testnet" value: 945045181441419236 }, + { + key: "megaeth-mainnet" + value: 6093540873831549674 + }, { key: "megaeth-testnet-2" value: 18241817625092392675 @@ -494,6 +522,10 @@ service Client { key: "pharos-mainnet" value: 7801139999541420232 }, + { + key: "plasma-mainnet" + value: 9335212494177455608 + }, { key: "plasma-testnet" value: 3967220077692964309 @@ -510,6 +542,10 @@ service Client { key: "private-testnet-andesite" value: 6915682381028791124 }, + { + key: "sonic-mainnet" + value: 1673871237479749969 + }, { key: "sonic-testnet" value: 1763698235108410440 From 1124ff8c35a15379c5b7ad415bb79cbd10d595b1 Mon Sep 17 00:00:00 2001 From: Yashvardhan Nevatia Date: Wed, 18 Mar 2026 13:39:50 +0000 Subject: [PATCH 06/13] Remove aptos (moved to capabilities-development branch) (#316) * remove aptos * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- .../blockchain/aptos/v1alpha/client.proto | 192 ----------------- cre/go/installer/pkg/embedded_gen.go | 198 ------------------ 2 files changed, 390 deletions(-) delete mode 100644 cre/capabilities/blockchain/aptos/v1alpha/client.proto diff --git a/cre/capabilities/blockchain/aptos/v1alpha/client.proto b/cre/capabilities/blockchain/aptos/v1alpha/client.proto deleted file mode 100644 index 4eab040e..00000000 --- a/cre/capabilities/blockchain/aptos/v1alpha/client.proto +++ /dev/null @@ -1,192 +0,0 @@ -syntax = "proto3"; -package capabilities.blockchain.aptos.v1alpha; - -import "sdk/v1alpha/sdk.proto"; -import "tools/generator/v1alpha/cre_metadata.proto"; - -// Transaction execution status returned by the forwarder. -enum TxStatus { - TX_STATUS_FATAL = 0; // unrecoverable failure - TX_STATUS_ABORTED = 1; // not executed / dropped - TX_STATUS_SUCCESS = 2; // executed successfully -} - -// ========== AccountAPTBalance ========== - -message AccountAPTBalanceRequest { - bytes address = 1; // 32-byte address -} - -message AccountAPTBalanceReply { - uint64 value = 1; -} - -// ========== View ========== - -message ViewRequest { - ViewPayload payload = 1; - optional uint64 ledger_version = 2; // nil means use latest ledger version -} - -message ViewReply { - bytes data = 1; -} - -message ViewPayload { - ModuleID module = 1; - string function = 2; - repeated TypeTag arg_types = 3; - repeated bytes args = 4; -} - -message ModuleID { - bytes address = 1; // 32-byte address - string name = 2; -} - -message TypeTag { - TypeTagKind kind = 1; - oneof value { - VectorTag vector = 2; - StructTag struct = 3; - GenericTag generic = 4; - } -} - -enum TypeTagKind { - TYPE_TAG_KIND_BOOL = 0; - TYPE_TAG_KIND_U8 = 1; - TYPE_TAG_KIND_U16 = 2; - TYPE_TAG_KIND_U32 = 3; - TYPE_TAG_KIND_U64 = 4; - TYPE_TAG_KIND_U128 = 5; - TYPE_TAG_KIND_U256 = 6; - TYPE_TAG_KIND_ADDRESS = 7; - TYPE_TAG_KIND_SIGNER = 8; - TYPE_TAG_KIND_VECTOR = 9; - TYPE_TAG_KIND_STRUCT = 10; - TYPE_TAG_KIND_GENERIC = 11; -} - -message VectorTag { - TypeTag element_type = 1; -} - -message StructTag { - bytes address = 1; // 32-byte address - string module = 2; - string name = 3; - repeated TypeTag type_params = 4; -} - -message GenericTag { - uint32 index = 1; -} - -// ========== TransactionByHash ========== - -message TransactionByHashRequest { - string hash = 1; // Transaction hash (hex string with 0x prefix) -} - -message TransactionByHashReply { - optional Transaction transaction = 1; -} - -enum TransactionVariant { - TRANSACTION_VARIANT_PENDING = 0; - TRANSACTION_VARIANT_USER = 1; - TRANSACTION_VARIANT_GENESIS = 2; - TRANSACTION_VARIANT_BLOCK_METADATA = 3; - TRANSACTION_VARIANT_BLOCK_EPILOGUE = 4; - TRANSACTION_VARIANT_STATE_CHECKPOINT = 5; - TRANSACTION_VARIANT_VALIDATOR = 6; - TRANSACTION_VARIANT_UNKNOWN = 7; -} - -message Transaction { - TransactionVariant type = 1; - string hash = 2; - optional uint64 version = 3; // nil for pending transactions - optional bool success = 4; // nil for pending/genesis transactions - bytes data = 5; // Raw transaction data -} - -// ========== AccountTransactions ========== - -message AccountTransactionsRequest { - bytes address = 1; // 32-byte address - optional uint64 start = 2; // Starting version number; nil for most recent - optional uint64 limit = 3; // Number of transactions to return; nil for default (~100) -} - -message AccountTransactionsReply { - repeated Transaction transactions = 1; -} - -// ========== SubmitTransaction ========== - -message SubmitTransactionRequest { - ModuleID receiver_module_id = 1; - bytes encoded_payload = 2; - optional GasConfig gas_config = 3; -} - -message SubmitTransactionReply { - TxStatus tx_status = 1; - string tx_hash = 2; - string tx_idempotency_key = 3; -} - -message GasConfig { - uint64 max_gas_amount = 1; // Maximum gas units willing to pay - uint64 gas_unit_price = 2; // Price per gas unit in octas -} - -// ========== WriteReport ========== - -message WriteReportRequest { - bytes receiver = 1; // 32-byte Aptos account address of the receiver module - optional GasConfig gas_config = 2; // optional gas configuration - sdk.v1alpha.ReportResponse report = 3; // signed report from consensus -} - -message WriteReportReply { - TxStatus tx_status = 1; - optional string tx_hash = 2; // transaction hash (hex string with 0x prefix) - optional uint64 transaction_fee = 3; // gas used in octas - optional string error_message = 4; -} - -// ========== Service ========== - -service Client { - option (tools.generator.v1alpha.capability) = { - mode: MODE_DON - capability_id: "aptos@1.0.0" - labels: { - // from https://github.com/smartcontractkit/chain-selectors/blob/main/selectors_aptos.yml - key: "ChainSelector" - value: { - uint64_label: { - defaults: [ - { - key: "aptos-mainnet" - value: 4741433654826277614 - }, - { - key: "aptos-testnet" - value: 743186221051783445 - } - ] - } - } - } - }; - - rpc AccountAPTBalance(AccountAPTBalanceRequest) returns (AccountAPTBalanceReply); - rpc View(ViewRequest) returns (ViewReply); - rpc TransactionByHash(TransactionByHashRequest) returns (TransactionByHashReply); - rpc AccountTransactions(AccountTransactionsRequest) returns (AccountTransactionsReply); - rpc WriteReport(WriteReportRequest) returns (WriteReportReply); -} diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index bf6c580c..57a50474 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -1,200 +1,6 @@ // Code generated by github.com/smartcontractkit/chainlink-protos/cre/go/installer/bootstrap. DO NOT EDIT.\n") package pkg -const blockchainAptosV1alphaClientEmbedded = `syntax = "proto3"; -package capabilities.blockchain.aptos.v1alpha; - -import "sdk/v1alpha/sdk.proto"; -import "tools/generator/v1alpha/cre_metadata.proto"; - -// Transaction execution status returned by the forwarder. -enum TxStatus { - TX_STATUS_FATAL = 0; // unrecoverable failure - TX_STATUS_ABORTED = 1; // not executed / dropped - TX_STATUS_SUCCESS = 2; // executed successfully -} - -// ========== AccountAPTBalance ========== - -message AccountAPTBalanceRequest { - bytes address = 1; // 32-byte address -} - -message AccountAPTBalanceReply { - uint64 value = 1; -} - -// ========== View ========== - -message ViewRequest { - ViewPayload payload = 1; - optional uint64 ledger_version = 2; // nil means use latest ledger version -} - -message ViewReply { - bytes data = 1; -} - -message ViewPayload { - ModuleID module = 1; - string function = 2; - repeated TypeTag arg_types = 3; - repeated bytes args = 4; -} - -message ModuleID { - bytes address = 1; // 32-byte address - string name = 2; -} - -message TypeTag { - TypeTagKind kind = 1; - oneof value { - VectorTag vector = 2; - StructTag struct = 3; - GenericTag generic = 4; - } -} - -enum TypeTagKind { - TYPE_TAG_KIND_BOOL = 0; - TYPE_TAG_KIND_U8 = 1; - TYPE_TAG_KIND_U16 = 2; - TYPE_TAG_KIND_U32 = 3; - TYPE_TAG_KIND_U64 = 4; - TYPE_TAG_KIND_U128 = 5; - TYPE_TAG_KIND_U256 = 6; - TYPE_TAG_KIND_ADDRESS = 7; - TYPE_TAG_KIND_SIGNER = 8; - TYPE_TAG_KIND_VECTOR = 9; - TYPE_TAG_KIND_STRUCT = 10; - TYPE_TAG_KIND_GENERIC = 11; -} - -message VectorTag { - TypeTag element_type = 1; -} - -message StructTag { - bytes address = 1; // 32-byte address - string module = 2; - string name = 3; - repeated TypeTag type_params = 4; -} - -message GenericTag { - uint32 index = 1; -} - -// ========== TransactionByHash ========== - -message TransactionByHashRequest { - string hash = 1; // Transaction hash (hex string with 0x prefix) -} - -message TransactionByHashReply { - optional Transaction transaction = 1; -} - -enum TransactionVariant { - TRANSACTION_VARIANT_PENDING = 0; - TRANSACTION_VARIANT_USER = 1; - TRANSACTION_VARIANT_GENESIS = 2; - TRANSACTION_VARIANT_BLOCK_METADATA = 3; - TRANSACTION_VARIANT_BLOCK_EPILOGUE = 4; - TRANSACTION_VARIANT_STATE_CHECKPOINT = 5; - TRANSACTION_VARIANT_VALIDATOR = 6; - TRANSACTION_VARIANT_UNKNOWN = 7; -} - -message Transaction { - TransactionVariant type = 1; - string hash = 2; - optional uint64 version = 3; // nil for pending transactions - optional bool success = 4; // nil for pending/genesis transactions - bytes data = 5; // Raw transaction data -} - -// ========== AccountTransactions ========== - -message AccountTransactionsRequest { - bytes address = 1; // 32-byte address - optional uint64 start = 2; // Starting version number; nil for most recent - optional uint64 limit = 3; // Number of transactions to return; nil for default (~100) -} - -message AccountTransactionsReply { - repeated Transaction transactions = 1; -} - -// ========== SubmitTransaction ========== - -message SubmitTransactionRequest { - ModuleID receiver_module_id = 1; - bytes encoded_payload = 2; - optional GasConfig gas_config = 3; -} - -message SubmitTransactionReply { - TxStatus tx_status = 1; - string tx_hash = 2; - string tx_idempotency_key = 3; -} - -message GasConfig { - uint64 max_gas_amount = 1; // Maximum gas units willing to pay - uint64 gas_unit_price = 2; // Price per gas unit in octas -} - -// ========== WriteReport ========== - -message WriteReportRequest { - bytes receiver = 1; // 32-byte Aptos account address of the receiver module - optional GasConfig gas_config = 2; // optional gas configuration - sdk.v1alpha.ReportResponse report = 3; // signed report from consensus -} - -message WriteReportReply { - TxStatus tx_status = 1; - optional string tx_hash = 2; // transaction hash (hex string with 0x prefix) - optional uint64 transaction_fee = 3; // gas used in octas - optional string error_message = 4; -} - -// ========== Service ========== - -service Client { - option (tools.generator.v1alpha.capability) = { - mode: MODE_DON - capability_id: "aptos@1.0.0" - labels: { - // from https://github.com/smartcontractkit/chain-selectors/blob/main/selectors_aptos.yml - key: "ChainSelector" - value: { - uint64_label: { - defaults: [ - { - key: "aptos-mainnet" - value: 4741433654826277614 - }, - { - key: "aptos-testnet" - value: 743186221051783445 - } - ] - } - } - } - }; - - rpc AccountAPTBalance(AccountAPTBalanceRequest) returns (AccountAPTBalanceReply); - rpc View(ViewRequest) returns (ViewReply); - rpc TransactionByHash(TransactionByHashRequest) returns (TransactionByHashReply); - rpc AccountTransactions(AccountTransactionsRequest) returns (AccountTransactionsReply); - rpc WriteReport(WriteReportRequest) returns (WriteReportReply); -} -` - const blockchainEvmV1alphaClientEmbedded = `syntax = "proto3"; package capabilities.blockchain.evm.v1alpha; @@ -1495,10 +1301,6 @@ message Decimal { ` var allFiles = []*embeddedFile{ - { - name: "capabilities/blockchain/aptos/v1alpha/client.proto", - content: blockchainAptosV1alphaClientEmbedded, - }, { name: "capabilities/blockchain/evm/v1alpha/client.proto", content: blockchainEvmV1alphaClientEmbedded, From 93a6faf92e323d515b9ed48d67c8cc52b13169e4 Mon Sep 17 00:00:00 2001 From: Tejaswi Nadahalli Date: Wed, 18 Mar 2026 22:24:57 +0100 Subject: [PATCH 07/13] Add owner and execution_id to WorkflowExecution proto (#317) Adds workflow-level context to the app-specific proto rather than the generic ComputeRequest type, per vreff's feedback on CC PR #277. The enclave app reads these from the deserialized WorkflowExecution for runtime secret fetching from VaultDON via the relay DON. --- .../compute/confidentialworkflow/v1alpha/client.proto | 6 ++++++ cre/go/installer/pkg/embedded_gen.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/cre/capabilities/compute/confidentialworkflow/v1alpha/client.proto b/cre/capabilities/compute/confidentialworkflow/v1alpha/client.proto index fe43fab6..1cb42f77 100644 --- a/cre/capabilities/compute/confidentialworkflow/v1alpha/client.proto +++ b/cre/capabilities/compute/confidentialworkflow/v1alpha/client.proto @@ -22,6 +22,12 @@ message WorkflowExecution { // execute_request is a serialized sdk.v1alpha.ExecuteRequest proto. // Contains either a subscribe request or a trigger execution request. bytes execute_request = 4; + // owner is the on-chain owner address of the workflow (hex, 0x-prefixed). + // Used by the enclave for runtime secret fetching from VaultDON. + string owner = 5; + // execution_id is the unique execution identifier (64 hex chars, 32 bytes). + // Used by the enclave for runtime secret fetching from VaultDON. + string execution_id = 6; } // ConfidentialWorkflowRequest is the input provided to the confidential workflows capability. diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 57a50474..058267ee 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -434,6 +434,12 @@ message WorkflowExecution { // execute_request is a serialized sdk.v1alpha.ExecuteRequest proto. // Contains either a subscribe request or a trigger execution request. bytes execute_request = 4; + // owner is the on-chain owner address of the workflow (hex, 0x-prefixed). + // Used by the enclave for runtime secret fetching from VaultDON. + string owner = 5; + // execution_id is the unique execution identifier (64 hex chars, 32 bytes). + // Used by the enclave for runtime secret fetching from VaultDON. + string execution_id = 6; } // ConfidentialWorkflowRequest is the input provided to the confidential workflows capability. From 4cecf73ae68949a626d4e62322cccb85fa0bc97a Mon Sep 17 00:00:00 2001 From: vreff <104409744+vreff@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:07:20 -0400 Subject: [PATCH 08/13] Add Privacy as codeowners of protos embedded gen files (#318) --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 5386d1c2..699cdcaa 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -12,7 +12,7 @@ # CRE /cre/ @smartcontractkit/keystone @smartcontractkit/op-tooling /cre/capabilities/blockchain/ @smartcontractkit/bix-framework @smartcontractkit/keystone @smartcontractkit/op-tooling -/cre/go/installer/pkg/embedded_gen.go @smartcontractkit/bix-framework @smartcontractkit/keystone @smartcontractkit/op-tooling +/cre/go/installer/pkg/embedded_gen.go @smartcontractkit/bix-framework @smartcontractkit/keystone @smartcontractkit/op-tooling @smartcontractkit/privacy /workflows/ @smartcontractkit/foundations @smartcontractkit/core @smartcontractkit/op-tooling /billing/ @smartcontractkit/cre-business @smartcontractkit/core @smartcontractkit/op-tooling From b5808c964785c9703087a0291a45efa773ec2bb3 Mon Sep 17 00:00:00 2001 From: Gheorghe Strimtu Date: Thu, 19 Mar 2026 20:04:22 +0200 Subject: [PATCH 09/13] feat: add NodeBuildInfo proto and register it in chip schemas (#320) --- node-platform/chip-schemas.json | 4 + node-platform/common/v1/node_build_info.pb.go | 161 ++++++++++++++++++ node-platform/common/v1/node_build_info.proto | 13 ++ 3 files changed, 178 insertions(+) create mode 100644 node-platform/common/v1/node_build_info.pb.go create mode 100644 node-platform/common/v1/node_build_info.proto diff --git a/node-platform/chip-schemas.json b/node-platform/chip-schemas.json index 2cf2dd30..d95b2b09 100644 --- a/node-platform/chip-schemas.json +++ b/node-platform/chip-schemas.json @@ -4,6 +4,10 @@ { "entity": "common.v1.ChainPluginConfig", "path": "common/v1/chain_plugin_config.proto" + }, + { + "entity": "common.v1.NodeBuildInfo", + "path": "common/v1/node_build_info.proto" } ] } diff --git a/node-platform/common/v1/node_build_info.pb.go b/node-platform/common/v1/node_build_info.pb.go new file mode 100644 index 00000000..d83e05af --- /dev/null +++ b/node-platform/common/v1/node_build_info.pb.go @@ -0,0 +1,161 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc v5.29.3 +// source: node-platform/common/v1/node_build_info.proto + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type NodeBuildInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + CsaPublicKey string `protobuf:"bytes,1,opt,name=csa_public_key,json=csaPublicKey,proto3" json:"csa_public_key,omitempty"` + CommitSha string `protobuf:"bytes,2,opt,name=commit_sha,json=commitSha,proto3" json:"commit_sha,omitempty"` + VersionTag string `protobuf:"bytes,3,opt,name=version_tag,json=versionTag,proto3" json:"version_tag,omitempty"` + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + DockerTag string `protobuf:"bytes,5,opt,name=docker_tag,json=dockerTag,proto3" json:"docker_tag,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NodeBuildInfo) Reset() { + *x = NodeBuildInfo{} + mi := &file_node_platform_common_v1_node_build_info_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NodeBuildInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeBuildInfo) ProtoMessage() {} + +func (x *NodeBuildInfo) ProtoReflect() protoreflect.Message { + mi := &file_node_platform_common_v1_node_build_info_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeBuildInfo.ProtoReflect.Descriptor instead. +func (*NodeBuildInfo) Descriptor() ([]byte, []int) { + return file_node_platform_common_v1_node_build_info_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeBuildInfo) GetCsaPublicKey() string { + if x != nil { + return x.CsaPublicKey + } + return "" +} + +func (x *NodeBuildInfo) GetCommitSha() string { + if x != nil { + return x.CommitSha + } + return "" +} + +func (x *NodeBuildInfo) GetVersionTag() string { + if x != nil { + return x.VersionTag + } + return "" +} + +func (x *NodeBuildInfo) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *NodeBuildInfo) GetDockerTag() string { + if x != nil { + return x.DockerTag + } + return "" +} + +var File_node_platform_common_v1_node_build_info_proto protoreflect.FileDescriptor + +const file_node_platform_common_v1_node_build_info_proto_rawDesc = "" + + "\n" + + "-node-platform/common/v1/node_build_info.proto\x12\tcommon.v1\"\xae\x01\n" + + "\rNodeBuildInfo\x12$\n" + + "\x0ecsa_public_key\x18\x01 \x01(\tR\fcsaPublicKey\x12\x1d\n" + + "\n" + + "commit_sha\x18\x02 \x01(\tR\tcommitSha\x12\x1f\n" + + "\vversion_tag\x18\x03 \x01(\tR\n" + + "versionTag\x12\x18\n" + + "\aversion\x18\x04 \x01(\tR\aversion\x12\x1d\n" + + "\n" + + "docker_tag\x18\x05 \x01(\tR\tdockerTagBFZDgithub.com/smartcontractkit/chainlink-protos/node-platform/common/v1b\x06proto3" + +var ( + file_node_platform_common_v1_node_build_info_proto_rawDescOnce sync.Once + file_node_platform_common_v1_node_build_info_proto_rawDescData []byte +) + +func file_node_platform_common_v1_node_build_info_proto_rawDescGZIP() []byte { + file_node_platform_common_v1_node_build_info_proto_rawDescOnce.Do(func() { + file_node_platform_common_v1_node_build_info_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_node_platform_common_v1_node_build_info_proto_rawDesc), len(file_node_platform_common_v1_node_build_info_proto_rawDesc))) + }) + return file_node_platform_common_v1_node_build_info_proto_rawDescData +} + +var file_node_platform_common_v1_node_build_info_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_node_platform_common_v1_node_build_info_proto_goTypes = []any{ + (*NodeBuildInfo)(nil), // 0: common.v1.NodeBuildInfo +} +var file_node_platform_common_v1_node_build_info_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_node_platform_common_v1_node_build_info_proto_init() } +func file_node_platform_common_v1_node_build_info_proto_init() { + if File_node_platform_common_v1_node_build_info_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_node_platform_common_v1_node_build_info_proto_rawDesc), len(file_node_platform_common_v1_node_build_info_proto_rawDesc)), + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_node_platform_common_v1_node_build_info_proto_goTypes, + DependencyIndexes: file_node_platform_common_v1_node_build_info_proto_depIdxs, + MessageInfos: file_node_platform_common_v1_node_build_info_proto_msgTypes, + }.Build() + File_node_platform_common_v1_node_build_info_proto = out.File + file_node_platform_common_v1_node_build_info_proto_goTypes = nil + file_node_platform_common_v1_node_build_info_proto_depIdxs = nil +} diff --git a/node-platform/common/v1/node_build_info.proto b/node-platform/common/v1/node_build_info.proto new file mode 100644 index 00000000..9152da26 --- /dev/null +++ b/node-platform/common/v1/node_build_info.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package common.v1; + +option go_package = "github.com/smartcontractkit/chainlink-protos/node-platform/common/v1"; + +message NodeBuildInfo { + string csa_public_key = 1; + string commit_sha = 2; + string version_tag = 3; + string version = 4; + string docker_tag = 5; +} From ad04ed6d891e0349a00c8e96920e95f5d5adf39f Mon Sep 17 00:00:00 2001 From: Yashvardhan Nevatia Date: Thu, 19 Mar 2026 19:02:46 +0000 Subject: [PATCH 10/13] Revert "Remove aptos (moved to capabilities-development branch) (#316)" (#321) This reverts commit 1124ff8c35a15379c5b7ad415bb79cbd10d595b1. --- .../blockchain/aptos/v1alpha/client.proto | 192 +++++++++++++++++ cre/go/installer/pkg/embedded_gen.go | 198 ++++++++++++++++++ 2 files changed, 390 insertions(+) create mode 100644 cre/capabilities/blockchain/aptos/v1alpha/client.proto diff --git a/cre/capabilities/blockchain/aptos/v1alpha/client.proto b/cre/capabilities/blockchain/aptos/v1alpha/client.proto new file mode 100644 index 00000000..4eab040e --- /dev/null +++ b/cre/capabilities/blockchain/aptos/v1alpha/client.proto @@ -0,0 +1,192 @@ +syntax = "proto3"; +package capabilities.blockchain.aptos.v1alpha; + +import "sdk/v1alpha/sdk.proto"; +import "tools/generator/v1alpha/cre_metadata.proto"; + +// Transaction execution status returned by the forwarder. +enum TxStatus { + TX_STATUS_FATAL = 0; // unrecoverable failure + TX_STATUS_ABORTED = 1; // not executed / dropped + TX_STATUS_SUCCESS = 2; // executed successfully +} + +// ========== AccountAPTBalance ========== + +message AccountAPTBalanceRequest { + bytes address = 1; // 32-byte address +} + +message AccountAPTBalanceReply { + uint64 value = 1; +} + +// ========== View ========== + +message ViewRequest { + ViewPayload payload = 1; + optional uint64 ledger_version = 2; // nil means use latest ledger version +} + +message ViewReply { + bytes data = 1; +} + +message ViewPayload { + ModuleID module = 1; + string function = 2; + repeated TypeTag arg_types = 3; + repeated bytes args = 4; +} + +message ModuleID { + bytes address = 1; // 32-byte address + string name = 2; +} + +message TypeTag { + TypeTagKind kind = 1; + oneof value { + VectorTag vector = 2; + StructTag struct = 3; + GenericTag generic = 4; + } +} + +enum TypeTagKind { + TYPE_TAG_KIND_BOOL = 0; + TYPE_TAG_KIND_U8 = 1; + TYPE_TAG_KIND_U16 = 2; + TYPE_TAG_KIND_U32 = 3; + TYPE_TAG_KIND_U64 = 4; + TYPE_TAG_KIND_U128 = 5; + TYPE_TAG_KIND_U256 = 6; + TYPE_TAG_KIND_ADDRESS = 7; + TYPE_TAG_KIND_SIGNER = 8; + TYPE_TAG_KIND_VECTOR = 9; + TYPE_TAG_KIND_STRUCT = 10; + TYPE_TAG_KIND_GENERIC = 11; +} + +message VectorTag { + TypeTag element_type = 1; +} + +message StructTag { + bytes address = 1; // 32-byte address + string module = 2; + string name = 3; + repeated TypeTag type_params = 4; +} + +message GenericTag { + uint32 index = 1; +} + +// ========== TransactionByHash ========== + +message TransactionByHashRequest { + string hash = 1; // Transaction hash (hex string with 0x prefix) +} + +message TransactionByHashReply { + optional Transaction transaction = 1; +} + +enum TransactionVariant { + TRANSACTION_VARIANT_PENDING = 0; + TRANSACTION_VARIANT_USER = 1; + TRANSACTION_VARIANT_GENESIS = 2; + TRANSACTION_VARIANT_BLOCK_METADATA = 3; + TRANSACTION_VARIANT_BLOCK_EPILOGUE = 4; + TRANSACTION_VARIANT_STATE_CHECKPOINT = 5; + TRANSACTION_VARIANT_VALIDATOR = 6; + TRANSACTION_VARIANT_UNKNOWN = 7; +} + +message Transaction { + TransactionVariant type = 1; + string hash = 2; + optional uint64 version = 3; // nil for pending transactions + optional bool success = 4; // nil for pending/genesis transactions + bytes data = 5; // Raw transaction data +} + +// ========== AccountTransactions ========== + +message AccountTransactionsRequest { + bytes address = 1; // 32-byte address + optional uint64 start = 2; // Starting version number; nil for most recent + optional uint64 limit = 3; // Number of transactions to return; nil for default (~100) +} + +message AccountTransactionsReply { + repeated Transaction transactions = 1; +} + +// ========== SubmitTransaction ========== + +message SubmitTransactionRequest { + ModuleID receiver_module_id = 1; + bytes encoded_payload = 2; + optional GasConfig gas_config = 3; +} + +message SubmitTransactionReply { + TxStatus tx_status = 1; + string tx_hash = 2; + string tx_idempotency_key = 3; +} + +message GasConfig { + uint64 max_gas_amount = 1; // Maximum gas units willing to pay + uint64 gas_unit_price = 2; // Price per gas unit in octas +} + +// ========== WriteReport ========== + +message WriteReportRequest { + bytes receiver = 1; // 32-byte Aptos account address of the receiver module + optional GasConfig gas_config = 2; // optional gas configuration + sdk.v1alpha.ReportResponse report = 3; // signed report from consensus +} + +message WriteReportReply { + TxStatus tx_status = 1; + optional string tx_hash = 2; // transaction hash (hex string with 0x prefix) + optional uint64 transaction_fee = 3; // gas used in octas + optional string error_message = 4; +} + +// ========== Service ========== + +service Client { + option (tools.generator.v1alpha.capability) = { + mode: MODE_DON + capability_id: "aptos@1.0.0" + labels: { + // from https://github.com/smartcontractkit/chain-selectors/blob/main/selectors_aptos.yml + key: "ChainSelector" + value: { + uint64_label: { + defaults: [ + { + key: "aptos-mainnet" + value: 4741433654826277614 + }, + { + key: "aptos-testnet" + value: 743186221051783445 + } + ] + } + } + } + }; + + rpc AccountAPTBalance(AccountAPTBalanceRequest) returns (AccountAPTBalanceReply); + rpc View(ViewRequest) returns (ViewReply); + rpc TransactionByHash(TransactionByHashRequest) returns (TransactionByHashReply); + rpc AccountTransactions(AccountTransactionsRequest) returns (AccountTransactionsReply); + rpc WriteReport(WriteReportRequest) returns (WriteReportReply); +} diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 058267ee..3753dad8 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -1,6 +1,200 @@ // Code generated by github.com/smartcontractkit/chainlink-protos/cre/go/installer/bootstrap. DO NOT EDIT.\n") package pkg +const blockchainAptosV1alphaClientEmbedded = `syntax = "proto3"; +package capabilities.blockchain.aptos.v1alpha; + +import "sdk/v1alpha/sdk.proto"; +import "tools/generator/v1alpha/cre_metadata.proto"; + +// Transaction execution status returned by the forwarder. +enum TxStatus { + TX_STATUS_FATAL = 0; // unrecoverable failure + TX_STATUS_ABORTED = 1; // not executed / dropped + TX_STATUS_SUCCESS = 2; // executed successfully +} + +// ========== AccountAPTBalance ========== + +message AccountAPTBalanceRequest { + bytes address = 1; // 32-byte address +} + +message AccountAPTBalanceReply { + uint64 value = 1; +} + +// ========== View ========== + +message ViewRequest { + ViewPayload payload = 1; + optional uint64 ledger_version = 2; // nil means use latest ledger version +} + +message ViewReply { + bytes data = 1; +} + +message ViewPayload { + ModuleID module = 1; + string function = 2; + repeated TypeTag arg_types = 3; + repeated bytes args = 4; +} + +message ModuleID { + bytes address = 1; // 32-byte address + string name = 2; +} + +message TypeTag { + TypeTagKind kind = 1; + oneof value { + VectorTag vector = 2; + StructTag struct = 3; + GenericTag generic = 4; + } +} + +enum TypeTagKind { + TYPE_TAG_KIND_BOOL = 0; + TYPE_TAG_KIND_U8 = 1; + TYPE_TAG_KIND_U16 = 2; + TYPE_TAG_KIND_U32 = 3; + TYPE_TAG_KIND_U64 = 4; + TYPE_TAG_KIND_U128 = 5; + TYPE_TAG_KIND_U256 = 6; + TYPE_TAG_KIND_ADDRESS = 7; + TYPE_TAG_KIND_SIGNER = 8; + TYPE_TAG_KIND_VECTOR = 9; + TYPE_TAG_KIND_STRUCT = 10; + TYPE_TAG_KIND_GENERIC = 11; +} + +message VectorTag { + TypeTag element_type = 1; +} + +message StructTag { + bytes address = 1; // 32-byte address + string module = 2; + string name = 3; + repeated TypeTag type_params = 4; +} + +message GenericTag { + uint32 index = 1; +} + +// ========== TransactionByHash ========== + +message TransactionByHashRequest { + string hash = 1; // Transaction hash (hex string with 0x prefix) +} + +message TransactionByHashReply { + optional Transaction transaction = 1; +} + +enum TransactionVariant { + TRANSACTION_VARIANT_PENDING = 0; + TRANSACTION_VARIANT_USER = 1; + TRANSACTION_VARIANT_GENESIS = 2; + TRANSACTION_VARIANT_BLOCK_METADATA = 3; + TRANSACTION_VARIANT_BLOCK_EPILOGUE = 4; + TRANSACTION_VARIANT_STATE_CHECKPOINT = 5; + TRANSACTION_VARIANT_VALIDATOR = 6; + TRANSACTION_VARIANT_UNKNOWN = 7; +} + +message Transaction { + TransactionVariant type = 1; + string hash = 2; + optional uint64 version = 3; // nil for pending transactions + optional bool success = 4; // nil for pending/genesis transactions + bytes data = 5; // Raw transaction data +} + +// ========== AccountTransactions ========== + +message AccountTransactionsRequest { + bytes address = 1; // 32-byte address + optional uint64 start = 2; // Starting version number; nil for most recent + optional uint64 limit = 3; // Number of transactions to return; nil for default (~100) +} + +message AccountTransactionsReply { + repeated Transaction transactions = 1; +} + +// ========== SubmitTransaction ========== + +message SubmitTransactionRequest { + ModuleID receiver_module_id = 1; + bytes encoded_payload = 2; + optional GasConfig gas_config = 3; +} + +message SubmitTransactionReply { + TxStatus tx_status = 1; + string tx_hash = 2; + string tx_idempotency_key = 3; +} + +message GasConfig { + uint64 max_gas_amount = 1; // Maximum gas units willing to pay + uint64 gas_unit_price = 2; // Price per gas unit in octas +} + +// ========== WriteReport ========== + +message WriteReportRequest { + bytes receiver = 1; // 32-byte Aptos account address of the receiver module + optional GasConfig gas_config = 2; // optional gas configuration + sdk.v1alpha.ReportResponse report = 3; // signed report from consensus +} + +message WriteReportReply { + TxStatus tx_status = 1; + optional string tx_hash = 2; // transaction hash (hex string with 0x prefix) + optional uint64 transaction_fee = 3; // gas used in octas + optional string error_message = 4; +} + +// ========== Service ========== + +service Client { + option (tools.generator.v1alpha.capability) = { + mode: MODE_DON + capability_id: "aptos@1.0.0" + labels: { + // from https://github.com/smartcontractkit/chain-selectors/blob/main/selectors_aptos.yml + key: "ChainSelector" + value: { + uint64_label: { + defaults: [ + { + key: "aptos-mainnet" + value: 4741433654826277614 + }, + { + key: "aptos-testnet" + value: 743186221051783445 + } + ] + } + } + } + }; + + rpc AccountAPTBalance(AccountAPTBalanceRequest) returns (AccountAPTBalanceReply); + rpc View(ViewRequest) returns (ViewReply); + rpc TransactionByHash(TransactionByHashRequest) returns (TransactionByHashReply); + rpc AccountTransactions(AccountTransactionsRequest) returns (AccountTransactionsReply); + rpc WriteReport(WriteReportRequest) returns (WriteReportReply); +} +` + const blockchainEvmV1alphaClientEmbedded = `syntax = "proto3"; package capabilities.blockchain.evm.v1alpha; @@ -1307,6 +1501,10 @@ message Decimal { ` var allFiles = []*embeddedFile{ + { + name: "capabilities/blockchain/aptos/v1alpha/client.proto", + content: blockchainAptosV1alphaClientEmbedded, + }, { name: "capabilities/blockchain/evm/v1alpha/client.proto", content: blockchainEvmV1alphaClientEmbedded, From ba0bee7869593539d780313cf3fd743131bea621 Mon Sep 17 00:00:00 2001 From: amit-momin <108959691+amit-momin@users.noreply.github.com> Date: Thu, 19 Mar 2026 19:48:20 -0500 Subject: [PATCH 11/13] Add hyperliquid mainnet to client proto (#322) * Added hyperliquid mainnet to client proto * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- cre/capabilities/blockchain/evm/v1alpha/client.proto | 4 ++++ cre/go/installer/pkg/embedded_gen.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/cre/capabilities/blockchain/evm/v1alpha/client.proto b/cre/capabilities/blockchain/evm/v1alpha/client.proto index 75b087af..0db35d3f 100644 --- a/cre/capabilities/blockchain/evm/v1alpha/client.proto +++ b/cre/capabilities/blockchain/evm/v1alpha/client.proto @@ -293,6 +293,10 @@ service Client { key: "gnosis_chain-mainnet" value: 465200170687744372 }, + { + key: "hyperliquid-mainnet" + value: 2442541497099098535 + }, { key: "hyperliquid-testnet" value: 4286062357653186312 diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 3753dad8..5761ad41 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -490,6 +490,10 @@ service Client { key: "gnosis_chain-mainnet" value: 465200170687744372 }, + { + key: "hyperliquid-mainnet" + value: 2442541497099098535 + }, { key: "hyperliquid-testnet" value: 4286062357653186312 From 314ec8dbe5a494c754fe0582fb06014e2949c7a2 Mon Sep 17 00:00:00 2001 From: amit-momin <108959691+amit-momin@users.noreply.github.com> Date: Fri, 20 Mar 2026 10:33:46 -0500 Subject: [PATCH 12/13] Add gnosis chiado to client proto (#324) * Added gnosis chiado to client proto * Auto-fix: buf format, gofmt, go generate, go mod tidy --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- cre/capabilities/blockchain/evm/v1alpha/client.proto | 4 ++++ cre/go/installer/pkg/embedded_gen.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/cre/capabilities/blockchain/evm/v1alpha/client.proto b/cre/capabilities/blockchain/evm/v1alpha/client.proto index 0db35d3f..4ecda88a 100644 --- a/cre/capabilities/blockchain/evm/v1alpha/client.proto +++ b/cre/capabilities/blockchain/evm/v1alpha/client.proto @@ -293,6 +293,10 @@ service Client { key: "gnosis_chain-mainnet" value: 465200170687744372 }, + { + key: "gnosis_chain-testnet-chiado" + value: 8871595565390010547 + }, { key: "hyperliquid-mainnet" value: 2442541497099098535 diff --git a/cre/go/installer/pkg/embedded_gen.go b/cre/go/installer/pkg/embedded_gen.go index 5761ad41..f0d3f502 100755 --- a/cre/go/installer/pkg/embedded_gen.go +++ b/cre/go/installer/pkg/embedded_gen.go @@ -490,6 +490,10 @@ service Client { key: "gnosis_chain-mainnet" value: 465200170687744372 }, + { + key: "gnosis_chain-testnet-chiado" + value: 8871595565390010547 + }, { key: "hyperliquid-mainnet" value: 2442541497099098535 From faea187e6997e00852cad8046c09b7b2d0f1e128 Mon Sep 17 00:00:00 2001 From: karen-stepanyan <91897037+karen-stepanyan@users.noreply.github.com> Date: Mon, 23 Mar 2026 16:46:44 +0400 Subject: [PATCH 13/13] add WorkflowUserMetric (#319) * add WorkflowUserMetric * fix metric suffix * bot: regenerate protobuf files * add USER_METRIC_TYPE_UNSPECIFIED * bot: regenerate protobuf files * update WorkflowUserMetric value to double * drop histogram support * bot: regenerate protobuf files --------- Co-authored-by: app-token-issuer-engops[bot] <144731339+app-token-issuer-engops[bot]@users.noreply.github.com> --- workflows/go/generate.go | 1 + workflows/go/v2/workflow_user_metric.pb.go | 253 ++++++++++++++++++ .../workflows/v2/workflow_user_metric.proto | 26 ++ 3 files changed, 280 insertions(+) create mode 100644 workflows/go/v2/workflow_user_metric.pb.go create mode 100644 workflows/workflows/v2/workflow_user_metric.proto diff --git a/workflows/go/generate.go b/workflows/go/generate.go index a799e784..36fb64c5 100644 --- a/workflows/go/generate.go +++ b/workflows/go/generate.go @@ -29,6 +29,7 @@ package workflows //go:generate protoc --proto_path=../ --go_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../workflows/v2/capability_execution_started.proto //go:generate protoc --proto_path=../ --go_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../workflows/v2/capability_execution_finished.proto //go:generate protoc --proto_path=../ --go_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../workflows/v2/workflow_user_log.proto +//go:generate protoc --proto_path=../ --go_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../workflows/v2/workflow_user_metric.proto //go:generate protoc --proto_path=../ --go_out=./ --go_opt=module=github.com/smartcontractkit/chainlink-protos/workflows/go ../workflows/v2/xxx_no_send.proto // sources/v1 - workflow metadata source service diff --git a/workflows/go/v2/workflow_user_metric.pb.go b/workflows/go/v2/workflow_user_metric.pb.go new file mode 100644 index 00000000..9fae638f --- /dev/null +++ b/workflows/go/v2/workflow_user_metric.pb.go @@ -0,0 +1,253 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc v5.29.3 +// source: workflows/v2/workflow_user_metric.proto + +package v2 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type UserMetricType int32 + +const ( + UserMetricType_USER_METRIC_TYPE_UNSPECIFIED UserMetricType = 0 + UserMetricType_USER_METRIC_TYPE_COUNTER UserMetricType = 1 + UserMetricType_USER_METRIC_TYPE_GAUGE UserMetricType = 2 +) + +// Enum value maps for UserMetricType. +var ( + UserMetricType_name = map[int32]string{ + 0: "USER_METRIC_TYPE_UNSPECIFIED", + 1: "USER_METRIC_TYPE_COUNTER", + 2: "USER_METRIC_TYPE_GAUGE", + } + UserMetricType_value = map[string]int32{ + "USER_METRIC_TYPE_UNSPECIFIED": 0, + "USER_METRIC_TYPE_COUNTER": 1, + "USER_METRIC_TYPE_GAUGE": 2, + } +) + +func (x UserMetricType) Enum() *UserMetricType { + p := new(UserMetricType) + *p = x + return p +} + +func (x UserMetricType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UserMetricType) Descriptor() protoreflect.EnumDescriptor { + return file_workflows_v2_workflow_user_metric_proto_enumTypes[0].Descriptor() +} + +func (UserMetricType) Type() protoreflect.EnumType { + return &file_workflows_v2_workflow_user_metric_proto_enumTypes[0] +} + +func (x UserMetricType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserMetricType.Descriptor instead. +func (UserMetricType) EnumDescriptor() ([]byte, []int) { + return file_workflows_v2_workflow_user_metric_proto_rawDescGZIP(), []int{0} +} + +type WorkflowUserMetric struct { + state protoimpl.MessageState `protogen:"open.v1"` + CreInfo *CreInfo `protobuf:"bytes,1,opt,name=creInfo,proto3" json:"creInfo,omitempty"` + Workflow *WorkflowKey `protobuf:"bytes,2,opt,name=workflow,proto3" json:"workflow,omitempty"` + WorkflowExecutionID string `protobuf:"bytes,3,opt,name=workflowExecutionID,proto3" json:"workflowExecutionID,omitempty"` + Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Value float64 `protobuf:"fixed64,6,opt,name=value,proto3" json:"value,omitempty"` + Type UserMetricType `protobuf:"varint,7,opt,name=type,proto3,enum=workflows.v2.UserMetricType" json:"type,omitempty"` + Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkflowUserMetric) Reset() { + *x = WorkflowUserMetric{} + mi := &file_workflows_v2_workflow_user_metric_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkflowUserMetric) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowUserMetric) ProtoMessage() {} + +func (x *WorkflowUserMetric) ProtoReflect() protoreflect.Message { + mi := &file_workflows_v2_workflow_user_metric_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowUserMetric.ProtoReflect.Descriptor instead. +func (*WorkflowUserMetric) Descriptor() ([]byte, []int) { + return file_workflows_v2_workflow_user_metric_proto_rawDescGZIP(), []int{0} +} + +func (x *WorkflowUserMetric) GetCreInfo() *CreInfo { + if x != nil { + return x.CreInfo + } + return nil +} + +func (x *WorkflowUserMetric) GetWorkflow() *WorkflowKey { + if x != nil { + return x.Workflow + } + return nil +} + +func (x *WorkflowUserMetric) GetWorkflowExecutionID() string { + if x != nil { + return x.WorkflowExecutionID + } + return "" +} + +func (x *WorkflowUserMetric) GetTimestamp() string { + if x != nil { + return x.Timestamp + } + return "" +} + +func (x *WorkflowUserMetric) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WorkflowUserMetric) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *WorkflowUserMetric) GetType() UserMetricType { + if x != nil { + return x.Type + } + return UserMetricType_USER_METRIC_TYPE_UNSPECIFIED +} + +func (x *WorkflowUserMetric) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +var File_workflows_v2_workflow_user_metric_proto protoreflect.FileDescriptor + +const file_workflows_v2_workflow_user_metric_proto_rawDesc = "" + + "\n" + + "'workflows/v2/workflow_user_metric.proto\x12\fworkflows.v2\x1a\x1bworkflows/v2/cre_info.proto\x1a\x1fworkflows/v2/workflow_key.proto\"\xa9\x03\n" + + "\x12WorkflowUserMetric\x12/\n" + + "\acreInfo\x18\x01 \x01(\v2\x15.workflows.v2.CreInfoR\acreInfo\x125\n" + + "\bworkflow\x18\x02 \x01(\v2\x19.workflows.v2.WorkflowKeyR\bworkflow\x120\n" + + "\x13workflowExecutionID\x18\x03 \x01(\tR\x13workflowExecutionID\x12\x1c\n" + + "\ttimestamp\x18\x04 \x01(\tR\ttimestamp\x12\x12\n" + + "\x04name\x18\x05 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x06 \x01(\x01R\x05value\x120\n" + + "\x04type\x18\a \x01(\x0e2\x1c.workflows.v2.UserMetricTypeR\x04type\x12D\n" + + "\x06labels\x18\b \x03(\v2,.workflows.v2.WorkflowUserMetric.LabelsEntryR\x06labels\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01*l\n" + + "\x0eUserMetricType\x12 \n" + + "\x1cUSER_METRIC_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18USER_METRIC_TYPE_COUNTER\x10\x01\x12\x1a\n" + + "\x16USER_METRIC_TYPE_GAUGE\x10\x02B>Z workflows.v2.CreInfo + 4, // 1: workflows.v2.WorkflowUserMetric.workflow:type_name -> workflows.v2.WorkflowKey + 0, // 2: workflows.v2.WorkflowUserMetric.type:type_name -> workflows.v2.UserMetricType + 2, // 3: workflows.v2.WorkflowUserMetric.labels:type_name -> workflows.v2.WorkflowUserMetric.LabelsEntry + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_workflows_v2_workflow_user_metric_proto_init() } +func file_workflows_v2_workflow_user_metric_proto_init() { + if File_workflows_v2_workflow_user_metric_proto != nil { + return + } + file_workflows_v2_cre_info_proto_init() + file_workflows_v2_workflow_key_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_workflows_v2_workflow_user_metric_proto_rawDesc), len(file_workflows_v2_workflow_user_metric_proto_rawDesc)), + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_workflows_v2_workflow_user_metric_proto_goTypes, + DependencyIndexes: file_workflows_v2_workflow_user_metric_proto_depIdxs, + EnumInfos: file_workflows_v2_workflow_user_metric_proto_enumTypes, + MessageInfos: file_workflows_v2_workflow_user_metric_proto_msgTypes, + }.Build() + File_workflows_v2_workflow_user_metric_proto = out.File + file_workflows_v2_workflow_user_metric_proto_goTypes = nil + file_workflows_v2_workflow_user_metric_proto_depIdxs = nil +} diff --git a/workflows/workflows/v2/workflow_user_metric.proto b/workflows/workflows/v2/workflow_user_metric.proto new file mode 100644 index 00000000..3d39c18b --- /dev/null +++ b/workflows/workflows/v2/workflow_user_metric.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; + +package workflows.v2; + +import "workflows/v2/cre_info.proto"; +import "workflows/v2/workflow_key.proto"; + +option go_package = "github.com/smartcontractkit/chainlink-protos/workflows/go/v2"; + +enum UserMetricType { + USER_METRIC_TYPE_UNSPECIFIED = 0; + USER_METRIC_TYPE_COUNTER = 1; + USER_METRIC_TYPE_GAUGE = 2; +} + +message WorkflowUserMetric { + CreInfo creInfo = 1; + WorkflowKey workflow = 2; + string workflowExecutionID = 3; + string timestamp = 4; + + string name = 5; + double value = 6; + UserMetricType type = 7; + map labels = 8; +}