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 index, err := vm.popInt64(true)
39 if vm.context.CheckOutput == nil {
43 ok, err := vm.context.CheckOutput(uint64(index), uint64(amount), assetID, uint64(vmVersion), code, vm.expansionReserved)
47 return vm.pushBool(ok, true)
50 func opAsset(vm *virtualMachine) error {
51 err := vm.applyCost(1)
56 if vm.context.AssetID == nil {
59 return vm.push(*vm.context.AssetID, true)
62 func opAmount(vm *virtualMachine) error {
63 err := vm.applyCost(1)
68 if vm.context.Amount == nil {
71 return vm.pushInt64(int64(*vm.context.Amount), true)
74 func opProgram(vm *virtualMachine) error {
75 err := vm.applyCost(1)
80 return vm.push(vm.context.Code, true)
83 func opIndex(vm *virtualMachine) error {
84 err := vm.applyCost(1)
89 if vm.context.DestPos == nil {
92 return vm.pushInt64(int64(*vm.context.DestPos), true)
95 func opEntryID(vm *virtualMachine) error {
96 err := vm.applyCost(1)
100 return vm.push(vm.context.EntryID, true)
103 func opOutputID(vm *virtualMachine) error {
104 err := vm.applyCost(1)
109 if vm.context.SpentOutputID == nil {
112 return vm.push(*vm.context.SpentOutputID, true)
115 func opBlockHeight(vm *virtualMachine) error {
116 err := vm.applyCost(1)
121 if vm.context.BlockHeight == nil {
124 return vm.pushInt64(int64(*vm.context.BlockHeight), true)