From 42b6b6ad4e4016e656c64e43d98e646b4f2f77cc Mon Sep 17 00:00:00 2001 From: Anton Livaja Date: Fri, 14 Feb 2025 01:41:31 -0500 Subject: [PATCH 1/2] refactor main config file from toml to yaml --- icepick.toml | 223 -------------------------------------------------- icepick.yaml | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 224 insertions(+), 223 deletions(-) delete mode 100644 icepick.toml create mode 100644 icepick.yaml diff --git a/icepick.toml b/icepick.toml deleted file mode 100644 index 25a36de..0000000 --- a/icepick.toml +++ /dev/null @@ -1,223 +0,0 @@ -[[module]] -name = "sol" -derivation_prefix = "m/44'/501'/0'" -algorithm = "Ed25519" - -# NOTE: To get a nonce address, the `generate-nonce-account` workflow should be -# run. It is the only workflow that uses a blockhash, which is why a -# `broadcast-with-blockhash` or similar is not, and should not be, implemented. -[[module.workflow]] -name = "broadcast" -inputs = ["nonce_address", "cluster"] - -[[module.workflow.step]] -type = "sol-get-nonce-account-data" -inputs = { nonce_address = "nonce_address", cluster = "cluster" } -outputs = { authority = "nonce_authority", durable_nonce = "nonce" } - -[[module.workflow.step]] -type = "internal-save-file" -values = { filename = "nonce.json" } -inputs = { nonce_authority = "nonce_authority", nonce_data = "nonce", nonce_address = "nonce_address" } - -[[module.workflow.step]] -type = "internal-load-file" -values = { filename = "transaction.json" } -outputs = { transaction = "transaction" } - -[[module.workflow.step]] -type = "sol-broadcast" -inputs = { cluster = "cluster", transaction = "transaction" } -outputs = { status = "status", url = "url", error = "error" } - -[[module.workflow]] -name = "generate-nonce-account" -inputs = ["cluster", "authorization_address"] - -[[module.workflow.step]] -type = "sol-generate-wallet" - -[[module.workflow.step]] -type = "sol-get-wallet-address" -outputs = { pubkey = "wallet_pubkey" } - -[[module.workflow.step]] -type = "sol-await-funds" -inputs = { address = "wallet_pubkey", cluster = "cluster" } -# enough to cover two signatures and the 1_500_000 approx. rent fee -values = { lamports = "1510000" } - -[[module.workflow.step]] -type = "sol-get-blockhash" -inputs = { cluster = "cluster" } -outputs = { blockhash = "blockhash" } - -[[module.workflow.step]] -type = "sol-create-nonce-account-and-signing-key" - -[module.workflow.step.inputs] -from_address = "wallet_pubkey" -authorization_address = "authorization_address" - -[module.workflow.step.outputs] -transaction = "instructions" -nonce_pubkey = "nonce_pubkey" -nonce_privkey = "private_keys" -derivation_accounts = "derivation_accounts" - -[[module.workflow.step]] -type = "sol-compile" - -[module.workflow.step.inputs] -instructions = "instructions" -derivation_accounts = "derivation_accounts" -blockhash = "blockhash" - -[module.workflow.step.outputs] -transaction = "unsigned_transaction" - -[[module.workflow.step]] -type = "sol-sign" - -[module.workflow.step.inputs] -blockhash = "blockhash" -signing_keys = "private_keys" -transaction = "unsigned_transaction" - -[module.workflow.step.outputs] -transaction = "signed_transaction" - -[[module.workflow.step]] -type = "sol-broadcast" -inputs = { cluster = "cluster", transaction = "signed_transaction" } -outputs = { status = "status", url = "url", error = "error" } - -[[module.workflow.step]] -type = "internal-cat" -inputs = { status = "status", url = "url", nonce_account = "nonce_pubkey", error = "error" } -outputs = { status = "status", url = "url", nonce_account = "nonce_account", error = "error" } - -[[module.workflow]] -# Transfer SOL from one address to another. -name = "transfer" -inputs = ["to_address", "from_address", "amount"] - -[[module.workflow.step]] -type = "internal-load-file" -values = { filename = "nonce.json" } -outputs = { nonce_authority = "nonce_authority", nonce_data = "nonce_data", nonce_address = "nonce_address" } - -[[module.workflow.step]] -type = "sol-transfer" -inputs = { from_address = "from_address", to_address = "to_address", amount = "amount" } -outputs = { instructions = "instructions", derivation_accounts = "derivation_accounts" } - -[[module.workflow.step]] -type = "sol-compile" - -[module.workflow.step.inputs] -instructions = "instructions" -derivation_accounts = "derivation_accounts" -nonce_address = "nonce_address" -nonce_authority = "nonce_authority" -nonce_data = "nonce_data" - -[module.workflow.step.outputs] -transaction = "unsigned_transaction" - -[[module.workflow.step]] -type = "sol-sign" - -inputs = { blockhash = "nonce_data", transaction = "unsigned_transaction" } -outputs = { transaction = "signed_transaction" } - -[[module.workflow.step]] -type = "internal-save-file" - -values = { filename = "transaction.json" } -inputs = { transaction = "signed_transaction" } - -[[module]] -name = "cosmos" -derivation_prefix = "m/44'/118'/0'" -algorithm = "Secp256k1" - -[[module.workflow]] -name = "transfer" -inputs = ["from_address", "to_address", "asset_name", "chain_name", "asset_amount"] - -[[module.workflow.step]] -# NOTE: chain_name can't be discoverable by filtering from asset_name, since -# some asset devnets reuse the name. There's no difference between KYVE on Kyve -# or Korellia (devnet). -type = "cosmos-get-chain-info" -inputs = { chain_name = "chain_name" } -outputs = { blockchain_config = "blockchain_config" } - -[[module.workflow.step]] -type = "internal-load-file" -values = { filename = "account_info.json" } -outputs = { account_number = "account_number", sequence_number = "sequence_number" } - -[[module.workflow.step]] -type = "cosmos-transfer" - -[module.workflow.step.inputs] -from_address = "from_address" -to_address = "to_address" -amount = "asset_amount" -denom = "asset_name" -blockchain_config = "blockchain_config" - -[module.workflow.step.outputs] -fee = "fee" -tx_messages = "tx_messages" - -[[module.workflow.step]] -type = "cosmos-sign" - -[module.workflow.step.inputs] -fee = "fee" -tx_messages = "tx_messages" -account_number = "account_number" -sequence_number = "sequence_number" -blockchain_config = "blockchain_config" - -[module.workflow.step.outputs] -transaction = "signed_transaction" - -[[module.workflow.step]] -type = "internal-save-file" -values = { filename = "transaction.json" } -inputs = { transaction = "signed_transaction" } - -[[module.workflow]] -name = "broadcast" -# NOTE: For the purpose of Cosmos, the nonce is a direct part of the signer's -# account. -inputs = ["nonce_address", "chain_name"] - -[[module.workflow.step]] -type = "cosmos-get-chain-info" -inputs = { chain_name = "chain_name" } -outputs = { blockchain_config = "blockchain_config" } - -[[module.workflow.step]] -type = "cosmos-get-account-data" -inputs = { account_id = "nonce_address", blockchain_config = "blockchain_config" } -outputs = { account_number = "account_number", sequence_number = "sequence_number" } - -[[module.workflow.step]] -type = "internal-save-file" -values = { filename = "account_info.json" } -inputs = { account_number = "account_number", sequence_number = "sequence_number" } - -[[module.workflow.step]] -type = "internal-load-file" -values = { filename = "transaction.json" } -outputs = { transaction = "transaction" } - -[[module.workflow.step]] -type = "cosmos-broadcast" -inputs = { blockchain_config = "blockchain_config", transaction = "transaction" } -outputs = { status = "status", url = "url", error = "error", error_code = "error_code" } diff --git a/icepick.yaml b/icepick.yaml new file mode 100644 index 0000000..997e311 --- /dev/null +++ b/icepick.yaml @@ -0,0 +1,224 @@ +module: + - name: "sol" + derivation_prefix: "m/44'/501'/0'" + algorithm: "Ed25519" + workflow: + - name: "broadcast" + inputs: + - "nonce_address" + - "cluster" + step: + - type: "sol-get-nonce-account-data" + inputs: + nonce_address: "nonce_address" + cluster: "cluster" + outputs: + authority: "nonce_authority" + durable_nonce: "nonce" + - type: "internal-save-file" + values: + filename: "nonce.json" + inputs: + nonce_authority: "nonce_authority" + nonce_data: "nonce" + nonce_address: "nonce_address" + - type: "internal-load-file" + values: + filename: "transaction.json" + outputs: + transaction: "transaction" + - type: "sol-broadcast" + inputs: + cluster: "cluster" + transaction: "transaction" + outputs: + status: "status" + url: "url" + error: "error" + - name: "generate-nonce-account" + inputs: + - "cluster" + - "authorization_address" + step: + - type: "sol-generate-wallet" + - type: "sol-get-wallet-address" + outputs: + pubkey: "wallet_pubkey" + - type: "sol-await-funds" + inputs: + address: "wallet_pubkey" + cluster: "cluster" + values: + lamports: "1510000" + - type: "sol-get-blockhash" + inputs: + cluster: "cluster" + outputs: + blockhash: "blockhash" + - type: "sol-create-nonce-account-and-signing-key" + inputs: + from_address: "wallet_pubkey" + authorization_address: "authorization_address" + outputs: + transaction: "instructions" + nonce_pubkey: "nonce_pubkey" + nonce_privkey: "private_keys" + derivation_accounts: "derivation_accounts" + - type: "sol-compile" + inputs: + instructions: "instructions" + derivation_accounts: "derivation_accounts" + blockhash: "blockhash" + outputs: + transaction: "unsigned_transaction" + - type: "sol-sign" + inputs: + blockhash: "blockhash" + signing_keys: "private_keys" + transaction: "unsigned_transaction" + outputs: + transaction: "signed_transaction" + - type: "sol-broadcast" + inputs: + cluster: "cluster" + transaction: "signed_transaction" + outputs: + status: "status" + url: "url" + error: "error" + - type: "internal-cat" + inputs: + status: "status" + url: "url" + nonce_account: "nonce_pubkey" + error: "error" + outputs: + status: "status" + url: "url" + nonce_account: "nonce_account" + error: "error" + - name: "transfer" + inputs: + - "to_address" + - "from_address" + - "amount" + step: + - type: "internal-load-file" + values: + filename: "nonce.json" + outputs: + nonce_authority: "nonce_authority" + nonce_data: "nonce_data" + nonce_address: "nonce_address" + - type: "sol-transfer" + inputs: + from_address: "from_address" + to_address: "to_address" + amount: "amount" + outputs: + instructions: "instructions" + derivation_accounts: "derivation_accounts" + - type: "sol-compile" + inputs: + instructions: "instructions" + derivation_accounts: "derivation_accounts" + nonce_address: "nonce_address" + nonce_authority: "nonce_authority" + nonce_data: "nonce_data" + outputs: + transaction: "unsigned_transaction" + - type: "sol-sign" + inputs: + blockhash: "nonce_data" + transaction: "unsigned_transaction" + outputs: + transaction: "signed_transaction" + - type: "internal-save-file" + values: + filename: "transaction.json" + inputs: + transaction: "signed_transaction" + - name: "cosmos" + derivation_prefix: "m/44'/118'/0'" + algorithm: "Secp256k1" + workflow: + - name: "transfer" + inputs: + - "from_address" + - "to_address" + - "asset_name" + - "chain_name" + - "asset_amount" + step: + - type: "cosmos-get-chain-info" + inputs: + chain_name: "chain_name" + outputs: + blockchain_config: "blockchain_config" + - type: "internal-load-file" + values: + filename: "account_info.json" + outputs: + account_number: "account_number" + sequence_number: "sequence_number" + - type: "cosmos-transfer" + inputs: + from_address: "from_address" + to_address: "to_address" + amount: "asset_amount" + denom: "asset_name" + blockchain_config: "blockchain_config" + outputs: + fee: "fee" + tx_messages: "tx_messages" + - type: "cosmos-sign" + inputs: + fee: "fee" + tx_messages: "tx_messages" + account_number: "account_number" + sequence_number: "sequence_number" + blockchain_config: "blockchain_config" + outputs: + transaction: "signed_transaction" + - type: "internal-save-file" + values: + filename: "transaction.json" + inputs: + transaction: "signed_transaction" + - name: "broadcast" + inputs: + - "nonce_address" + - "chain_name" + step: + - type: "cosmos-get-chain-info" + inputs: + chain_name: "chain_name" + outputs: + blockchain_config: "blockchain_config" + - type: "cosmos-get-account-data" + inputs: + account_id: "nonce_address" + blockchain_config: "blockchain_config" + outputs: + account_number: "account_number" + sequence_number: "sequence_number" + - type: "internal-save-file" + values: + filename: "account_info.json" + inputs: + account_number: "account_number" + sequence_number: "sequence_number" + - type: "internal-load-file" + values: + filename: "transaction.json" + outputs: + transaction: "transaction" + - type: "cosmos-broadcast" + inputs: + blockchain_config: "blockchain_config" + transaction: "transaction" + outputs: + status: "status" + url: "url" + error: "error" + error_code: "error_code" -- 2.40.1 From 25e8f9d6eee44802088b0284fcc01efbfe6646ea Mon Sep 17 00:00:00 2001 From: Anton Livaja Date: Sun, 16 Feb 2025 08:49:35 -0500 Subject: [PATCH 2/2] move workflows into individual files --- .../icepick/workflows/cosmos/broadcast.yaml | 37 +++ crates/icepick/workflows/cosmos/transfer.yaml | 43 ++++ crates/icepick/workflows/sol/broadcast.yaml | 32 +++ .../workflows/sol/generate-nonce-account.yaml | 62 +++++ crates/icepick/workflows/sol/transfer.yaml | 41 ++++ icepick.yaml | 219 +----------------- 6 files changed, 216 insertions(+), 218 deletions(-) create mode 100644 crates/icepick/workflows/cosmos/broadcast.yaml create mode 100644 crates/icepick/workflows/cosmos/transfer.yaml create mode 100644 crates/icepick/workflows/sol/broadcast.yaml create mode 100644 crates/icepick/workflows/sol/generate-nonce-account.yaml create mode 100644 crates/icepick/workflows/sol/transfer.yaml diff --git a/crates/icepick/workflows/cosmos/broadcast.yaml b/crates/icepick/workflows/cosmos/broadcast.yaml new file mode 100644 index 0000000..ba677de --- /dev/null +++ b/crates/icepick/workflows/cosmos/broadcast.yaml @@ -0,0 +1,37 @@ +name: "broadcast" +inputs: +- "nonce_address" +- "chain_name" +step: +- type: "cosmos-get-chain-info" + inputs: + chain_name: "chain_name" + outputs: + blockchain_config: "blockchain_config" +- type: "cosmos-get-account-data" + inputs: + account_id: "nonce_address" + blockchain_config: "blockchain_config" + outputs: + account_number: "account_number" + sequence_number: "sequence_number" +- type: "internal-save-file" + values: + filename: "account_info.json" + inputs: + account_number: "account_number" + sequence_number: "sequence_number" +- type: "internal-load-file" + values: + filename: "transaction.json" + outputs: + transaction: "transaction" +- type: "cosmos-broadcast" + inputs: + blockchain_config: "blockchain_config" + transaction: "transaction" + outputs: + status: "status" + url: "url" + error: "error" + error_code: "error_code" \ No newline at end of file diff --git a/crates/icepick/workflows/cosmos/transfer.yaml b/crates/icepick/workflows/cosmos/transfer.yaml new file mode 100644 index 0000000..8003492 --- /dev/null +++ b/crates/icepick/workflows/cosmos/transfer.yaml @@ -0,0 +1,43 @@ +name: "transfer" +inputs: +- "from_address" +- "to_address" +- "asset_name" +- "chain_name" +- "asset_amount" +step: +- type: "cosmos-get-chain-info" + inputs: + chain_name: "chain_name" + outputs: + blockchain_config: "blockchain_config" +- type: "internal-load-file" + values: + filename: "account_info.json" + outputs: + account_number: "account_number" + sequence_number: "sequence_number" +- type: "cosmos-transfer" + inputs: + from_address: "from_address" + to_address: "to_address" + amount: "asset_amount" + denom: "asset_name" + blockchain_config: "blockchain_config" + outputs: + fee: "fee" + tx_messages: "tx_messages" +- type: "cosmos-sign" + inputs: + fee: "fee" + tx_messages: "tx_messages" + account_number: "account_number" + sequence_number: "sequence_number" + blockchain_config: "blockchain_config" + outputs: + transaction: "signed_transaction" +- type: "internal-save-file" + values: + filename: "transaction.json" + inputs: + transaction: "signed_transaction" \ No newline at end of file diff --git a/crates/icepick/workflows/sol/broadcast.yaml b/crates/icepick/workflows/sol/broadcast.yaml new file mode 100644 index 0000000..2b3c147 --- /dev/null +++ b/crates/icepick/workflows/sol/broadcast.yaml @@ -0,0 +1,32 @@ +name: "broadcast" +inputs: +- "nonce_address" +- "cluster" +step: +- type: "sol-get-nonce-account-data" + inputs: + nonce_address: "nonce_address" + cluster: "cluster" + outputs: + authority: "nonce_authority" + durable_nonce: "nonce" +- type: "internal-save-file" + values: + filename: "nonce.json" + inputs: + nonce_authority: "nonce_authority" + nonce_data: "nonce" + nonce_address: "nonce_address" +- type: "internal-load-file" + values: + filename: "transaction.json" + outputs: + transaction: "transaction" +- type: "sol-broadcast" + inputs: + cluster: "cluster" + transaction: "transaction" + outputs: + status: "status" + url: "url" + error: "error" \ No newline at end of file diff --git a/crates/icepick/workflows/sol/generate-nonce-account.yaml b/crates/icepick/workflows/sol/generate-nonce-account.yaml new file mode 100644 index 0000000..fda4b17 --- /dev/null +++ b/crates/icepick/workflows/sol/generate-nonce-account.yaml @@ -0,0 +1,62 @@ +name: "generate-nonce-account" +inputs: +- "cluster" +- "authorization_address" +step: +- type: "sol-generate-wallet" +- type: "sol-get-wallet-address" + outputs: + pubkey: "wallet_pubkey" +- type: "sol-await-funds" + inputs: + address: "wallet_pubkey" + cluster: "cluster" + values: + lamports: "1510000" +- type: "sol-get-blockhash" + inputs: + cluster: "cluster" + outputs: + blockhash: "blockhash" +- type: "sol-create-nonce-account-and-signing-key" + inputs: + from_address: "wallet_pubkey" + authorization_address: "authorization_address" + outputs: + transaction: "instructions" + nonce_pubkey: "nonce_pubkey" + nonce_privkey: "private_keys" + derivation_accounts: "derivation_accounts" +- type: "sol-compile" + inputs: + instructions: "instructions" + derivation_accounts: "derivation_accounts" + blockhash: "blockhash" + outputs: + transaction: "unsigned_transaction" +- type: "sol-sign" + inputs: + blockhash: "blockhash" + signing_keys: "private_keys" + transaction: "unsigned_transaction" + outputs: + transaction: "signed_transaction" +- type: "sol-broadcast" + inputs: + cluster: "cluster" + transaction: "signed_transaction" + outputs: + status: "status" + url: "url" + error: "error" +- type: "internal-cat" + inputs: + status: "status" + url: "url" + nonce_account: "nonce_pubkey" + error: "error" + outputs: + status: "status" + url: "url" + nonce_account: "nonce_account" + error: "error" \ No newline at end of file diff --git a/crates/icepick/workflows/sol/transfer.yaml b/crates/icepick/workflows/sol/transfer.yaml new file mode 100644 index 0000000..4788155 --- /dev/null +++ b/crates/icepick/workflows/sol/transfer.yaml @@ -0,0 +1,41 @@ +name: "transfer" +inputs: +- "to_address" +- "from_address" +- "amount" +step: +- type: "internal-load-file" + values: + filename: "nonce.json" + outputs: + nonce_authority: "nonce_authority" + nonce_data: "nonce_data" + nonce_address: "nonce_address" +- type: "sol-transfer" + inputs: + from_address: "from_address" + to_address: "to_address" + amount: "amount" + outputs: + instructions: "instructions" + derivation_accounts: "derivation_accounts" +- type: "sol-compile" + inputs: + instructions: "instructions" + derivation_accounts: "derivation_accounts" + nonce_address: "nonce_address" + nonce_authority: "nonce_authority" + nonce_data: "nonce_data" + outputs: + transaction: "unsigned_transaction" +- type: "sol-sign" + inputs: + blockhash: "nonce_data" + transaction: "unsigned_transaction" + outputs: + transaction: "signed_transaction" +- type: "internal-save-file" + values: + filename: "transaction.json" + inputs: + transaction: "signed_transaction" \ No newline at end of file diff --git a/icepick.yaml b/icepick.yaml index 997e311..e44cc0c 100644 --- a/icepick.yaml +++ b/icepick.yaml @@ -2,223 +2,6 @@ module: - name: "sol" derivation_prefix: "m/44'/501'/0'" algorithm: "Ed25519" - workflow: - - name: "broadcast" - inputs: - - "nonce_address" - - "cluster" - step: - - type: "sol-get-nonce-account-data" - inputs: - nonce_address: "nonce_address" - cluster: "cluster" - outputs: - authority: "nonce_authority" - durable_nonce: "nonce" - - type: "internal-save-file" - values: - filename: "nonce.json" - inputs: - nonce_authority: "nonce_authority" - nonce_data: "nonce" - nonce_address: "nonce_address" - - type: "internal-load-file" - values: - filename: "transaction.json" - outputs: - transaction: "transaction" - - type: "sol-broadcast" - inputs: - cluster: "cluster" - transaction: "transaction" - outputs: - status: "status" - url: "url" - error: "error" - - name: "generate-nonce-account" - inputs: - - "cluster" - - "authorization_address" - step: - - type: "sol-generate-wallet" - - type: "sol-get-wallet-address" - outputs: - pubkey: "wallet_pubkey" - - type: "sol-await-funds" - inputs: - address: "wallet_pubkey" - cluster: "cluster" - values: - lamports: "1510000" - - type: "sol-get-blockhash" - inputs: - cluster: "cluster" - outputs: - blockhash: "blockhash" - - type: "sol-create-nonce-account-and-signing-key" - inputs: - from_address: "wallet_pubkey" - authorization_address: "authorization_address" - outputs: - transaction: "instructions" - nonce_pubkey: "nonce_pubkey" - nonce_privkey: "private_keys" - derivation_accounts: "derivation_accounts" - - type: "sol-compile" - inputs: - instructions: "instructions" - derivation_accounts: "derivation_accounts" - blockhash: "blockhash" - outputs: - transaction: "unsigned_transaction" - - type: "sol-sign" - inputs: - blockhash: "blockhash" - signing_keys: "private_keys" - transaction: "unsigned_transaction" - outputs: - transaction: "signed_transaction" - - type: "sol-broadcast" - inputs: - cluster: "cluster" - transaction: "signed_transaction" - outputs: - status: "status" - url: "url" - error: "error" - - type: "internal-cat" - inputs: - status: "status" - url: "url" - nonce_account: "nonce_pubkey" - error: "error" - outputs: - status: "status" - url: "url" - nonce_account: "nonce_account" - error: "error" - - name: "transfer" - inputs: - - "to_address" - - "from_address" - - "amount" - step: - - type: "internal-load-file" - values: - filename: "nonce.json" - outputs: - nonce_authority: "nonce_authority" - nonce_data: "nonce_data" - nonce_address: "nonce_address" - - type: "sol-transfer" - inputs: - from_address: "from_address" - to_address: "to_address" - amount: "amount" - outputs: - instructions: "instructions" - derivation_accounts: "derivation_accounts" - - type: "sol-compile" - inputs: - instructions: "instructions" - derivation_accounts: "derivation_accounts" - nonce_address: "nonce_address" - nonce_authority: "nonce_authority" - nonce_data: "nonce_data" - outputs: - transaction: "unsigned_transaction" - - type: "sol-sign" - inputs: - blockhash: "nonce_data" - transaction: "unsigned_transaction" - outputs: - transaction: "signed_transaction" - - type: "internal-save-file" - values: - filename: "transaction.json" - inputs: - transaction: "signed_transaction" - name: "cosmos" derivation_prefix: "m/44'/118'/0'" - algorithm: "Secp256k1" - workflow: - - name: "transfer" - inputs: - - "from_address" - - "to_address" - - "asset_name" - - "chain_name" - - "asset_amount" - step: - - type: "cosmos-get-chain-info" - inputs: - chain_name: "chain_name" - outputs: - blockchain_config: "blockchain_config" - - type: "internal-load-file" - values: - filename: "account_info.json" - outputs: - account_number: "account_number" - sequence_number: "sequence_number" - - type: "cosmos-transfer" - inputs: - from_address: "from_address" - to_address: "to_address" - amount: "asset_amount" - denom: "asset_name" - blockchain_config: "blockchain_config" - outputs: - fee: "fee" - tx_messages: "tx_messages" - - type: "cosmos-sign" - inputs: - fee: "fee" - tx_messages: "tx_messages" - account_number: "account_number" - sequence_number: "sequence_number" - blockchain_config: "blockchain_config" - outputs: - transaction: "signed_transaction" - - type: "internal-save-file" - values: - filename: "transaction.json" - inputs: - transaction: "signed_transaction" - - name: "broadcast" - inputs: - - "nonce_address" - - "chain_name" - step: - - type: "cosmos-get-chain-info" - inputs: - chain_name: "chain_name" - outputs: - blockchain_config: "blockchain_config" - - type: "cosmos-get-account-data" - inputs: - account_id: "nonce_address" - blockchain_config: "blockchain_config" - outputs: - account_number: "account_number" - sequence_number: "sequence_number" - - type: "internal-save-file" - values: - filename: "account_info.json" - inputs: - account_number: "account_number" - sequence_number: "sequence_number" - - type: "internal-load-file" - values: - filename: "transaction.json" - outputs: - transaction: "transaction" - - type: "cosmos-broadcast" - inputs: - blockchain_config: "blockchain_config" - transaction: "transaction" - outputs: - status: "status" - url: "url" - error: "error" - error_code: "error_code" + algorithm: "Secp256k1" \ No newline at end of file -- 2.40.1