5 func opCheckOutput(vm *virtualMachine) error {
6 err := vm.applyCost(16)
11 code, err := vm.pop(true)
15 vmVersion, err := vm.popInt64(true)
22 assetID, err := vm.pop(true)
26 amount, err := vm.popInt64(true)
33 data, err := vm.pop(true)
37 index, err := vm.popInt64(true)
45 if vm.context.CheckOutput == nil {
49 ok, err := vm.context.CheckOutput(uint64(index), data, uint64(amount), assetID, uint64(vmVersion), code, vm.expansionReserved)
53 return vm.pushBool(ok, true)
56 func opAsset(vm *virtualMachine) error {
57 err := vm.applyCost(1)
62 if vm.context.AssetID == nil {
65 return vm.push(*vm.context.AssetID, true)
68 func opAmount(vm *virtualMachine) error {
69 err := vm.applyCost(1)
74 if vm.context.Amount == nil {
77 return vm.pushInt64(int64(*vm.context.Amount), true)
80 func opProgram(vm *virtualMachine) error {
81 err := vm.applyCost(1)
86 return vm.push(vm.context.Code, true)
89 func opMinTime(vm *virtualMachine) error {
90 err := vm.applyCost(1)
95 if vm.context.MinTimeMS == nil {
98 return vm.pushInt64(int64(*vm.context.MinTimeMS), true)
101 func opMaxTime(vm *virtualMachine) error {
102 err := vm.applyCost(1)
107 if vm.context.MaxTimeMS == nil {
110 maxTimeMS := *vm.context.MaxTimeMS
111 if maxTimeMS == 0 || maxTimeMS > math.MaxInt64 {
112 maxTimeMS = uint64(math.MaxInt64)
115 return vm.pushInt64(int64(maxTimeMS), true)
118 func opEntryData(vm *virtualMachine) error {
119 err := vm.applyCost(1)
124 if vm.context.EntryData == nil {
128 return vm.push(*vm.context.EntryData, true)
131 func opTxData(vm *virtualMachine) error {
132 err := vm.applyCost(1)
137 if vm.context.TxData == nil {
140 return vm.push(*vm.context.TxData, true)
143 func opIndex(vm *virtualMachine) error {
144 err := vm.applyCost(1)
149 if vm.context.DestPos == nil {
152 return vm.pushInt64(int64(*vm.context.DestPos), true)
155 func opEntryID(vm *virtualMachine) error {
156 err := vm.applyCost(1)
160 return vm.push(vm.context.EntryID, true)
163 func opOutputID(vm *virtualMachine) error {
164 err := vm.applyCost(1)
169 if vm.context.SpentOutputID == nil {
172 return vm.push(*vm.context.SpentOutputID, true)
175 func opNonce(vm *virtualMachine) error {
176 err := vm.applyCost(1)
181 if vm.context.AnchorID == nil {
184 return vm.push(*vm.context.AnchorID, true)
187 func opNextProgram(vm *virtualMachine) error {
188 err := vm.applyCost(1)
193 if vm.context.NextConsensusProgram == nil {
196 return vm.push(*vm.context.NextConsensusProgram, true)
199 func opBlockTime(vm *virtualMachine) error {
200 err := vm.applyCost(1)
205 if vm.context.BlockTimeMS == nil {
208 return vm.pushInt64(int64(*vm.context.BlockTimeMS), true)