diff --git a/bsip-0040.md b/bsip-0040.md index beb3b84..9075c52 100644 --- a/bsip-0040.md +++ b/bsip-0040.md @@ -37,6 +37,8 @@ With this BSIP any user can create keys with specific purpose (everything else i The above list of named keys is nothing that is known to the backend as the backend should have an abstract implementation. The UI could provide a button "Create Trading Key" that properly configures the respective custom active permission entry. +This BSIP will be split into two parts that will be voted on serparately (see Milestones section). All of the above keys are possible with Milestone 1. Milestone 2 give finer control of how to combine restrictions and will also allow statefull restrictions (e.g. allow market orders up to some amount for every month). + # Rational Custom active permission is a list of `custom active authorities`. A `custom active authority` contains an `operation_id`, an `authority` (just like with active permission) and `restrictions` than can be used to restrict arguments and is only valid a certain time period (`valid_from` and `valid_to`). When handling incoming signed transactions, the backend checks for each operation if there is a `custom active authority` for any of its required accounts. Check for every required account of the transaction if all its belonging operations have at least one positively matched `custom active authority` (match means its `authority` is granted through present signatures, same `operation_id`, now is within `valid_to` and `valid_from` and none of the `restrictions` is violated), and if so grant the active authority of the corresponding account. @@ -182,7 +184,7 @@ custom active authority = { restrictions: cut_out } -cut_out =[ +cut_out = [ { function: logical, argument: OR, @@ -244,7 +246,9 @@ That has the consquence now that a transfer transaction sending funds away from - it sends less than 10000 of asset X to account C - it sends less than or equal to 20000 of asset Y to account C -Note: This is just an illustration of a possible serialization, not a specification of the serialized format. +Note: +- This is just an illustration of a possible serialization, not a specification of the serialized format. +- This is not included in the first Milestone ### Outline of handling incoming transactions