forked from TrueCloudLab/neoneo-go
core: remove Block.GetTransactions, Block.GetTransactionsCount interops
Updated System.Blockchain.GetBlock interop replaced the functionality of the following interops: System.Block.GetTransactions System.Block.GetTransactionCount Neo.Block.GetTransactions Neo.Block.GetTransactionsCount
This commit is contained in:
parent
7a2d37cf7e
commit
8b7abd36c9
5 changed files with 0 additions and 63 deletions
|
@ -55,10 +55,6 @@ var syscalls = map[string]map[string]string{
|
||||||
"GetConsensusData": "Neo.Header.GetConsensusData",
|
"GetConsensusData": "Neo.Header.GetConsensusData",
|
||||||
"GetNextConsensus": "Neo.Header.GetNextConsensus",
|
"GetNextConsensus": "Neo.Header.GetNextConsensus",
|
||||||
},
|
},
|
||||||
"block": {
|
|
||||||
"GetTransactionCount": "Neo.Block.GetTransactionCount",
|
|
||||||
"GetTransactions": "Neo.Block.GetTransactions",
|
|
||||||
},
|
|
||||||
"contract": {
|
"contract": {
|
||||||
"GetScript": "Neo.Contract.GetScript",
|
"GetScript": "Neo.Contract.GetScript",
|
||||||
"IsPayable": "Neo.Contract.IsPayable",
|
"IsPayable": "Neo.Contract.IsPayable",
|
||||||
|
|
|
@ -250,35 +250,6 @@ func headerGetTimestamp(ic *interop.Context, v *vm.VM) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// blockGetTransactionCount returns transactions count in the given block.
|
|
||||||
func blockGetTransactionCount(ic *interop.Context, v *vm.VM) error {
|
|
||||||
blockInterface := v.Estack().Pop().Value()
|
|
||||||
block, ok := blockInterface.(*block.Block)
|
|
||||||
if !ok {
|
|
||||||
return errors.New("value is not a block")
|
|
||||||
}
|
|
||||||
v.Estack().PushVal(len(block.Transactions))
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// blockGetTransactions returns transactions from the given block.
|
|
||||||
func blockGetTransactions(ic *interop.Context, v *vm.VM) error {
|
|
||||||
blockInterface := v.Estack().Pop().Value()
|
|
||||||
block, ok := blockInterface.(*block.Block)
|
|
||||||
if !ok {
|
|
||||||
return errors.New("value is not a block")
|
|
||||||
}
|
|
||||||
if len(block.Transactions) > vm.MaxArraySize {
|
|
||||||
return errors.New("too many transactions")
|
|
||||||
}
|
|
||||||
txes := make([]stackitem.Item, 0, len(block.Transactions))
|
|
||||||
for _, tx := range block.Transactions {
|
|
||||||
txes = append(txes, stackitem.NewInterop(tx))
|
|
||||||
}
|
|
||||||
v.Estack().PushVal(txes)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// engineGetScriptContainer returns transaction that contains the script being
|
// engineGetScriptContainer returns transaction that contains the script being
|
||||||
// run.
|
// run.
|
||||||
func engineGetScriptContainer(ic *interop.Context, v *vm.VM) error {
|
func engineGetScriptContainer(ic *interop.Context, v *vm.VM) error {
|
||||||
|
|
|
@ -62,8 +62,6 @@ func getInteropFromSlice(ic *interop.Context, slice []interop.Function) func(uin
|
||||||
|
|
||||||
// All lists are sorted, keep 'em this way, please.
|
// All lists are sorted, keep 'em this way, please.
|
||||||
var systemInterops = []interop.Function{
|
var systemInterops = []interop.Function{
|
||||||
{Name: "System.Block.GetTransactionCount", Func: blockGetTransactionCount, Price: 1},
|
|
||||||
{Name: "System.Block.GetTransactions", Func: blockGetTransactions, Price: 1},
|
|
||||||
{Name: "System.Blockchain.GetBlock", Func: bcGetBlock, Price: 250},
|
{Name: "System.Blockchain.GetBlock", Func: bcGetBlock, Price: 250},
|
||||||
{Name: "System.Blockchain.GetContract", Func: bcGetContract, Price: 100},
|
{Name: "System.Blockchain.GetContract", Func: bcGetContract, Price: 100},
|
||||||
{Name: "System.Blockchain.GetHeader", Func: bcGetHeader, Price: 100},
|
{Name: "System.Blockchain.GetHeader", Func: bcGetHeader, Price: 100},
|
||||||
|
@ -104,8 +102,6 @@ var neoInterops = []interop.Function{
|
||||||
{Name: "Neo.Account.GetBalance", Func: accountGetBalance, Price: 1},
|
{Name: "Neo.Account.GetBalance", Func: accountGetBalance, Price: 1},
|
||||||
{Name: "Neo.Account.GetScriptHash", Func: accountGetScriptHash, Price: 1},
|
{Name: "Neo.Account.GetScriptHash", Func: accountGetScriptHash, Price: 1},
|
||||||
{Name: "Neo.Account.IsStandard", Func: accountIsStandard, Price: 100},
|
{Name: "Neo.Account.IsStandard", Func: accountIsStandard, Price: 100},
|
||||||
{Name: "Neo.Block.GetTransactionCount", Func: blockGetTransactionCount, Price: 1},
|
|
||||||
{Name: "Neo.Block.GetTransactions", Func: blockGetTransactions, Price: 1},
|
|
||||||
{Name: "Neo.Blockchain.GetAccount", Func: bcGetAccount, Price: 100},
|
{Name: "Neo.Blockchain.GetAccount", Func: bcGetAccount, Price: 100},
|
||||||
{Name: "Neo.Blockchain.GetContract", Func: bcGetContract, Price: 100},
|
{Name: "Neo.Blockchain.GetContract", Func: bcGetContract, Price: 100},
|
||||||
{Name: "Neo.Blockchain.GetHeader", Func: bcGetHeader, Price: 100},
|
{Name: "Neo.Blockchain.GetHeader", Func: bcGetHeader, Price: 100},
|
||||||
|
|
|
@ -34,8 +34,6 @@ func TestUnexpectedNonInterops(t *testing.T) {
|
||||||
funcs := []func(*interop.Context, *vm.VM) error{
|
funcs := []func(*interop.Context, *vm.VM) error{
|
||||||
accountGetBalance,
|
accountGetBalance,
|
||||||
accountGetScriptHash,
|
accountGetScriptHash,
|
||||||
blockGetTransactionCount,
|
|
||||||
blockGetTransactions,
|
|
||||||
contractGetScript,
|
contractGetScript,
|
||||||
contractGetStorageContext,
|
contractGetStorageContext,
|
||||||
contractIsPayable,
|
contractIsPayable,
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
/*
|
|
||||||
Package block provides getters for Neo Block structure.
|
|
||||||
*/
|
|
||||||
package block
|
|
||||||
|
|
||||||
import "github.com/nspcc-dev/neo-go/pkg/interop/blockchain"
|
|
||||||
|
|
||||||
// Block represents a NEO block, it's an opaque data structure that you can get
|
|
||||||
// data from only using functions from this package. It's similar in function to
|
|
||||||
// the Block class in the Neo .net framework. To use it you need to get it via
|
|
||||||
// blockchain.GetBlock function call.
|
|
||||||
type Block struct{}
|
|
||||||
|
|
||||||
// GetTransactionCount returns the number of recorded transactions in the given
|
|
||||||
// block. It uses `Neo.Block.GetTransactionCount` syscall internally.
|
|
||||||
func GetTransactionCount(b Block) int {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetTransactions returns a slice of transactions recorded in the given block.
|
|
||||||
// It uses `Neo.Block.GetTransactions` syscall internally.
|
|
||||||
func GetTransactions(b Block) []blockchain.Transaction {
|
|
||||||
return []blockchain.Transaction{}
|
|
||||||
}
|
|
Loading…
Reference in a new issue