Skip to content

MetalBlockchain/antelopevm

Repository files navigation

Antelope VM

Antelope based Virtual Machine for the Metal Blockchain to support the A chain. At its core it will be capable of running Antelope / Proton transactions against WebAssembly based smart-contracts.

This is work in progress

Database format

Antelope VM relies on BadgerDB as its key-value store having access to the entire DB in-memory.

Implemented Host Functions

Action functions:

Name Status
read_action_data
action_data_size
current_receiver
set_action_return_value

Authorization functions:

Name Status
require_auth
has_auth
require_auth2
require_recipient
is_account

Context-free system functions:

Name Status
abort
eosio_assert
eosio_assert_message
eosio_assert_code
eosio_exit

Context-free transaction functions:

Name Status
read_transaction
transaction_size
expiration
tapos_block_num
tapos_block_prefix
get_action

Console functions:

Name Status
prints
prints_l
printi
printui
printi128
printui128
printsf
printdf
printqf
printn
printhex

Context-free functions:

Name Status
get_context_free_data

Crypto functions:

Name Status
assert_recover_key
recover_key
assert_sha256
assert_sha1
assert_sha512
assert_ripemd160
sha1
sha256
sha512
ripemd160
alt_bn128_add Missing
alt_bn128_mul Missing
alt_bn128_pair Missing
mod_exp Missing
blake2_f Missing
sha3 Missing
k1_recover Missing

Database functions:

Name Status
db_store_i64
db_update_i64
db_remove_i64
db_get_i64
db_next_i64
db_previous_i64
db_find_i64
db_lowerbound_i64
db_upperbound_i64
db_idx64_store
db_idx64_update
db_idx64_remove
db_idx64_find_secondary
db_idx64_find_primary
db_idx64_lowerbound
db_idx64_upperbound
db_idx64_end
db_idx64_next
db_idx64_previous
db_idx128_store
db_idx128_update
db_idx128_remove
db_idx128_find_secondary
db_idx128_find_primary
db_idx128_lowerbound
db_idx128_upperbound
db_idx128_end
db_idx128_next
db_idx128_previous
db_idx256_store
db_idx256_update
db_idx256_remove
db_idx256_find_secondary
db_idx256_find_primary
db_idx256_lowerbound
db_idx256_upperbound
db_idx256_end
db_idx256_next
db_idx256_previous
db_idx_double_store
db_idx_double_update
db_idx_double_remove
db_idx_double_find_secondary
db_idx_double_find_primary
db_idx_double_lowerbound
db_idx_double_upperbound
db_idx_double_end
db_idx_double_next
db_idx_double_previous
db_idx_long_double_store
db_idx_long_double_update
db_idx_long_double_remove
db_idx_long_double_find_secondary
db_idx_long_double_find_primary
db_idx_long_double_lowerbound
db_idx_long_double_upperbound
db_idx_long_double_end
db_idx_long_double_next
db_idx_long_double_previous

Memory functions:

Name Status
memcpy
memmove
memcmp
memset

Permission functions:

Name Status
check_transaction_authorization
check_permission_authorization
get_permission_last_used
get_account_creation_time

Privileged functions:

Name Status
is_feature_active
activate_feature
preactivate_feature Missing
set_resource_limits
get_resource_limits
get_wasm_parameters_packed Missing
set_wasm_parameters_packed Missing
set_proposed_producers Missing
set_proposed_producers_ex Missing
get_blockchain_parameters_packed Missing
set_blockchain_parameters_packed Missing
get_parameters_packed Missing
set_parameters_packed Missing
is_privileged
set_privileged

Producer functions:

Name Status
get_active_producers

System functions:

Name Status
current_time
publication_time
is_feature_activated
get_sender
get_block_num Missing

Transaction functions:

Name Status
send_inline
send_context_free_inline
send_deferred Missing
cancel_deferred Missing

Compiler builtins:

Name Status
__ashlti3
__ashrti3
__lshlti3
__lshrti3
__divti3
__udivti3
__multi3
__modti3
__umodti3
__addtf3
__subtf3
__multf3
__divtf3
__negtf2
__extendsftf2
__extenddftf2
__trunctfdf2
__trunctfsf2
__fixtfsi
__fixtfdi
__fixtfti
__fixunstfsi
__fixunstfdi
__fixunstfti
__fixsfti
__fixdfti
__fixunssfti
__fixunsdfti
__floatsidf
__floatsitf
__floatditf
__floatunsitf
__floatunditf
__floattidf
__floatuntidf
__eqtf2
__netf2
__getf2
__gttf2
__letf2
__lttf2
__cmptf2
__unordtf2

About

Antelope based Virtual Machine for the Metal Blockchain

Resources

License

Stars

Watchers

Forks

Packages

No packages published