x
1118
parameter (or
(or
(or
(or (pair %approve (address %spender) (nat %value))
(pair %approveCAS (nat %expected)
(pair (address %spender) (nat %value))))
(or (pair %burn (address %from) (nat %value)) (bytes %claimRefund)))
(or
(or (bytes %confirmSwap)
(pair %getAllowance (pair (address %owner) (address %spender))
(contract %callback nat)))
(or (pair %getBalance (address %owner) (contract %callback nat))
(pair %getSwap (bytes %secretHash)
(pair (address %swapInitiator)
(contract %callback (pair
(pair
(pair (bool %confirmed)
(nat %fee))
(pair (address %from)
(timestamp %releaseTime)))
(pair (address %to)
(nat %value)))))))))
(or
(or
(or (pair %getTotalSupply (unit %u) (contract %callback nat))
(pair %lock (bool %confirmed)
(pair (nat %fee)
(pair (timestamp %releaseTime)
(pair (bytes %secretHash)
(pair (address %to) (nat %value)))))))
(or (pair %mint (address %to) (nat %value))
(pair %redeem (bytes %secret) (address %swapInitiator))))
(or (or (address %setAdministrator) (bool %setPause))
(or (address %setPauseGuardian)
(pair %transfer (address %from) (pair (address %to) (nat %value)))))));
storage (pair
(pair %bridge (pair (address %lockSaver) (big_map %outcomes bytes bytes))
(big_map %swaps (pair bytes address)
(pair
(pair (pair (bool %confirmed) (nat %fee))
(pair (address %from)
(timestamp %releaseTime)))
(pair (address %to) (nat %value)))))
(pair %token
(pair
(pair (address %admin) (big_map %approvals (pair address address) nat))
(pair (big_map %ledger address nat) (address %pauseGuardian)))
(pair (bool %paused) (nat %totalSupply))));
code { LAMBDA
(pair (pair address address) (big_map (pair address address) nat))
nat
{ DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; DIG 2 ; CAR ; CAR ; PAIR ; GET ; IF_NONE { PUSH nat 0 } {} } ;
LAMBDA
(pair (pair address address) (pair nat (big_map (pair address address) nat)))
(big_map (pair address address) nat)
{ DUP ; CDR ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; SOME ; DIG 2 ; DUP ; DUG 3 ; CAR ; CDR ; DIG 3 ; CAR ; CAR ; PAIR ; UPDATE } ;
NIL operation ;
LAMBDA
(pair address (big_map address nat))
nat
{ DUP ; CDR ; SWAP ; CAR ; GET ; IF_NONE { PUSH nat 0 } {} } ;
LAMBDA
(pair (pair address nat) (big_map address nat))
(big_map address nat)
{ DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; SOME ; DIG 2 ; CAR ; CAR ; UPDATE } ;
LAMBDA
(pair nat nat)
nat
{ DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 2 ;
DUP ;
DUG 3 ;
COMPARE ;
GE ;
IF {} { PUSH string "NotEnoughBalance" ; FAILWITH } ;
SWAP ;
SUB ;
ABS } ;
LAMBDA
(pair (pair (big_map address nat) nat)
(pair
(pair (pair address (big_map (pair address address) nat))
(pair (big_map address nat) address))
(pair bool nat)))
(pair
(pair (pair address (big_map (pair address address) nat))
(pair (big_map address nat) address))
(pair bool nat))
{ DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CDR } ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
CAR ;
CDR ;
DIP { DUP ; CAR ; SWAP ; CDR ; CAR } ;
SWAP ;
PAIR ;
SWAP ;
PAIR } ;
DIG 3 ;
DUP ;
DUG 4 ;
DIG 3 ;
DUP ;
DUG 4 ;
DIG 3 ;
DUP ;
DUG 4 ;
PAIR ;
PAIR ;
LAMBDA
(pair
(pair
(pair (lambda (pair nat nat) nat)
(lambda (pair (pair address nat) (big_map address nat))
(big_map address nat)))
(lambda (pair address (big_map address nat)) nat))
(pair (pair address (pair address nat))
(pair
(pair (pair address (big_map (pair address address) nat))
(pair (big_map address nat) address))
(pair bool nat))))
(pair
(pair (pair address (big_map (pair address address) nat))
(pair (big_map address nat) address))
(pair bool nat))
{ DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 3 ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
CAR ;
CDR ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
PAIR ;
DIG 5 ;
DUP ;
DUG 6 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CDR ;
SWAP ;
PAIR ;
DIG 3 ;
SWAP ;
EXEC ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
SWAP ;
DIG 3 ;
DUP ;
DUG 4 ;
CAR ;
PAIR ;
PAIR ;
DIG 3 ;
DUP ;
DUG 4 ;
SWAP ;
EXEC ;
DUP ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
CAR ;
PAIR ;
DIG 5 ;
SWAP ;
EXEC ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
CDR ;
ADD ;
DIG 3 ;
CDR ;
CAR ;
PAIR ;
PAIR ;
DIG 2 ;
SWAP ;
EXEC ;
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CDR } ;
PAIR ;
SWAP ;
PAIR ;
PAIR } ;
SWAP ;
APPLY ;
LAMBDA
(pair
(pair (pair address (big_map (pair address address) nat))
(pair (big_map address nat) address))
(pair bool nat))
unit
{ CDR ; CAR ; IF { PUSH string "TokenOperationsArePaused" ; FAILWITH } { UNIT } } ;
LAMBDA
(pair
(pair (pair address (big_map (pair address address) nat))
(pair (big_map address nat) address))
(pair bool nat))
unit
{ CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF { UNIT } { PUSH string "SenderIsNotAdmin" ; FAILWITH } } ;
NIL operation ;
LAMBDA
(pair (pair bytes address)
(big_map (pair bytes address)
(pair (pair (pair bool nat) (pair address timestamp))
(pair address nat))))
(pair (pair (pair bool nat) (pair address timestamp)) (pair address nat))
{ DUP ;
CDR ;
SWAP ;
CAR ;
GET ;
IF_NONE { PUSH string "SwapLockDoesNotExist" ; FAILWITH } {} } ;
LAMBDA
(pair (pair bytes address)
(big_map (pair bytes address)
(pair (pair (pair bool nat) (pair address timestamp))
(pair address nat))))
unit
{ DUP ;
CDR ;
SWAP ;
CAR ;
GET ;
IF_NONE { UNIT } { DROP ; PUSH string "SwapLockAlreadyExists" ; FAILWITH } } ;
LAMBDA
(pair (pair bytes address)
(big_map (pair bytes address)
(pair (pair (pair bool nat) (pair address timestamp))
(pair address nat))))
(pair (pair (pair bool nat) (pair address timestamp)) (pair address nat))
{ DUP ;
CDR ;
SWAP ;
CAR ;
GET ;
IF_NONE { PUSH string "SwapLockDoesNotExist" ; FAILWITH } {} } ;
LAMBDA
(pair (pair (pair bool nat) (pair address timestamp)) (pair address nat))
bool
{ NOW ; SWAP ; CAR ; CDR ; CDR ; COMPARE ; GE } ;
LAMBDA
(pair (pair bytes address)
(big_map (pair bytes address)
(pair (pair (pair bool nat) (pair address timestamp))
(pair address nat))))
(pair (pair (pair bool nat) (pair address timestamp)) (pair address nat))
{ DUP ;
CDR ;
SWAP ;
CAR ;
GET ;
IF_NONE { PUSH string "SwapLockDoesNotExist" ; FAILWITH } {} } ;
DIG 16 ;
DUP ;
DUG 17 ;
CDR ;
DIG 17 ;
CAR ;
IF_LEFT
{ DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
IF_LEFT
{ DIG 2 ;
DROP ;
IF_LEFT
{ 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 ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP ;
DIG 4 ;
SWAP ;
EXEC ;
DROP ;
DUP ;
CAR ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
SENDER ;
PAIR ;
PAIR ;
DIG 6 ;
SWAP ;
EXEC ;
PUSH nat 0 ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
COMPARE ;
GT ;
PUSH nat 0 ;
DIG 2 ;
COMPARE ;
GT ;
AND ;
IF
{ DROP 2 ;
SWAP ;
DROP ;
SWAP ;
DROP ;
PUSH string "UnsafeAllowanceChange" ;
FAILWITH }
{ DUP ;
CAR ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
PAIR ;
DIG 2 ;
CAR ;
SENDER ;
PAIR ;
PAIR ;
DIG 4 ;
SWAP ;
EXEC ;
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CDR ; SWAP ; CAR ; CAR } ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
PAIR } ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP ;
DIG 4 ;
SWAP ;
EXEC ;
DROP ;
DUP ;
CAR ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CAR ;
SENDER ;
PAIR ;
PAIR ;
DIG 6 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
SWAP ;
COMPARE ;
NEQ ;
IF
{ DROP 2 ;
SWAP ;
DROP ;
SWAP ;
DROP ;
PUSH string "AllowanceMismatch" ;
FAILWITH }
{ DUP ;
CAR ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CDR ;
PAIR ;
DIG 2 ;
CDR ;
CAR ;
SENDER ;
PAIR ;
PAIR ;
DIG 4 ;
SWAP ;
EXEC ;
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CDR ; SWAP ; CAR ; CAR } ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
PAIR } ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR } }
{ DIG 12 ;
DROP ;
DIG 12 ;
DROP ;
DIG 12 ;
DROP ;
IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 5 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
PAIR ;
DUP ;
CDR ;
DUP ;
DIG 6 ;
SWAP ;
EXEC ;
DROP ;
DUP ;
DIG 5 ;
SWAP ;
EXEC ;
DROP ;
SWAP ;
CAR ;
DUP ;
DUG 2 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 9 ;
SWAP ;
EXEC ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
SWAP ;
PAIR ;
DIG 7 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
CAR ;
SWAP ;
DIG 2 ;
PAIR ;
PAIR ;
DIG 6 ;
SWAP ;
EXEC ;
DIG 2 ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CDR ;
SUB ;
ABS ;
DIG 2 ;
SWAP ;
DIG 2 ;
PAIR ;
PAIR ;
DIG 3 ;
SWAP ;
EXEC ;
DIG 2 ;
PAIR ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR }
{ DIG 5 ;
DROP ;
DIG 7 ;
DROP ;
DIG 7 ;
DROP ;
DIG 7 ;
DROP ;
DIG 7 ;
DROP ;
PAIR ;
DUP ;
CDR ;
DUP ;
CDR ;
DIG 6 ;
SWAP ;
EXEC ;
DROP ;
SENDER ;
DIG 2 ;
CAR ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH string "SenderIsNotTheInitiator" ; FAILWITH }
{ DROP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 4 ;
DUP ;
DUG 5 ;
SWAP ;
EXEC ;
DIG 3 ;
SWAP ;
EXEC ;
IF { PUSH string "FundsLock" ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 3 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
CAR ;
PAIR ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DIG 5 ;
DUP ;
DUG 6 ;
SWAP ;
EXEC ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
DIG 2 ;
CDR ;
CAR ;
PAIR ;
DIG 3 ;
DUP ;
DUG 4 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DIG 4 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
PAIR ;
DIG 2 ;
CAR ;
DIG 2 ;
PAIR ;
DUP ;
CDR ;
DUP ;
CDR ;
DIG 2 ;
CAR ;
NONE (pair (pair (pair bool nat) (pair address timestamp))
(pair address nat)) ;
SWAP ;
UPDATE ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CDR ;
SWAP ;
PAIR ;
SWAP ;
PAIR } } }
{ DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
IF_LEFT
{ IF_LEFT
{ DIG 6 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SWAP ;
PAIR ;
DUP ;
CDR ;
SENDER ;
DIG 2 ;
CAR ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH string "SenderIsNotTheInitiator" ; FAILWITH }
{ DROP } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 4 ;
DUP ;
DUG 5 ;
SWAP ;
EXEC ;
PUSH bool True ;
SWAP ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF { PUSH string "SwapIsAlreadyConfirmed" ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 6 ;
SWAP ;
EXEC ;
DIG 5 ;
SWAP ;
EXEC ;
IF {} { PUSH string "SwapIsOver" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 4 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
CDR ;
DIG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CDR ;
SWAP ;
CAR ;
CDR ;
PUSH bool True ;
PAIR ;
PAIR ;
PAIR ;
DIG 3 ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SOME ;
DIG 2 ;
CAR ;
CAR ;
UPDATE ;
SWAP ;
CAR ;
PAIR ;
DIG 2 ;
PAIR ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CDR ;
SWAP ;
PAIR ;
SWAP ;
CAR ;
PAIR }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
DIG 2 ;
CDR ;
PAIR ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
PAIR ;
PAIR ;
DIG 4 ;
SWAP ;
EXEC ;
SWAP ;
CAR ;
CAR ;
PUSH mutez 0 ;
DIG 2 ;
TRANSFER_TOKENS ;
SWAP ;
NIL operation ;
DIG 2 ;
CONS ;
PAIR ;
CAR ;
PAIR } }
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
IF_LEFT
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
CAR ;
DIG 4 ;
CAR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
TRANSFER_TOKENS ;
SWAP ;
NIL operation ;
DIG 2 ;
CONS ;
PAIR ;
CAR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
DUP ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CAR ;
DIG 3 ;
DUP ;
DUG 4 ;
CAR ;
PAIR ;
PAIR ;
DIG 4 ;
SWAP ;
EXEC ;
DIG 2 ;
CDR ;
CDR ;
PUSH mutez 0 ;
DIG 2 ;
TRANSFER_TOKENS ;
SWAP ;
NIL operation ;
DIG 2 ;
CONS ;
PAIR ;
CAR ;
PAIR } } } }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 9 ;
DROP ;
IF_LEFT
{ DIG 11 ;
DROP ;
DIG 11 ;
DROP ;
DIG 11 ;
DROP ;
IF_LEFT
{ DIG 3 ;
DROP ;
DIG 4 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CDR ;
PUSH mutez 0 ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CDR ;
TRANSFER_TOKENS ;
SWAP ;
NIL operation ;
DIG 2 ;
CONS ;
PAIR ;
CAR ;
PAIR }
{ SWAP ;
DUP ;
CDR ;
DIG 5 ;
SWAP ;
EXEC ;
DROP ;
SENDER ;
DUP ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
CDR ;
CDR ;
CAR ;
PAIR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 5 ;
DUP ;
DUG 6 ;
SWAP ;
EXEC ;
DROP ;
PUSH int 600 ;
NOW ;
ADD ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
CAR ;
COMPARE ;
GE ;
IF {} { PUSH string "SwapTimeBelowThreshold" ; FAILWITH } ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
CDR ;
CDR ;
CDR ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
CDR ;
CDR ;
CDR ;
CAR ;
PAIR ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
CDR ;
CAR ;
DIG 4 ;
DUP ;
DUG 5 ;
PAIR ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
CAR ;
DIG 7 ;
DUP ;
DUG 8 ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
PAIR ;
PAIR ;
DUP ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP ;
DIG 2 ;
DUP ;
DUG 3 ;
PAIR ;
DIG 7 ;
SWAP ;
EXEC ;
DROP ;
DIG 2 ;
CAR ;
CDR ;
DIG 2 ;
PAIR ;
PAIR ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DIG 2 ;
CAR ;
CAR ;
SWAP ;
SOME ;
SWAP ;
UPDATE ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
CAR ;
DIG 4 ;
CDR ;
CDR ;
CDR ;
CDR ;
CDR ;
ADD ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
SWAP ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CAR ;
CAR ;
PAIR ;
DIG 3 ;
PAIR ;
PAIR ;
DIG 4 ;
SWAP ;
EXEC ;
DUG 2 ;
DIP { DUP ; CDR ; SWAP ; CAR ; CAR } ;
SWAP ;
PAIR ;
PAIR ;
CAR ;
PAIR ;
SWAP ;
PAIR } }
{ DIG 2 ;
DROP ;
IF_LEFT
{ DIG 2 ;
DROP ;
DIG 5 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
PAIR ;
DUP ;
CDR ;
DUP ;
DIG 6 ;
SWAP ;
EXEC ;
DROP ;
DUP ;
DIG 5 ;
SWAP ;
EXEC ;
DROP ;
SWAP ;
CAR ;
DUP ;
DUG 2 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 8 ;
SWAP ;
EXEC ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
ADD ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
CAR ;
SWAP ;
DIG 2 ;
PAIR ;
PAIR ;
DIG 6 ;
SWAP ;
EXEC ;
DIG 2 ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CDR ;
ADD ;
DIG 2 ;
SWAP ;
DIG 2 ;
PAIR ;
PAIR ;
DIG 3 ;
SWAP ;
EXEC ;
DIG 2 ;
PAIR ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR }
{ DIG 4 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
SWAP ;
DUP ;
CDR ;
DIG 5 ;
SWAP ;
EXEC ;
DROP ;
PUSH nat 32 ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
SIZE ;
COMPARE ;
EQ ;
IF {} { PUSH string "InvalidSecretLength" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SHA256 ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 5 ;
DUP ;
DUG 6 ;
SWAP ;
EXEC ;
PUSH bool True ;
SWAP ;
CAR ;
CAR ;
CAR ;
COMPARE ;
EQ ;
IF {} { PUSH string "SwapIsNotConfirmed" ; FAILWITH } ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
DIG 5 ;
SWAP ;
EXEC ;
DUP ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
ADD ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
SWAP ;
DIG 2 ;
CDR ;
CAR ;
PAIR ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
DIG 6 ;
SWAP ;
EXEC ;
DIG 3 ;
DUP ;
DUG 4 ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
DIG 2 ;
PAIR ;
DUP ;
CDR ;
DUP ;
CDR ;
DIG 2 ;
CAR ;
NONE (pair (pair (pair bool nat) (pair address timestamp))
(pair address nat)) ;
SWAP ;
UPDATE ;
SWAP ;
CAR ;
PAIR ;
DIG 3 ;
CAR ;
DIG 3 ;
PAIR ;
PAIR ;
DUP ;
CDR ;
DUP ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
DIG 3 ;
CAR ;
CAR ;
SWAP ;
SOME ;
SWAP ;
UPDATE ;
DIP { DUP ; CDR ; SWAP ; CAR ; CAR } ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
CDR ;
SWAP ;
PAIR ;
SWAP ;
PAIR } } }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
IF_LEFT
{ DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
PAIR ;
DUP ;
CDR ;
DUP ;
DIG 5 ;
SWAP ;
EXEC ;
DROP ;
SWAP ;
CAR ;
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CDR ; SWAP ; CAR ; CDR } ;
PAIR ;
PAIR ;
PAIR ;
DIG 2 ;
PAIR ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
IF
{ DIG 4 ;
DROP ;
DUP ;
CAR ;
CDR ;
CDR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ UNIT }
{ PUSH string "SenderIsNotPauseGuardian" ; FAILWITH } }
{ DUP ; DIG 5 ; SWAP ; EXEC } ;
DROP ;
SWAP ;
DIP { DUP ; CAR ; SWAP ; CDR ; CDR } ;
PAIR ;
SWAP ;
PAIR ;
DIG 2 ;
PAIR ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR } }
{ IF_LEFT
{ DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
PAIR ;
DUP ;
CDR ;
DUP ;
DIG 5 ;
SWAP ;
EXEC ;
DROP ;
SWAP ;
CAR ;
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CAR } ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DIG 2 ;
PAIR ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP ;
DIG 4 ;
SWAP ;
EXEC ;
DROP ;
SENDER ;
SWAP ;
DUP ;
DUG 2 ;
DIG 3 ;
DUP ;
DUG 4 ;
DIG 2 ;
DUP ;
DUG 3 ;
PAIR ;
PAIR ;
DUP ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DIG 2 ;
CDR ;
DUP ;
CAR ;
CDR ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
PAIR ;
DIG 9 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
DIG 4 ;
DUP ;
DUG 5 ;
COMPARE ;
NEQ ;
IF
{ SWAP ;
CAR ;
CAR ;
CDR ;
DIG 3 ;
DIG 3 ;
DUP ;
DUG 4 ;
CAR ;
PAIR ;
PAIR ;
DIG 10 ;
DUP ;
DUG 11 ;
SWAP ;
EXEC ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CDR ;
SWAP ;
COMPARE ;
GE ;
IF { UNIT } { PUSH string "NotEnoughAllowance" ; FAILWITH } }
{ SWAP ; DROP ; DIG 2 ; DROP ; PUSH unit Unit } ;
DROP ;
SWAP ;
CDR ;
CDR ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH string "NotEnoughBalance" ; FAILWITH } ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
EQ ;
IF
{ DROP ; DIG 5 ; DROP ; DIG 5 ; DROP }
{ DIG 2 ;
DUP ;
DUG 3 ;
PAIR ;
PAIR ;
DUP ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
DIG 2 ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CDR ;
DIG 3 ;
DUP ;
DUG 4 ;
DIG 2 ;
DUP ;
DUG 3 ;
PAIR ;
PAIR ;
DIG 10 ;
SWAP ;
EXEC ;
DIG 4 ;
CDR ;
CDR ;
DUP ;
DIG 2 ;
DUP ;
DUG 3 ;
COMPARE ;
GE ;
IF {} { PUSH string "NotEnoughAllowance" ; FAILWITH } ;
SWAP ;
SUB ;
ABS ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CAR ;
CDR ;
SWAP ;
PAIR ;
DIG 3 ;
DIG 2 ;
PAIR ;
PAIR ;
DIG 6 ;
SWAP ;
EXEC ;
DIP { DUP ; CDR ; SWAP ; CAR ; DUP ; CDR ; SWAP ; CAR ; CAR } ;
SWAP ;
PAIR ;
PAIR ;
PAIR } ;
SWAP ;
PAIR ;
DIG 2 ;
SWAP ;
EXEC ;
DIG 2 ;
PAIR ;
DUP ;
DUG 2 ;
CDR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR } } } } }