Roman Khimov
0ce3a12e87
core: check for key length in CheckWitness, fix #968
...
Only one type of keys is allowed here.
2020-05-21 14:27:41 +03:00
Roman Khimov
d0853c0471
Merge pull request #967 from nspcc-dev/fix-pickitem-and-vm-cli-2.x
...
Fix pickitem and vm cli 2.x
2020-05-21 13:37:35 +03:00
Roman Khimov
1721360dd1
vm: limit types accepted for PICKITEM, fix #965
...
bafdb916a0
change was wrong (probably brought
from neo-vm 3.0 at the state at which it existed back then), neo-vm 2.x
doesn't allow PICKITEM for arbitrary types.
2020-05-21 12:16:38 +03:00
Roman Khimov
328c6d7ce5
vm/cli: fix step command
...
It was setting a (wrong) breakpoint and couldn't then break out of it.
2020-05-21 12:15:50 +03:00
Roman Khimov
318ca55982
vm/cli: add push command to push something to the estack
2020-05-21 12:15:24 +03:00
Roman Khimov
5ec70b9fc2
Merge pull request #930 from nspcc-dev/fix/keys
...
Cache storage operations across same block tx executions
2020-05-21 11:08:42 +03:00
Evgenii Stratonikov
b96fe8173c
core,dao: implement Block-level storage caching
...
The order in which storage.Find items are returns depends on what items
were processed in previous transactions of the same block.
The easiest way to implement this sort of caching is to cache operations
with storage, flushing the only in `Persist()`.
2020-05-19 17:19:51 +03:00
Roman Khimov
03cc8c118f
Merge pull request #954 from nspcc-dev/fix/struct_fields
...
compiler: support using OP= with struct fields and slice elements
2020-05-19 16:03:42 +03:00
Roman Khimov
f0d6b0a639
Merge pull request #956 from nspcc-dev/doc-update-2.x
...
Documentation update for 2.x
2020-05-19 16:02:55 +03:00
Roman Khimov
ddbc9057c8
docs: update RPC document, add notifications spec
2020-05-19 13:13:15 +03:00
Roman Khimov
94d6b5466f
docs: update compiler.md, bring it up to date
...
And add one more reference to it into the main README.
2020-05-19 13:13:15 +03:00
Roman Khimov
0079dfb695
interop: add some top-level doc.go
2020-05-19 13:13:15 +03:00
Roman Khimov
2c921f5277
docs: drop runtime.md
...
We have now way better godoc for interop functions, so this document makes
little sense and it's not referenced anywhere, so it's safe to drop it.
2020-05-19 13:13:15 +03:00
Roman Khimov
8c19b8f2a1
compiler/interop: add support for working with witnesses
2020-05-19 13:13:15 +03:00
Roman Khimov
085d50b430
interop/util: extend documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
ec2bf7d52e
interop/transaction: update documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
a587274351
compiler|transaction: remove transaction.GetUnspentCoins support
...
It's useless. Even though there is Neo.Transaction.GetUnspentCoins syscall
that can be used, its return type is an interop structure that's not accepted
by any other syscall, so you can't really do anything with it. And there is no
such interface for the .net Framework.
2020-05-19 13:13:15 +03:00
Roman Khimov
514f862b81
compiler|transaction: fix transaction.GetScript build, add to interop
...
There is no such syscall as Neo.Transaction.GetScript and GetScript should be
available for contract's use.
2020-05-19 13:13:15 +03:00
Roman Khimov
d0a3ce25ff
compiler/storage: add read-only related interops
2020-05-19 13:13:15 +03:00
Roman Khimov
07742bdf46
interop/storage: update documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
dff0f724cd
interop/runtime: update documentation, fix Notify
...
Notify doesn't return anything!
2020-05-19 13:13:15 +03:00
Roman Khimov
eb82661f6b
compiler/iterator: add missing iterator.Concat function
...
We have a syscall for it, so it should be exposed.
2020-05-19 13:13:15 +03:00
Roman Khimov
a17bd6176f
interop/iterator: documentation update
2020-05-19 13:13:15 +03:00
Roman Khimov
31d7b07eb5
interop/input|output: update documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
6c0553da47
interop/header: update documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
d5d497ccd7
compiler: add support for enumerator interop package
2020-05-19 13:13:15 +03:00
Roman Khimov
8fb4bbca4e
interop/enumerator: update doc, fix Next return value
2020-05-19 13:13:15 +03:00
Roman Khimov
5cebd4a7a2
compiler/engine: add dynamic APPCALL generation, fix #914
...
Previously we could generate dynamic appcall with a kludge of
AppCall([]byte{/* 20 zeroes */, realScriptHash, args...)
Now there is a separate function for this.
2020-05-19 13:13:15 +03:00
Roman Khimov
78b2387640
interop/engine: update documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
10abac4362
interop/crypto: update documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
f0047b4055
interop/contract: update documentation, fix some interfaces
...
Some functions were just not correct in their interfaces.
2020-05-19 13:13:15 +03:00
Roman Khimov
a43f2234dd
core: fix Neo.Contract.GetStorageContext security check
...
This syscall should only work for contracts created by current transaction and
that is what is supposed to be checked here. Do so by looking at the
differences between ic.dao and original lower DAO.
2020-05-19 13:13:15 +03:00
Roman Khimov
541d56a874
gitignore: don't ignore blockchain(s) directories
...
It interferes with interop/blockchain and it's not a default directory for
chain DBs.
2020-05-19 13:13:15 +03:00
Roman Khimov
5d941364bd
compiler/interop: expose GetTransactionHeight
...
And sort syscall names as they change the indentation anyway.
2020-05-19 13:13:15 +03:00
Roman Khimov
80b8b50f02
core: fix Neo.Blockchain.GetValidators implementation
...
It should return keys, attempting to push []*state.Validator to the stack
would probably lead to failure.
2020-05-19 13:13:15 +03:00
Roman Khimov
9e94895bb0
interop/blockchain: update documentation
2020-05-19 13:13:15 +03:00
Roman Khimov
d09c3b1e27
interop/block: update documentation, fix GetTransaction
...
GetTransaction never worked with hash, it works with indexes.
2020-05-19 13:13:15 +03:00
Roman Khimov
7abd35b358
compiler: add support for attribute syscalls
2020-05-19 13:13:15 +03:00
Roman Khimov
77c5f28b09
interop/attribute: update documentation
2020-05-19 13:13:14 +03:00
Roman Khimov
f69e654260
compiler: add missing asset syscalls, sort them
2020-05-19 13:13:14 +03:00
Roman Khimov
cbcc8e160f
asset: update documentation and fix Create/Renew
...
Both Create and Renew have things returned from them.
2020-05-19 13:13:14 +03:00
Evgenii Stratonikov
231a5189a2
compiler: allow using OP= with struct fields and slice elements
...
Do it in a generic way, there is no need in restricting to only
variables.
2020-05-19 12:42:37 +03:00
Roman Khimov
9c46e79745
compiler: add support for account syscalls
...
Turns out, they never functioned correctly.
2020-05-18 19:08:28 +03:00
Roman Khimov
83df376d17
account: add missing IsStandard interop function
...
There is a Neo.Account.IsStandard syscall, but we didn't have a wrapper for
it.
2020-05-18 19:08:28 +03:00
Roman Khimov
6dff01672c
interop/account: update and extend documentation
2020-05-18 19:08:28 +03:00
Roman Khimov
bd51fe4c11
Merge pull request #955 from nspcc-dev/fix/ws-error-handle
...
rpc/client: handle client creation error in new wsclient
2020-05-18 16:48:58 +03:00
alexvanin
8db714785d
rpc/client: handle client creation error in new wsclient
...
Client returns error if it can't parse endpoint string. WSClient
should check client error or there could be panic at `cl.cli = nil`
expression.
2020-05-18 16:25:36 +03:00
Roman Khimov
f0abbfd399
Merge pull request #951 from nspcc-dev/notification-filters-2.x
...
Notification filters 2.x
2020-05-14 20:57:43 +03:00
Roman Khimov
8cd7bc7e07
rpc/client: deduplicate block/header tests a bit
...
The same data is copied at least three times here.
2020-05-14 17:28:14 +03:00
Roman Khimov
9546e021a9
rpc/block: rework the way Block is JSONized
...
Our block.Block was JSONized in a bit different fashion than result.Block in
its Nonce and NextConsensus fields. It's not good for notifications because
third-party clients would probably expect to see the same format. Also, using
completely different Block representation in result is probably making our
client a bit weaker as this representation is harder to use with other neo-go
components.
So use the same approach we took for Transactions and wrap block.Base which is
to be serialized in proper way.
2020-05-14 17:28:14 +03:00