Skip to content
  • Sergey Pepyakin's avatar
    Make contract a separate runtime module (#345) · 8c527f29
    Sergey Pepyakin authored
    * decl_module and extract runtime mod
    
    * Invert dependency staking←→contract
    
    * Remove CodeOf
    
    * Remove StorageOf and move double_map
    
    * Comment staking test
    
    * Clean
    
    * Add gas_price and gas_limit
    
    * Commit.
    
    * Renames
    
    * Params
    
    * WIP
    
    * Rename transfer to call
    
    * WIP
    
    * Rebuild binaries.
    
    * WIP
    
    * Backport ctro changes
    
    * Call wiring
    
    * Commit overlay.
    
    * Rename merge → commit, into_state → ..._change_set
    
    * WIP
    
    * Contract creation routines
    
    * Set code of the created account.
    
    * Fix the ID of `create` Call
    
    * Fix most of the warning.
    
    * Add the simplest test in the contract crate
    
    * Transfers work!
    
    * Add contract_create test.
    
    * Clean
    
    * Add top-level create test
    
    * Clean a bit.
    
    * Pass gas_limit and data via create.
    
    * Introduce OnAccountKill callback in staking
    
    * Hook up OnAccountKill
    
    * Comments
    
    * Pay for gas.
    
    * Refund unused gas in call
    
    * Tests for zero call and zero endownment.
    
    * Add todo about rewriting docs
    
    * Pay for gas in create transactions
    
    * Fix refunds
    
    * Clean unrelevant comments
    
    * fixup! Fix refunds
    
    * fixup! Clean unrelevant comments
    
    * Move DetermineContractAddress to contract
    
    Also restore account removal test
    
    * fixup! Clean unrelevant comments
    
    * Inline effect_transfer, remove effect_create
    
    Remove account_db!
    
    * Use own new_test_ext.
    
    * Don't account for liability
    
    * Add some docs
    
    * Move contract_fee into contract module
    
    * Take GasMeter in vm::execute
    
    * Use GasMeter throughout contract module for meter
    
    * gas module refactoring
    
    * Clean
    
    * Add base call fee
    
    * note about gas price should be taken from storage
    
    * Add base fee for create
    
    * Rename send → call
    
    * Clean
    
    * Take fee expressed in dots in gas
    
    * Add Checked{Add,Sub,Mul,Div} to SimpleArithmetic
    
    * Make Gas generic
    
    * Store {call,create}_base_fee in storage
    
    * Clean
    
    * Rename buy_gas
    
    * Store gas_price in the storage
    
    * Remove unneeded comment.
    
    * Bail out if contract already has code.
    
    * Todos
    
    * Refund even if top-level contract fails.
    
    * Fix error msg
    
    * Fix caller issue
    
    * Extract tests module
    
    * Add max_depth var in storage
    
    * Remove left over gas_left
    
    * Refactor exec
    
    * Add test oog test.
    
    * set_free_balance_creating
    
    * Docs and comments.
    
    * Update storage roots because of ContractFee move
    
    * Rebuild binaries.
    
    * Simplify vm code.
    
    * Wrapping.
    
    * Refactor a bit.
    
    * Typo
    
    * UpdateBalanceOutcome enum
    
    * Style grumbles.
    
    * Rebuild binaries.
    
    * Always consume the given amount of gas.
    
    * [skip ci] endownment → endowment
    
    * Rename `AccountId` generic in on_account_kill
    
    * Fix Cargo.lock
    
    * Refine docs for gas meter.
    
    * [skip ci] Add comments for gas module
    
    * Directly assign to `return_data` at declaration
    
    * Use slices instead of vecs to pass the input data
    
    * Add todo about passing return data without copy
    
    * Use checked_add instead of add with overflow
    
    * Use return_data directly.
    
    * Rebuild binaries.
    
    * Rebuild binaries.
    8c527f29