refactor main config file from toml to yaml
This commit is contained in:
parent
4f5779c983
commit
42b6b6ad4e
223
icepick.toml
223
icepick.toml
|
@ -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" }
|
|
@ -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"
|
Loading…
Reference in New Issue