static public object[] Call(string consAddress, string data) { LuaVMEnv luaVMEnv = Entity.Root.GetComponent <LuaVMEnv>(); var rel = luaVMEnv.LuaCall(LuaVMStack.s_dbSnapshot, consAddress, LuaVMStack.s_consAddress, data, LuaVMStack.s_transfer.height, out object[] result); if (rel) { return(result); } return(null); }
static public string BalanceOf(string consAddress, string address) { LuaVMEnv luaVMEnv = Entity.Root.GetComponent <LuaVMEnv>(); var data = $"balanceOf(\"{address}\")"; bool rel = luaVMEnv.LuaCall(LuaVMStack.s_dbSnapshot, consAddress, LuaVMStack.s_consAddress, data, LuaVMStack.s_transfer.height, out object[] result); if (rel && result != null && result.Length >= 1) { var amount = ((string)result[0]) ?? "0"; return(amount); } return("0"); }
static public bool TransferToken(string consAddress, string addressIn, string addressOut, string amount) { LuaVMEnv luaVMEnv = Entity.Root.GetComponent <LuaVMEnv>(); var data = $"transfer(\"{addressOut}\",\"{amount}\")"; var transfer = LuaVMStack.s_transfer; if (transfer.addressIn != addressIn && LuaVMStack.s_consAddress != addressIn && LuaVMStack.s_sender != addressIn) { return(false); } if (luaVMEnv.IsERC(LuaVMStack.s_dbSnapshot, consAddress, "ERCSat")) { return(Transfer(addressIn, addressOut, amount)); } return(luaVMEnv.LuaCall(LuaVMStack.s_dbSnapshot, consAddress, addressIn, data, LuaVMStack.s_transfer.height, out object[] result)); }