Description
Summary or problem description
This change makes it easier for contracts to decide during verify()
if they should authorize or not the spending of its assets. I believe that contracts are likely to authorize GAS spendings only if executions are limited to the scope of that contract itself, or contract group.
Related to: neo-project/proposals#137
Do you have any solution you want to propose?
Update ApplicationEngine and include scope together with variables such as GasLeft
and other GAS controlling systems. The gas taken from signers[0]
, aka sender
, should respect the scope of this signature/verification (if global, then GAS is global; if limited, then GAS is limited).
There can exist situations where one wants to have global GAS, while limiting signature into some specific contract (or calledByEntry). We can discuss if these cases are real problems on practice, or if some other behavior needs adjustments for this to work.
Neo Version
- Neo 3
Where in the software does this update applies to?
- Ledger
- Other: ApplicationEngine