Search in sources :

Example 11 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeBlock method getBlockHeader.

/**
 * native
 *
 * @see Block#getBlockHeader(long)
 */
private static Result getBlockHeader(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    long blockNumber = (long) methodArgs.invokeArgs[0];
    ObjectRef objectRef = getBlockHeader(blockNumber, frame);
    Result result = NativeMethod.result(methodCode, objectRef, frame);
    return result;
}
Also used : ObjectRef(io.nuls.contract.vm.ObjectRef) Result(io.nuls.contract.vm.Result)

Example 12 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeBlock method currentBlockHeader.

/**
 * native
 *
 * @see Block#currentBlockHeader()
 */
private static Result currentBlockHeader(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    long blockNumber = frame.vm.getProgramInvoke().getNumber();
    ObjectRef objectRef = getBlockHeader(blockNumber + 1, frame);
    Result result = NativeMethod.result(methodCode, objectRef, frame);
    return result;
}
Also used : ObjectRef(io.nuls.contract.vm.ObjectRef) Result(io.nuls.contract.vm.Result)

Example 13 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeBlock method newestBlockHeader.

/**
 * native
 *
 * @see Block#newestBlockHeader()
 */
private static Result newestBlockHeader(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    long blockNumber = frame.vm.getProgramInvoke().getNumber();
    ObjectRef objectRef = getBlockHeader(blockNumber, frame);
    Result result = NativeMethod.result(methodCode, objectRef, frame);
    return result;
}
Also used : ObjectRef(io.nuls.contract.vm.ObjectRef) Result(io.nuls.contract.vm.Result)

Example 14 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeDouble method toHexString.

/**
 * override
 *
 * @see Double#toHexString(double)
 */
private static Result toHexString(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    double d = (double) methodArgs.invokeArgs[0];
    String s = Double.toHexString(d);
    ObjectRef ref = frame.heap.newString(s);
    Result result = NativeMethod.result(methodCode, ref, frame);
    return result;
}
Also used : ObjectRef(io.nuls.contract.vm.ObjectRef) Result(io.nuls.contract.vm.Result)

Example 15 with Result

use of io.nuls.contract.vm.Result in project nuls by nuls-io.

the class NativeDouble method longBitsToDouble.

/**
 * native
 *
 * @see Double#longBitsToDouble(long)
 */
private static Result longBitsToDouble(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    long bits = (long) methodArgs.invokeArgs[0];
    double d = Double.longBitsToDouble(bits);
    Result result = NativeMethod.result(methodCode, d, frame);
    return result;
}
Also used : Result(io.nuls.contract.vm.Result)

Aggregations

Result (io.nuls.contract.vm.Result)63 ObjectRef (io.nuls.contract.vm.ObjectRef)35 VariableType (io.nuls.contract.vm.code.VariableType)12 MethodCode (io.nuls.contract.vm.code.MethodCode)6 ClassCode (io.nuls.contract.vm.code.ClassCode)5 MethodArgs (io.nuls.contract.vm.MethodArgs)3 MethodInsnNode (org.objectweb.asm.tree.MethodInsnNode)3 Frame (io.nuls.contract.vm.Frame)1 VM (io.nuls.contract.vm.VM)1 ErrorException (io.nuls.contract.vm.exception.ErrorException)1 ArrayList (java.util.ArrayList)1 AccountState (org.ethereum.core.AccountState)1 DataWord (org.ethereum.vm.DataWord)1