(vm *VM)
| 61 | } |
| 62 | |
| 63 | func opTuple(vm *VM) { |
| 64 | n := int64(vm.popInt()) |
| 65 | if n > int64(vm.contract.stack.Len()) || n < 0 { |
| 66 | panic(errors.Wrapf(errors.WithData(ErrUnderflow, "len(stack)", vm.contract.stack.Len()), "tuple %d", n)) |
| 67 | } |
| 68 | vals := make(Tuple, n) |
| 69 | for n > 0 { |
| 70 | n-- |
| 71 | v := vm.popData() |
| 72 | vals[n] = v |
| 73 | } |
| 74 | vm.chargeCreate(vals) |
| 75 | vm.push(vals) |
| 76 | } |
| 77 | |
| 78 | func opUntuple(vm *VM) { |
| 79 | t := vm.popTuple() |