本文整理汇总了Golang中github.com/shiftcurrency/shift/common.Address.Big方法的典型用法代码示例。如果您正苦于以下问题:Golang Address.Big方法的具体用法?Golang Address.Big怎么用?Golang Address.Big使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/shiftcurrency/shift/common.Address
的用法示例。
在下文中一共展示了Address.Big方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: opCreate
func opCreate(instr instruction, env Environment, context *Context, memory *Memory, stack *stack) {
var (
value = stack.pop()
offset, size = stack.pop(), stack.pop()
input = memory.Get(offset.Int64(), size.Int64())
gas = new(big.Int).Set(context.Gas)
addr common.Address
)
context.UseGas(context.Gas)
ret, suberr, ref := env.Create(context, input, gas, context.Price, value)
if suberr != nil {
stack.push(new(big.Int))
} else {
// gas < len(ret) * Createinstr.dataGas == NO_CODE
dataGas := big.NewInt(int64(len(ret)))
dataGas.Mul(dataGas, params.CreateDataGas)
if context.UseGas(dataGas) {
ref.SetCode(ret)
}
addr = ref.Address()
stack.push(addr.Big())
}
}
示例2: Run
//.........这里部分代码省略.........
self.log(pc, op, context.Gas, cost, mem, stack, context, nil)
switch op {
case ADD:
x, y := stack.pop(), stack.pop()
base.Add(x, y)
U256(base)
// pop result back on the stack
stack.push(base)
case SUB:
x, y := stack.pop(), stack.pop()
base.Sub(x, y)
U256(base)
// pop result back on the stack
stack.push(base)
case MUL:
x, y := stack.pop(), stack.pop()
base.Mul(x, y)
U256(base)
// pop result back on the stack
stack.push(base)
case DIV:
x, y := stack.pop(), stack.pop()
if y.Cmp(common.Big0) != 0 {
base.Div(x, y)
}
U256(base)
// pop result back on the stack
stack.push(base)
case SDIV:
x, y := S256(stack.pop()), S256(stack.pop())
if y.Cmp(common.Big0) == 0 {
base.Set(common.Big0)
} else {
n := new(big.Int)
if new(big.Int).Mul(x, y).Cmp(common.Big0) < 0 {
n.SetInt64(-1)
} else {
n.SetInt64(1)
}
base.Div(x.Abs(x), y.Abs(y)).Mul(base, n)
U256(base)
}
stack.push(base)
case MOD:
x, y := stack.pop(), stack.pop()
if y.Cmp(common.Big0) == 0 {
base.Set(common.Big0)
} else {