Search in sources :

Example 31 with ObjectRef

use of io.nuls.contract.vm.ObjectRef 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 32 with ObjectRef

use of io.nuls.contract.vm.ObjectRef 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 33 with ObjectRef

use of io.nuls.contract.vm.ObjectRef 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 34 with ObjectRef

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

the class NativeObject method getClass.

/**
 * native
 *
 * @see Object#getClass()
 */
private static Result getClass(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    ObjectRef objectRef = methodArgs.objectRef;
    ObjectRef classRef = frame.heap.getClassRef(objectRef.getVariableType().getDesc());
    Result result = NativeMethod.result(methodCode, classRef, frame);
    return result;
}
Also used : ObjectRef(io.nuls.contract.vm.ObjectRef) Result(io.nuls.contract.vm.Result)

Example 35 with ObjectRef

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

the class NativeObject method hashCode.

/**
 * native
 *
 * @see Object#hashCode()
 */
private static Result hashCode(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
    ObjectRef objectRef = methodArgs.objectRef;
    int hashCode = NativeSystem.identityHashCode(objectRef);
    Result result = NativeMethod.result(methodCode, hashCode, frame);
    return result;
}
Also used : ObjectRef(io.nuls.contract.vm.ObjectRef) Result(io.nuls.contract.vm.Result)

Aggregations

ObjectRef (io.nuls.contract.vm.ObjectRef)74 Result (io.nuls.contract.vm.Result)35 VariableType (io.nuls.contract.vm.code.VariableType)18 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 TypeInsnNode (org.objectweb.asm.tree.TypeInsnNode)3 Frame (io.nuls.contract.vm.Frame)2 FieldInsnNode (org.objectweb.asm.tree.FieldInsnNode)2 BiMap (com.google.common.collect.BiMap)1 BlockHeaderDto (io.nuls.contract.entity.BlockHeaderDto)1 VM (io.nuls.contract.vm.VM)1 ErrorException (io.nuls.contract.vm.exception.ErrorException)1 ArrayList (java.util.ArrayList)1 LinkedHashMap (java.util.LinkedHashMap)1 Map (java.util.Map)1 AccountState (org.ethereum.core.AccountState)1 DataWord (org.ethereum.vm.DataWord)1 Type (org.objectweb.asm.Type)1