# Author: Sandeep Belgavi. Synthetic exercise; no network or provider calls. import hashlib,json def digest(action):return hashlib.sha256(json.dumps(action,sort_keys=True).encode()).hexdigest() action={"tenant":"a","operation":"refund","order":"7","amount":100} approved=digest(action) def permit(tenant,proposal,approval): return proposal["tenant"]==tenant and digest(proposal)==approval assert permit("a",action,approved) assert not permit("b",action,approved) assert not permit("a",dict(action,amount=1000),approved) print("approved action accepted; other tenant and changed amount denied")