Created
June 21, 2019 21:32
-
-
Save sax1johno/c9768720e69619c6853d9cf460013434 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contract: | |
{ parameter (or (or nat nat) (pair nat address)) ; | |
storage (pair (pair (map nat (pair mutez nat)) (map nat (pair address nat))) nat) ; | |
code { {} ; | |
{ { {} ; | |
{ {} ; | |
PUSH (lambda | |
(pair (pair nat address) | |
(pair (pair (map nat (pair mutez nat)) (map nat (pair address nat))) nat)) | |
(pair (list operation) | |
(pair (pair (map nat (pair mutez nat)) (map nat (pair address nat))) nat))) | |
{ { {} ; | |
{ { {} ; { {} ; { { DUP } ; CAR } } ; { {} ; {} } } ; | |
{ {} ; | |
{ {} ; { { { DIP { DUP } ; SWAP } } ; CDR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; { { { { DUP } ; CAR } } ; CDR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { DUP ; | |
{ { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
CAR } } ; | |
{ GET ; IF_NONE { { PUSH string "GET_FORCE" ; FAILWITH } } { {} } } } } ; | |
{ {} ; {} } } ; | |
{ { { PUSH string "\"This card doesn't belong to you\"" ; | |
{ { { {} ; SOURCE } ; | |
{ { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; CAR } } ; | |
{ COMPARE ; NEQ } } } ; | |
IF { { FAILWITH } } { { DROP ; PUSH unit Unit } } } ; | |
DROP } ; | |
{ { { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
CDR } ; | |
{ DIP { DUP } ; SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; DIP { DROP } ; PAIR } ; | |
DIP { DROP } } ; | |
{ {} ; | |
{ {} ; | |
{ { { DIP { DUP } ; SWAP } ; | |
{ DIP { DUP } ; SWAP } ; | |
{ { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
CAR } } ; | |
{ DIP { SOME } ; UPDATE } } } ; | |
{ {} ; { SWAP ; DIP { DIP { DROP } } } } } ; | |
{ { DIP { DUP } ; SWAP } ; | |
{ DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; | |
{ DIP { { DUP ; CDR ; DIP { CAR } } } ; | |
DIP { DROP } ; | |
{ SWAP ; PAIR } } ; | |
PAIR } ; | |
{ SWAP ; DIP { { SWAP ; DIP { DIP { DROP } } } } } } ; | |
{ {} ; { {} ; NIL operation } ; { {} ; {} } } } ; | |
{} ; | |
{ { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } ; | |
{ DIP { DUP } ; SWAP } } ; | |
PAIR } ; | |
DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { {} } ; DROP } } ; DROP } } ; DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } } } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
PUSH (lambda | |
(pair nat (pair (pair (map nat (pair mutez nat)) (map nat (pair address nat))) nat)) | |
(pair (list operation) | |
(pair (pair (map nat (pair mutez nat)) (map nat (pair address nat))) nat))) | |
{ { {} ; | |
{ { {} ; { {} ; { { DUP } ; CAR } } ; { {} ; {} } } ; | |
{ {} ; | |
{ {} ; { { { DIP { DUP } ; SWAP } } ; CDR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { { DUP } ; CAR } } ; CDR } ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; | |
{ GET ; IF_NONE { { PUSH string "GET_FORCE" ; FAILWITH } } { {} } } } } ; | |
{ {} ; {} } } ; | |
{ { { PUSH string "\"This card doesn't belong to you\"" ; | |
{ { { {} ; SOURCE } ; | |
{ { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; CAR } } ; | |
{ COMPARE ; NEQ } } } ; | |
IF { { FAILWITH } } { { DROP ; PUSH unit Unit } } } ; | |
DROP } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { { { DIP { DUP } ; SWAP } } ; CAR } } ; CAR } ; | |
{ { { DIP { DUP } ; SWAP } } ; CDR } } ; | |
{ GET ; IF_NONE { { PUSH string "GET_FORCE" ; FAILWITH } } { {} } } } } ; | |
{ {} ; {} } } ; | |
{ { { { { PUSH nat 1 ; { { { DIP { DUP } ; SWAP } } ; CDR } } ; | |
SUB } } ; | |
ABS } ; | |
{ DIP { DUP } ; SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CDR ; DIP { CAR } } } ; | |
DIP { DROP } ; | |
{ SWAP ; PAIR } } ; | |
DIP { DROP } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; CAR } } ; | |
CAR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { DUP ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } ; | |
{ { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
CDR } } ; | |
{ DIP { SOME } ; UPDATE } } } ; | |
{ {} ; DIP { DROP } } } ; | |
{ DUP ; | |
{ DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; DIP { DROP } ; PAIR } ; | |
PAIR } ; | |
{ SWAP ; | |
DIP { { SWAP ; DIP { { SWAP ; DIP { DIP { DROP } } } } } } } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
CAR } } ; | |
CDR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { DUP ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
{ DIP { NONE (pair address nat) } ; UPDATE } } } ; | |
{ {} ; DIP { DROP } } } ; | |
{ DUP ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; | |
{ DIP { { DUP ; CDR ; DIP { CAR } } } ; | |
DIP { DROP } ; | |
{ SWAP ; PAIR } } ; | |
PAIR } ; | |
{ SWAP ; | |
DIP { { SWAP ; | |
DIP { { SWAP ; DIP { { SWAP ; DIP { DIP { DROP } } } } } } } } } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; CDR } ; | |
{ { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
CAR } } ; | |
MUL } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { { {} ; SOURCE } } ; | |
{ CONTRACT unit ; | |
IF_NONE | |
{ { PUSH string "bad address for get_contract" ; FAILWITH } } | |
{ {} } } } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { DUP ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } ; | |
{ {} ; UNIT } } ; | |
TRANSFER_TOKENS } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; { { NIL operation ; { DIP { DUP } ; SWAP } } ; CONS } } ; | |
{ {} ; {} } } } ; | |
{} ; | |
{ { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
{ DIP { DUP } ; SWAP } } ; | |
PAIR } ; | |
DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { {} } ; DROP } } ; DROP } } ; DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } } } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
PUSH (lambda | |
(pair nat (pair (pair (map nat (pair mutez nat)) (map nat (pair address nat))) nat)) | |
(pair (list operation) | |
(pair (pair (map nat (pair mutez nat)) (map nat (pair address nat))) nat))) | |
{ { {} ; | |
{ { {} ; { {} ; { { DUP } ; CAR } } ; { {} ; {} } } ; | |
{ {} ; | |
{ {} ; { { { DIP { DUP } ; SWAP } } ; CDR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { { DUP } ; CAR } } ; CAR } ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; | |
{ GET ; IF_NONE { { PUSH string "GET_FORCE" ; FAILWITH } } { {} } } } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { PUSH nat 1 ; { { { DIP { DUP } ; SWAP } } ; CDR } } ; | |
ADD } ; | |
{ { { DIP { DUP } ; SWAP } } ; CAR } } ; | |
MUL } } ; | |
{ {} ; {} } } ; | |
{ { { PUSH string "\"Not enough money\"" ; | |
{ { { {} ; AMOUNT } ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; | |
{ COMPARE ; GT } } } ; | |
IF { { FAILWITH } } { { DROP ; PUSH unit Unit } } } ; | |
DROP } ; | |
{ {} ; { {} ; NIL operation } ; { {} ; {} } } ; | |
{ { { PUSH nat 1 ; | |
{ { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
CDR } } ; | |
ADD } ; | |
{ DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CDR ; DIP { CAR } } } ; | |
DIP { DROP } ; | |
{ SWAP ; PAIR } } ; | |
{ SWAP ; DIP { { SWAP ; DIP { DIP { DROP } } } } } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
CAR } } ; | |
CAR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { DUP ; | |
{ DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
{ DIP { SOME } ; UPDATE } } } ; | |
{ {} ; DIP { DROP } } } ; | |
{ DUP ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; DIP { DROP } ; PAIR } ; | |
PAIR } ; | |
{ SWAP ; | |
DIP { { SWAP ; | |
DIP { { SWAP ; DIP { { SWAP ; DIP { DIP { DROP } } } } } } } } } } ; | |
{ {} ; | |
{ {} ; | |
{ { { { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
CAR } } ; | |
CDR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { DUP ; | |
{ { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
{ {} ; SOURCE } } ; | |
PAIR } ; | |
{ { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
CDR } } ; | |
{ DIP { SOME } ; UPDATE } } } ; | |
{ {} ; DIP { DROP } } } ; | |
{ DUP ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CAR ; DIP { CDR } } } ; | |
{ DIP { { DUP ; CDR ; DIP { CAR } } } ; | |
DIP { DROP } ; | |
{ SWAP ; PAIR } } ; | |
PAIR } ; | |
{ SWAP ; | |
DIP { { SWAP ; | |
DIP { { SWAP ; | |
DIP { { SWAP ; DIP { { SWAP ; DIP { DIP { DROP } } } } } } } } } } } } ; | |
{ { { PUSH nat 1 ; | |
{ { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
CDR } } ; | |
ADD } ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
SWAP ; | |
{ DIP { { DUP ; CDR ; DIP { CAR } } } ; | |
DIP { DROP } ; | |
{ SWAP ; PAIR } } ; | |
{ SWAP ; | |
DIP { { SWAP ; | |
DIP { { SWAP ; | |
DIP { { SWAP ; DIP { { SWAP ; DIP { DIP { DROP } } } } } } } } } } } } } ; | |
{} ; | |
{ { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
{ DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
PAIR } ; | |
DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { {} } ; DROP } } ; DROP } } ; DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } } } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
CAR } } ; | |
{ {} ; {} } } ; | |
{ {} ; | |
{ {} ; | |
{ { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
CDR } } ; | |
{ {} ; {} } } } ; | |
{} ; | |
{ { DIP { DUP } ; SWAP } ; | |
IF_LEFT | |
{ { { DUP ; | |
IF_LEFT | |
{ { { DUP ; | |
{ {} ; | |
{} ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
{} ; | |
{ { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; | |
PAIR } ; | |
EXEC } ; | |
{} ; | |
DIP { { DIP { DIP { DIP { DIP { DIP { DIP { DIP { DIP { DIP { {} } } } } } } } } } ; | |
DROP } } } ; | |
{} ; | |
DIP { { DIP { DIP { DIP { DIP { DIP { DIP { DIP { DIP { {} } } } } } } } } ; | |
DROP } } } } | |
{ { { DUP ; | |
{ {} ; | |
{} ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
{} ; | |
{ { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; | |
PAIR } ; | |
EXEC } ; | |
{} ; | |
DIP { { DIP { DIP { DIP { DIP { DIP { DIP { DIP { DIP { DIP { {} } } } } } } } } } ; | |
DROP } } } ; | |
{} ; | |
DIP { { DIP { DIP { DIP { DIP { DIP { DIP { DIP { DIP { {} } } } } } } } } ; | |
DROP } } } } } ; | |
{} ; | |
DIP { { DIP { DIP { DIP { DIP { DIP { DIP { DIP { {} } } } } } } } ; | |
DROP } } } } | |
{ { { DUP ; | |
{ {} ; | |
{} ; | |
{ DIP { { DIP { { DIP { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } } ; | |
SWAP } } ; | |
SWAP } } ; | |
SWAP } ; | |
{} ; | |
{ { { DIP { { DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; SWAP } ; | |
{ DIP { { DIP { DUP } ; SWAP } } ; SWAP } } ; | |
PAIR } ; | |
EXEC } ; | |
{} ; | |
DIP { { DIP { DIP { DIP { DIP { DIP { DIP { DIP { DIP { {} } } } } } } } } ; | |
DROP } } } ; | |
{} ; | |
DIP { { DIP { DIP { DIP { DIP { DIP { DIP { DIP { {} } } } } } } } ; | |
DROP } } } } } ; | |
DIP { { DIP { { DIP { { DIP { { DIP { { DIP { { DIP { {} } ; DROP } } ; DROP } } ; DROP } } ; | |
DROP } } ; | |
DROP } } ; | |
DROP } } } } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment