x
77
parameter (or (pair %renew (bytes %label) (nat %duration) (address %affiliate)) (pair %buy (bytes %label) (nat %duration) (address %owner) (option %address address) (map %data string bytes) (nat %nonce) (address %affiliate)));storage (pair (address %buy_addr) (address %renew_addr) (big_map %metadata string bytes));code { LAMBDA (pair string address) operation { UNPAIR ; SWAP ; AMOUNT ; DIG 2 ; PAIR 3 ; EMIT %affiliate_income (pair (string %kind) (mutez %value) (address %affiliate)) } ; SWAP ; UNPAIR ; IF_LEFT { DUP 2 ; GET 3 ; CONTRACT %renew (pair (bytes %label) (nat %duration)) ; IF_NONE { PUSH string "bad address for get_entrypoint" ; FAILWITH } {} ; DIG 2 ; NIL operation ; DIG 2 ; AMOUNT ; DUP 5 ; GET 3 ; DUP 6 ; CAR ; PAIR ; TRANSFER_TOKENS ; CONS ; DIG 2 ; GET 4 ; PUSH string "renew" ; PAIR ; DIG 3 ; SWAP ; EXEC } { DUP 2 ; CAR ; CONTRACT %buy (pair (bytes %label) (nat %duration) (address %owner) (option %address address) (map %data string bytes) (nat %nonce)) ; IF_NONE { PUSH string "bad address for get_entrypoint" ; FAILWITH } {} ; DIG 2 ; NIL operation ; DIG 2 ; AMOUNT ; DUP 5 ; GET 11 ; DUP 6 ; GET 9 ; DUP 7 ; GET 7 ; DUP 8 ; GET 5 ; DUP 9 ; GET 3 ; DUP 10 ; CAR ; PAIR 6 ; TRANSFER_TOKENS ; CONS ; DIG 2 ; GET 12 ; PUSH string "buy" ; PAIR ; DIG 3 ; SWAP ; EXEC } ; CONS ; PAIR }