3 func opCheckOutput(vm *virtualMachine) error {
4 err := vm.applyCost(16)
9 code, err := vm.pop(true)
13 vmVersion, err := vm.popInt64(true)
20 assetID, err := vm.pop(true)
24 amount, err := vm.popInt64(true)
31 data, err := vm.pop(true)
35 index, err := vm.popInt64(true)
43 if vm.context.CheckOutput == nil {
47 ok, err := vm.context.CheckOutput(uint64(index), data, uint64(amount), assetID, uint64(vmVersion), code, vm.expansionReserved)
51 return vm.pushBool(ok, true)
54 func opAsset(vm *virtualMachine) error {
55 err := vm.applyCost(1)
60 if vm.context.AssetID == nil {
63 return vm.push(*vm.context.AssetID, true)
66 func opAmount(vm *virtualMachine) error {
67 err := vm.applyCost(1)
72 if vm.context.Amount == nil {
75 return vm.pushInt64(int64(*vm.context.Amount), true)
78 func opProgram(vm *virtualMachine) error {
79 err := vm.applyCost(1)
84 return vm.push(vm.context.Code, true)
87 func opEntryData(vm *virtualMachine) error {
88 err := vm.applyCost(1)
93 if vm.context.EntryData == nil {
97 return vm.push(*vm.context.EntryData, true)
100 func opIndex(vm *virtualMachine) error {
101 err := vm.applyCost(1)
106 if vm.context.DestPos == nil {
109 return vm.pushInt64(int64(*vm.context.DestPos), true)
112 func opEntryID(vm *virtualMachine) error {
113 err := vm.applyCost(1)
117 return vm.push(vm.context.EntryID, true)
120 func opOutputID(vm *virtualMachine) error {
121 err := vm.applyCost(1)
126 if vm.context.SpentOutputID == nil {
129 return vm.push(*vm.context.SpentOutputID, true)
132 func opNonce(vm *virtualMachine) error {
133 err := vm.applyCost(1)
138 if vm.context.AnchorID == nil {
141 return vm.push(*vm.context.AnchorID, true)
144 func opBlockHeight(vm *virtualMachine) error {
145 err := vm.applyCost(1)
150 if vm.context.BlockHeight == nil {
153 return vm.pushInt64(int64(*vm.context.BlockHeight), true)