# pyre-strict
from starcoin import bcs
from starcoin.starcoin_types import (Script, ScriptFunction, TransactionPayload, TransactionPayload__ScriptFunction, Identifier, ModuleId, TypeTag, AccountAddress, TransactionArgument,
TransactionArgument__Bool, TransactionArgument__U8, TransactionArgument__U64, TransactionArgument__U128, TransactionArgument__Address, TransactionArgument__U8Vector)
from dataclasses import dataclass
import typing
from starcoin import serde_types as st
from starcoin import starcoin_types
[docs]class ScriptCall:
"""Structured representation of a call into a known Move script.
"""
pass
[docs]class ScriptFunctionCall:
"""Structured representation of a call into a known Move script function.
"""
pass
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__AcceptToken(ScriptFunctionCall):
""".
"""
token_type: starcoin_types.TypeTag
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__CancelUpgradePlan(ScriptFunctionCall):
""".
"""
pass
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__CastVote(ScriptFunctionCall):
""".
"""
token: starcoin_types.TypeTag
action_t: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
agree: bool
votes: st.uint128
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ConvertTwoPhaseUpgradeToTwoPhaseUpgradeV2(ScriptFunctionCall):
""".
"""
package_address: starcoin_types.AccountAddress
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__CreateAccountWithInitialAmount(ScriptFunctionCall):
""".
"""
token_type: starcoin_types.TypeTag
fresh_address: starcoin_types.AccountAddress
_auth_key: bytes
initial_amount: st.uint128
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__CreateAccountWithInitialAmountV2(ScriptFunctionCall):
""".
"""
token_type: starcoin_types.TypeTag
fresh_address: starcoin_types.AccountAddress
initial_amount: st.uint128
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__DestroyTerminatedProposal(ScriptFunctionCall):
"""remove terminated proposal from proposer.
"""
token_t: starcoin_types.TypeTag
action_t: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__EmptyScript(ScriptFunctionCall):
""".
"""
pass
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__Execute(ScriptFunctionCall):
"""Once the proposal is agreed, anyone can call the method to make the proposal happen.
"""
token_t: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ExecuteOnChainConfigProposal(ScriptFunctionCall):
""".
"""
config_t: starcoin_types.TypeTag
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ExecuteWithdrawProposal(ScriptFunctionCall):
""".
"""
token_t: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__Initialize(ScriptFunctionCall):
""".
"""
stdlib_version: st.uint64
reward_delay: st.uint64
pre_mine_stc_amount: st.uint128
time_mint_stc_amount: st.uint128
time_mint_stc_period: st.uint64
parent_hash: bytes
association_auth_key: bytes
genesis_auth_key: bytes
chain_id: st.uint8
genesis_timestamp: st.uint64
uncle_rate_target: st.uint64
epoch_block_count: st.uint64
base_block_time_target: st.uint64
base_block_difficulty_window: st.uint64
base_reward_per_block: st.uint128
base_reward_per_uncle_percent: st.uint64
min_block_time_target: st.uint64
max_block_time_target: st.uint64
base_max_uncles_per_block: st.uint64
base_block_gas_limit: st.uint64
strategy: st.uint8
script_allowed: bool
module_publishing_allowed: bool
instruction_schedule: bytes
native_schedule: bytes
global_memory_per_byte_cost: st.uint64
global_memory_per_byte_write_cost: st.uint64
min_transaction_gas_units: st.uint64
large_transaction_cutoff: st.uint64
instrinsic_gas_per_byte: st.uint64
maximum_number_of_gas_units: st.uint64
min_price_per_gas_unit: st.uint64
max_price_per_gas_unit: st.uint64
max_transaction_size_in_bytes: st.uint64
gas_unit_scaling_factor: st.uint64
default_account_size: st.uint64
voting_delay: st.uint64
voting_period: st.uint64
voting_quorum_rate: st.uint8
min_action_delay: st.uint64
transaction_timeout: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__InitializeV2(ScriptFunctionCall):
""".
"""
stdlib_version: st.uint64
reward_delay: st.uint64
total_stc_amount: st.uint128
pre_mine_stc_amount: st.uint128
time_mint_stc_amount: st.uint128
time_mint_stc_period: st.uint64
parent_hash: bytes
association_auth_key: bytes
genesis_auth_key: bytes
chain_id: st.uint8
genesis_timestamp: st.uint64
uncle_rate_target: st.uint64
epoch_block_count: st.uint64
base_block_time_target: st.uint64
base_block_difficulty_window: st.uint64
base_reward_per_block: st.uint128
base_reward_per_uncle_percent: st.uint64
min_block_time_target: st.uint64
max_block_time_target: st.uint64
base_max_uncles_per_block: st.uint64
base_block_gas_limit: st.uint64
strategy: st.uint8
script_allowed: bool
module_publishing_allowed: bool
instruction_schedule: bytes
native_schedule: bytes
global_memory_per_byte_cost: st.uint64
global_memory_per_byte_write_cost: st.uint64
min_transaction_gas_units: st.uint64
large_transaction_cutoff: st.uint64
instrinsic_gas_per_byte: st.uint64
maximum_number_of_gas_units: st.uint64
min_price_per_gas_unit: st.uint64
max_price_per_gas_unit: st.uint64
max_transaction_size_in_bytes: st.uint64
gas_unit_scaling_factor: st.uint64
default_account_size: st.uint64
voting_delay: st.uint64
voting_period: st.uint64
voting_quorum_rate: st.uint8
min_action_delay: st.uint64
transaction_timeout: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__PeerToPeer(ScriptFunctionCall):
""".
"""
token_type: starcoin_types.TypeTag
payee: starcoin_types.AccountAddress
_payee_auth_key: bytes
amount: st.uint128
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__PeerToPeerBatch(ScriptFunctionCall):
""".
"""
token_type: starcoin_types.TypeTag
_payeees: bytes
_payee_auth_keys: bytes
_amount: st.uint128
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__PeerToPeerV2(ScriptFunctionCall):
""".
"""
token_type: starcoin_types.TypeTag
payee: starcoin_types.AccountAddress
amount: st.uint128
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__Propose(ScriptFunctionCall):
"""Entrypoint for the proposal.
"""
token_t: starcoin_types.TypeTag
voting_delay: st.uint64
voting_period: st.uint64
voting_quorum_rate: st.uint8
min_action_delay: st.uint64
exec_delay: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ProposeModuleUpgradeV2(ScriptFunctionCall):
""".
"""
token: starcoin_types.TypeTag
module_address: starcoin_types.AccountAddress
package_hash: bytes
version: st.uint64
exec_delay: st.uint64
enforced: bool
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ProposeUpdateConsensusConfig(ScriptFunctionCall):
""".
"""
uncle_rate_target: st.uint64
base_block_time_target: st.uint64
base_reward_per_block: st.uint128
base_reward_per_uncle_percent: st.uint64
epoch_block_count: st.uint64
base_block_difficulty_window: st.uint64
min_block_time_target: st.uint64
max_block_time_target: st.uint64
base_max_uncles_per_block: st.uint64
base_block_gas_limit: st.uint64
strategy: st.uint8
exec_delay: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ProposeUpdateRewardConfig(ScriptFunctionCall):
""".
"""
reward_delay: st.uint64
exec_delay: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ProposeUpdateTxnPublishOption(ScriptFunctionCall):
""".
"""
script_allowed: bool
module_publishing_allowed: bool
exec_delay: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ProposeUpdateTxnTimeoutConfig(ScriptFunctionCall):
""".
"""
duration_seconds: st.uint64
exec_delay: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ProposeUpdateVmConfig(ScriptFunctionCall):
""".
"""
instruction_schedule: bytes
native_schedule: bytes
global_memory_per_byte_cost: st.uint64
global_memory_per_byte_write_cost: st.uint64
min_transaction_gas_units: st.uint64
large_transaction_cutoff: st.uint64
instrinsic_gas_per_byte: st.uint64
maximum_number_of_gas_units: st.uint64
min_price_per_gas_unit: st.uint64
max_price_per_gas_unit: st.uint64
max_transaction_size_in_bytes: st.uint64
gas_unit_scaling_factor: st.uint64
default_account_size: st.uint64
exec_delay: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__ProposeWithdraw(ScriptFunctionCall):
""".
"""
token_t: starcoin_types.TypeTag
receiver: starcoin_types.AccountAddress
amount: st.uint128
period: st.uint64
exec_delay: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__QueueProposalAction(ScriptFunctionCall):
"""queue agreed proposal to execute.
"""
token_t: starcoin_types.TypeTag
action_t: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__RevokeVote(ScriptFunctionCall):
""".
"""
token: starcoin_types.TypeTag
action: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__RotateAuthenticationKey(ScriptFunctionCall):
""".
"""
new_key: bytes
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__SubmitModuleUpgradePlan(ScriptFunctionCall):
""".
"""
token: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__TakeLinearWithdrawCapability(ScriptFunctionCall):
"""association account should call this script after upgrade from v2 to v3.
"""
pass
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__TakeOffer(ScriptFunctionCall):
"""Take Offer and put to signer's Collection<Offered>.
"""
offered: starcoin_types.TypeTag
offer_address: starcoin_types.AccountAddress
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__UnstakeVote(ScriptFunctionCall):
""".
"""
token: starcoin_types.TypeTag
action: starcoin_types.TypeTag
proposer_address: starcoin_types.AccountAddress
proposal_id: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__UpdateModuleUpgradeStrategy(ScriptFunctionCall):
""".
"""
strategy: st.uint8
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__UpgradeFromV2ToV3(ScriptFunctionCall):
"""Stdlib upgrade script from v2 to v3.
"""
total_stc_amount: st.uint128
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__WithdrawAndSplitLtWithdrawCap(ScriptFunctionCall):
""".
"""
token_t: starcoin_types.TypeTag
for_address: starcoin_types.AccountAddress
amount: st.uint128
lock_period: st.uint64
[docs]@dataclass(frozen=True)
class ScriptFunctionCall__WithdrawTokenWithLinearWithdrawCapability(ScriptFunctionCall):
""".
"""
token_t: starcoin_types.TypeTag
[docs]def encode_script(call: ScriptCall) -> Script:
"""Build a Diem `Script` from a structured object `ScriptCall`.
"""
helper = TRANSACTION_SCRIPT_ENCODER_MAP[call.__class__]
return helper(call)
[docs]def encode_script_function(call: ScriptFunctionCall) -> TransactionPayload:
"""Build a Diem `ScriptFunction` `TransactionPayload` from a structured object `ScriptFunctionCall`.
"""
helper = SCRIPT_FUNCTION_ENCODER_MAP[call.__class__]
return helper(call)
[docs]def decode_script(script: Script) -> ScriptCall:
"""Try to recognize a Diem `Script` and convert it into a structured object `ScriptCall`.
"""
helper = TRANSACTION_SCRIPT_DECODER_MAP.get(script.code)
if helper is None:
raise ValueError("Unknown script bytecode")
return helper(script)
[docs]def decode_script_function_payload(payload: TransactionPayload) -> ScriptFunctionCall:
"""Try to recognize a Diem `TransactionPayload` and convert it into a structured object `ScriptFunctionCall`.
"""
if not isinstance(payload, TransactionPayload__ScriptFunction):
raise ValueError("Unexpected transaction payload")
script = payload.value
helper = SCRIPT_FUNCTION_DECODER_MAP.get(
script.module.name.value + script.function.value)
if helper is None:
raise ValueError("Unknown script bytecode")
return helper(script)
[docs]def encode_accept_token_script_function(token_type: TypeTag) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Account")),
function=Identifier("accept_token"),
ty_args=[token_type],
args=[],
)
)
[docs]def encode_cancel_upgrade_plan_script_function() -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("ModuleUpgradeScripts")),
function=Identifier("cancel_upgrade_plan"),
ty_args=[],
args=[],
)
)
[docs]def encode_cast_vote_script_function(token: TypeTag, action_t: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64, agree: bool, votes: st.uint128) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("DaoVoteScripts")),
function=Identifier("cast_vote"),
ty_args=[token, action_t],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64), bcs.serialize(agree, st.bool), bcs.serialize(votes, st.uint128)],
)
)
[docs]def encode_convert_TwoPhaseUpgrade_to_TwoPhaseUpgradeV2_script_function(package_address: AccountAddress) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("PackageTxnManager")),
function=Identifier(
"convert_TwoPhaseUpgrade_to_TwoPhaseUpgradeV2"),
ty_args=[],
args=[bcs.serialize(
package_address, starcoin_types.AccountAddress)],
)
)
[docs]def encode_create_account_with_initial_amount_script_function(token_type: TypeTag, fresh_address: AccountAddress, _auth_key: bytes, initial_amount: st.uint128) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Account")),
function=Identifier("create_account_with_initial_amount"),
ty_args=[token_type],
args=[bcs.serialize(fresh_address, starcoin_types.AccountAddress), bcs.serialize(
_auth_key, bytes), bcs.serialize(initial_amount, st.uint128)],
)
)
[docs]def encode_create_account_with_initial_amount_v2_script_function(token_type: TypeTag, fresh_address: AccountAddress, initial_amount: st.uint128) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Account")),
function=Identifier("create_account_with_initial_amount_v2"),
ty_args=[token_type],
args=[bcs.serialize(fresh_address, starcoin_types.AccountAddress), bcs.serialize(
initial_amount, st.uint128)],
)
)
[docs]def encode_destroy_terminated_proposal_script_function(token_t: TypeTag, action_t: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64) -> TransactionPayload:
"""remove terminated proposal from proposer.
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Dao")),
function=Identifier("destroy_terminated_proposal"),
ty_args=[token_t, action_t],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64)],
)
)
[docs]def encode_empty_script_script_function() -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("EmptyScripts")),
function=Identifier("empty_script"),
ty_args=[],
args=[],
)
)
[docs]def encode_execute_script_function(token_t: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64) -> TransactionPayload:
"""Once the proposal is agreed, anyone can call the method to make the proposal happen.
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("ModifyDaoConfigProposal")),
function=Identifier("execute"),
ty_args=[token_t],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64)],
)
)
[docs]def encode_execute_on_chain_config_proposal_script_function(config_t: TypeTag, proposal_id: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("OnChainConfigScripts")),
function=Identifier("execute_on_chain_config_proposal"),
ty_args=[config_t],
args=[bcs.serialize(proposal_id, st.uint64)],
)
)
[docs]def encode_execute_withdraw_proposal_script_function(token_t: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("TreasuryScripts")),
function=Identifier("execute_withdraw_proposal"),
ty_args=[token_t],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64)],
)
)
[docs]def encode_initialize_script_function(stdlib_version: st.uint64, reward_delay: st.uint64, pre_mine_stc_amount: st.uint128, time_mint_stc_amount: st.uint128, time_mint_stc_period: st.uint64, parent_hash: bytes, association_auth_key: bytes, genesis_auth_key: bytes, chain_id: st.uint8, genesis_timestamp: st.uint64, uncle_rate_target: st.uint64, epoch_block_count: st.uint64, base_block_time_target: st.uint64, base_block_difficulty_window: st.uint64, base_reward_per_block: st.uint128, base_reward_per_uncle_percent: st.uint64, min_block_time_target: st.uint64, max_block_time_target: st.uint64, base_max_uncles_per_block: st.uint64, base_block_gas_limit: st.uint64, strategy: st.uint8, script_allowed: bool, module_publishing_allowed: bool, instruction_schedule: bytes, native_schedule: bytes, global_memory_per_byte_cost: st.uint64, global_memory_per_byte_write_cost: st.uint64, min_transaction_gas_units: st.uint64, large_transaction_cutoff: st.uint64, instrinsic_gas_per_byte: st.uint64, maximum_number_of_gas_units: st.uint64, min_price_per_gas_unit: st.uint64, max_price_per_gas_unit: st.uint64, max_transaction_size_in_bytes: st.uint64, gas_unit_scaling_factor: st.uint64, default_account_size: st.uint64, voting_delay: st.uint64, voting_period: st.uint64, voting_quorum_rate: st.uint8, min_action_delay: st.uint64, transaction_timeout: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Genesis")),
function=Identifier("initialize"),
ty_args=[],
args=[bcs.serialize(stdlib_version, st.uint64), bcs.serialize(reward_delay, st.uint64), bcs.serialize(pre_mine_stc_amount, st.uint128), bcs.serialize(time_mint_stc_amount, st.uint128), bcs.serialize(time_mint_stc_period, st.uint64), bcs.serialize(parent_hash, bytes), bcs.serialize(association_auth_key, bytes), bcs.serialize(genesis_auth_key, bytes), bcs.serialize(chain_id, st.uint8), bcs.serialize(genesis_timestamp, st.uint64), bcs.serialize(uncle_rate_target, st.uint64), bcs.serialize(epoch_block_count, st.uint64), bcs.serialize(base_block_time_target, st.uint64), bcs.serialize(base_block_difficulty_window, st.uint64), bcs.serialize(base_reward_per_block, st.uint128), bcs.serialize(base_reward_per_uncle_percent, st.uint64), bcs.serialize(min_block_time_target, st.uint64), bcs.serialize(max_block_time_target, st.uint64), bcs.serialize(base_max_uncles_per_block, st.uint64), bcs.serialize(base_block_gas_limit, st.uint64), bcs.serialize(strategy, st.uint8), bcs.serialize(
script_allowed, st.bool), bcs.serialize(module_publishing_allowed, st.bool), bcs.serialize(instruction_schedule, bytes), bcs.serialize(native_schedule, bytes), bcs.serialize(global_memory_per_byte_cost, st.uint64), bcs.serialize(global_memory_per_byte_write_cost, st.uint64), bcs.serialize(min_transaction_gas_units, st.uint64), bcs.serialize(large_transaction_cutoff, st.uint64), bcs.serialize(instrinsic_gas_per_byte, st.uint64), bcs.serialize(maximum_number_of_gas_units, st.uint64), bcs.serialize(min_price_per_gas_unit, st.uint64), bcs.serialize(max_price_per_gas_unit, st.uint64), bcs.serialize(max_transaction_size_in_bytes, st.uint64), bcs.serialize(gas_unit_scaling_factor, st.uint64), bcs.serialize(default_account_size, st.uint64), bcs.serialize(voting_delay, st.uint64), bcs.serialize(voting_period, st.uint64), bcs.serialize(voting_quorum_rate, st.uint8), bcs.serialize(min_action_delay, st.uint64), bcs.serialize(transaction_timeout, st.uint64)],
)
)
[docs]def encode_initialize_v2_script_function(stdlib_version: st.uint64, reward_delay: st.uint64, total_stc_amount: st.uint128, pre_mine_stc_amount: st.uint128, time_mint_stc_amount: st.uint128, time_mint_stc_period: st.uint64, parent_hash: bytes, association_auth_key: bytes, genesis_auth_key: bytes, chain_id: st.uint8, genesis_timestamp: st.uint64, uncle_rate_target: st.uint64, epoch_block_count: st.uint64, base_block_time_target: st.uint64, base_block_difficulty_window: st.uint64, base_reward_per_block: st.uint128, base_reward_per_uncle_percent: st.uint64, min_block_time_target: st.uint64, max_block_time_target: st.uint64, base_max_uncles_per_block: st.uint64, base_block_gas_limit: st.uint64, strategy: st.uint8, script_allowed: bool, module_publishing_allowed: bool, instruction_schedule: bytes, native_schedule: bytes, global_memory_per_byte_cost: st.uint64, global_memory_per_byte_write_cost: st.uint64, min_transaction_gas_units: st.uint64, large_transaction_cutoff: st.uint64, instrinsic_gas_per_byte: st.uint64, maximum_number_of_gas_units: st.uint64, min_price_per_gas_unit: st.uint64, max_price_per_gas_unit: st.uint64, max_transaction_size_in_bytes: st.uint64, gas_unit_scaling_factor: st.uint64, default_account_size: st.uint64, voting_delay: st.uint64, voting_period: st.uint64, voting_quorum_rate: st.uint8, min_action_delay: st.uint64, transaction_timeout: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Genesis")),
function=Identifier("initialize_v2"),
ty_args=[],
args=[bcs.serialize(stdlib_version, st.uint64), bcs.serialize(reward_delay, st.uint64), bcs.serialize(total_stc_amount, st.uint128), bcs.serialize(pre_mine_stc_amount, st.uint128), bcs.serialize(time_mint_stc_amount, st.uint128), bcs.serialize(time_mint_stc_period, st.uint64), bcs.serialize(parent_hash, bytes), bcs.serialize(association_auth_key, bytes), bcs.serialize(genesis_auth_key, bytes), bcs.serialize(chain_id, st.uint8), bcs.serialize(genesis_timestamp, st.uint64), bcs.serialize(uncle_rate_target, st.uint64), bcs.serialize(epoch_block_count, st.uint64), bcs.serialize(base_block_time_target, st.uint64), bcs.serialize(base_block_difficulty_window, st.uint64), bcs.serialize(base_reward_per_block, st.uint128), bcs.serialize(base_reward_per_uncle_percent, st.uint64), bcs.serialize(min_block_time_target, st.uint64), bcs.serialize(max_block_time_target, st.uint64), bcs.serialize(base_max_uncles_per_block, st.uint64), bcs.serialize(base_block_gas_limit, st.uint64), bcs.serialize(
strategy, st.uint8), bcs.serialize(script_allowed, st.bool), bcs.serialize(module_publishing_allowed, st.bool), bcs.serialize(instruction_schedule, bytes), bcs.serialize(native_schedule, bytes), bcs.serialize(global_memory_per_byte_cost, st.uint64), bcs.serialize(global_memory_per_byte_write_cost, st.uint64), bcs.serialize(min_transaction_gas_units, st.uint64), bcs.serialize(large_transaction_cutoff, st.uint64), bcs.serialize(instrinsic_gas_per_byte, st.uint64), bcs.serialize(maximum_number_of_gas_units, st.uint64), bcs.serialize(min_price_per_gas_unit, st.uint64), bcs.serialize(max_price_per_gas_unit, st.uint64), bcs.serialize(max_transaction_size_in_bytes, st.uint64), bcs.serialize(gas_unit_scaling_factor, st.uint64), bcs.serialize(default_account_size, st.uint64), bcs.serialize(voting_delay, st.uint64), bcs.serialize(voting_period, st.uint64), bcs.serialize(voting_quorum_rate, st.uint8), bcs.serialize(min_action_delay, st.uint64), bcs.serialize(transaction_timeout, st.uint64)],
)
)
[docs]def encode_peer_to_peer_script_function(token_type: TypeTag, payee: AccountAddress, payee_auth_key: bytes, amount: st.uint128) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("TransferScripts")),
function=Identifier("peer_to_peer"),
ty_args=[token_type],
args=[bcs.serialize(payee, starcoin_types.AccountAddress), bcs.serialize(
payee_auth_key, bytes), bcs.serialize(amount, st.uint128)],
)
)
[docs]def encode_peer_to_peer_batch_script_function(token_type: TypeTag, _payeees: bytes, _payee_auth_keys: bytes, _amount: st.uint128) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("TransferScripts")),
function=Identifier("peer_to_peer_batch"),
ty_args=[token_type],
args=[bcs.serialize(_payeees, bytes), bcs.serialize(
_payee_auth_keys, bytes), bcs.serialize(_amount, st.uint128)],
)
)
[docs]def encode_peer_to_peer_v2_script_function(token_type: TypeTag, payee: AccountAddress, amount: st.uint128) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("TransferScripts")),
function=Identifier("peer_to_peer_v2"),
ty_args=[token_type],
args=[bcs.serialize(payee, starcoin_types.AccountAddress),
bcs.serialize(amount, st.uint128)],
)
)
[docs]def encode_propose_script_function(token_t: TypeTag, voting_delay: st.uint64, voting_period: st.uint64, voting_quorum_rate: st.uint8, min_action_delay: st.uint64, exec_delay: st.uint64) -> TransactionPayload:
"""Entrypoint for the proposal.
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("ModifyDaoConfigProposal")),
function=Identifier("propose"),
ty_args=[token_t],
args=[bcs.serialize(voting_delay, st.uint64), bcs.serialize(voting_period, st.uint64), bcs.serialize(
voting_quorum_rate, st.uint8), bcs.serialize(min_action_delay, st.uint64), bcs.serialize(exec_delay, st.uint64)],
)
)
[docs]def encode_propose_module_upgrade_v2_script_function(token: TypeTag, module_address: AccountAddress, package_hash: bytes, version: st.uint64, exec_delay: st.uint64, enforced: bool) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("ModuleUpgradeScripts")),
function=Identifier("propose_module_upgrade_v2"),
ty_args=[token],
args=[bcs.serialize(module_address, starcoin_types.AccountAddress), bcs.serialize(package_hash, bytes), bcs.serialize(
version, st.uint64), bcs.serialize(exec_delay, st.uint64), bcs.serialize(enforced, st.bool)],
)
)
[docs]def encode_propose_update_consensus_config_script_function(uncle_rate_target: st.uint64, base_block_time_target: st.uint64, base_reward_per_block: st.uint128, base_reward_per_uncle_percent: st.uint64, epoch_block_count: st.uint64, base_block_difficulty_window: st.uint64, min_block_time_target: st.uint64, max_block_time_target: st.uint64, base_max_uncles_per_block: st.uint64, base_block_gas_limit: st.uint64, strategy: st.uint8, exec_delay: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("OnChainConfigScripts")),
function=Identifier("propose_update_consensus_config"),
ty_args=[],
args=[bcs.serialize(uncle_rate_target, st.uint64), bcs.serialize(base_block_time_target, st.uint64), bcs.serialize(base_reward_per_block, st.uint128), bcs.serialize(base_reward_per_uncle_percent, st.uint64), bcs.serialize(epoch_block_count, st.uint64), bcs.serialize(
base_block_difficulty_window, st.uint64), bcs.serialize(min_block_time_target, st.uint64), bcs.serialize(max_block_time_target, st.uint64), bcs.serialize(base_max_uncles_per_block, st.uint64), bcs.serialize(base_block_gas_limit, st.uint64), bcs.serialize(strategy, st.uint8), bcs.serialize(exec_delay, st.uint64)],
)
)
[docs]def encode_propose_update_reward_config_script_function(reward_delay: st.uint64, exec_delay: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("OnChainConfigScripts")),
function=Identifier("propose_update_reward_config"),
ty_args=[],
args=[bcs.serialize(reward_delay, st.uint64),
bcs.serialize(exec_delay, st.uint64)],
)
)
[docs]def encode_propose_update_txn_publish_option_script_function(script_allowed: bool, module_publishing_allowed: bool, exec_delay: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("OnChainConfigScripts")),
function=Identifier("propose_update_txn_publish_option"),
ty_args=[],
args=[bcs.serialize(script_allowed, st.bool), bcs.serialize(
module_publishing_allowed, st.bool), bcs.serialize(exec_delay, st.uint64)],
)
)
[docs]def encode_propose_update_txn_timeout_config_script_function(duration_seconds: st.uint64, exec_delay: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("OnChainConfigScripts")),
function=Identifier("propose_update_txn_timeout_config"),
ty_args=[],
args=[bcs.serialize(duration_seconds, st.uint64),
bcs.serialize(exec_delay, st.uint64)],
)
)
[docs]def encode_propose_update_vm_config_script_function(instruction_schedule: bytes, native_schedule: bytes, global_memory_per_byte_cost: st.uint64, global_memory_per_byte_write_cost: st.uint64, min_transaction_gas_units: st.uint64, large_transaction_cutoff: st.uint64, instrinsic_gas_per_byte: st.uint64, maximum_number_of_gas_units: st.uint64, min_price_per_gas_unit: st.uint64, max_price_per_gas_unit: st.uint64, max_transaction_size_in_bytes: st.uint64, gas_unit_scaling_factor: st.uint64, default_account_size: st.uint64, exec_delay: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("OnChainConfigScripts")),
function=Identifier("propose_update_vm_config"),
ty_args=[],
args=[bcs.serialize(instruction_schedule, bytes), bcs.serialize(native_schedule, bytes), bcs.serialize(global_memory_per_byte_cost, st.uint64), bcs.serialize(global_memory_per_byte_write_cost, st.uint64), bcs.serialize(min_transaction_gas_units, st.uint64), bcs.serialize(large_transaction_cutoff, st.uint64), bcs.serialize(instrinsic_gas_per_byte, st.uint64), bcs.serialize(
maximum_number_of_gas_units, st.uint64), bcs.serialize(min_price_per_gas_unit, st.uint64), bcs.serialize(max_price_per_gas_unit, st.uint64), bcs.serialize(max_transaction_size_in_bytes, st.uint64), bcs.serialize(gas_unit_scaling_factor, st.uint64), bcs.serialize(default_account_size, st.uint64), bcs.serialize(exec_delay, st.uint64)],
)
)
[docs]def encode_propose_withdraw_script_function(token_t: TypeTag, receiver: AccountAddress, amount: st.uint128, period: st.uint64, exec_delay: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("TreasuryScripts")),
function=Identifier("propose_withdraw"),
ty_args=[token_t],
args=[bcs.serialize(receiver, starcoin_types.AccountAddress), bcs.serialize(
amount, st.uint128), bcs.serialize(period, st.uint64), bcs.serialize(exec_delay, st.uint64)],
)
)
[docs]def encode_queue_proposal_action_script_function(token_t: TypeTag, action_t: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64) -> TransactionPayload:
"""queue agreed proposal to execute.
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Dao")),
function=Identifier("queue_proposal_action"),
ty_args=[token_t, action_t],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64)],
)
)
[docs]def encode_revoke_vote_script_function(token: TypeTag, action: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("DaoVoteScripts")),
function=Identifier("revoke_vote"),
ty_args=[token, action],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64)],
)
)
[docs]def encode_rotate_authentication_key_script_function(new_key: bytes) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Account")),
function=Identifier("rotate_authentication_key"),
ty_args=[],
args=[bcs.serialize(new_key, bytes)],
)
)
[docs]def encode_submit_module_upgrade_plan_script_function(token: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("ModuleUpgradeScripts")),
function=Identifier("submit_module_upgrade_plan"),
ty_args=[token],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64)],
)
)
[docs]def encode_take_linear_withdraw_capability_script_function() -> TransactionPayload:
"""association account should call this script after upgrade from v2 to v3.
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("StdlibUpgradeScripts")),
function=Identifier("take_linear_withdraw_capability"),
ty_args=[],
args=[],
)
)
[docs]def encode_take_offer_script_function(offered: TypeTag, offer_address: AccountAddress) -> TransactionPayload:
"""Take Offer and put to signer's Collection<Offered>.
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("Offer")),
function=Identifier("take_offer"),
ty_args=[offered],
args=[bcs.serialize(offer_address, starcoin_types.AccountAddress)],
)
)
[docs]def encode_unstake_vote_script_function(token: TypeTag, action: TypeTag, proposer_address: AccountAddress, proposal_id: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("DaoVoteScripts")),
function=Identifier("unstake_vote"),
ty_args=[token, action],
args=[bcs.serialize(proposer_address, starcoin_types.AccountAddress), bcs.serialize(
proposal_id, st.uint64)],
)
)
[docs]def encode_update_module_upgrade_strategy_script_function(strategy: st.uint8) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("ModuleUpgradeScripts")),
function=Identifier("update_module_upgrade_strategy"),
ty_args=[],
args=[bcs.serialize(strategy, st.uint8)],
)
)
[docs]def encode_upgrade_from_v2_to_v3_script_function(total_stc_amount: st.uint128) -> TransactionPayload:
"""Stdlib upgrade script from v2 to v3.
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("StdlibUpgradeScripts")),
function=Identifier("upgrade_from_v2_to_v3"),
ty_args=[],
args=[bcs.serialize(total_stc_amount, st.uint128)],
)
)
[docs]def encode_withdraw_and_split_lt_withdraw_cap_script_function(token_t: TypeTag, for_address: AccountAddress, amount: st.uint128, lock_period: st.uint64) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("TreasuryScripts")),
function=Identifier("withdraw_and_split_lt_withdraw_cap"),
ty_args=[token_t],
args=[bcs.serialize(for_address, starcoin_types.AccountAddress), bcs.serialize(
amount, st.uint128), bcs.serialize(lock_period, st.uint64)],
)
)
[docs]def encode_withdraw_token_with_linear_withdraw_capability_script_function(token_t: TypeTag) -> TransactionPayload:
""".
"""
return TransactionPayload__ScriptFunction(
value=ScriptFunction(
module=ModuleId(address=AccountAddress.from_hex(
"00000000000000000000000000000001"), name=Identifier("TreasuryScripts")),
function=Identifier(
"withdraw_token_with_linear_withdraw_capability"),
ty_args=[token_t],
args=[],
)
)
[docs]def decode_accept_token_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__AcceptToken(
token_type=script.ty_args[0],
)
[docs]def decode_cancel_upgrade_plan_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__CancelUpgradePlan(
)
[docs]def decode_cast_vote_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__CastVote(
token=script.ty_args[0],
action_t=script.ty_args[1],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
agree=bcs.deserialize(script.args[2], bool),
votes=bcs.deserialize(script.args[3], st.uint128),
)
[docs]def decode_convert_TwoPhaseUpgrade_to_TwoPhaseUpgradeV2_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ConvertTwoPhaseUpgradeToTwoPhaseUpgradeV2(
package_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
)
[docs]def decode_create_account_with_initial_amount_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__CreateAccountWithInitialAmount(
token_type=script.ty_args[0],
fresh_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
_auth_key=bcs.deserialize(script.args[1], bytes),
initial_amount=bcs.deserialize(script.args[2], st.uint128),
)
[docs]def decode_create_account_with_initial_amount_v2_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__CreateAccountWithInitialAmountV2(
token_type=script.ty_args[0],
fresh_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
initial_amount=bcs.deserialize(script.args[1], st.uint128),
)
[docs]def decode_destroy_terminated_proposal_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__DestroyTerminatedProposal(
token_t=script.ty_args[0],
action_t=script.ty_args[1],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_empty_script_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__EmptyScript(
)
[docs]def decode_execute_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__Execute(
token_t=script.ty_args[0],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_execute_on_chain_config_proposal_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ExecuteOnChainConfigProposal(
config_t=script.ty_args[0],
proposal_id=bcs.deserialize(script.args[0], st.uint64),
)
[docs]def decode_execute_withdraw_proposal_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ExecuteWithdrawProposal(
token_t=script.ty_args[0],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_initialize_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__Initialize(
stdlib_version=bcs.deserialize(script.args[0], st.uint64),
reward_delay=bcs.deserialize(script.args[1], st.uint64),
pre_mine_stc_amount=bcs.deserialize(script.args[2], st.uint128),
time_mint_stc_amount=bcs.deserialize(script.args[3], st.uint128),
time_mint_stc_period=bcs.deserialize(script.args[4], st.uint64),
parent_hash=bcs.deserialize(script.args[5], bytes),
association_auth_key=bcs.deserialize(script.args[6], bytes),
genesis_auth_key=bcs.deserialize(script.args[7], bytes),
chain_id=bcs.deserialize(script.args[8], st.uint8),
genesis_timestamp=bcs.deserialize(script.args[9], st.uint64),
uncle_rate_target=bcs.deserialize(script.args[10], st.uint64),
epoch_block_count=bcs.deserialize(script.args[11], st.uint64),
base_block_time_target=bcs.deserialize(script.args[12], st.uint64),
base_block_difficulty_window=bcs.deserialize(
script.args[13], st.uint64),
base_reward_per_block=bcs.deserialize(script.args[14], st.uint128),
base_reward_per_uncle_percent=bcs.deserialize(
script.args[15], st.uint64),
min_block_time_target=bcs.deserialize(script.args[16], st.uint64),
max_block_time_target=bcs.deserialize(script.args[17], st.uint64),
base_max_uncles_per_block=bcs.deserialize(script.args[18], st.uint64),
base_block_gas_limit=bcs.deserialize(script.args[19], st.uint64),
strategy=bcs.deserialize(script.args[20], st.uint8),
script_allowed=bcs.deserialize(script.args[21], bool),
module_publishing_allowed=bcs.deserialize(script.args[22], bool),
instruction_schedule=bcs.deserialize(script.args[23], bytes),
native_schedule=bcs.deserialize(script.args[24], bytes),
global_memory_per_byte_cost=bcs.deserialize(
script.args[25], st.uint64),
global_memory_per_byte_write_cost=bcs.deserialize(
script.args[26], st.uint64),
min_transaction_gas_units=bcs.deserialize(script.args[27], st.uint64),
large_transaction_cutoff=bcs.deserialize(script.args[28], st.uint64),
instrinsic_gas_per_byte=bcs.deserialize(script.args[29], st.uint64),
maximum_number_of_gas_units=bcs.deserialize(
script.args[30], st.uint64),
min_price_per_gas_unit=bcs.deserialize(script.args[31], st.uint64),
max_price_per_gas_unit=bcs.deserialize(script.args[32], st.uint64),
max_transaction_size_in_bytes=bcs.deserialize(
script.args[33], st.uint64),
gas_unit_scaling_factor=bcs.deserialize(script.args[34], st.uint64),
default_account_size=bcs.deserialize(script.args[35], st.uint64),
voting_delay=bcs.deserialize(script.args[36], st.uint64),
voting_period=bcs.deserialize(script.args[37], st.uint64),
voting_quorum_rate=bcs.deserialize(script.args[38], st.uint8),
min_action_delay=bcs.deserialize(script.args[39], st.uint64),
transaction_timeout=bcs.deserialize(script.args[40], st.uint64),
)
[docs]def decode_initialize_v2_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__InitializeV2(
stdlib_version=bcs.deserialize(script.args[0], st.uint64),
reward_delay=bcs.deserialize(script.args[1], st.uint64),
total_stc_amount=bcs.deserialize(script.args[2], st.uint128),
pre_mine_stc_amount=bcs.deserialize(script.args[3], st.uint128),
time_mint_stc_amount=bcs.deserialize(script.args[4], st.uint128),
time_mint_stc_period=bcs.deserialize(script.args[5], st.uint64),
parent_hash=bcs.deserialize(script.args[6], bytes),
association_auth_key=bcs.deserialize(script.args[7], bytes),
genesis_auth_key=bcs.deserialize(script.args[8], bytes),
chain_id=bcs.deserialize(script.args[9], st.uint8),
genesis_timestamp=bcs.deserialize(script.args[10], st.uint64),
uncle_rate_target=bcs.deserialize(script.args[11], st.uint64),
epoch_block_count=bcs.deserialize(script.args[12], st.uint64),
base_block_time_target=bcs.deserialize(script.args[13], st.uint64),
base_block_difficulty_window=bcs.deserialize(
script.args[14], st.uint64),
base_reward_per_block=bcs.deserialize(script.args[15], st.uint128),
base_reward_per_uncle_percent=bcs.deserialize(
script.args[16], st.uint64),
min_block_time_target=bcs.deserialize(script.args[17], st.uint64),
max_block_time_target=bcs.deserialize(script.args[18], st.uint64),
base_max_uncles_per_block=bcs.deserialize(script.args[19], st.uint64),
base_block_gas_limit=bcs.deserialize(script.args[20], st.uint64),
strategy=bcs.deserialize(script.args[21], st.uint8),
script_allowed=bcs.deserialize(script.args[22], bool),
module_publishing_allowed=bcs.deserialize(script.args[23], bool),
instruction_schedule=bcs.deserialize(script.args[24], bytes),
native_schedule=bcs.deserialize(script.args[25], bytes),
global_memory_per_byte_cost=bcs.deserialize(
script.args[26], st.uint64),
global_memory_per_byte_write_cost=bcs.deserialize(
script.args[27], st.uint64),
min_transaction_gas_units=bcs.deserialize(script.args[28], st.uint64),
large_transaction_cutoff=bcs.deserialize(script.args[29], st.uint64),
instrinsic_gas_per_byte=bcs.deserialize(script.args[30], st.uint64),
maximum_number_of_gas_units=bcs.deserialize(
script.args[31], st.uint64),
min_price_per_gas_unit=bcs.deserialize(script.args[32], st.uint64),
max_price_per_gas_unit=bcs.deserialize(script.args[33], st.uint64),
max_transaction_size_in_bytes=bcs.deserialize(
script.args[34], st.uint64),
gas_unit_scaling_factor=bcs.deserialize(script.args[35], st.uint64),
default_account_size=bcs.deserialize(script.args[36], st.uint64),
voting_delay=bcs.deserialize(script.args[37], st.uint64),
voting_period=bcs.deserialize(script.args[38], st.uint64),
voting_quorum_rate=bcs.deserialize(script.args[39], st.uint8),
min_action_delay=bcs.deserialize(script.args[40], st.uint64),
transaction_timeout=bcs.deserialize(script.args[41], st.uint64),
)
[docs]def decode_peer_to_peer_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__PeerToPeer(
token_type=script.ty_args[0],
payee=bcs.deserialize(script.args[0], starcoin_types.AccountAddress),
_payee_auth_key=bcs.deserialize(script.args[1], bytes),
amount=bcs.deserialize(script.args[2], st.uint128),
)
[docs]def decode_peer_to_peer_batch_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__PeerToPeerBatch(
token_type=script.ty_args[0],
_payeees=bcs.deserialize(script.args[0], bytes),
_payee_auth_keys=bcs.deserialize(script.args[1], bytes),
_amount=bcs.deserialize(script.args[2], st.uint128),
)
[docs]def decode_peer_to_peer_v2_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__PeerToPeerV2(
token_type=script.ty_args[0],
payee=bcs.deserialize(script.args[0], starcoin_types.AccountAddress),
amount=bcs.deserialize(script.args[1], st.uint128),
)
[docs]def decode_propose_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__Propose(
token_t=script.ty_args[0],
voting_delay=bcs.deserialize(script.args[0], st.uint64),
voting_period=bcs.deserialize(script.args[1], st.uint64),
voting_quorum_rate=bcs.deserialize(script.args[2], st.uint8),
min_action_delay=bcs.deserialize(script.args[3], st.uint64),
exec_delay=bcs.deserialize(script.args[4], st.uint64),
)
[docs]def decode_propose_module_upgrade_v2_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ProposeModuleUpgradeV2(
token=script.ty_args[0],
module_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
package_hash=bcs.deserialize(script.args[1], bytes),
version=bcs.deserialize(script.args[2], st.uint64),
exec_delay=bcs.deserialize(script.args[3], st.uint64),
enforced=bcs.deserialize(script.args[4], bool),
)
[docs]def decode_propose_update_consensus_config_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ProposeUpdateConsensusConfig(
uncle_rate_target=bcs.deserialize(script.args[0], st.uint64),
base_block_time_target=bcs.deserialize(script.args[1], st.uint64),
base_reward_per_block=bcs.deserialize(script.args[2], st.uint128),
base_reward_per_uncle_percent=bcs.deserialize(
script.args[3], st.uint64),
epoch_block_count=bcs.deserialize(script.args[4], st.uint64),
base_block_difficulty_window=bcs.deserialize(
script.args[5], st.uint64),
min_block_time_target=bcs.deserialize(script.args[6], st.uint64),
max_block_time_target=bcs.deserialize(script.args[7], st.uint64),
base_max_uncles_per_block=bcs.deserialize(script.args[8], st.uint64),
base_block_gas_limit=bcs.deserialize(script.args[9], st.uint64),
strategy=bcs.deserialize(script.args[10], st.uint8),
exec_delay=bcs.deserialize(script.args[11], st.uint64),
)
[docs]def decode_propose_update_reward_config_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ProposeUpdateRewardConfig(
reward_delay=bcs.deserialize(script.args[0], st.uint64),
exec_delay=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_propose_update_txn_publish_option_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ProposeUpdateTxnPublishOption(
script_allowed=bcs.deserialize(script.args[0], bool),
module_publishing_allowed=bcs.deserialize(script.args[1], bool),
exec_delay=bcs.deserialize(script.args[2], st.uint64),
)
[docs]def decode_propose_update_txn_timeout_config_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ProposeUpdateTxnTimeoutConfig(
duration_seconds=bcs.deserialize(script.args[0], st.uint64),
exec_delay=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_propose_update_vm_config_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ProposeUpdateVmConfig(
instruction_schedule=bcs.deserialize(script.args[0], bytes),
native_schedule=bcs.deserialize(script.args[1], bytes),
global_memory_per_byte_cost=bcs.deserialize(script.args[2], st.uint64),
global_memory_per_byte_write_cost=bcs.deserialize(
script.args[3], st.uint64),
min_transaction_gas_units=bcs.deserialize(script.args[4], st.uint64),
large_transaction_cutoff=bcs.deserialize(script.args[5], st.uint64),
instrinsic_gas_per_byte=bcs.deserialize(script.args[6], st.uint64),
maximum_number_of_gas_units=bcs.deserialize(script.args[7], st.uint64),
min_price_per_gas_unit=bcs.deserialize(script.args[8], st.uint64),
max_price_per_gas_unit=bcs.deserialize(script.args[9], st.uint64),
max_transaction_size_in_bytes=bcs.deserialize(
script.args[10], st.uint64),
gas_unit_scaling_factor=bcs.deserialize(script.args[11], st.uint64),
default_account_size=bcs.deserialize(script.args[12], st.uint64),
exec_delay=bcs.deserialize(script.args[13], st.uint64),
)
[docs]def decode_propose_withdraw_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__ProposeWithdraw(
token_t=script.ty_args[0],
receiver=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
amount=bcs.deserialize(script.args[1], st.uint128),
period=bcs.deserialize(script.args[2], st.uint64),
exec_delay=bcs.deserialize(script.args[3], st.uint64),
)
[docs]def decode_queue_proposal_action_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__QueueProposalAction(
token_t=script.ty_args[0],
action_t=script.ty_args[1],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_revoke_vote_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__RevokeVote(
token=script.ty_args[0],
action=script.ty_args[1],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_rotate_authentication_key_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__RotateAuthenticationKey(
new_key=bcs.deserialize(script.args[0], bytes),
)
[docs]def decode_submit_module_upgrade_plan_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__SubmitModuleUpgradePlan(
token=script.ty_args[0],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_take_linear_withdraw_capability_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__TakeLinearWithdrawCapability(
)
[docs]def decode_take_offer_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__TakeOffer(
offered=script.ty_args[0],
offer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
)
[docs]def decode_unstake_vote_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__UnstakeVote(
token=script.ty_args[0],
action=script.ty_args[1],
proposer_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
proposal_id=bcs.deserialize(script.args[1], st.uint64),
)
[docs]def decode_update_module_upgrade_strategy_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__UpdateModuleUpgradeStrategy(
strategy=bcs.deserialize(script.args[0], st.uint8),
)
[docs]def decode_upgrade_from_v2_to_v3_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__UpgradeFromV2ToV3(
total_stc_amount=bcs.deserialize(script.args[0], st.uint128),
)
[docs]def decode_withdraw_and_split_lt_withdraw_cap_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__WithdrawAndSplitLtWithdrawCap(
token_t=script.ty_args[0],
for_address=bcs.deserialize(
script.args[0], starcoin_types.AccountAddress),
amount=bcs.deserialize(script.args[1], st.uint128),
lock_period=bcs.deserialize(script.args[2], st.uint64),
)
[docs]def decode_withdraw_token_with_linear_withdraw_capability_script_function(script: TransactionPayload) -> ScriptFunctionCall:
if not isinstance(script, ScriptFunction):
raise ValueError("Unexpected transaction payload")
return ScriptFunctionCall__WithdrawTokenWithLinearWithdrawCapability(
token_t=script.ty_args[0],
)
# pyre-ignore
TRANSACTION_SCRIPT_ENCODER_MAP: typing.Dict[typing.Type[ScriptCall], typing.Callable[[ScriptCall], Script]] = {
}
# pyre-ignore
SCRIPT_FUNCTION_ENCODER_MAP: typing.Dict[typing.Type[ScriptFunctionCall], typing.Callable[[ScriptFunctionCall], TransactionPayload]] = {
ScriptFunctionCall__AcceptToken: encode_accept_token_script_function,
ScriptFunctionCall__CancelUpgradePlan: encode_cancel_upgrade_plan_script_function,
ScriptFunctionCall__CastVote: encode_cast_vote_script_function,
ScriptFunctionCall__ConvertTwoPhaseUpgradeToTwoPhaseUpgradeV2: encode_convert_TwoPhaseUpgrade_to_TwoPhaseUpgradeV2_script_function,
ScriptFunctionCall__CreateAccountWithInitialAmount: encode_create_account_with_initial_amount_script_function,
ScriptFunctionCall__CreateAccountWithInitialAmountV2: encode_create_account_with_initial_amount_v2_script_function,
ScriptFunctionCall__DestroyTerminatedProposal: encode_destroy_terminated_proposal_script_function,
ScriptFunctionCall__EmptyScript: encode_empty_script_script_function,
ScriptFunctionCall__Execute: encode_execute_script_function,
ScriptFunctionCall__ExecuteOnChainConfigProposal: encode_execute_on_chain_config_proposal_script_function,
ScriptFunctionCall__ExecuteWithdrawProposal: encode_execute_withdraw_proposal_script_function,
ScriptFunctionCall__Initialize: encode_initialize_script_function,
ScriptFunctionCall__InitializeV2: encode_initialize_v2_script_function,
ScriptFunctionCall__PeerToPeer: encode_peer_to_peer_script_function,
ScriptFunctionCall__PeerToPeerBatch: encode_peer_to_peer_batch_script_function,
ScriptFunctionCall__PeerToPeerV2: encode_peer_to_peer_v2_script_function,
ScriptFunctionCall__PeerToPeerWithMetadata: encode_peer_to_peer_with_metadata_script_function,
ScriptFunctionCall__PeerToPeerWithMetadataV2: encode_peer_to_peer_with_metadata_v2_script_function,
ScriptFunctionCall__Propose: encode_propose_script_function,
ScriptFunctionCall__ProposeModuleUpgradeV2: encode_propose_module_upgrade_v2_script_function,
ScriptFunctionCall__ProposeUpdateConsensusConfig: encode_propose_update_consensus_config_script_function,
ScriptFunctionCall__ProposeUpdateRewardConfig: encode_propose_update_reward_config_script_function,
ScriptFunctionCall__ProposeUpdateTxnPublishOption: encode_propose_update_txn_publish_option_script_function,
ScriptFunctionCall__ProposeUpdateTxnTimeoutConfig: encode_propose_update_txn_timeout_config_script_function,
ScriptFunctionCall__ProposeUpdateVmConfig: encode_propose_update_vm_config_script_function,
ScriptFunctionCall__ProposeWithdraw: encode_propose_withdraw_script_function,
ScriptFunctionCall__QueueProposalAction: encode_queue_proposal_action_script_function,
ScriptFunctionCall__RevokeVote: encode_revoke_vote_script_function,
ScriptFunctionCall__RotateAuthenticationKey: encode_rotate_authentication_key_script_function,
ScriptFunctionCall__SubmitModuleUpgradePlan: encode_submit_module_upgrade_plan_script_function,
ScriptFunctionCall__TakeLinearWithdrawCapability: encode_take_linear_withdraw_capability_script_function,
ScriptFunctionCall__TakeOffer: encode_take_offer_script_function,
ScriptFunctionCall__UnstakeVote: encode_unstake_vote_script_function,
ScriptFunctionCall__UpdateModuleUpgradeStrategy: encode_update_module_upgrade_strategy_script_function,
ScriptFunctionCall__UpgradeFromV2ToV3: encode_upgrade_from_v2_to_v3_script_function,
ScriptFunctionCall__WithdrawAndSplitLtWithdrawCap: encode_withdraw_and_split_lt_withdraw_cap_script_function,
ScriptFunctionCall__WithdrawTokenWithLinearWithdrawCapability: encode_withdraw_token_with_linear_withdraw_capability_script_function,
}
TRANSACTION_SCRIPT_DECODER_MAP: typing.Dict[bytes, typing.Callable[[Script], ScriptCall]] = {
}
SCRIPT_FUNCTION_DECODER_MAP: typing.Dict[str, typing.Callable[[TransactionPayload], ScriptFunctionCall]] = {
"Accountaccept_token": decode_accept_token_script_function,
"ModuleUpgradeScriptscancel_upgrade_plan": decode_cancel_upgrade_plan_script_function,
"DaoVoteScriptscast_vote": decode_cast_vote_script_function,
"PackageTxnManagerconvert_TwoPhaseUpgrade_to_TwoPhaseUpgradeV2": decode_convert_TwoPhaseUpgrade_to_TwoPhaseUpgradeV2_script_function,
"Accountcreate_account_with_initial_amount": decode_create_account_with_initial_amount_script_function,
"Accountcreate_account_with_initial_amount_v2": decode_create_account_with_initial_amount_v2_script_function,
"Daodestroy_terminated_proposal": decode_destroy_terminated_proposal_script_function,
"EmptyScriptsempty_script": decode_empty_script_script_function,
"ModifyDaoConfigProposalexecute": decode_execute_script_function,
"OnChainConfigScriptsexecute_on_chain_config_proposal": decode_execute_on_chain_config_proposal_script_function,
"TreasuryScriptsexecute_withdraw_proposal": decode_execute_withdraw_proposal_script_function,
"Genesisinitialize": decode_initialize_script_function,
"Genesisinitialize_v2": decode_initialize_v2_script_function,
"TransferScriptspeer_to_peer": decode_peer_to_peer_script_function,
"TransferScriptspeer_to_peer_batch": decode_peer_to_peer_batch_script_function,
"TransferScriptspeer_to_peer_v2": decode_peer_to_peer_v2_script_function,
"TransferScriptspeer_to_peer_with_metadata": decode_peer_to_peer_with_metadata_script_function,
"TransferScriptspeer_to_peer_with_metadata_v2": decode_peer_to_peer_with_metadata_v2_script_function,
"ModifyDaoConfigProposalpropose": decode_propose_script_function,
"ModuleUpgradeScriptspropose_module_upgrade_v2": decode_propose_module_upgrade_v2_script_function,
"OnChainConfigScriptspropose_update_consensus_config": decode_propose_update_consensus_config_script_function,
"OnChainConfigScriptspropose_update_reward_config": decode_propose_update_reward_config_script_function,
"OnChainConfigScriptspropose_update_txn_publish_option": decode_propose_update_txn_publish_option_script_function,
"OnChainConfigScriptspropose_update_txn_timeout_config": decode_propose_update_txn_timeout_config_script_function,
"OnChainConfigScriptspropose_update_vm_config": decode_propose_update_vm_config_script_function,
"TreasuryScriptspropose_withdraw": decode_propose_withdraw_script_function,
"Daoqueue_proposal_action": decode_queue_proposal_action_script_function,
"DaoVoteScriptsrevoke_vote": decode_revoke_vote_script_function,
"Accountrotate_authentication_key": decode_rotate_authentication_key_script_function,
"ModuleUpgradeScriptssubmit_module_upgrade_plan": decode_submit_module_upgrade_plan_script_function,
"StdlibUpgradeScriptstake_linear_withdraw_capability": decode_take_linear_withdraw_capability_script_function,
"Offertake_offer": decode_take_offer_script_function,
"DaoVoteScriptsunstake_vote": decode_unstake_vote_script_function,
"ModuleUpgradeScriptsupdate_module_upgrade_strategy": decode_update_module_upgrade_strategy_script_function,
"StdlibUpgradeScriptsupgrade_from_v2_to_v3": decode_upgrade_from_v2_to_v3_script_function,
"TreasuryScriptswithdraw_and_split_lt_withdraw_cap": decode_withdraw_and_split_lt_withdraw_cap_script_function,
"TreasuryScriptswithdraw_token_with_linear_withdraw_capability": decode_withdraw_token_with_linear_withdraw_capability_script_function,
}