Commit graph

2310 commits

Author SHA1 Message Date
Evgenii Stratonikov
76a2f62fbd cli: use manifest during contract deployment 2020-06-11 10:45:25 +03:00
Evgenii Stratonikov
a03af55732 core: provide monotonically increasing ID for contracts
ID is a contract identifier which doesn't change during migration.
It is also used as a part of storage context instead of contract hash.
2020-06-11 10:45:25 +03:00
Evgenii Stratonikov
20616cc97f interop: perform contract checks in CheckWitness 2020-06-11 10:45:25 +03:00
Evgenii Stratonikov
7256efd1ed vm: implement (*VM).AddGas
Calculating interop prices can be tricky. It is more convenitent to burn
gas inside interops where necessary parameters are popped.
2020-06-11 10:45:25 +03:00
Evgenii Stratonikov
df958caf93 core: add Manifest to state.Contract 2020-06-11 10:45:24 +03:00
Evgenii Stratonikov
425277098c native: set ContractID for NEO & GAS contracts 2020-06-10 14:23:25 +03:00
Roman Khimov
c044bdc731
Merge pull request #1040 from nspcc-dev/feature/neo_to_system
Move interops from Neo.* to System.*
2020-06-10 12:26:16 +03:00
Evgenii Stratonikov
38d020d1a2 core: move Neo.Storage.* interops to System.* 2020-06-10 12:13:35 +03:00
Evgenii Stratonikov
0472a0b0b1 core: move Neo.Runtime/Enumerator/Iterator.* interops to System.* 2020-06-10 12:13:35 +03:00
Evgenii Stratonikov
97c6ac7a73 core: move Neo.Blockchain.* syscalls to System.* 2020-06-10 12:13:18 +03:00
Evgenii Stratonikov
3d3fe9398e core: remove Neo.Header/Witness/Account.* interops
They are not present in NEO3.
2020-06-10 12:13:18 +03:00
Roman Khimov
4264a758ac
Merge pull request #1039 from nspcc-dev/neo3/rpc/getversion
rpc: update `getversion` RPC-call
2020-06-10 11:08:45 +03:00
Anna Shaleva
3418e4f7f4 rpc: update getversion RPC-call
closes #1035
2020-06-10 10:47:11 +03:00
Roman Khimov
851e72fd97
Merge pull request #1034 from nspcc-dev/neo3/interop/gettransaction
*: implement System.Blockchain.GetTransaction and System.Blockchain.GetBlock interops
2020-06-10 10:16:03 +03:00
Anna Shaleva
8b7abd36c9 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
2020-06-09 23:24:11 +03:00
Anna Shaleva
7a2d37cf7e core: update System.Blockchain.GetBlock interop
closes #1025

Now we put on stack stackitem.Array instead of Interop, so we're able to
use all available block properties without extra interop getters.
Removed Neo.Blockchain.GetBlock interop as we don't need it anymore.
2020-06-09 23:24:04 +03:00
Anna Shaleva
e2187c0a96 core: remove Block.GetTransaction interops
Removed Neo.Block.GetTransaction and System.Block.GetTransaction
interops. These interops were replaced by new
System.Blockchain.GetTransactionFromBlock interop.
2020-06-09 22:54:21 +03:00
Anna Shaleva
d692de5ea4 core: add System.Blockchain.GetTransactionFromBlock interop 2020-06-09 22:54:16 +03:00
Anna Shaleva
1e63ae4b3f core: update System.Blockchain.GetTransactionHeight interop
Update System.Blockchain.GetTransactionHeight and removed
Neo.Blockchain.GetTransactionHeight interop as we don't need it.
2020-06-09 22:04:18 +03:00
Anna Shaleva
53655c5ac2 core: implement new System.Blockchain.GetTransaction interop
closes #1023

Now we put on stack stackitem.Array instead of Interop, so we don't
need old transaction-related interops anymore. Removed the following
interops:
	System.Transaction.GetHash
	Neo.Transaction.GetAttributes
	Neo.Transaction.GetHash
	Neo.Transaction.GetWitnesses
	Neo.Attribute.GetData
	Neo.Attribute.GetUsage

Also removed the following duplicated NEO interop:
	Neo.Blockchain.GetTransaction
2020-06-09 22:04:13 +03:00
Anna Shaleva
f2e3be6fef core: remove old AntShares interops
We don't need them anymore.
2020-06-09 20:54:00 +03:00
Roman Khimov
7ddcc35daf
Merge pull request #1024 from nspcc-dev/fix/interop
compiler: process interop together with package
2020-06-09 14:37:22 +03:00
Evgenii Stratonikov
ed45ff98e3 compiler: process interop together with package
Closes #913.
Provide package info in the funcScope to check if function is defined
insided an interop package. As a good side-effect bytecode for builtins from `util`
is no longer emitted.

