x
926
1607
parameter (or
(or
(or (or (nat %buyTickets) (unit %check))
(or
(pair %configureCollection
(pair (address %collectionContract) (nat %collectionId))
(nat %nextTokenId))
(unit %confirmAdmin)))
(or
(or
(pair %createTickets (pair (nat %amount) (address %artist))
(pair (bytes %metadata_cid) (mutez %price)))
(unit %default))
(or (unit %draw) (bool %pauseTicketSale))))
(or
(or (pair %setAddress (address %community) (address %oracle))
(option %setAdmin address))
(or
(pair %setPercents (nat %artist) (nat %community) (nat %team)
(list %winners nat))
(unit %startTicketSale))));
storage (pair
(pair
(pair
(pair (pair (address %admin) (nat %artistPercent))
(pair (address %artistWallet) (nat %communityPercent)))
(pair (pair (address %communityWallet) (nat %epoch))
(pair
(list %lastWinners (pair (address %tz) (nat %percent) (nat %ticket)))
(address %oracle))))
(pair
(pair (pair (option %pending address) (nat %raffleId))
(pair (map %shares address nat) (timestamp %startedAt)))
(pair (pair (nat %status) (nat %supply))
(pair (nat %teamPercent) (nat %ticketCollectionId)))))
(pair
(pair (pair (address %ticketContract) (mutez %ticketPrice))
(pair (big_map %tickets nat address) (nat %ticketsSold)))
(list %winshares nat)));
code { PUSH address "KT1Aq4wWmVanpQhq4TTfjZXB5AjFpx15iQMM" ;
PUSH string "Access denied" ;
PUSH string "Wrong status" ;
PUSH string "Oracle view not found" ;
NIL operation ;
PUSH nat 0 ;
PUSH nat 1 ;
PUSH nat 2 ;
PUSH nat 3 ;
DIG 9 ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DIG 10 ;
DROP 2 ;
IF_LEFT
{ DIG 2 ;
DIG 4 ;
DIG 5 ;
DIG 7 ;
DROP 4 ;
DIG 4 ;
DIG 3 ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
PUSH string "No more tickets left" ;
DUP 3 ;
CDR ;
CAR ;
CDR ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
COMPARE ;
GT ;
IF { DROP } { FAILWITH } ;
PUSH string "Incorrect tickets amount requested" ;
PUSH nat 20 ;
DUP 3 ;
COMPARE ;
LE ;
PUSH nat 0 ;
DUP 4 ;
COMPARE ;
GT ;
AND ;
IF { DROP } { FAILWITH } ;
PUSH string "Too many tickets requested" ;
DUP 3 ;
CDR ;
CAR ;
CDR ;
CDR ;
DUP 3 ;
ADD ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
COMPARE ;
GE ;
IF { DROP } { FAILWITH } ;
PUSH string "Incorrect xtz amount" ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
CDR ;
CAR ;
CAR ;
CDR ;
MUL ;
AMOUNT ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
CDR ;
DUP 5 ;
CAR ;
CAR ;
CDR ;
CDR ;
CDR ;
UNIT ;
VIEW "get_epoch" nat ;
IF_NONE { DIG 5 ; FAILWITH } { DIG 6 ; DROP } ;
DUP 6 ;
CAR ;
CAR ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DIG 4 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
PUSH int 1 ;
SWAP ;
PAIR ;
LEFT (pair
(pair
(pair
(pair (pair (pair address nat) (pair address nat))
(pair (pair address nat)
(pair (list (pair address nat nat))
address)))
(pair
(pair (pair (option address) nat)
(pair (map address nat) timestamp))
(pair (pair nat nat) (pair nat nat))))
(pair
(pair (pair address mutez)
(pair (big_map nat address) nat))
(list nat)))
int) ;
LOOP_LEFT { DUP ;
CDR ;
DUP 3 ;
INT ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LE ;
IF
{ SWAP ;
CAR ;
DUP ;
CDR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
CDR ;
CDR ;
DUP 3 ;
CDR ;
CAR ;
CDR ;
CAR ;
SENDER ;
DUP 5 ;
CDR ;
CAR ;
CDR ;
CDR ;
SWAP ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
DUP 3 ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
DUP ;
CDR ;
CDR ;
PUSH nat 1 ;
DUP 3 ;
CDR ;
CAR ;
CDR ;
CDR ;
ADD ;
DUP 3 ;
CDR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DUP 3 ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
PUSH int 1 ;
DIG 2 ;
ADD ;
SWAP ;
PAIR ;
LEFT (pair
(pair
(pair
(pair
(pair (pair address nat)
(pair address nat))
(pair (pair address nat)
(pair
(list (pair address nat nat))
address)))
(pair
(pair (pair (option address) nat)
(pair (map address nat)
timestamp))
(pair (pair nat nat) (pair nat nat))))
(pair
(pair (pair address mutez)
(pair (big_map nat address) nat))
(list nat)))
int) }
{ DROP ;
RIGHT (pair
(pair
(pair
(pair
(pair (pair address nat)
(pair address nat))
(pair (pair address nat)
(pair
(list (pair address nat nat))
address)))
(pair
(pair (pair (option address) nat)
(pair (map address nat)
timestamp))
(pair (pair nat nat) (pair nat nat))))
(pair
(pair (pair address mutez)
(pair (big_map nat address) nat))
(list nat)))
int) } } ;
CAR ;
DUP ;
NIL operation ;
DIG 2 ;
SENDER ;
DIG 4 ;
DUP 3 ;
CDR ;
CAR ;
CAR ;
CAR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair (address %to_)
(nat %token_id)
(nat %amount))))) ;
IF_NONE { PUSH int 1 ; FAILWITH } {} ;
NIL (pair address (list (pair address nat nat))) ;
NIL (pair address nat nat) ;
DIG 3 ;
DIG 5 ;
CAR ;
CDR ;
CAR ;
CAR ;
CDR ;
DIG 5 ;
PAIR 3 ;
CONS ;
SELF_ADDRESS ;
PAIR ;
CONS ;
SWAP ;
PUSH mutez 0 ;
DIG 2 ;
TRANSFER_TOKENS ;
CONS ;
PAIR }
{ DIG 3 ;
DIG 8 ;
DROP 3 ;
DIG 5 ;
DUG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
PUSH nat 0 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
CDR ;
CDR ;
COMPARE ;
GT ;
IF
{ DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
CDR ;
CDR ;
NIL (pair address nat nat) ;
DUP 5 ;
PUSH nat 3 ;
DUP 7 ;
CAR ;
CAR ;
CDR ;
CAR ;
CDR ;
ADD ;
SWAP ;
CAR ;
CAR ;
CDR ;
CDR ;
CDR ;
SWAP ;
VIEW "get_seed" nat ;
IF_NONE { DIG 7 ; FAILWITH } { DIG 8 ; DROP } ;
PAIR ;
DUP 5 ;
CDR ;
CDR ;
ITER { SWAP ;
DUP 6 ;
CDR ;
CAR ;
CDR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
EDIV ;
IF_NONE { PUSH string "MOD by 0" ; FAILWITH } {} ;
CDR ;
DUP 7 ;
CDR ;
CAR ;
CDR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { SELF_ADDRESS } {} ;
DUP 3 ;
CDR ;
DIG 3 ;
CAR ;
PUSH nat 13 ;
SWAP ;
DUP ;
DUG 2 ;
LSL ;
XOR ;
PUSH nat 17 ;
SWAP ;
DUP ;
DUG 2 ;
LSR ;
XOR ;
PUSH nat 5 ;
SWAP ;
DUP ;
DUG 2 ;
LSL ;
XOR ;
PUSH nat 4294967295 ;
AND ;
PAIR ;
DUP ;
CDR ;
DIG 3 ;
DIG 4 ;
DIG 4 ;
PAIR 3 ;
CONS ;
SWAP ;
CAR ;
PAIR } ;
CDR ;
PAIR ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
CDR ;
CAR ;
ITER { DUP ;
DUG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH string "0" ; FAILWITH } {} ;
DIG 2 ;
GET 3 ;
PUSH nat 100 ;
BALANCE ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
CAR ;
PUSH nat 100 ;
BALANCE ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
MUL ;
PUSH mutez 0 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
GT ;
IF
{ SWAP ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
CDR ;
CAR ;
ITER { DUP ;
DUG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH string "0" ; FAILWITH } {} ;
DIG 2 ;
CDR ;
PUSH nat 1000 ;
DUP 5 ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS } ;
SWAP ;
DROP }
{ DROP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CDR ;
PUSH nat 100 ;
BALANCE ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
MUL ;
PUSH mutez 0 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
GT ;
IF
{ SWAP ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CDR ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH string "0" ; FAILWITH } {} ;
DIG 2 ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CDR ;
CDR ;
PUSH nat 100 ;
BALANCE ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
MUL ;
PUSH mutez 0 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
GT ;
IF
{ SWAP ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
CAR ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH string "0" ; FAILWITH } {} ;
DIG 2 ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP } ;
SWAP ;
PAIR }
{ DIG 3 ; DROP ; DIG 2 ; SWAP ; PAIR } ;
DUP ;
CAR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
CDR ;
PUSH nat 1 ;
DUP 5 ;
CAR ;
CDR ;
CAR ;
CAR ;
CDR ;
ADD ;
DUP 5 ;
CAR ;
CDR ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
DIG 5 ;
PAIR ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
CDR ;
PAIR } }
{ DIG 3 ;
DIG 4 ;
DIG 7 ;
DROP 3 ;
IF_LEFT
{ DIG 4 ;
DROP ;
DIG 5 ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DIG 4 ;
DIG 3 ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
DIG 4 ;
DUP 5 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
OR ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CDR ;
CAR ;
PAIR ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
PAIR ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
CDR ;
DUP 3 ;
CDR ;
CAR ;
CAR ;
CDR ;
DUP 5 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
DIG 2 ;
CONTRACT %accept_invitation nat ;
IF_NONE
{ PUSH string "Factory contract not found" ; FAILWITH }
{} ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
CDR ;
DUP 6 ;
CDR ;
DUP 6 ;
CAR ;
CDR ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
NIL operation ;
DIG 2 ;
PUSH mutez 0 ;
DIG 4 ;
CAR ;
CDR ;
TRANSFER_TOKENS ;
CONS ;
PAIR }
{ DIG 2 ;
DIG 3 ;
DIG 5 ;
DIG 6 ;
DIG 7 ;
DROP 6 ;
PUSH string "Not a pending admin" ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
CAR ;
CAR ;
IF_NONE { PUSH string "option is None" ; FAILWITH } {} ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DUP 4 ;
CAR ;
CAR ;
CAR ;
CDR ;
DIG 4 ;
CAR ;
CAR ;
CAR ;
CAR ;
CDR ;
SENDER ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
CAR ;
CDR ;
NONE address ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR } } }
{ DIG 7 ;
DROP ;
IF_LEFT
{ DIG 3 ;
DIG 4 ;
DROP 2 ;
IF_LEFT
{ DIG 4 ;
DROP ;
DIG 5 ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DIG 4 ;
DIG 3 ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
DIG 4 ;
DUP 5 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
OR ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
DUP 5 ;
CAR ;
CAR ;
CAR ;
CDR ;
CDR ;
DUP 5 ;
CAR ;
CDR ;
PAIR ;
DIG 5 ;
CAR ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
DUP 4 ;
CAR ;
CAR ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
CDR ;
DUP 4 ;
CDR ;
CDR ;
DUP 4 ;
CDR ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
DUP ;
NIL operation ;
DIG 2 ;
DUP 4 ;
CDR ;
CAR ;
DIG 4 ;
CAR ;
CAR ;
DIG 5 ;
CONTRACT %mint_artist (pair
(pair (nat %collection_id)
(nat %editions))
(pair (bytes %metadata_cid)
(address %target))) ;
IF_NONE { PUSH int 1 ; FAILWITH } {} ;
PUSH mutez 0 ;
SELF_ADDRESS ;
DIG 4 ;
PAIR ;
DIG 3 ;
DIG 4 ;
CAR ;
CDR ;
CDR ;
CDR ;
CDR ;
PAIR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
PAIR }
{ DIG 2 ; DIG 3 ; DIG 5 ; DIG 6 ; DIG 7 ; DROP 6 ; SWAP ; PAIR } }
{ DIG 5 ;
DIG 9 ;
DROP 2 ;
IF_LEFT
{ DIG 2 ;
DROP 2 ;
DIG 5 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DIG 4 ;
DIG 3 ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ DIG 3 ;
DROP ;
DIG 6 ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
IF
{ DIG 4 ;
DIG 3 ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR }
{ DIG 4 ;
DUG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR } ;
SWAP ;
PAIR } } } }
{ DIG 2 ;
DIG 3 ;
DIG 7 ;
DIG 10 ;
DROP 4 ;
IF_LEFT
{ DIG 2 ;
DIG 3 ;
DIG 5 ;
DROP 3 ;
IF_LEFT
{ DIG 3 ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
CDR ;
DUP 5 ;
CAR ;
CAR ;
CDR ;
CAR ;
CDR ;
DUP 5 ;
CAR ;
PAIR ;
PAIR ;
DIG 4 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DIG 3 ;
CDR ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
CDR ;
CAR ;
PAIR ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ DIG 3 ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
CDR ;
DUP 5 ;
CAR ;
CDR ;
CAR ;
CAR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR } }
{ IF_LEFT
{ DIG 2 ;
DIG 3 ;
DIG 5 ;
DROP 3 ;
DIG 3 ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
PUSH nat 0 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
ITER { ADD } ;
PUSH string "Shares don't add up to 100%" ;
PUSH nat 100 ;
DUP 4 ;
GET 5 ;
DUP 5 ;
GET 3 ;
DUP 6 ;
CAR ;
DIG 5 ;
ADD ;
ADD ;
ADD ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CDR ;
CDR ;
DUP 3 ;
GET 5 ;
PAIR ;
DUP 4 ;
CAR ;
CDR ;
CDR ;
CAR ;
PAIR ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DUP 5 ;
GET 3 ;
DUP 5 ;
CAR ;
CAR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 4 ;
CAR ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
DUP 4 ;
CAR ;
CAR ;
CAR ;
CDR ;
DIG 5 ;
CAR ;
DIG 5 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ DROP ;
DIG 5 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DIG 4 ;
DIG 3 ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { DROP } { FAILWITH } ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
CDR ;
DUP 3 ;
CAR ;
CDR ;
CDR ;
CAR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
DUP 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CDR ;
NOW ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DUP 4 ;
CAR ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DIG 2 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DUP ;
CDR ;
CDR ;
PUSH nat 0 ;
DUP 3 ;
CDR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DUP 3 ;
CDR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DUP 3 ;
CAR ;
CAR ;
CDR ;
CDR ;
CDR ;
NIL (pair address nat nat) ;
PAIR ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR } } } }