• Yarik Bratashchuk's avatar
    `seal_delegate_call` api function (support for library contracts) (#10617) · d14e1c64
    Yarik Bratashchuk authored
    * seal_call_code implementation
    
    - tests
    - benchmark
    
    * Addressing @xgreenx's comments
    
    * Fix test-linux-stable-int
    
    * Rename seal_call_code to seal_delegate_call
    
    * Pass value unchanged into lib contract
    
    * Address @athei's comments
    
    - whitespace .wat issues
    - wrong/missing .wat comments
    - redundant .wat calls/declarations
    
    - change order of functions (seal_delegate_call right after seal_call)
      in decls, tests, benchmark
    - fix comments, move doc comments to enum variants
    - remove unnecessary empty lines
    
    - rename runtime cost DelegateCall to DelegateCallBase
    - do not set CallFlags::ALLOW_REENTRY for delegate_call
    
    * Do not pass CallFlags::ALLOWS_REENTRY for delegate_call
    
    * Update comment for seal_delegate_call and CallFlags
    
    * Addressing @athei's comments (minor)
    
    * Allow reentry for a new frame after delegate_call (revert)
    
    * Same seal_caller and seal_value_transferred for lib contract
    
    - test
    - refactor frame args due to review
    - logic for seal_caller (please review)
    
    * Put caller on frame for delegate_call, minor fixes
    
    * Update comment for delegate_call
    
    * Addressing @athei's comments
    
    * Update weights generated by benchmark
    
    * Improve comments
    
    * Address @HCastano's comments
    
    * Update weights, thanks @joao-paulo-parity
    
    * Improve InvalidCallFlags error comment
    d14e1c64