x
634
{ parameter (or (nat %promote) (or (pair %set_profile (nat %cid) (pair (string %description) (pair (bytes %picture) (pair (string %picture_uri) (string %username))))) (unit %withdraw_fees))) ; storage (pair (nat %count) (pair (mutez %fees) (pair (big_map %ids nat nat) (pair (address %owner) (pair (big_map %profiles nat (pair (string %description) (pair (bytes %picture) (pair (string %picture_uri) (string %username))))) (pair (big_map %promo_count nat nat) (pair (big_map %promo_entry (pair (nat %i) (nat %week)) (pair (nat %cid) (mutez %cum))) (pair (big_map %promo_total nat mutez) (pair (big_map %promo_weight (pair (nat %cid) (nat %week)) mutez) (address %registry)))))))))) ; code { LAMBDA (pair nat (pair nat (pair mutez (pair (big_map nat nat) (pair address (pair (big_map nat (pair string (pair bytes (pair string string)))) (pair (big_map nat nat) (pair (big_map (pair nat nat) (pair nat mutez)) (pair (big_map nat mutez) (pair (big_map (pair nat nat) mutez) address)))))))))) (pair bool (pair nat (pair mutez (pair (big_map nat nat) (pair address (pair (big_map nat (pair string (pair bytes (pair string string)))) (pair (big_map nat nat) (pair (big_map (pair nat nat) (pair nat mutez)) (pair (big_map nat mutez) (pair (big_map (pair nat nat) mutez) address)))))))))) { UNPAIR ; SWAP ; DUP ; GET 18 ; DIG 2 ; VIEW "get_channel" (pair (bytes %name_enc) (pair (bytes %name_hash) (pair (address %owner) (bool %primary)))) ; IF_NONE { PUSH string "NO_SUCH_CONTENT_CHANNEL" ; FAILWITH } {} ; GET 5 ; DUP ; SENDER ; COMPARE ; EQ ; DUP ; IF { SWAP ; DROP } { DUP 3 ; GET 18 ; DIG 2 ; VIEW "get_burner_key" key ; DUP ; IF_NONE { DROP } { DROP ; SWAP ; DROP ; IF_NONE { PUSH int 83 ; FAILWITH } {} ; HASH_KEY ; IMPLICIT_ACCOUNT ; ADDRESS ; SENDER ; COMPARE ; EQ } } ; PAIR } ; SWAP ; UNPAIR ; IF_LEFT { PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF {} { PUSH string "NO_FEE" ; FAILWITH } ; DUP 2 ; GET 9 ; DUP 2 ; MEM ; IF {} { PUSH string "NOT_PUBLIC" ; FAILWITH } ; PUSH timestamp "1970-01-01T00:00:00Z" ; NOW ; SUB ; PUSH nat 604800 ; PUSH int 259200 ; DUP 3 ; ADD ; EDIV ; IF_NONE { PUSH string "WEEK" ; FAILWITH } {} ; DUP ; CAR ; ISNAT ; IF_NONE { PUSH int 128 ; FAILWITH } {} ; DUP 2 ; CDR ; PUSH nat 604800 ; DUP 2 ; AMOUNT ; MUL ; EDIV ; IF_NONE { PUSH int 130 ; FAILWITH } {} ; CAR ; PUSH nat 0 ; PUSH mutez 0 ; DUP 9 ; GET 11 ; DUP 6 ; MEM ; IF { DROP 2 ; DUP 7 ; GET 11 ; DUP 4 ; GET ; IF_NONE { PUSH int 136 ; FAILWITH } {} ; DUP 8 ; GET 15 ; DUP 5 ; GET ; IF_NONE { PUSH int 137 ; FAILWITH } {} } {} ; DIG 8 ; DUP ; GET 13 ; AMOUNT ; DUP 4 ; ADD ; DUP 11 ; PAIR ; SOME ; DUP 8 ; DUP 6 ; PAIR ; UPDATE ; UPDATE 13 ; DUP ; GET 15 ; AMOUNT ; DUP 4 ; ADD ; SOME ; DUP 8 ; UPDATE ; UPDATE 15 ; DUP ; GET 11 ; PUSH nat 1 ; DUP 5 ; ADD ; SOME ; DUP 8 ; UPDATE ; UPDATE 11 ; DUG 8 ; DUP 5 ; DUP 9 ; PAIR ; PUSH mutez 0 ; DUP 11 ; GET 17 ; DUP 3 ; MEM ; IF { DROP ; DUP 10 ; GET 17 ; DUP 2 ; GET ; IF_NONE { PUSH int 144 ; FAILWITH } {} } {} ; DIG 10 ; DUP ; GET 17 ; AMOUNT ; DUP 4 ; ADD ; SOME ; DUP 5 ; UPDATE ; UPDATE 17 ; DUG 10 ; PUSH mutez 0 ; DUP 6 ; COMPARE ; GT ; IF { PUSH nat 1 ; DUP 8 ; ADD ; PUSH nat 0 ; PUSH mutez 0 ; DUP 14 ; GET 11 ; DUP 4 ; MEM ; IF { DROP 2 ; DUP 12 ; GET 11 ; DUP 2 ; GET ; IF_NONE { PUSH int 153 ; FAILWITH } {} ; DUP 13 ; GET 15 ; DUP 3 ; GET ; IF_NONE { PUSH int 154 ; FAILWITH } {} } {} ; DIG 13 ; DUP ; GET 13 ; DUP 10 ; DUP 4 ; ADD ; DUP 16 ; PAIR ; SOME ; DUP 6 ; DUP 6 ; PAIR ; UPDATE ; UPDATE 13 ; DUP ; GET 15 ; DUP 10 ; DUP 4 ; ADD ; SOME ; DUP 6 ; UPDATE ; UPDATE 15 ; DUP ; GET 11 ; PUSH nat 1 ; DUP 5 ; ADD ; SOME ; DUP 6 ; UPDATE ; UPDATE 11 ; DUG 13 ; DUP 3 ; DUP 14 ; PAIR ; PUSH mutez 0 ; DUP 16 ; GET 17 ; DUP 3 ; MEM ; IF { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DUP 3 ; GET 17 ; DUP 2 ; GET ; IF_NONE { PUSH int 161 ; FAILWITH } {} } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP } ; DIG 3 ; DUP ; GET 17 ; DIG 4 ; DIG 3 ; ADD ; SOME ; DIG 3 ; UPDATE ; UPDATE 17 } { DROP 10 ; SWAP ; DROP } ; DUP ; GET 3 ; AMOUNT ; ADD ; UPDATE 3 ; NIL operation } { IF_LEFT { PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "NO_TEZ_ACCEPTED" ; FAILWITH } ; DUP 3 ; SWAP ; DUP ; CAR ; DIG 2 ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; IF {} { PUSH string "NOT_AUTHORIZED" ; FAILWITH } ; DUP ; GET 8 ; DUP 2 ; GET 7 ; DUP 3 ; GET 5 ; DUP 4 ; GET 3 ; PAIR 4 ; DIG 3 ; DROP ; DUP 3 ; GET 9 ; DUP 3 ; CAR ; MEM ; IF { DIG 2 ; DUP ; GET 9 ; DIG 2 ; SOME ; DIG 3 ; CAR ; UPDATE ; UPDATE 9 } { DUP 3 ; DUP ; GET 5 ; DUP 4 ; CAR ; SOME ; DIG 5 ; CAR ; UPDATE ; UPDATE 5 ; DUP ; CAR ; PUSH nat 1 ; ADD ; UPDATE 1 ; DUP ; GET 9 ; DIG 2 ; SOME ; DIG 3 ; CAR ; UPDATE ; UPDATE 9 } ; NIL operation } { DROP ; SWAP ; DROP ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "NO_TEZ_ACCEPTED" ; FAILWITH } ; DUP ; GET 7 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NOT_OWNER" ; FAILWITH } ; PUSH mutez 0 ; DUP 2 ; GET 3 ; COMPARE ; GT ; IF {} { PUSH string "NO_FEES" ; FAILWITH } ; DUP ; GET 3 ; SWAP ; PUSH mutez 0 ; UPDATE 3 ; SWAP ; NIL operation ; DUP 3 ; GET 7 ; CONTRACT unit ; IF_NONE { PUSH int 174 ; FAILWITH } {} ; DIG 2 ; UNIT ; TRANSFER_TOKENS ; CONS } } ; PAIR } ; view "get_count" unit nat { CDR ; CAR } ; view "get_at" nat (option nat) { UNPAIR ; SWAP ; GET 5 ; SWAP ; GET } ; view "get_profile" nat (option (pair (string %description) (pair (bytes %picture) (pair (string %picture_uri) (string %username))))) { UNPAIR ; SWAP ; GET 9 ; SWAP ; GET } ; view "get_week" nat (pair (nat %count) (mutez %total)) { UNPAIR ; PUSH mutez 0 ; PUSH nat 0 ; DUP 4 ; GET 15 ; DUP 4 ; MEM ; IF { DROP 2 ; DUP 2 ; GET 15 ; DUP 2 ; GET ; IF_NONE { PUSH int 199 ; FAILWITH } {} ; DIG 2 ; GET 11 ; DIG 2 ; GET ; IF_NONE { PUSH int 200 ; FAILWITH } {} } { DIG 2 ; DROP ; DIG 2 ; DROP } ; PAIR } ; view "get_weight" (pair (nat %cid) (nat %week)) (option mutez) { UNPAIR ; SWAP ; GET 17 ; SWAP ; GET } ; view "pick" (pair (mutez %r) (nat %week)) (option nat) { UNPAIR ; NONE nat ; DUP 3 ; GET 11 ; DUP 3 ; CDR ; MEM ; IF { DUP 3 ; GET 11 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 217 ; FAILWITH } {} ; PUSH nat 0 ; DUP 2 ; DUP ; DUP 3 ; COMPARE ; LT ; LOOP { PUSH nat 2 ; DUP 2 ; DUP 4 ; ADD ; EDIV ; IF_NONE { PUSH string "DIV" ; FAILWITH } {} ; CAR ; DUP 7 ; GET 13 ; DUP 7 ; CDR ; DUP 3 ; PAIR ; GET ; IF_NONE { PUSH int 222 ; FAILWITH } {} ; DUP 7 ; CAR ; DUP 2 ; CDR ; COMPARE ; GT ; IF { DIG 2 ; DROP 2 } { DIG 3 ; DROP 2 ; PUSH nat 1 ; ADD ; SWAP } ; DUP ; DUP 3 ; COMPARE ; LT } ; DUP 3 ; DUP 3 ; COMPARE ; LT ; IF { DIG 3 ; DROP 2 ; SWAP ; DROP ; DIG 2 ; GET 13 ; DIG 2 ; CDR ; DIG 2 ; PAIR ; GET ; IF_NONE { PUSH int 228 ; FAILWITH } {} ; CAR ; SOME } { DROP 3 ; SWAP ; DROP ; SWAP ; DROP } } { SWAP ; DROP ; SWAP ; DROP } } ; view "pick_many" (pair (list %rs mutez) (nat %week)) (set nat) { UNPAIR ; EMPTY_SET nat ; DUP 3 ; GET 11 ; DUP 3 ; CDR ; MEM ; IF { DUP 3 ; GET 11 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 243 ; FAILWITH } {} ; DUP 3 ; CAR ; ITER { PUSH nat 0 ; DUP 3 ; DUP ; DUP 3 ; COMPARE ; LT ; LOOP { PUSH nat 2 ; DUP 2 ; DUP 4 ; ADD ; EDIV ; IF_NONE { PUSH string "DIV" ; FAILWITH } {} ; CAR ; DUP 8 ; GET 13 ; DUP 8 ; CDR ; DUP 3 ; PAIR ; GET ; IF_NONE { PUSH int 249 ; FAILWITH } {} ; DUP 5 ; DUP 2 ; CDR ; COMPARE ; GT ; IF { DIG 2 ; DROP 2 } { DIG 3 ; DROP 2 ; PUSH nat 1 ; ADD ; SWAP } ; DUP ; DUP 3 ; COMPARE ; LT } ; DROP ; DUP 3 ; DUP 2 ; COMPARE ; LT ; IF { SWAP ; DROP ; DIG 2 ; PUSH bool True ; DUP 6 ; GET 13 ; DUP 6 ; CDR ; DIG 4 ; PAIR ; GET ; IF_NONE { PUSH int 255 ; FAILWITH } {} ; CAR ; UPDATE ; SWAP } { DROP 2 } } ; DROP ; SWAP ; DROP ; SWAP ; DROP } { SWAP ; DROP ; SWAP ; DROP } } }