You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

22 lines
1.1 KiB

{
(def 'gav 0x8a40bfaa73256b60764c1bf40675a99083efb075)
(def 'alloc (len) (asm msize 0 1 len msize add sub mstore8))
(def 'send (to value) (call (- (gas) 21) to value 0 0 0 0))
(def 'send (gaslimit to value) (call gaslimit to value 0 0 0 0))
(def 'msg (gaslimit to value data datasize outsize) { [32]:outsize [0]:(alloc @32) (call gaslimit to value data datasize @0 @32) @0 })
(def 'msg (gaslimit to value data datasize) { (call gaslimit to value data datasize 0 32) @0 })
(def 'msg (gaslimit to value data) { [0] data (msg gaslimit to value 0 32) })
(def 'create (to value code) { [0]:(msize) (create to value @0 (lll code @0) })
(def 'sha3 (val) { [0]:val (sha3 0 32) })
(def 'return (val) { [0]:val (return 0 32) })
(def 'makesvar (name pos) { (def name (sload pos)) (def name (v) (sstore pos v)) } )
(def 'svarcount 0)
(def 'svar (name) { (makesvar name svarcount) (def 'svarcount (+ svarcount 1)) } )
(def 'makevar (name pos) { (def name (mload pos)) (def name (v) (mstore pos v)) } )
(def 'varcount 128) ;; Allow 4 x 32 byte slots for us to use.
(def 'var (name) { (makevar name varcount) (def 'varcount (+ varcount 32)) } )
}