0.5.0

debug_api

Completely removed

database_api

Added method subscribe_contracts

void subscribe_contracts(std::vector<contract_id_type> contracts);

To subscribe to contract changes. Related objects can come:

contract_object, contract_history_object

Removed methods:

  • get_all_contracts

  • get_witnesses

  • get_witness_by_account

  • lookup_witness_accounts

  • get_witness_count

  • get_all_workers

  • get_workers_by_account

  • get_worker_count

chain_parameters

Removed:

uint16_t maximum_witness_count;
share_type witness_pay_per_block;
uint32_t witness_pay_vesting_seconds;
share_type worker_budget_per_day;

global_property_object

Removed:

flat_set<witness_id_type> active_witnesses;

dynamic_global_property_object

Removed:

witness_id_type current_witness;
share_type witness_budget;

Added:

share_type committee_budget;

immutable_chain_parameters

Removed:

uint16_t min_witness_count;

account_options

Removed:

uint16_t num_witness;

vote_id_type

Removed witness and worker types of voices.

ECDSA signature scheme was replaced with EDDSA

Replaced all keys and signatures(except memo)

Related changes:

database_api

vector<vector<account_id_type>> get_key_references( vector<eddsa::public_key_t> key )const;
vector<balance_object> get_balance_objects( const vector<eddsa::public_key_t>& addrs )const;
set<eddsa::public_key_t> get_required_signatures( const signed_transaction& trx, const flat_set<eddsa::public_key_t>& available_keys )const;
set<eddsa::public_key_t> get_potential_signatures( const signed_transaction& trx )const;
bool verify_account_authority( const string& name_or_id, const flat_set<eddsa::public_key_t>& signers )const;

registration_api

void register_account(
variant_callback_t callback,
string name,
eddsa::public_key_t owner,
eddsa::public_key_t active,
public_key_type memo,
eddsa::public_key_t echorand_key
);

balance_object

owner field has been changed

eddsa::public_key_t owner;

account_object

Removed:

authority owner;

account_create_operation

Removed:

authority owner;

account_update_operation

Removed:

optional<authority> owner;

authority

Removed:

flat_map<address,weight_type> address_auths;

Changed:

flat_map<eddsa::public_key_t,weight_type> key_auths;

proposal_object

Removed:

flat_set<account_id_type> available_owner_approvals;

Changed:

flat_set<eddsa::public_key_t> available_key_approvals;

balance_claim_operation

Removed:

eddsa::public_key_t balance_owner_key;

block

Removed:

witness_id_type witness;
signature_type witness_signature;
std::set<verifier_vote_t> verifications;

Some fields have been moved. New order:

struct block_header
{
block_id_type previous;
fc::time_point_sec timestamp;
account_id_type account;
checksum_type transaction_merkle_root;
std::string vm_root;
uint64_t round;
extensions_type extensions;
}
struct signed_block_header : public block_header
{
eddsa::signature_t ed_signature;
fc::sha256 rand;
echo::rand::certificate_t cert;
}
struct signed_block : public signed_block_header
{
checksum_type calculate_merkle_root()const;
vector<processed_transaction> transactions;
};

operation

The following operations have been removed:

transfer_to_blind_operation
blind_transfer_operation
transfer_from_blind_operation
fba_distribute_operation //VIRTUAL
witness_create_operation
witness_update_operation
worker_create_operation

New list:

typedef fc::static_variant<
transfer_operation,
limit_order_create_operation,
limit_order_cancel_operation,
call_order_update_operation,
fill_order_operation, // VIRTUAL
account_create_operation,
account_update_operation,
account_whitelist_operation,
account_upgrade_operation,
account_transfer_operation,
asset_create_operation,
asset_update_operation,
asset_update_bitasset_operation,
asset_update_feed_producers_operation,
asset_issue_operation,
asset_reserve_operation,
asset_fund_fee_pool_operation,
asset_settle_operation,
asset_global_settle_operation,
asset_publish_feed_operation,
proposal_create_operation,
proposal_update_operation,
proposal_delete_operation,
withdraw_permission_create_operation,
withdraw_permission_update_operation,
withdraw_permission_claim_operation,
withdraw_permission_delete_operation,
committee_member_create_operation,
committee_member_update_operation,
committee_member_update_global_parameters_operation,
vesting_balance_create_operation,
vesting_balance_withdraw_operation,
custom_operation,
assert_operation,
balance_claim_operation,
override_transfer_operation,
asset_settle_cancel_operation, // VIRTUAL
asset_claim_fees_operation,
bid_collateral_operation,
execute_bid_operation, // VIRTUAL
create_contract_operation,
call_contract_operation,
contract_transfer_operation
> operation;

objects

The following objects have been removed:

blinded_balance_object
fba_accumulator_object
witness_object
worker_object
witness_schedule_object

New order of the objects:

// id is 1.x.*
enum object_type
{
null_object_type,
base_object_type,
account_object_type,
asset_object_type,
force_settlement_object_type,
committee_member_object_type,
limit_order_object_type,
call_order_object_type,
custom_object_type,
proposal_object_type,
operation_history_object_type,
withdraw_permission_object_type,
vesting_balance_object_type,
balance_object_type,
contract_object_type,
contract_result_object_type,
block_result_object_type,
sidechain_transfer_object_type,
OBJECT_TYPE_COUNT
};
‚Äč
// id is 2.x.*
enum impl_object_type
{
impl_global_property_object_type,
impl_dynamic_global_property_object_type,
impl_reserved0_object_type,
impl_asset_dynamic_data_type,
impl_asset_bitasset_data_type,
impl_account_balance_object_type,
impl_account_statistics_object_type,
impl_transaction_object_type,
impl_block_summary_object_type,
impl_account_transaction_history_object_type,
impl_chain_property_object_type,
impl_budget_record_object_type,
impl_special_authority_object_type,
impl_buyback_object_type,
impl_collateral_bid_object_type,
impl_contract_balance_object_type,
impl_contract_history_object_type,
impl_contract_statistics_object_type
};