x
363
{ parameter (or (pair %addAgent (address %caller_alias) (address %agent_alias)) (or (pair %removeAgent (address %caller_alias) (address %agent_alias)) (or (pair %registerInvestor (address %caller_alias) (pair (address %investor_alias) (pair (nat %country) (address %identity_kt1)))) (or (pair %updateIdentity (address %caller_alias) (pair (address %investor_alias) (address %new_identity_kt1))) (or (pair %updateCountry (address %caller_alias) (pair (address %investor_alias) (nat %new_country))) (or (pair %deleteIdentity (address %caller_alias) (address %investor_alias)) (or (pair %setIRS (address %caller_alias) (address %new_irs)) (or (pair %setCTR (address %caller_alias) (address %new_ctr)) (or (pair %setTIR (address %caller_alias) (address %new_tir)) (or (pair %setFactory (address %caller_alias) (address %new_factory)) (or (pair %setOwner (address %caller_alias) (address %new_owner)) (address %setAdmin)))))))))))) ; storage (pair (address %irs) (pair (address %ctr) (pair (address %tir) (pair (address %factory) (pair (big_map %agents address unit) (pair (address %admin) (address %owner))))))) ; code { UNPAIR ; IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 12 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; SWAP ; DUP ; GET 9 ; UNIT ; SOME ; DIG 3 ; CDR ; UPDATE ; UPDATE 9 ; NIL operation } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 12 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; DUP 2 ; GET 9 ; DUP 2 ; CDR ; MEM ; IF {} { PUSH string "AGENT_NOT_FOUND" ; FAILWITH } ; SWAP ; DUP ; GET 9 ; NONE unit ; DIG 3 ; CDR ; UPDATE ; UPDATE 9 ; NIL operation } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 9 ; DUP 2 ; CAR ; MEM ; IF {} { PUSH string "NOT_AGENT" ; FAILWITH } ; DUP 2 ; CAR ; CONTRACT %registerInvestor (pair (address %caller_alias) (pair (address %investor) (pair (address %identity_kt1) (nat %country)))) ; IF_NONE { PUSH string "IRS_ENTRYPOINT_NOT_FOUND" ; FAILWITH } {} ; DUP 2 ; GET 5 ; DUP 3 ; GET 6 ; DIG 3 ; GET 3 ; SELF_ADDRESS ; PAIR 4 ; SWAP ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 9 ; DUP 2 ; CAR ; MEM ; IF {} { PUSH string "NOT_AGENT" ; FAILWITH } ; DUP 2 ; CAR ; CONTRACT %updateIdentity (pair (address %caller_alias) (pair (address %investor) (address %new_identity_kt1))) ; IF_NONE { PUSH string "IRS_ENTRYPOINT_NOT_FOUND" ; FAILWITH } {} ; DUP 2 ; GET 4 ; DIG 2 ; GET 3 ; SELF_ADDRESS ; PAIR 3 ; SWAP ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 9 ; DUP 2 ; CAR ; MEM ; IF {} { PUSH string "NOT_AGENT" ; FAILWITH } ; DUP 2 ; CAR ; CONTRACT %updateCountry (pair (address %caller_alias) (pair (address %investor) (nat %new_country))) ; IF_NONE { PUSH string "IRS_ENTRYPOINT_NOT_FOUND" ; FAILWITH } {} ; DUP 2 ; GET 4 ; DIG 2 ; GET 3 ; SELF_ADDRESS ; PAIR 3 ; SWAP ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 9 ; DUP 2 ; CAR ; MEM ; IF {} { PUSH string "NOT_AGENT" ; FAILWITH } ; DUP 2 ; CAR ; CONTRACT %removeIdentity (pair (address %caller_alias) (address %investor)) ; IF_NONE { PUSH string "IRS_ENTRYPOINT_NOT_FOUND" ; FAILWITH } {} ; SWAP ; CDR ; SELF_ADDRESS ; PAIR ; SWAP ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 12 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; CDR ; UPDATE 1 } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 12 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; CDR ; UPDATE 3 } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 12 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; CDR ; UPDATE 5 } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 12 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; CDR ; UPDATE 7 } { IF_LEFT { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; DUP 2 ; GET 12 ; DUP 2 ; CAR ; COMPARE ; NEQ ; IF { PUSH string "NOT_OWNER" ; FAILWITH } {} ; CDR ; UPDATE 12 } { DUP 2 ; GET 11 ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_ADMIN" ; FAILWITH } {} ; UPDATE 11 } } } } } ; NIL operation } } } } } } ; PAIR } ; view "isVerified" address bool { UNPAIR ; SWAP ; CAR ; SWAP ; VIEW "isStored" bool ; IF_NONE { PUSH string "IRS_VIEW_FAILED" ; FAILWITH } {} } ; view "identityOf" address address { UNPAIR ; SWAP ; CAR ; SWAP ; VIEW "identityOf" address ; IF_NONE { PUSH string "NOT_REGISTERED" ; FAILWITH } {} } ; view "countryOf" address nat { UNPAIR ; SWAP ; CAR ; SWAP ; VIEW "countryOf" nat ; IF_NONE { PUSH string "NOT_REGISTERED" ; FAILWITH } {} } ; view "isAgent" address bool { UNPAIR ; SWAP ; GET 9 ; SWAP ; MEM } ; view "getIRS" unit address { GET 3 } ; view "getCTR" unit address { GET 5 } ; view "getTIR" unit address { GET 7 } ; view "getFactory" unit address { GET 9 } }