Created
April 17, 2020 17:35
-
-
Save nginnever/f6e3c17d540b1a32275d9250385eb6c8 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
# atomex.tz | |
{ parameter | |
(or (or (pair %initiate | |
(pair (pair (bytes %hashedSecret) (address %participant)) | |
(pair (nat %payoffAmount) (timestamp %refundTime))) | |
(pair (address %tokenAddress) (nat %totalAmount))) | |
(bytes %redeem)) | |
(bytes %refund)) ; | |
storage | |
(pair (big_map | |
bytes | |
(pair (pair (pair (address %initiator) (address %participant)) | |
(pair (nat %payoffAmount) (timestamp %refundTime))) | |
(pair (address %tokenAddress) (nat %totalAmount)))) | |
unit) ; | |
code { DUP ; | |
LAMBDA | |
(pair (pair address address) (pair address nat)) | |
operation | |
{ DUP ; | |
CAR ; | |
CAR ; | |
CONTRACT %transfer (pair address (pair address nat)) ; | |
IF_NONE | |
{ PUSH string "bad address for get_entrypoint (%transfer)" ; FAILWITH } | |
{} ; | |
DIP { DUP } ; | |
SWAP ; | |
CAR ; | |
CDR ; | |
DIP { DIP { DUP } ; | |
SWAP ; | |
CDR ; | |
CAR ; | |
DIP { DIP { DUP } ; SWAP ; CDR ; CDR } ; | |
PAIR } ; | |
PAIR ; | |
DIP { DUP ; PUSH mutez 0 } ; | |
TRANSFER_TOKENS ; | |
DUP ; | |
DIP { DROP 3 } } ; | |
SWAP ; | |
CDR ; | |
AMOUNT ; | |
PUSH mutez 0 ; | |
COMPARE ; | |
NEQ ; | |
IF { PUSH string "This contract do not accept tez" ; FAILWITH } | |
{ PUSH unit Unit } ; | |
DIP 3 { DUP } ; | |
DIG 3 ; | |
CAR ; | |
IF_LEFT | |
{ DUP ; | |
IF_LEFT | |
{ DUP ; | |
DIP { DIP 3 { DUP } ; DIG 3 } ; | |
PAIR ; | |
DUP ; | |
CAR ; | |
DIP { DUP } ; | |
SWAP ; | |
CDR ; | |
DIP { DUP } ; | |
SWAP ; | |
CAR ; | |
CDR ; | |
CAR ; | |
DIP { DIP { DUP } ; SWAP ; CDR ; CDR } ; | |
COMPARE ; | |
GT ; | |
IF { PUSH string "" ; FAILWITH } { PUSH unit Unit } ; | |
DIP 2 { DUP } ; | |
DIG 2 ; | |
CAR ; | |
CDR ; | |
CDR ; | |
NOW ; | |
SWAP ; | |
COMPARE ; | |
LE ; | |
IF { PUSH string "" ; FAILWITH } { PUSH unit Unit } ; | |
DIP 3 { DUP } ; | |
DIG 3 ; | |
CAR ; | |
CAR ; | |
CAR ; | |
SIZE ; | |
PUSH nat 32 ; | |
COMPARE ; | |
NEQ ; | |
IF { PUSH string "" ; FAILWITH } { PUSH unit Unit } ; | |
DIP 4 { DUP } ; | |
DIG 4 ; | |
CAR ; | |
CAR ; | |
CDR ; | |
SOURCE ; | |
SWAP ; | |
COMPARE ; | |
EQ ; | |
IF { PUSH string "" ; FAILWITH } { PUSH unit Unit } ; | |
DIP 5 { DUP } ; | |
DIG 5 ; | |
CAR ; | |
CAR ; | |
CAR ; | |
DIP { DIP 4 { DUP } ; DIG 4 ; CAR } ; | |
GET ; | |
IF_NONE | |
{ DIP 4 { DUP } ; | |
DIG 4 ; | |
DIP 5 { DUP } ; | |
DIG 5 ; | |
DIP 7 { DUP } ; | |
DIG 7 ; | |
CAR ; | |
CAR ; | |
CAR ; | |
DIP { DIP 7 { DUP } ; | |
DIG 7 ; | |
CAR ; | |
CAR ; | |
CDR ; | |
SOURCE ; | |
PAIR ; | |
DIP { DIP 7 { DUP } ; | |
DIG 7 ; | |
CAR ; | |
CDR ; | |
CAR ; | |
DIP { DIP 7 { DUP } ; DIG 7 ; CAR ; CDR ; CDR } ; | |
PAIR } ; | |
PAIR ; | |
DIP { DIP 7 { DUP } ; | |
DIG 7 ; | |
CDR ; | |
CAR ; | |
DIP { DIP 7 { DUP } ; DIG 7 ; CDR ; CDR } ; | |
PAIR } ; | |
PAIR ; | |
SOME ; | |
DIP { DIP 6 { DUP } ; DIG 6 ; CAR } } ; | |
UPDATE ; | |
SWAP ; | |
CDR ; | |
SWAP ; | |
PAIR ; | |
DIP { DROP } } | |
{ PUSH string "" ; FAILWITH } ; | |
DIP 6 { DUP } ; | |
DIG 6 ; | |
CDR ; | |
CAR ; | |
SOURCE ; | |
SWAP ; | |
PAIR ; | |
DIP { SELF ; ADDRESS ; DIP { DIP 6 { DUP } ; DIG 6 ; CDR ; CDR } ; PAIR } ; | |
PAIR ; | |
DIP { DIP 12 { DUP } ; DIG 12 } ; | |
EXEC ; | |
DUP ; | |
NIL operation ; | |
SWAP ; | |
CONS ; | |
DIP { DIP { DUP } ; SWAP } ; | |
PAIR ; | |
DIP { DROP 10 } } | |
{ DUP ; | |
DIP { DIP 3 { DUP } ; DIG 3 } ; | |
PAIR ; | |
DUP ; | |
CAR ; | |
DIP { DUP } ; | |
SWAP ; | |
CDR ; | |
DIP { DUP } ; | |
SWAP ; | |
SIZE ; | |
PUSH nat 32 ; | |
COMPARE ; | |
NEQ ; | |
IF { PUSH string "" ; FAILWITH } { PUSH unit Unit } ; | |
DIP 2 { DUP } ; | |
DIG 2 ; | |
SHA256 ; | |
SHA256 ; | |
DUP ; | |
DIP { DIP 2 { DUP } ; DIG 2 ; CAR } ; | |
GET ; | |
IF_NONE { PUSH string "MAP FIND" ; FAILWITH } {} ; | |
DUP ; | |
CAR ; | |
CDR ; | |
CDR ; | |
NOW ; | |
COMPARE ; | |
GE ; | |
IF { PUSH string "" ; FAILWITH } { PUSH unit Unit } ; | |
DIP 4 { DUP } ; | |
DIG 4 ; | |
DIP 3 { DUP } ; | |
DIG 3 ; | |
DIP { DIP 5 { DUP } ; | |
DIG 5 ; | |
CAR ; | |
NONE (pair (pair (pair (address %initiator) (address %participant)) | |
(pair (nat %payoffAmount) (timestamp %refundTime))) | |
(pair (address %tokenAddress) (nat %totalAmount))) } ; | |
UPDATE ; | |
SWAP ; | |
CDR ; | |
SWAP ; | |
PAIR ; | |
DIP 2 { DUP } ; | |
DIG 2 ; | |
CDR ; | |
CDR ; | |
DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CDR ; CAR } ; | |
SUB ; | |
ABS ; | |
DIP 3 { DUP } ; | |
DIG 3 ; | |
CDR ; | |
CAR ; | |
DIP { SELF ; ADDRESS } ; | |
PAIR ; | |
DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CAR ; CDR ; DIP { DUP } ; PAIR } ; | |
PAIR ; | |
DIP { DIP 13 { DUP } ; DIG 13 } ; | |
EXEC ; | |
DIP 4 { DUP } ; | |
DIG 4 ; | |
CDR ; | |
CAR ; | |
DIP { DIP 4 { DUP } ; DIG 4 ; CAR ; CDR ; CAR } ; | |
PAIR ; | |
DUP ; | |
CDR ; | |
DUP ; | |
PUSH nat 0 ; | |
SWAP ; | |
COMPARE ; | |
GT ; | |
IF { DIP { DUP } ; | |
SWAP ; | |
CAR ; | |
DIP { SELF ; ADDRESS } ; | |
PAIR ; | |
DIP { DUP ; SOURCE ; PAIR } ; | |
PAIR ; | |
DIP { DIP 16 { DUP } ; DIG 16 } ; | |
EXEC ; | |
NIL operation ; | |
SWAP ; | |
CONS } | |
{ NIL operation } ; | |
DIP { DROP 2 ; DUP } ; | |
SWAP ; | |
DIP { DUP } ; | |
CONS ; | |
DIP { DIP 3 { DUP } ; DIG 3 } ; | |
PAIR ; | |
DIP { DROP 12 } } ; | |
DIP { DROP } } | |
{ DUP ; | |
DIP { DIP 2 { DUP } ; DIG 2 } ; | |
PAIR ; | |
DUP ; | |
CAR ; | |
DIP { DUP } ; | |
SWAP ; | |
CDR ; | |
DIP { DUP } ; | |
SWAP ; | |
DIP { DUP ; CAR } ; | |
GET ; | |
IF_NONE { PUSH string "MAP FIND" ; FAILWITH } {} ; | |
DUP ; | |
CAR ; | |
CDR ; | |
CDR ; | |
NOW ; | |
COMPARE ; | |
LT ; | |
IF { PUSH string "" ; FAILWITH } { PUSH unit Unit } ; | |
DIP 2 { DUP } ; | |
DIG 2 ; | |
DIP 4 { DUP } ; | |
DIG 4 ; | |
DIP { DIP 3 { DUP } ; | |
DIG 3 ; | |
CAR ; | |
NONE (pair (pair (pair (address %initiator) (address %participant)) | |
(pair (nat %payoffAmount) (timestamp %refundTime))) | |
(pair (address %tokenAddress) (nat %totalAmount))) } ; | |
UPDATE ; | |
SWAP ; | |
CDR ; | |
SWAP ; | |
PAIR ; | |
DIP 2 { DUP } ; | |
DIG 2 ; | |
CDR ; | |
CAR ; | |
DIP { SELF ; ADDRESS } ; | |
PAIR ; | |
DIP { DIP 2 { DUP } ; | |
DIG 2 ; | |
CAR ; | |
CAR ; | |
CAR ; | |
DIP { DIP 2 { DUP } ; DIG 2 ; CDR ; CDR } ; | |
PAIR } ; | |
PAIR ; | |
DIP { DIP 9 { DUP } ; DIG 9 } ; | |
EXEC ; | |
DUP ; | |
NIL operation ; | |
SWAP ; | |
CONS ; | |
DIP { DIP { DUP } ; SWAP } ; | |
PAIR ; | |
DIP { DROP 8 } } ; | |
DIP { DROP 4 } } } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment