x
114
parameter (or (pair %set_data (key_hash %delegate) (pair (option %data (pair (pair (pair (bytes %bakerName) (bool %openForDelegation)) (bytes %bakerOffchainRegistryUrl)) (pair (pair (nat %split) (list %bakerPaysFromAccounts address)) (pair (pair (pair (nat %minDelegation) (bool %subtractPayoutsLessThanMin)) (pair (int %payoutDelay) (pair (nat %payoutFrequency) (int %minPayout)))) (pair (pair (bool %bakerChargesTransactionFee) (nat %paymentConfigMask)) (pair (nat %overDelegationThreshold) (bool %subtractRewardsFromUninvitedDelegation))))))) (option %reporterAccount address))) (or (pair %set_fees (mutez %signup_fee) (mutez %update_fee)) (contract %withdraw unit)));storage (pair (big_map key_hash (pair (pair (option %data (pair (pair (pair (bytes %bakerName) (bool %openForDelegation)) (bytes %bakerOffchainRegistryUrl)) (pair (pair (nat %split) (list %bakerPaysFromAccounts address)) (pair (pair (pair (nat %minDelegation) (bool %subtractPayoutsLessThanMin)) (pair (int %payoutDelay) (pair (nat %payoutFrequency) (int %minPayout)))) (pair (pair (bool %bakerChargesTransactionFee) (nat %paymentConfigMask)) (pair (nat %overDelegationThreshold) (bool %subtractRewardsFromUninvitedDelegation))))))) (option %reporterAccount address)) (timestamp %last_update))) (pair (address %owner) (pair (mutez %signup_fee) (mutez %update_fee))));code { { { DUP ; CAR ; DIP { CDR } } } ; IF_LEFT { DUP ; CDR ; CAR ; { IF_NONE {} { CAR ; DUP ; CAR ; CAR ; SIZE ; PUSH nat 61 ; { { COMPARE ; GT } ; IF {} { { UNIT ; FAILWITH } } } ; CDR ; SIZE ; PUSH nat 81 ; { { COMPARE ; GT } ; IF {} { { UNIT ; FAILWITH } } } } } ; { { DUP ; CAR ; DIP { CDR } } } ; { DIP 2 { DUP } ; DIG 3 } ; CAR ; { DIP { DUP } ; SWAP } ; GET @from_storage ; IF_NONE { DUP ; IMPLICIT_ACCOUNT ; ADDRESS ; SENDER ; { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ; { DIP 2 { DUP } ; DIG 3 } ; { CDR ; CDR ; CAR %signup_fee } ; AMOUNT ; { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } } { { CAR ; CDR %reporterAccount } ; IF_NONE { PUSH bool False } { SENDER ; COMPARE ; EQ } ; DIP { DUP ; IMPLICIT_ACCOUNT ; ADDRESS ; SENDER ; COMPARE ; EQ } ; OR ; { IF {} { { UNIT ; FAILWITH } } } ; { DIP 2 { DUP } ; DIG 3 } ; { CDR ; CDR ; CDR %update_fee } ; AMOUNT ; { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } } ; DIP { NOW ; SWAP ; PAIR ; SOME ; DIP { { { DUP ; CAR ; DIP { CDR } } } } } ; UPDATE ; PAIR ; NIL operation ; PAIR } { { DIP { DUP } ; SWAP } ; { CDR ; CAR %owner } ; SENDER ; { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ; AMOUNT ; PUSH mutez 0 ; { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ; IF_LEFT { SWAP ; { DUP ; DIP { CDR @%% ; { CAR @%% ; PAIR %@ % } } ; CAR @%% ; PAIR %@ %@ } ; NIL operation ; PAIR } { BALANCE ; UNIT ; TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS ; PAIR } } }