Input: |
op_type, auth_name, auth_key, valid_from, valid to, |
trans_policy, redempt_policy, revoke_policy, prev_txn |
Output: |
DelegationTxn |
1: DelegationTxn.OperationType == op_type |
2: if op_type != publication then |
3: DelegationTxn.PrevTxn = prev_txn |
4: end if |
5: if op_type == publication then |
6: DelegationTxn.AuthName = auth name |
7: DelegationTxn.AuthKey = auth key |
8: DelegationTxn.ValidFrom = valid from |
9: DelegationTxn.ValidTo = valid to |
10: DelegationTxn.TransitionPolicy = trans policy |
11: DelegationTxn.RevocationPolicy = revoke policy |
12: DelegationTxn.RedemptionPolicy = redempt policy |
13: end if |
14: if op_type == transformation then |
15: if DelegationTxn.ValidTo < CurrentTime() then |
16: DelegationTxn.AuthKey = auth_key. |
17: end if |
18: end if |
19: if op_type == Revocation then |
20: DelegationTxn.AuthKey =∅ |
21: end if |
22: if op_type == Renewal then |
23: DelegationTxn.ValidTo = Valid_to |
24: end if |
25: if op type == Redemption then |
26: if auth_key == DelegationTxn.PrevTxn.AuthKey then |
27: DelegationTxn.AuthKey = auth_key |
28: Auth.ValidFrom = valid_from |
29: Auth.ValidTo = valid_to |
30: end if |
31: end if |
32: DelegationTxn.TimeStamp = CurrentTime() |
33: DelegationTxn.Signature = GenSig() |
34: return DelegationTxn |