コード例 #1
0
def arithmetic_op(vm, func, arity):
    if len(vm.stack) < arity:
        raise Exception("Not enought arguments")
    args = [cast_to_number(vm.stack.pop()) for _ in range(arity)]
    result = func(*reversed(args))
    vm.stack.append(valtype_from_number(result))
コード例 #2
0
ファイル: stack.py プロジェクト: wizardofozzie/coinpy
def op_depth(vm, instr):
    vm.stack.append(valtype_from_number(len(vm.stack)))
コード例 #3
0
ファイル: push_data.py プロジェクト: sirk390/coinpy
def push_bignum_instruction(bn):
    return push_data_instruction(valtype_from_number(bn))
コード例 #4
0
ファイル: splice.py プロジェクト: wizardofozzie/coinpy
def op_size(vm, instr):
    if len(vm.stack) < 1:
        raise Exception("OP_SIZE: Not enought arguments")
    vm.stack.append(valtype_from_number(len(vm.stack[-1])))
コード例 #5
0
ファイル: splice.py プロジェクト: sirk390/coinpy
def op_size(vm, instr):
    if len(vm.stack) < 1:
        raise Exception("OP_SIZE: Not enought arguments")
    vm.stack.append(valtype_from_number(len(vm.stack[-1])))
コード例 #6
0
def push_bignum_instruction(bn):
    return push_data_instruction(valtype_from_number(bn))
コード例 #7
0
ファイル: pushdata.py プロジェクト: wizardofozzie/coinpy
def op_1negate(vm, instr):
    vm.stack.append(valtype_from_number(-1))
コード例 #8
0
ファイル: pushdata.py プロジェクト: wizardofozzie/coinpy
def op_push_1_16(vm, instr):
    vm.stack.append(valtype_from_number(instr.opcode - (OP_1 - 1)))
コード例 #9
0
ファイル: pushdata.py プロジェクト: wizardofozzie/coinpy
def op_push_0(vm, instr):
    vm.stack.append(valtype_from_number(0))  # changed from ""
コード例 #10
0
ファイル: arithmetic.py プロジェクト: sirk390/coinpy
def arithmetic_op(vm, func, arity):
    if len(vm.stack) < arity:
        raise Exception("Not enought arguments")
    args = [cast_to_number(vm.stack.pop()) for _ in range(arity)]
    result = func(*reversed(args))
    vm.stack.append(valtype_from_number(result))