Related #941.
2020-06-09 12:41:33 +03:00
Roman Khimov
795523f5cd
Merge pull request #1013 from nspcc-dev/neo3/vm/stackitem_refactoring
vm: move StackItem to a separate package
2020-06-08 15:30:44 +03:00
Anna Shaleva
4bf103ca12 core: update native contract data serialisation format
closes #908
2020-06-08 13:29:35 +03:00
Anna Shaleva
d0ccf456c4 vm: replace hardcoded Bool type constant with BooleanT type
There's no import cycle problem anymore, so we can do this. Part of #912
2020-06-08 13:27:13 +03:00
Anna Shaleva
7ca2807875 vm/encoding: move bigint from vm to encoding package 2020-06-08 13:27:13 +03:00
Anna Shaleva
783f5ecb01 vm: move StackItem to a separate package
closes #912
2020-06-08 13:27:08 +03:00
Roman Khimov
7afcee454f
Merge pull request #1015 from nspcc-dev/feature/base64
Use base64 in JSON
2020-06-08 13:03:22 +03:00
Evgenii Stratonikov
b28a8f2548 rpc: encode ContractState.Script in base64 2020-06-08 10:40:52 +03:00
Evgenii Stratonikov
138385e512 transaction: encode Script in base64 2020-06-08 10:31:51 +03:00
Evgenii Stratonikov
96c2cc0322 smartcontract: marshal ByteArray and Signature in base64 2020-06-08 10:27:39 +03:00
Evgenii Stratonikov
1fa25efa79 transaction: encode witness scripts in base64 2020-06-08 10:23:56 +03:00
Roman Khimov
cd307c3cd0
Merge pull request #1016 from nspcc-dev/drop-utxo
Drop UTXO
2020-06-06 22:54:57 +03:00
Roman Khimov
3677358057 rpc/result: fix block confirmations counting
It should be the same as for headers and transactions.
2020-06-05 19:27:39 +03:00
Roman Khimov
9b19b08e06 docker: drop default privnet-blocks bootstraps
They're no longer useful, their primary goal was to mint some GAS, but we have
plenty of GAS now right in the genesis block. They also contained NEO transfer
to non-multisig account, but that's easy to replicate using CLI. So keep the
bootstrapping feature (just in case), but drop the default files used for it.
2020-06-05 19:21:40 +03:00
Roman Khimov
63f4f34659 mempool: drop TxWithFee type
All the fees are in transaction, this makes no sense.
2020-06-05 19:21:40 +03:00
Roman Khimov
a986e2a064 *: drop support for old on-chain assets
You no longer can transfer them, so creating/renewing/storing doesn't make
much sense.
2020-06-05 19:21:37 +03:00
Roman Khimov
bf6435eeaa storage: drop STValidator prefix, it's not used 2020-06-05 19:20:16 +03:00
Roman Khimov
709146f295 transaction: drop Inputs and Outputs, forget UTXO 2020-06-05 19:20:16 +03:00
Roman Khimov
21efccd300 transaction: remove type field, set Version to 0
Two changes being done here, because they require a lot of updates to
tests. Now we're back into version 0 and we only have one type of
transaction.

It also removes GetType and GetScript interops, both are obsolete in Neo 3.
2020-06-05 19:20:16 +03:00
Roman Khimov
2ef9ec0756 rpc/server: allow specifying number for getblockheader
As it should be allowed.
2020-06-05 19:20:16 +03:00
Roman Khimov
dfb26f9ab2 block: don't attempt verification if there was a decoding error 2020-06-05 19:20:16 +03:00
Roman Khimov
f63b286c35 core: update genesis block to store timestamp in ms 2020-06-05 19:20:16 +03:00
Roman Khimov
35b30ccfdf core: drop OLDPUSH1, it's no longer needed
Fixes #927.
2020-06-05 19:20:16 +03:00
Roman Khimov
0a09a20900 transaction: drop Register transaction type
And everything associated like SystemFee configuration.
2020-06-05 19:20:16 +03:00
Roman Khimov
169c5ae775 transaction: drop Issue TX support 2020-06-05 19:20:16 +03:00
Roman Khimov
f445f7c602 transaction: drop Contract transaction type 2020-06-05 19:20:16 +03:00
Roman Khimov
6853470603 block: precompute ConsensusData hash on UnmarshalJSON
That's what we usually do for block or transaction hashes.
2020-06-05 19:20:16 +03:00
Roman Khimov
dfc7a9bfd1 transaction: drop Claim TX type 2020-06-05 19:20:16 +03:00