x
920
1091
parameter (or
(or
(or (pair %approve (int %amount) (pair (address %f) (address %t)))
(or (address %blacklist) (pair %burn (address %address) (int %amount))))
(or (address %getAdministrator)
(or
(pair %getAllowance (pair %arg (address %owner) (address %spender))
(address %target))
(pair %getBalance (address %owner)
(contract %target (pair (nat %balance)
(address %owner)))))))
(or
(or (contract %getTotalSupply int)
(or (pair %getWhitelist (address %address) (address %target))
(pair %mint (address %address) (int %amount))))
(or (or (address %setAdministrator) (bool %setPause))
(or (pair %transfer (int %amount) (pair (address %f) (address %t)))
(address %whitelist)))));
storage (pair
(pair (address %administrator)
(big_map %balances address
(pair (map %approvals address int)
(pair (int %balance) (bool %whitelisted)))))
(pair (bool %paused) (int %totalSupply)));
code { DUP ;
CDR ;
SWAP ;
CAR ;
IF_LEFT
{ IF_LEFT
{ { IF_LEFT
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ { SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
IF
{ PUSH bool False }
{ { DUP ; CDR ; CAR ; SENDER ; COMPARE ; EQ } } } } ;
IF
{ {} }
{ { PUSH string "WrongCondition: (sp.sender == self.data.administrator) | ((~ self.data.paused) & (params.f == sp.sender))" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:32" ; FAILWITH } } {} ;
CDR ;
CDR ;
IF
{ {} }
{ { PUSH string "WrongCondition: self.data.balances[params.f].whitelisted" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
GET ;
IF_NONE { { PUSH string "Get-item:35" ; FAILWITH } } {} ;
CDR ;
CDR ;
IF
{ {} }
{ { PUSH string "WrongCondition: self.data.balances[params.t].whitelisted" ;
FAILWITH } } ;
PUSH int 0 ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:32" ; FAILWITH } } {} ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CDR ;
GET ;
IF_NONE { { PUSH string "Get-item:35" ; FAILWITH } } {} ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ { DUP ; CAR ; PUSH int 0 ; COMPARE ; EQ } } ;
IF
{ {} }
{ { PUSH string "WrongCondition: (self.data.balances[params.f].approvals.get(params.t, 0) == 0) | (params.amount == 0)" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { { PUSH string "set_in_top-any" ; FAILWITH } } {} ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
SOME ;
DIG 7 ;
DUP ;
DUG 8 ;
CDR ;
CDR ;
UPDATE ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
DROP 2 } }
{ IF_LEFT
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ {} }
{ { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ {} }
{ { SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
PUSH (option (pair (map %approvals address int)
(pair (int %balance) (bool %whitelisted)))) (Some (Pair {} (Pair 0 True))) ;
DIG 4 ;
DUP ;
DUG 5 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { { PUSH string "set_in_top-any" ; FAILWITH } } {} ;
DUP ;
CAR ;
SWAP ;
CDR ;
CAR ;
PUSH bool False ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
DROP 2 } }
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ {} }
{ { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
FAILWITH } } ;
DUP ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:56" ; FAILWITH } } {} ;
CDR ;
CAR ;
COMPARE ;
GE ;
IF
{ {} }
{ { PUSH string "WrongCondition: self.data.balances[params.address].balance >= params.amount" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { { PUSH string "set_in_top-any" ; FAILWITH } } {} ;
DUP ;
CAR ;
SWAP ;
CDR ;
CDR ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
DIG 8 ;
DUP ;
DUG 9 ;
CAR ;
CDR ;
DIG 8 ;
DUP ;
DUG 9 ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:56" ; FAILWITH } } {} ;
CDR ;
CAR ;
SUB ;
PAIR ;
SWAP ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CAR ;
SWAP ;
CDR ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
SUB ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 ;
DROP 2 } } } ;
NIL operation } }
{ IF_LEFT
{ { DUP ;
NIL operation ;
SWAP ;
CONTRACT address ;
IF_NONE { { PUSH unit Unit ; FAILWITH } } { {} } ;
PUSH mutez 0 ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CAR ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DROP } }
{ IF_LEFT
{ { DUP ;
CDR ;
NIL operation ;
SWAP ;
CONTRACT nat ;
IF_NONE { { PUSH unit Unit ; FAILWITH } } { {} } ;
PUSH mutez 0 ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CDR ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:71" ; FAILWITH } } {} ;
CAR ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CDR ;
GET ;
IF_NONE { { PUSH string "Get-item:71" ; FAILWITH } } {} ;
ISNAT ;
IF_NONE { { PUSH unit Unit ; FAILWITH } } { {} } ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DROP } }
{ { DUP ;
CDR ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 3 ;
DUP ;
DUG 4 ;
CAR ;
DIG 5 ;
DUP ;
DUG 6 ;
CAR ;
CDR ;
DIG 5 ;
DUP ;
DUG 6 ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:64" ; FAILWITH } } {} ;
CDR ;
CAR ;
ISNAT ;
IF_NONE { { PUSH unit Unit ; FAILWITH } } { {} } ;
PAIR %balance %owner ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DROP } } } } }
{ IF_LEFT
{ IF_LEFT
{ { DUP ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DROP } }
{ IF_LEFT
{ { DUP ;
CDR ;
NIL operation ;
SWAP ;
CONTRACT bool ;
IF_NONE { { PUSH unit Unit ; FAILWITH } } { {} } ;
PUSH mutez 0 ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
CDR ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:84" ; FAILWITH } } {} ;
CDR ;
CDR ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DROP } }
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ {} }
{ { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ {} }
{ { SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
PUSH (option (pair (map %approvals address int)
(pair (int %balance) (bool %whitelisted)))) (Some (Pair {} (Pair 0 True))) ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { { PUSH string "set_in_top-any" ; FAILWITH } } {} ;
DUP ;
CAR ;
SWAP ;
CDR ;
CDR ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
DIG 8 ;
DUP ;
DUG 9 ;
CAR ;
CDR ;
DIG 8 ;
DUP ;
DUG 9 ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:50" ; FAILWITH } } {} ;
CDR ;
CAR ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CAR ;
SWAP ;
CDR ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 ;
DROP 2 ;
NIL operation } } } }
{ { IF_LEFT
{ IF_LEFT
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ {} }
{ { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
PAIR ;
PAIR ;
DUG 2 ;
DROP 2 } }
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ {} }
{ { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CAR ;
SWAP ;
CDR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 ;
DROP 2 } } }
{ IF_LEFT
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ { SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
IF
{ PUSH bool False }
{ { DUP ;
CDR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ { DUP ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CAR ;
GET ;
IF_NONE
{ { PUSH string "Get-item:17" ; FAILWITH } }
{} ;
CAR ;
SENDER ;
GET ;
IF_NONE
{ { PUSH string "Get-item:-1" ; FAILWITH } }
{} ;
COMPARE ;
GE } } } } } } ;
IF
{ {} }
{ { PUSH string "WrongCondition: (sp.sender == self.data.administrator) | ((~ self.data.paused) & ((params.f == sp.sender) | (self.data.balances[params.f].approvals[sp.sender] >= params.amount)))" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:17" ; FAILWITH } } {} ;
CDR ;
CDR ;
IF
{ {} }
{ { PUSH string "WrongCondition: self.data.balances[params.f].whitelisted" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
GET ;
IF_NONE { { PUSH string "Get-item:23" ; FAILWITH } } {} ;
CDR ;
CDR ;
IF
{ {} }
{ { PUSH string "WrongCondition: self.data.balances[params.t].whitelisted" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CDR ;
MEM ;
IF
{ {} }
{ { SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
PUSH (option (pair (map %approvals address int)
(pair (int %balance) (bool %whitelisted)))) (Some (Pair {} (Pair 0 True))) ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP } } ;
DUP ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
CAR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:17" ; FAILWITH } } {} ;
CDR ;
CAR ;
COMPARE ;
GE ;
IF
{ {} }
{ { PUSH string "WrongCondition: self.data.balances[params.f].balance >= params.amount" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { { PUSH string "set_in_top-any" ; FAILWITH } } {} ;
DUP ;
CAR ;
SWAP ;
CDR ;
CDR ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
DIG 8 ;
DUP ;
DUG 9 ;
CAR ;
CDR ;
DIG 8 ;
DUP ;
DUG 9 ;
CDR ;
CAR ;
GET ;
IF_NONE { { PUSH string "Get-item:17" ; FAILWITH } } {} ;
CDR ;
CAR ;
SUB ;
PAIR ;
SWAP ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { { PUSH string "set_in_top-any" ; FAILWITH } } {} ;
DUP ;
CAR ;
SWAP ;
CDR ;
CDR ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
DIG 8 ;
DUP ;
DUG 9 ;
CAR ;
CDR ;
DIG 8 ;
DUP ;
DUG 9 ;
CDR ;
CDR ;
GET ;
IF_NONE { { PUSH string "Get-item:23" ; FAILWITH } } {} ;
CDR ;
CAR ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP ;
DUP ;
CDR ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ { SENDER ; DIG 2 ; DUP ; DUG 3 ; CAR ; CAR ; COMPARE ; NEQ } }
{ PUSH bool False } ;
IF
{ { SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ { PUSH string "set_in_top-any" ; FAILWITH } }
{} ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
DIG 8 ;
DUP ;
DUG 9 ;
CAR ;
CDR ;
DIG 8 ;
DUP ;
DUG 9 ;
CDR ;
CAR ;
GET ;
IF_NONE
{ { PUSH string "Get-item:17" ; FAILWITH } }
{} ;
CAR ;
SENDER ;
GET ;
IF_NONE
{ { PUSH string "Get-item:-1" ; FAILWITH } }
{} ;
SUB ;
SOME ;
SENDER ;
UPDATE ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP } }
{ {} } ;
DROP } }
{ { SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ {} }
{ { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ {} }
{ { SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
PUSH (option (pair (map %approvals address int)
(pair (int %balance) (bool %whitelisted)))) (Some (Pair {} (Pair 0 True))) ;
DIG 4 ;
DUP ;
DUG 5 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
SWAP ;
DROP } } ;
SWAP ;
DUP ;
DUG 2 ;
DUP ;
CDR ;
SWAP ;
CAR ;
DUP ;
CAR ;
SWAP ;
CDR ;
DUP ;
DIG 4 ;
DUP ;
DUG 5 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { { PUSH string "set_in_top-any" ; FAILWITH } } {} ;
DUP ;
CAR ;
SWAP ;
CDR ;
CAR ;
PUSH bool True ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
DROP 2 } } } ;
NIL operation } } } ;
PAIR }