x
300
parameter (or (pair %addKey (address %caller_alias) (pair (address %key_addr) (pair (nat %purpose) (nat %key_type)))) (or (pair %removeKey (address %caller_alias) (pair (address %key_addr) (nat %purpose))) (or (pair %addClaim (address %caller_alias) (pair (bytes %claim_id) (pair (nat %topic) (pair (nat %scheme) (pair (key %issuer) (pair (signature %sig_) (pair (bytes %data) (string %uri)))))))) (or (pair %removeClaim (address %caller_alias) (bytes %claim_id)) (or (pair %migrateTo (address %caller_alias) (nat %new_template_version)) (address %setAdmin))))));storage (pair (big_map %keys (pair address nat) (pair (nat %purpose) (nat %key_type))) (pair (big_map %claims bytes (pair (nat %topic) (pair (nat %scheme) (pair (key %issuer) (pair (signature %sig_) (pair (bytes %data) (string %uri))))))) (pair (big_map %claim_ids_by_topic nat (set bytes)) (pair (address %owner) (pair (address %investor) (pair (address %factory) (pair (nat %template_version) (pair (option %migrated address) (address %admin)))))))));code { UNPAIR ; IF_LEFT { DUP 2 ; GET 15 ; IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ; DUP 2 ; GET 16 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; CAR ; PUSH nat 1 ; DUP 3 ; CAR ; PAIR ; MEM ; IF {} { PUSH string "NOT_MGMT_KEY" ; FAILWITH } ; PUSH nat 4 ; DUP 2 ; GET 5 ; COMPARE ; LE ; PUSH nat 1 ; DUP 3 ; GET 5 ; COMPARE ; GE ; AND ; IF {} { PUSH string "INVALID_PURPOSE" ; FAILWITH } ; DUP ; GET 5 ; DUP 2 ; GET 3 ; PAIR ; DUP 3 ; CAR ; DUP 2 ; MEM ; IF { PUSH string "KEY_EXISTS" ; FAILWITH } {} ; DIG 2 ; DUP ; CAR ; DUP 4 ; GET 6 ; DIG 4 ; GET 5 ; PAIR ; SOME ; DIG 3 ; UPDATE ; UPDATE 1 ; NIL operation ; PAIR } { IF_LEFT { DUP 2 ; GET 15 ; IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ; DUP 2 ; GET 16 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; CAR ; PUSH nat 1 ; DUP 3 ; CAR ; PAIR ; MEM ; IF {} { PUSH string "NOT_MGMT_KEY" ; FAILWITH } ; DUP ; GET 4 ; SWAP ; GET 3 ; PAIR ; DUP 2 ; CAR ; DUP 2 ; MEM ; IF {} { PUSH string "KEY_NOT_FOUND" ; FAILWITH } ; SWAP ; DUP ; CAR ; NONE (pair nat nat) ; DIG 3 ; UPDATE ; UPDATE 1 ; NIL operation ; PAIR } { IF_LEFT { DUP 2 ; GET 15 ; IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ; DUP 2 ; GET 16 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; CAR ; PUSH nat 3 ; DUP 3 ; CAR ; PAIR ; MEM ; IF {} { PUSH string "NOT_CLAIM_KEY" ; FAILWITH } ; DUP ; GET 13 ; DUP 2 ; GET 5 ; DUP 4 ; GET 9 ; PAIR ; PAIR ; PACK ; DUP 2 ; GET 11 ; DUP 3 ; GET 9 ; CHECK_SIGNATURE ; IF {} { PUSH string "INVALID_SIGNATURE" ; FAILWITH } ; DUP 2 ; GET 3 ; DUP 2 ; GET 3 ; MEM ; IF { PUSH string "CLAIM_EXISTS" ; FAILWITH } {} ; DUP 2 ; DUP 3 ; GET 3 ; DUP 3 ; GET 14 ; DUP 4 ; GET 13 ; DUP 5 ; GET 11 ; DUP 6 ; GET 9 ; DUP 7 ; GET 7 ; DUP 8 ; GET 5 ; PAIR 6 ; SOME ; DUP 4 ; GET 3 ; UPDATE ; UPDATE 3 ; DUP 3 ; GET 5 ; DIG 3 ; GET 5 ; DUP 4 ; GET 5 ; GET ; IF_NONE { EMPTY_SET bytes } {} ; PUSH bool True ; DUP 5 ; GET 3 ; UPDATE ; SOME ; DIG 3 ; GET 5 ; UPDATE ; UPDATE 5 ; NIL operation ; PAIR } { IF_LEFT { DUP 2 ; GET 15 ; IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ; DUP 2 ; GET 16 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; CAR ; PUSH nat 3 ; DUP 3 ; CAR ; PAIR ; MEM ; IF {} { PUSH string "NOT_CLAIM_KEY" ; FAILWITH } ; DUP 2 ; GET 3 ; DUP 2 ; CDR ; GET ; IF_NONE { PUSH string "CLAIM_NOT_FOUND" ; FAILWITH } {} ; DUP 3 ; DUP 4 ; GET 3 ; NONE (pair nat (pair nat (pair key (pair signature (pair bytes string))))) ; DUP 5 ; CDR ; UPDATE ; UPDATE 3 ; DUP 4 ; GET 5 ; DIG 4 ; GET 5 ; DUP 4 ; CAR ; GET ; IF_NONE { EMPTY_SET bytes } {} ; PUSH bool False ; DIG 5 ; CDR ; UPDATE ; SOME ; DIG 3 ; CAR ; UPDATE ; UPDATE 5 ; NIL operation ; PAIR } { IF_LEFT { DUP 2 ; GET 15 ; IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ; DUP 2 ; GET 16 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; CAR ; PUSH nat 1 ; DUP 3 ; CAR ; PAIR ; MEM ; IF {} { PUSH string "NOT_MGMT_KEY" ; FAILWITH } ; SWAP ; GET 13 ; SWAP ; CDR ; COMPARE ; GT ; IF {} { PUSH string "NO_DOWNGRADE" ; FAILWITH } ; PUSH string "MIGRATE_TO_NOT_YET_IMPLEMENTED" ; FAILWITH } { DUP 2 ; GET 15 ; IF_NONE {} { PUSH string "MIGRATED" ; FAILWITH } ; DUP 2 ; GET 16 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; UPDATE 16 ; NIL operation ; PAIR } } } } } }