github.com/n1ghtfa1l/go-vnt@v0.6.4-alpha.6/core/wavm/tests/qlang/erc20.q (about) 1 program PERC20 do 2 contract ERC20 do 3 store moneys: Ĝ Map, [I32, U64] 4 #store approved: Ĝ Map, [I32 * I32, U64] 5 api decimals do 6 8_i32 7 end 8 api totalSupply do 9 1234567890123456_u64 10 end 11 api balanceOf(u: I32) do 12 @moneys[u] 13 end 14 api transfer(to: I32, val: U64) do 15 if @moneys[0] < val 16 false 17 else 18 @moneys[0] -= val 19 @moneys[to] += val 20 true 21 end 22 end 23 #api transferFrom(from: I32, to: I32, val: I64) do 24 # x = @approved[ME] 25 # return false unless x && x[from] >= val && @moneys[from] >= val 26 # x[from] -= val 27 # @moneys[from] -= val 28 # @moneys[to] += val 29 # return true 30 #end 31 #api approve(spender: I32, val: I64) do 32 # (@approved[ME] ||= Map(I32, U64).new)[spender] = val 33 #end 34 #api allowance(owner: I32, spender: I32) do 35 # x = @approved[owner] 36 # x || x[spender] 37 #end 38 end 39 end