x
877
1756
{ parameter (or (or (or (or (or (unit %acceptOwnership) (pair %addLine (pair (pair (pair (nat %advanceTime) (nat %betsPeriod)) (pair (string %currencyPair) (bool %isPaused))) (pair (pair (address %juster) (timestamp %lastBetsCloseTime)) (pair (nat %liquidityPercent) (nat %maxEvents)))) (pair (pair (pair (nat %measurePeriod) (nat %minBettingPeriod)) (pair (nat %rateAboveEq) (nat %rateBelow))) (nat %targetDynamics)))) (or (nat %approveEntry) (nat %cancelEntry))) (or (or (pair %claimLiquidity (address %provider) (nat %shares)) (nat %createEvent)) (or (unit %default) (unit %depositLiquidity)))) (or (or (or (unit %disband) (nat %payReward)) (or (address %proposeManager) (option %setDelegate key_hash))) (or (or (nat %setEntryLockPeriod) (unit %triggerPauseDeposit)) (or (nat %triggerPauseLine) (address %updateDurationPoints))))) (list %withdrawClaims (pair (nat %eventId) (address %provider)))) ; storage (pair (pair (pair (pair (pair (map %activeEvents nat nat) (nat %activeLiquidityF)) (pair (big_map %claims (pair (nat %eventId) (address %provider)) nat) (big_map %durationPoints address (pair (nat %amount) (nat %updateLevel))))) (pair (pair (big_map %entries nat (pair (pair (timestamp %acceptAfter) (nat %amount)) (address %provider))) (nat %entryLiquidityF)) (pair (nat %entryLockPeriod) (big_map %events nat (pair (pair (nat %claimed) (nat %provided)) (option %result nat)))))) (pair (pair (pair (bool %isDepositPaused) (bool %isDisbandAllow)) (pair (big_map %lines nat (pair (pair (pair (pair (nat %advanceTime) (nat %betsPeriod)) (pair (string %currencyPair) (bool %isPaused))) (pair (pair (address %juster) (timestamp %lastBetsCloseTime)) (pair (nat %liquidityPercent) (nat %maxEvents)))) (pair (pair (pair (nat %measurePeriod) (nat %minBettingPeriod)) (pair (nat %rateAboveEq) (nat %rateBelow))) (nat %targetDynamics)))) (address %manager))) (pair (pair (nat %maxEvents) (big_map %metadata string bytes)) (pair (nat %nextEntryId) (nat %nextLineId))))) (pair (pair (pair (nat %precision) (address %proposedManager)) (pair (big_map %shares address nat) (nat %totalDurationPoints))) (pair (nat %totalShares) (nat %withdrawableLiquidityF)))) ; code { NIL operation ; LAMBDA unit unit { DROP ; PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF { PUSH string "Including tez using this entrypoint call is not allowed" ; FAILWITH } { UNIT } } ; LAMBDA (pair address string) unit { UNPAIR ; SENDER ; COMPARE ; NEQ ; IF { FAILWITH } { DROP ; UNIT } } ; LAMBDA (pair (lambda (pair address string) unit) address) unit { UNPAIR ; SWAP ; PUSH string "Not a contract manager" ; SWAP ; PAIR ; EXEC } ; DUP 2 ; APPLY ; LAMBDA (pair address mutez) operation { UNPAIR ; CONTRACT unit ; IF_NONE { PUSH string "Not a contract" ; FAILWITH } {} ; SWAP ; UNIT ; TRANSFER_TOKENS } ; PUSH string "Max active events limit reached" ; PUSH string "Wrong state: negative entry liquidity" ; PUSH string "Wrong state: claimed exceed provided" ; LAMBDA (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat))) int { DUP ; CAR ; CAR ; CDR ; CAR ; CDR ; DUP 2 ; CDR ; CDR ; CDR ; DIG 2 ; CDR ; CAR ; CAR ; CAR ; PUSH mutez 1 ; BALANCE ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; MUL ; SUB ; SUB } ; LAMBDA (pair (lambda (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat))) int) (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat)))) int { UNPAIR ; SWAP ; DUP ; CAR ; CAR ; CAR ; CAR ; CDR ; SWAP ; DIG 2 ; SWAP ; EXEC ; ADD } ; DUP 2 ; APPLY ; LAMBDA (pair nat (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat)))) (pair (pair timestamp nat) address) { UNPAIR ; SWAP ; CAR ; CAR ; CDR ; CAR ; CAR ; SWAP ; GET ; IF_NONE { PUSH string "Entry is not found" ; FAILWITH } {} } ; LAMBDA (pair nat (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat)))) (pair (pair nat nat) (option nat)) { UNPAIR ; SWAP ; CAR ; CAR ; CDR ; CDR ; CDR ; SWAP ; GET ; IF_NONE { PUSH string "Event is not found" ; FAILWITH } {} } ; LAMBDA (pair nat (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat)))) (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat)) { UNPAIR ; SWAP ; CAR ; CDR ; CAR ; CDR ; CAR ; SWAP ; GET ; IF_NONE { PUSH string "Line is not found" ; FAILWITH } {} } ; LAMBDA int nat { PUSH int 0 ; DUP 2 ; COMPARE ; GE ; IF { ABS } { DROP ; PUSH nat 0 } } ; LAMBDA (pair int string) nat { UNPAIR ; PUSH int 0 ; DUP 2 ; COMPARE ; GE ; IF { SWAP ; DROP ; ABS } { DROP ; FAILWITH } } ; LAMBDA (pair address (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat)))) nat { UNPAIR ; SWAP ; CDR ; CAR ; CDR ; CAR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} } ; LAMBDA (pair (pair (lambda (pair address (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat)))) nat) (lambda int nat)) (pair address (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat))))) (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat))) { UNPAIR ; UNPAIR ; DIG 2 ; UNPAIR ; LEVEL ; PUSH nat 0 ; PAIR ; DUP 3 ; CAR ; CAR ; CAR ; CDR ; CDR ; DUP 3 ; GET ; IF_NONE {} { SWAP ; DROP } ; DUP 3 ; DUP 3 ; PAIR ; DIG 4 ; SWAP ; EXEC ; DUP 2 ; CDR ; LEVEL ; SUB ; DIG 5 ; SWAP ; EXEC ; SWAP ; MUL ; LEVEL ; DUP 2 ; DIG 3 ; CAR ; ADD ; PAIR ; DUP 4 ; CDR ; DUP 5 ; CAR ; CDR ; DUP 6 ; CAR ; CAR ; CDR ; DUP 7 ; CAR ; CAR ; CAR ; CDR ; CDR ; DIG 4 ; SOME ; DIG 6 ; UPDATE ; DUP 6 ; CAR ; CAR ; CAR ; CDR ; CAR ; PAIR ; DUP 6 ; CAR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; PAIR ; DUP ; CDR ; CDR ; DIG 2 ; DIG 3 ; CDR ; CAR ; CDR ; CDR ; ADD ; DUP 3 ; CDR ; CAR ; CDR ; CAR ; PAIR ; DUP 3 ; CDR ; CAR ; CAR ; PAIR ; PAIR ; SWAP ; CAR ; PAIR } ; DUP 4 ; DUP 3 ; PAIR ; APPLY ; DIG 17 ; UNPAIR ; IF_LEFT { IF_LEFT { DIG 5 ; DROP ; IF_LEFT { DIG 5 ; DIG 6 ; DIG 9 ; DIG 10 ; DIG 12 ; DROP 5 ; IF_LEFT { DIG 2 ; DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DIG 8 ; DROP 7 ; IF_LEFT { DIG 2 ; DROP 2 ; UNIT ; DIG 3 ; SWAP ; EXEC ; DROP ; PUSH string "Not allowed to accept ownership" ; DUP 2 ; CDR ; CAR ; CAR ; CDR ; PAIR ; DIG 2 ; SWAP ; EXEC ; DROP ; DUP ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; DIG 3 ; CDR ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CDR ; CAR ; CDR ; CAR ; PAIR ; DUP 4 ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } { DIG 3 ; DROP ; SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 3 ; SWAP ; EXEC ; DROP ; PUSH nat 0 ; DUP 3 ; CAR ; CAR ; CAR ; CDR ; COMPARE ; EQ ; IF { PUSH string "betsPeriod should be more than 0" ; FAILWITH } {} ; PUSH nat 0 ; DUP 3 ; CAR ; CDR ; CDR ; CDR ; COMPARE ; EQ ; IF { PUSH string "Line should have at least one event" ; FAILWITH } {} ; DUP ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; DUP 3 ; CAR ; CDR ; CAR ; CDR ; CDR ; DUP 5 ; CAR ; CDR ; CAR ; CDR ; CAR ; DUP 7 ; DIG 6 ; CAR ; CDR ; CDR ; CDR ; CDR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DUP 4 ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; DUP ; DUP ; CDR ; PUSH nat 1 ; DIG 3 ; CAR ; CDR ; CDR ; CDR ; CDR ; ADD ; DUP 3 ; CAR ; CDR ; CDR ; CDR ; CAR ; PAIR ; DUP 3 ; CAR ; CDR ; CDR ; CAR ; PAIR ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; DUP 2 ; CAR ; CAR ; CDR ; CDR ; NOT ; IF { DUP ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; CAR ; CDR ; DIG 5 ; CAR ; CDR ; CDR ; CDR ; DIG 5 ; CAR ; CDR ; CDR ; CAR ; CAR ; ADD ; PAIR ; PAIR ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } { SWAP ; DROP } } } { DIG 9 ; DROP ; IF_LEFT { DIG 8 ; DIG 9 ; DROP 2 ; SWAP ; UNIT ; DIG 9 ; SWAP ; EXEC ; DROP ; DUP ; DUP 3 ; PAIR ; DIG 6 ; SWAP ; EXEC ; DUP 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; CDR ; DIG 6 ; CAR ; CAR ; CDR ; CAR ; CAR ; DIG 7 ; NONE (pair (pair timestamp nat) address) ; SWAP ; UPDATE ; PAIR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DUP 2 ; CDR ; PAIR ; DIG 2 ; SWAP ; EXEC ; SWAP ; DUP 2 ; CDR ; CAR ; CAR ; CAR ; DUP 2 ; CAR ; CDR ; MUL ; DUP 2 ; CAR ; CAR ; NOW ; COMPARE ; LT ; IF { PUSH string "Cannot approve liquidity before acceptAfter" ; FAILWITH } {} ; DUP 3 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; DIG 10 ; DUP 6 ; DIG 8 ; CAR ; CAR ; CDR ; CAR ; CDR ; SUB ; PAIR ; DUP 9 ; SWAP ; EXEC ; DUP 5 ; CAR ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DUG 2 ; DUP 3 ; DIG 6 ; SWAP ; EXEC ; PUSH string "Wrong state: negative total liquidity" ; DUP 3 ; DIG 2 ; SUB ; PAIR ; DIG 5 ; SWAP ; EXEC ; PUSH nat 0 ; DUP 5 ; CDR ; CDR ; CAR ; COMPARE ; EQ ; IF { DROP 2 ; DUP ; CAR ; CDR } { DUP 4 ; CDR ; CDR ; CAR ; DIG 2 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR } ; PUSH nat 0 ; DUP 2 ; COMPARE ; EQ ; IF { PUSH string "Approve 0 shares dissalowed" ; FAILWITH } {} ; DUP 3 ; DUP ; CDR ; CDR ; DUP 2 ; CDR ; CAR ; CDR ; CDR ; DUP 6 ; CDR ; CAR ; CDR ; CAR ; DUP 5 ; DIG 7 ; DUP 8 ; CDR ; PAIR ; DIG 8 ; SWAP ; EXEC ; ADD ; DIG 6 ; CDR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DUP 3 ; CDR ; CAR ; CAR ; PAIR ; PAIR ; SWAP ; CAR ; PAIR ; SWAP ; DUP 2 ; DUP ; CDR ; CDR ; CDR ; DIG 2 ; DIG 3 ; CDR ; CDR ; CAR ; ADD ; PAIR ; DUP 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR } { DIG 2 ; DIG 3 ; DIG 6 ; DROP 3 ; SWAP ; UNIT ; DIG 8 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CAR ; CAR ; NOT ; IF { PUSH string "Cancel is not allowed" ; FAILWITH } {} ; DUP ; DUP 3 ; PAIR ; DIG 4 ; SWAP ; EXEC ; DUP 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; CDR ; DIG 6 ; CAR ; CAR ; CDR ; CAR ; CAR ; DIG 7 ; NONE (pair (pair timestamp nat) address) ; SWAP ; UPDATE ; PAIR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; SWAP ; DUP 2 ; CAR ; CDR ; CAR ; CAR ; CDR ; NOT ; IF { PUSH string "Not entry position owner" ; DUP 2 ; CDR ; PAIR ; DIG 6 ; SWAP ; EXEC ; DROP } { DIG 5 ; DROP } ; DUP 2 ; CDR ; CAR ; CAR ; CAR ; DUP 2 ; CAR ; CDR ; MUL ; DUP 3 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; DIG 8 ; DIG 5 ; DIG 7 ; CAR ; CAR ; CDR ; CAR ; CDR ; SUB ; PAIR ; DIG 6 ; SWAP ; EXEC ; DUP 5 ; CAR ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; SWAP ; PUSH nat 0 ; DUP 2 ; CAR ; CDR ; COMPARE ; GT ; IF { DIG 3 ; DROP ; NIL operation ; PUSH mutez 1 ; DUP 3 ; CAR ; CDR ; MUL ; DIG 2 ; CDR ; PAIR ; DIG 3 ; SWAP ; EXEC ; CONS } { DIG 2 ; DROP 2 ; SWAP } ; SWAP } } ; SWAP } { DIG 7 ; DIG 11 ; DIG 14 ; DROP 3 ; IF_LEFT { IF_LEFT { DIG 5 ; DIG 7 ; DIG 10 ; DROP 3 ; SWAP ; UNIT ; DIG 11 ; SWAP ; EXEC ; DROP ; DUP 2 ; CAR ; PAIR ; DIG 2 ; SWAP ; EXEC ; DUP ; DUP 3 ; CAR ; PAIR ; DIG 3 ; SWAP ; EXEC ; DUP 2 ; CAR ; CDR ; CAR ; CAR ; CDR ; NOT ; IF { PUSH string "Not shares owner" ; DUP 4 ; CAR ; PAIR ; DIG 9 ; SWAP ; EXEC ; DROP } { DIG 8 ; DROP } ; PUSH string "Claim shares is exceed position shares" ; DUP 4 ; CDR ; DIG 2 ; SUB ; PAIR ; DUP 4 ; SWAP ; EXEC ; PUSH nat 0 ; PUSH nat 0 ; DUP 5 ; CDR ; COMPARE ; EQ ; IF { DIG 5 ; DIG 7 ; DROP 2 } { DUP 3 ; CAR ; CAR ; CAR ; CAR ; CAR ; ITER { CAR ; DUP 4 ; DUP 2 ; PAIR ; DUP 8 ; SWAP ; EXEC ; DUP 6 ; CAR ; DUP 3 ; PAIR ; DUP 6 ; DUP 2 ; PAIR ; DUP 12 ; DUP 4 ; CAR ; CAR ; DUP 5 ; CAR ; CDR ; SUB ; PAIR ; DUP 10 ; SWAP ; EXEC ; DUP 8 ; CDR ; CDR ; CAR ; SWAP ; DUP 10 ; CDR ; DUP 10 ; CDR ; CAR ; CAR ; CAR ; MUL ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 8 ; CDR ; CAR ; CAR ; CAR ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV / 0" ; FAILWITH } { UNPAIR ; PUSH nat 0 ; DIG 2 ; COMPARE ; GT ; IF { PUSH nat 1 ; ADD } {} } ; DUP 8 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CAR ; CDR ; CDR ; DIG 12 ; CAR ; CAR ; CAR ; CDR ; CAR ; DUP 7 ; DIG 8 ; UNPAIR ; SWAP ; CAR ; CAR ; CAR ; CDR ; CAR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} ; ADD ; DIG 8 ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DIG 4 ; CAR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; PAIR ; DUG 5 ; DUP ; DIG 4 ; ADD ; DUG 3 ; DUP 2 ; CAR ; CAR ; ADD ; DUP 2 ; CAR ; CDR ; DUP 2 ; COMPARE ; GT ; IF { DUP 11 ; FAILWITH } {} ; DUP 6 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DIG 8 ; CAR ; CAR ; CDR ; CDR ; CDR ; DUP 6 ; CDR ; DIG 6 ; CAR ; CDR ; DIG 6 ; PAIR ; PAIR ; DIG 5 ; SWAP ; SOME ; SWAP ; UPDATE ; DUP 4 ; CAR ; CAR ; CDR ; CDR ; CAR ; PAIR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DUG 2 } ; DIG 5 ; DIG 7 ; DROP 2 } ; DUP 3 ; DUP ; CDR ; CDR ; DUP 2 ; CDR ; CAR ; CDR ; CDR ; DIG 5 ; CDR ; CAR ; CDR ; CAR ; DIG 5 ; DUP 7 ; CAR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DUP 3 ; CDR ; CAR ; CAR ; PAIR ; PAIR ; SWAP ; CAR ; PAIR ; SWAP ; PUSH string "Wrong state: negative payout" ; DUP 3 ; CDR ; CAR ; CAR ; CAR ; DUP 4 ; CDR ; CDR ; CAR ; DUP 6 ; CDR ; DUP 6 ; DIG 9 ; SWAP ; EXEC ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; PAIR ; DUP 5 ; SWAP ; EXEC ; DUP 3 ; DUP ; CDR ; CDR ; CDR ; PUSH string "Wrong state: negative total shares" ; DUP 7 ; CDR ; DIG 6 ; CDR ; CDR ; CAR ; SUB ; PAIR ; DUP 7 ; SWAP ; EXEC ; PAIR ; DUP 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; DUG 2 ; DUP 3 ; CDR ; CAR ; CAR ; CAR ; DIG 2 ; MUL ; DUP 3 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CAR ; CDR ; PUSH string "Wrong state: negative active liquidity" ; DIG 6 ; DIG 8 ; CAR ; CAR ; CAR ; CAR ; CDR ; SUB ; PAIR ; DIG 8 ; SWAP ; EXEC ; DIG 5 ; CAR ; CAR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP ; PUSH nat 0 ; DUP 2 ; COMPARE ; GT ; IF { DIG 4 ; DROP ; NIL operation ; PUSH mutez 1 ; DIG 2 ; MUL ; DIG 3 ; CAR ; PAIR ; DIG 3 ; SWAP ; EXEC ; CONS } { DIG 2 ; DIG 3 ; DROP 3 ; SWAP } } { DIG 2 ; DIG 3 ; DIG 4 ; DIG 6 ; DIG 9 ; DIG 11 ; DIG 12 ; DIG 14 ; DROP 8 ; SWAP ; DUP ; DUP 3 ; PAIR ; DIG 3 ; SWAP ; EXEC ; DUP ; CAR ; CDR ; CAR ; CAR ; UNIT ; VIEW "getNextEventId" nat ; IF_NONE { PUSH string "Juster.getNextEventId view is not found" ; FAILWITH } {} ; UNIT ; DIG 8 ; SWAP ; EXEC ; DROP ; DUP 3 ; PUSH int 0 ; DUP 2 ; CAR ; CAR ; CAR ; CAR ; CAR ; SIZE ; DIG 2 ; CAR ; CDR ; CDR ; CAR ; CAR ; SUB ; COMPARE ; LE ; IF { DUP 7 ; FAILWITH } {} ; DUP 2 ; CAR ; CAR ; CDR ; CDR ; IF { PUSH string "Line is paused" ; FAILWITH } {} ; DUP 3 ; DUP 2 ; SWAP ; CAR ; CAR ; CDR ; CDR ; CDR ; SWAP ; MEM ; IF { PUSH string "Event id is already taken" ; FAILWITH } {} ; DUP 3 ; DUP 3 ; DUP 6 ; PUSH nat 0 ; DIG 3 ; CAR ; CAR ; CAR ; CAR ; CAR ; ITER { SWAP ; DUP 3 ; DIG 2 ; CDR ; COMPARE ; EQ ; IF { PUSH nat 1 ; ADD } {} } ; SWAP ; DROP ; SWAP ; CAR ; CDR ; CDR ; CDR ; SWAP ; COMPARE ; GT ; IF { DIG 6 ; FAILWITH } { DIG 6 ; DROP } ; DUP 2 ; DUP ; CAR ; CAR ; CAR ; CAR ; INT ; SWAP ; CAR ; CDR ; CAR ; CDR ; SUB ; NOW ; COMPARE ; LT ; IF { PUSH string "Event cannot be created until previous event betsCloseTime" ; FAILWITH } {} ; DUP 2 ; PUSH nat 1 ; DUP 2 ; CAR ; CAR ; CAR ; CDR ; DUP 3 ; CAR ; CDR ; CAR ; CDR ; NOW ; SUB ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; ADD ; DUP 2 ; CAR ; CDR ; CAR ; CDR ; NOW ; COMPARE ; LT ; IF { PUSH nat 1 ; ADD } {} ; DUP 2 ; CAR ; CAR ; CAR ; CDR ; MUL ; DUP 2 ; CAR ; CDR ; CAR ; CDR ; ADD ; NOW ; DUP 2 ; SUB ; DUP 3 ; CDR ; CAR ; CAR ; CDR ; SWAP ; ABS ; COMPARE ; LT ; IF { SWAP ; CAR ; CAR ; CAR ; CDR ; INT ; ADD } { SWAP ; DROP } ; DIG 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; DUP 4 ; DUP 4 ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; DUG 2 ; DUP 4 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; DUP 3 ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 7 ; CAR ; CDR ; CAR ; CDR ; CAR ; DUP 8 ; DUP 10 ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DUP 4 ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; DUG 3 ; DUP 3 ; CDR ; CDR ; DUP 4 ; CDR ; CAR ; CAR ; CAR ; DUP 5 ; CAR ; CDR ; CDR ; CAR ; PAIR ; DUP 5 ; CAR ; CAR ; CDR ; CAR ; DIG 3 ; PAIR ; PAIR ; PAIR ; DUP 3 ; CAR ; CDR ; CAR ; CAR ; UNIT ; VIEW "getConfig" (pair (pair (pair (pair (mutez %expirationFee) (bool %isEventCreationPaused)) (pair (nat %maxAllowedMeasureLag) (nat %maxLiquidityPercent))) (pair (pair (nat %maxMeasurePeriod) (nat %maxPeriodToBetsClose)) (pair (mutez %measureStartFee) (nat %minLiquidityPercent)))) (pair (pair (pair (nat %minMeasurePeriod) (nat %minPeriodToBetsClose)) (pair (address %oracleAddress) (nat %providerProfitFee))) (pair (mutez %rewardCallFee) (nat %rewardFeeSplitAfter)))) ; IF_NONE { PUSH string "Juster.getConfig is not found" ; FAILWITH } {} ; DUP ; CAR ; CDR ; CDR ; CAR ; SWAP ; CAR ; CAR ; CAR ; CAR ; ADD ; DUP 4 ; CAR ; CDR ; CAR ; CAR ; CONTRACT %newEvent (pair (pair (pair (timestamp %betsCloseTime) (string %currencyPair)) (pair (nat %liquidityPercent) (nat %measurePeriod))) (nat %targetDynamics)) ; IF_NONE { PUSH string "Juster.newEvent is not found" ; FAILWITH } {} ; DUP 2 ; DIG 3 ; TRANSFER_TOKENS ; PUSH nat 0 ; DUP 5 ; CDR ; CAR ; CDR ; CDR ; PAIR ; DUP 5 ; CDR ; CAR ; CDR ; CAR ; DUP 5 ; PAIR ; PAIR ; DUP 6 ; DUP ; CAR ; CDR ; CDR ; CAR ; CAR ; DUP 2 ; DIG 10 ; SWAP ; EXEC ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 2 ; DIG 10 ; SWAP ; EXEC ; DIG 2 ; CDR ; CAR ; CAR ; CAR ; DUP 2 ; DUP 4 ; COMPARE ; GT ; IF { DIG 2 ; DROP } { SWAP ; DROP } ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; ABS ; PUSH mutez 1 ; PUSH mutez 1 ; DUP 6 ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DIG 2 ; DUP 2 ; DUP 2 ; COMPARE ; GT ; IF { SUB ; ABS } { DROP 2 ; PUSH string "Not enough liquidity to run event" ; FAILWITH } ; MUL ; DIG 5 ; CAR ; CDR ; CAR ; CAR ; CONTRACT %provideLiquidity (pair (pair (nat %eventId) (nat %expectedRatioAboveEq)) (pair (nat %expectedRatioBelow) (nat %maxSlippage))) ; IF_NONE { PUSH string "Juster.provideLiquidity is not found" ; FAILWITH } {} ; DUP 2 ; DIG 3 ; TRANSFER_TOKENS ; PUSH mutez 1 ; DIG 4 ; DIG 3 ; ADD ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 5 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DIG 7 ; CAR ; CAR ; CDR ; CDR ; CDR ; NONE nat ; DUP 6 ; PUSH nat 0 ; PAIR ; PAIR ; DUP 9 ; SWAP ; SOME ; SWAP ; UPDATE ; DUP 4 ; CAR ; CAR ; CDR ; CDR ; CAR ; PAIR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DUG 4 ; DUP 5 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CAR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; CAR ; CDR ; DIG 9 ; CAR ; CAR ; CAR ; CAR ; CAR ; DIG 10 ; DIG 10 ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; PAIR ; PAIR ; PAIR ; DUG 3 ; DUP 4 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CAR ; CDR ; DUP 9 ; CDR ; CAR ; CAR ; CAR ; DIG 6 ; MUL ; DIG 8 ; CAR ; CAR ; CAR ; CAR ; CDR ; ADD ; DIG 5 ; CAR ; CAR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; PAIR ; PAIR ; NIL operation ; DIG 2 ; CONS ; DIG 2 ; CONS } } { DIG 2 ; DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DIG 8 ; DIG 9 ; DIG 10 ; DIG 11 ; DIG 12 ; DIG 13 ; DROP 12 ; IF_LEFT { DROP } { DROP ; DUP ; CAR ; CDR ; CAR ; CAR ; CAR ; IF { PUSH string "Deposit is paused" ; FAILWITH } {} ; PUSH mutez 1 ; AMOUNT ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; PUSH nat 0 ; DUP 2 ; COMPARE ; EQ ; IF { PUSH string "Should provide tez" ; FAILWITH } {} ; SENDER ; DUP 2 ; DUP 4 ; CAR ; CAR ; CDR ; CDR ; CAR ; INT ; NOW ; ADD ; PAIR ; PAIR ; DUP 3 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; CDR ; DUP 8 ; CAR ; CAR ; CDR ; CAR ; CAR ; DIG 6 ; DIG 8 ; CAR ; CDR ; CDR ; CDR ; CAR ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; SWAP ; DUP 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; CDR ; CDR ; PUSH nat 1 ; DIG 5 ; CAR ; CDR ; CDR ; CDR ; CAR ; ADD ; PAIR ; DUP 3 ; CAR ; CDR ; CDR ; CAR ; PAIR ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; SWAP ; DUP 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; DUP 6 ; CDR ; CAR ; CAR ; CAR ; DIG 5 ; MUL ; DIG 5 ; CAR ; CAR ; CDR ; CAR ; CDR ; ADD ; DUP 5 ; CAR ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR } ; SWAP } } } { DIG 3 ; DIG 8 ; DIG 9 ; DIG 10 ; DIG 11 ; DIG 12 ; DIG 13 ; DIG 14 ; DROP 8 ; IF_LEFT { DIG 2 ; DIG 3 ; DROP 2 ; IF_LEFT { IF_LEFT { DIG 2 ; DIG 3 ; DIG 4 ; DIG 6 ; DROP 5 ; UNIT ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 2 ; SWAP ; EXEC ; DROP ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; DUP 3 ; CAR ; CDR ; CAR ; CDR ; PUSH bool True ; DUP 5 ; CAR ; CDR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DIG 2 ; CAR ; CAR } { DIG 5 ; DIG 7 ; DROP 2 ; SWAP ; DUP ; DUP 3 ; SWAP ; CAR ; CAR ; CAR ; CAR ; CAR ; SWAP ; GET ; IF_NONE { PUSH string "Active event is not found" ; FAILWITH } {} ; DUP 2 ; SWAP ; PAIR ; DIG 4 ; SWAP ; EXEC ; PUSH string "Address is not expected" ; SWAP ; CAR ; CDR ; CAR ; CAR ; PAIR ; DIG 5 ; SWAP ; EXEC ; DROP ; PUSH mutez 1 ; AMOUNT ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 2 ; DUP 4 ; PAIR ; DIG 5 ; SWAP ; EXEC ; DUP 2 ; SOME ; SWAP ; CAR ; PAIR ; DUP 3 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DIG 5 ; CAR ; CAR ; CDR ; CDR ; CDR ; DUP 5 ; SOME ; DUP 8 ; UPDATE ; DUP 4 ; CAR ; CAR ; CDR ; CDR ; CAR ; PAIR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DUG 2 ; DUP 3 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CAR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; CAR ; CDR ; DIG 7 ; CAR ; CAR ; CAR ; CAR ; CAR ; DIG 8 ; NONE nat ; SWAP ; UPDATE ; PAIR ; PAIR ; PAIR ; PAIR ; PAIR ; DUG 2 ; DUP ; CAR ; CDR ; DUP 4 ; CDR ; CAR ; CAR ; CAR ; DUP 3 ; CAR ; CAR ; DIG 4 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 3 ; SWAP ; DIG 3 ; CDR ; CDR ; CDR ; ADD ; DUP 2 ; CDR ; CDR ; CAR ; PAIR ; DUP 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; SWAP ; DUP 2 ; CDR ; CAR ; CAR ; CAR ; DUP 2 ; CAR ; CAR ; DIG 2 ; CAR ; CDR ; SUB ; MUL ; DUP 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CAR ; CDR ; DIG 5 ; DIG 6 ; CAR ; CAR ; CAR ; CAR ; CDR ; SUB ; DIG 6 ; SWAP ; EXEC ; DIG 5 ; CAR ; CAR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR } ; PAIR ; PAIR } { DIG 2 ; DIG 3 ; DIG 4 ; DIG 6 ; DROP 4 ; IF_LEFT { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CDR ; CDR ; DUP 2 ; CDR ; CAR ; CDR ; DIG 3 ; DUP 4 ; CDR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; SWAP ; CAR ; PAIR } { DIG 4 ; DROP ; SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 3 ; SWAP ; EXEC ; DROP ; NIL operation ; DIG 2 ; SET_DELEGATE ; CONS ; SWAP } } } { DIG 4 ; DIG 6 ; DIG 8 ; DROP 3 ; IF_LEFT { DIG 2 ; DIG 3 ; DIG 4 ; DROP 3 ; IF_LEFT { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; CDR ; CDR ; DIG 4 ; PAIR ; DUP 4 ; CAR ; CAR ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; CAR ; CAR ; PAIR } { DROP ; UNIT ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 2 ; SWAP ; EXEC ; DROP ; DUP ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; DUP 3 ; CAR ; CDR ; CAR ; CDR ; DUP 4 ; CAR ; CDR ; CAR ; CAR ; CDR ; DIG 5 ; CAR ; CDR ; CAR ; CAR ; CAR ; NOT ; PAIR ; PAIR ; PAIR ; DIG 2 ; CAR ; CAR } ; PAIR ; PAIR } { IF_LEFT { DIG 2 ; DROP ; SWAP ; UNIT ; DIG 6 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 5 ; SWAP ; EXEC ; DROP ; DUP ; DUP 3 ; PAIR ; DIG 4 ; SWAP ; EXEC ; DUP 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; CAR ; CDR ; DUP 5 ; CAR ; CAR ; CDR ; CDR ; IF { DIG 7 ; DROP ; DUP 5 ; CAR ; CDR ; CDR ; CDR ; DIG 6 ; CAR ; CDR ; CDR ; CAR ; CAR ; ADD } { PUSH string "Wrong state: negative events" ; DUP 6 ; CAR ; CDR ; CDR ; CDR ; DIG 7 ; CAR ; CDR ; CDR ; CAR ; CAR ; SUB ; PAIR ; DIG 7 ; SWAP ; EXEC } ; PAIR ; PAIR ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; SWAP ; DUP 2 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; CDR ; DUP 3 ; CAR ; CDR ; CAR ; CDR ; CDR ; DIG 5 ; CAR ; CDR ; CAR ; CDR ; CAR ; DUP 6 ; CDR ; DUP 7 ; CAR ; CDR ; DUP 8 ; CAR ; CAR ; CDR ; CDR ; NOT ; DUP 9 ; CAR ; CAR ; CDR ; CAR ; PAIR ; DIG 8 ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; DIG 6 ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DUP 4 ; CAR ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } { DIG 3 ; DIG 4 ; DIG 5 ; DROP 3 ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; PAIR ; EXEC } } } ; SWAP } } { DIG 2 ; DIG 3 ; DIG 5 ; DIG 6 ; DIG 8 ; DIG 9 ; DIG 10 ; DIG 11 ; DIG 12 ; DIG 13 ; DIG 15 ; DIG 16 ; DIG 18 ; DROP 13 ; SWAP ; UNIT ; DIG 6 ; SWAP ; EXEC ; DROP ; EMPTY_MAP address nat ; DIG 2 ; ITER { DUP 3 ; DUP 2 ; CAR ; PAIR ; DUP 6 ; SWAP ; EXEC ; DUP ; CDR ; IF_NONE { PUSH string "Event result is not received yet" ; FAILWITH } {} ; DUP 5 ; DUP 4 ; SWAP ; CAR ; CAR ; CAR ; CDR ; CAR ; SWAP ; GET ; IF_NONE { PUSH string "Claim is not found" ; FAILWITH } {} ; DIG 2 ; CAR ; CDR ; DUP 6 ; CDR ; CAR ; CAR ; CAR ; DIG 2 ; DIG 3 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 3 ; DIG 3 ; DUP 4 ; CDR ; GET ; IF_NONE { SWAP } { DIG 2 ; ADD } ; DUP 3 ; CDR ; SWAP ; SOME ; SWAP ; UPDATE ; SWAP ; DUP 3 ; DUP ; CDR ; DUP 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DUP 4 ; CAR ; CAR ; CAR ; CDR ; CDR ; DIG 7 ; CAR ; CAR ; CAR ; CDR ; CAR ; DIG 6 ; NONE nat ; SWAP ; UPDATE ; PAIR ; DIG 4 ; CAR ; CAR ; CAR ; CAR ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } ; DIG 3 ; DROP ; NIL operation ; SWAP ; ITER { UNPAIR ; PUSH mutez 1 ; DUP 5 ; CDR ; CAR ; CAR ; CAR ; DUP 4 ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; MUL ; PUSH mutez 0 ; DUP 2 ; COMPARE ; GT ; IF { DIG 3 ; SWAP ; DIG 2 ; PAIR ; DUP 6 ; SWAP ; EXEC ; CONS ; SWAP } { DROP 2 } ; DUP 3 ; PUSH string "Wrong state: negative withdrawable liquidity" ; DIG 2 ; DIG 4 ; CDR ; CDR ; CDR ; SUB ; PAIR ; DUP 4 ; SWAP ; EXEC ; DUP 2 ; CDR ; CDR ; CAR ; PAIR ; DUP 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; SWAP } ; DIG 2 ; DIG 3 ; DROP 2 } ; PAIR } ; view "getLine" nat (option (pair (pair (pair (pair (nat %advanceTime) (nat %betsPeriod)) (pair (string %currencyPair) (bool %isPaused))) (pair (pair (address %juster) (timestamp %lastBetsCloseTime)) (pair (nat %liquidityPercent) (nat %maxEvents)))) (pair (pair (pair (nat %measurePeriod) (nat %minBettingPeriod)) (pair (nat %rateAboveEq) (nat %rateBelow))) (nat %targetDynamics)))) { UNPAIR ; SWAP ; CAR ; CDR ; CAR ; CDR ; CAR ; SWAP ; GET } ; view "getEntry" nat (option (pair (pair (timestamp %acceptAfter) (nat %amount)) (address %provider))) { UNPAIR ; SWAP ; CAR ; CAR ; CDR ; CAR ; CAR ; SWAP ; GET } ; view "getNextEntryId" unit nat { CDR ; CAR ; CDR ; CDR ; CDR ; CAR } ; view "getShares" address (option nat) { UNPAIR ; SWAP ; CDR ; CAR ; CDR ; CAR ; SWAP ; GET } ; view "getClaim" (pair (nat %eventId) (address %provider)) (option nat) { UNPAIR ; SWAP ; CAR ; CAR ; CAR ; CDR ; CAR ; SWAP ; GET } ; view "getEvent" nat (option (pair (pair (nat %claimed) (nat %provided)) (option %result nat))) { UNPAIR ; SWAP ; CAR ; CAR ; CDR ; CDR ; CDR ; SWAP ; GET } ; view "getTotalShares" unit nat { CDR ; CDR ; CDR ; CAR } ; view "getActiveEvents" unit (map nat nat) { CDR ; CAR ; CAR ; CAR ; CAR ; CAR } ; view "getNextLineId" unit nat { CDR ; CAR ; CDR ; CDR ; CDR ; CDR } ; view "getBalance" unit mutez { DROP ; BALANCE } ; view "isDepositPaused" unit bool { CDR ; CAR ; CDR ; CAR ; CAR ; CAR } ; view "getEntryLockPeriod" unit nat { CDR ; CAR ; CAR ; CDR ; CDR ; CAR } ; view "getManager" unit address { CDR ; CAR ; CDR ; CAR ; CDR ; CDR } ; view "getNextLiquidity" unit nat { LAMBDA (pair (pair (pair (pair (pair (map nat nat) nat) (pair (big_map (pair nat address) nat) (big_map address (pair nat nat)))) (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat) (pair nat (big_map nat (pair (pair nat nat) (option nat)))))) (pair (pair (pair bool bool) (pair (big_map nat (pair (pair (pair (pair nat nat) (pair string bool)) (pair (pair address timestamp) (pair nat nat))) (pair (pair (pair nat nat) (pair nat nat)) nat))) address)) (pair (pair nat (big_map string bytes)) (pair nat nat)))) (pair (pair (pair nat address) (pair (big_map address nat) nat)) (pair nat nat))) int { DUP ; CAR ; CAR ; CDR ; CAR ; CDR ; DUP 2 ; CDR ; CDR ; CDR ; DIG 2 ; CDR ; CAR ; CAR ; CAR ; PUSH mutez 1 ; BALANCE ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; MUL ; SUB ; SUB } ; SWAP ; CDR ; DUP ; CAR ; CDR ; CDR ; CAR ; CAR ; DUP 2 ; CAR ; CAR ; CAR ; CAR ; CDR ; DUP 3 ; DUP 5 ; SWAP ; EXEC ; ADD ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 2 ; DIG 3 ; SWAP ; EXEC ; DIG 2 ; CDR ; CAR ; CAR ; CAR ; DUP 2 ; DUP 4 ; COMPARE ; GT ; IF { DIG 2 ; DROP } { SWAP ; DROP } ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; ABS } ; view "getDurationPoints" address (option (pair (nat %amount) (nat %updateLevel))) { UNPAIR ; SWAP ; CAR ; CAR ; CAR ; CDR ; CDR ; SWAP ; GET } ; view "getTotalDurationPoints" unit nat { CDR ; CDR ; CAR ; CDR ; CDR } ; view "getStateValues" unit (pair (pair (pair (nat %activeLiquidityF) (nat %entryLiquidityF)) (pair (nat %maxEvents) (nat %precision))) (nat %withdrawableLiquidityF)) { CDR ; DUP ; CDR ; CDR ; CDR ; DUP 2 ; CDR ; CAR ; CAR ; CAR ; DUP 3 ; CAR ; CDR ; CDR ; CAR ; CAR ; PAIR ; DUP 3 ; CAR ; CAR ; CDR ; CAR ; CDR ; DIG 3 ; CAR ; CAR ; CAR ; CAR ; CDR ; PAIR ; PAIR ; PAIR } }