x
320
{ parameter (or (or (or (address %addAdmin) (unit %default)) (or (address %delAdmin) (or (pair %delProof (address %address) (string %prooftype)) (pair %getProofs (address %address) (address %callback_address))))) (or (or (address %removeIdentity) (or (pair %send (mutez %amount) (address %receiverAddress)) (option %setBaker key_hash))) (or (pair %setProof (address %address) (pair (pair %proof (map %meta string string) (pair (timestamp %register_date) (bool %verified))) (string %prooftype))) (or (map %setProofs address (map string (pair (map %meta string string) (pair (timestamp %register_date) (bool %verified))))) (pair %triggerLambda (lambda %logic (pair (bytes %params) (pair %storage (set %admins address) (pair (big_map %identities address (map string (pair (map %meta string string) (pair (timestamp %register_date) (bool %verified))))) (big_map %metadata string bytes)))) (pair (set %admins address) (pair (big_map %identities address (map string (pair (map %meta string string) (pair (timestamp %register_date) (bool %verified))))) (big_map %metadata string bytes)))) (bytes %params)))))) ; storage (pair (set %admins address) (pair (big_map %identities address (map string (pair (map %meta string string) (pair (timestamp %register_date) (bool %verified))))) (big_map %metadata string bytes))) ; code { LAMBDA (pair unit (pair (set address) (pair (big_map address (map string (pair (map string string) (pair timestamp bool)))) (big_map string bytes)))) (pair unit (pair (set address) (pair (big_map address (map string (pair (map string string) (pair timestamp bool)))) (big_map string bytes)))) { CDR ; DUP ; CAR ; SENDER ; MEM ; IF {} { PUSH string "Only admin can call this entrypoint" ; FAILWITH } ; UNIT ; PAIR } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUP ; CAR ; PUSH bool True ; DIG 3 ; UPDATE ; UPDATE 1 } { DROP ; SWAP ; DROP } ; NIL operation } { IF_LEFT { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUP ; CAR ; PUSH bool False ; DIG 3 ; UPDATE ; UPDATE 1 ; NIL operation } { IF_LEFT { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUP ; GET 3 ; DUP ; DUP 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 66 ; FAILWITH } {} ; NONE (pair (map string string) (pair timestamp bool)) ; DIG 5 ; CDR ; UPDATE ; SOME ; SWAP ; UPDATE ; UPDATE 3 ; NIL operation } { EMPTY_MAP string (pair (map string string) (pair timestamp bool)) ; DUP 3 ; GET 3 ; DUP 3 ; CAR ; MEM ; IF { DROP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 3 ; SWAP ; DUP ; DUG 2 ; CAR ; GET ; IF_NONE { PUSH int 102 ; FAILWITH } {} } { DIG 3 ; DROP } ; NIL operation ; DUP 3 ; CDR ; CONTRACT (pair (address %address) (map %proofs string (pair (map %meta string string) (pair (timestamp %register_date) (bool %verified))))) ; IF_NONE { PUSH int 103 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DIG 4 ; CAR ; PAIR ; TRANSFER_TOKENS ; CONS } } } } { IF_LEFT { IF_LEFT { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUP ; GET 3 ; NONE (map string (pair (map string string) (pair timestamp bool))) ; DIG 3 ; UPDATE ; UPDATE 3 ; NIL operation } { IF_LEFT { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; DUP ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 54 ; FAILWITH } {} ; NIL operation ; SWAP ; DIG 2 ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS } { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; SET_DELEGATE ; NIL operation ; SWAP ; CONS } } } { IF_LEFT { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; PUSH bool False ; DUP 3 ; GET 3 ; DUP 3 ; CAR ; MEM ; COMPARE ; EQ ; IF { SWAP ; DUP ; GET 3 ; PUSH (option (map string (pair (map string string) (pair timestamp bool)))) (Some {}) ; DUP 4 ; CAR ; UPDATE ; UPDATE 3 ; SWAP } {} ; SWAP ; DUP ; GET 3 ; DUP ; DUP 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 61 ; FAILWITH } {} ; DUP 5 ; GET 3 ; SOME ; DIG 5 ; GET 4 ; UPDATE ; SOME ; SWAP ; UPDATE ; UPDATE 3 } { IF_LEFT { DUP 3 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; SWAP ; DUP ; DUG 2 ; ITER { DIG 3 ; DUP ; GET 3 ; DUP 3 ; CDR ; SOME ; DIG 3 ; CAR ; UPDATE ; UPDATE 3 ; DUG 2 } ; DROP 2 ; SWAP ; DROP } { DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; DUP ; CAR ; DUG 2 ; CDR ; PAIR ; EXEC } } ; NIL operation } } ; PAIR } ; view "getProofsForAddress" address (map string (pair (map %meta string string) (pair (timestamp %register_date) (bool %verified)))) { UNPAIR ; EMPTY_MAP string (pair (map string string) (pair timestamp bool)) ; DUP 3 ; GET 3 ; DUP 3 ; MEM ; IF { DROP ; SWAP ; GET 3 ; SWAP ; GET ; IF_NONE { PUSH int 110 ; FAILWITH } {} } { SWAP ; DROP ; SWAP ; DROP } } }