All notable changes to this project are documented in this file.
- Update all the requirements
- added
--maxpeers
option fornp-prompt
andnp-api-server
. This allows p2p discovery of new nodes up to the value specified - added
--host
option fornp-api-server
in order to specify a hostname for the server - added more testing for
neo.Network
module - various networking improvements
- fix in
neo.SmartContract.StateReader
ContractMigrate
functionality - added check for Python 3.6 on startup
- API: Added CORS header
Access-Control-Allow-Headers: 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With'
(fixesRequest header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response
)
- add
Neo.Runtime.Serialize
andNeo.Runtime.Deserialize
for compliance with this (#163) - Fixed IsWalletTransaction to make it compare scripts in transactions to scripts (instead of scripthashes) in wallet contracts and scripthashes of transactions (instead of scripts) to scripthashes of watch-only addresses
- Python version check in
Settings.py
: fail if not Python 3.6+ (can be disabled with env varSKIP_PY_CHECK
)
- Changed the
eval()
call when parsing the --tx-attr param to parse only json. Reduced the surface and options available on the other 2 eval calls to improve security. - fix wallet rebuild database lock errors (PR #365)
- Fixed synced_watch_only_balances being always zero issue (#209)
- Added 'getpeers' to the JSON RPC API (only containing the available functionality)
- Updated to neo-boa==0.4.0, which has support for using dictionaries and interactive debugging
- Added interactive VM Debugger #367
- Added
Pause
andResume
methods toneo.Core.Blockchain
in order to allow for processing to occur without new incoming blocks - Fix bug with checking if contract is an NEP5 Token
- Update testnet bootstrap files
- lowered amount of blocks requested by each thread to prevent hanging connections
- Add GZIP compression to RPC server responses if the caller supports it.
- Change VM fault reporting to only happen when debug logging is enabled
- fix engine error states
- update mainnet bootstrap files
- performance fix for VM engine execution logging (PR #354)
- update to
neocore==0.3.10
to fixToNeoJsonString()
issue identified here - make home dir optional for
.neopython
- performance fix for block update speed
- Implementing interop type
MAP
along with new opcodesNEWMAP HASKEY KEYS VALUES
and modifyARRAYSIZE PICKITEM SETITEM REMOVE
to supportMAP
as per PR here <https://github.com/neo-project/neo-vm/pull/28>__ - Added support for using
--from-addr=
to specify the address to use fortestinvoke
inprompt.py
. (PR #329) - Fixed
neo/bin/prompt.py
to redact WIF keys, nep2 keys and contract metadata from the command history file.prompt.py.history
. - Added TransactionInvocation.GetScript to
StateReader.py
- Fixed missing uri locations in
neo/api/REST/RestApi.py
(PR #342) - Fixed privatenet check by fixing the chain path for checks in Settings (PR #341)
- Fixed
neo-privnet.sample.wallet
- Fix for current block height lag behind other RPC implementations by 1-3 blocks
- Fixed
bootstrap.py
to use the specified data directory, instead of hard-coded relative paths. - Test chains moved to the user data directory, instead of the projects code path.
- Fixed README reference in
MANIFEST.in
- Added additional error messages to
ExecutionEngine.py
to help with debugging smart contracts. - Changes for Pypi compatibility:
- move protocol.*.json to
neo/data/
- move
prompt.py
and other scripts toneo/bin
- default chain data path is now in
~/.neopython/Chains
.prompt.log
andprompt.history
files are also stored there - the following console scripts are now on the
venv
path after runningpip install neo-python
orpip install -e .
for github based installs:np-prompt
np-api-server
np-bootstrap
np-reencrypt-wallet
- updated docs for Pypi changes
- move protocol.*.json to
- update to
neocore==0.3.8
- Fixed README reference in
MANIFEST.in
, add pypi badge to readme - Add ability to specify
--datadir
path for where leveldb directories are stored - Tries to auto-create
Chains
directory in--datadir
if it doesnt exist - Add scripts to be exported for package install.
np_prompt
,np_api_server
,np_bootstrap
, andnp_reencrypt_wallet
available as commands afterpip
install - add protocol.*.json into data package
- move
neo-privnet.wallet
toneo-privnet.sample.wallet
and .gitignoreneo-privnet.wallet
- Change
README.md
to README.rst`
- All requests to the API that are invalid will now receive a
None
for results rather than an empty list[]
- update to neo-boa==0.3.7
- api-server.py: Improved logging setup. See the options with
./api-server.py -h
- Added
sc-debug-notify
option to theconfig
console command. This preserves smart contractNotify()
events when SC execution fails and is intended for SC debugging purposes only. - Added VM instruction counter to
ExecutionEngine.py
error messages to indicate the final instruction that failed. Allows for setting conditional breakpoints to support SC debugging. - Renamed
neo.api.REST.NotificationRestApi
toneo.api.REST.RestApi
- Added
-v/--verbose
argument to prompt.py, which makes prompt.py show smart contract events by default - Added
vm-log
option to theconfig
console command. This enabled logging of VM instructions tovm_instructions.log
for debugging purposes. - Fix multi-signature contract import to allow using a single signature
- Fix fund sending from multi-signature contract
- Added instructions on retrieving NEO TestNet funds
- Fixed issue with missing
notifications/
prefix foraddr
call inneo/api/REST/RestApi.py
- Added
neo-privnet.wallet
to the project root. This is the standard wallet for private networks. - prompt.py: When using a privnet with
-p
, check if chain database is correct. RenamedChains/Priv_Notif
toChains/privnet_notif
(if you need your old privnet notification db, you need to rename it manually). - Optionally allow to use custom privnet hosts with
-p
(PR #312) - Added a dependency check to
Settings.py
, which verifies that the installed dependencies match those in requirements.txt
- add documentation for data types in
neo-python
- add intructions on
build
,build .. test
,import contract
, andtestinvoke
to docs BuildNRun
results now converted toContractParameter
before printedcontract {hash}
no longer throws errors when it is not anNEP5
contract- Added method
AsParameterType
toContractParameter
for casting results
- Documentation and Dockerfile updates for Python 3.6
- Notification API: include peer count in status
- Fix token error handling (cedde9ec)
- Added warning about wallet syncing prior to logging insufficient funds error, added IsSynced method Wallet class to check this (PR #2259)
- Move to Python 3.6 (PR #270)
- move to only python 3.6+ support
- use new version of compiler ( neo-boa==0.3.3 ) based on python 3.6 wordcode
- full testing of VM and all compiled smart contracts
- adds new command TestBuild for running tests of compiled contracts
- Add Notification REST URL prefix (PR #274)
- Add
api-server.py
(PR #271) - Fixed script value returned by JSON-RPC invokes (PR #268)
- Added support for additional JSON-RPC "type" parameters (PR #267)
- Updating of almost all dependencies (PR #261)
- Fixed bug with transactions consuming between 9 and 10 GAS (PR #260)
- Added automatic deploy to pypi (PR #275)
- Updated Notification REST API URLs with
/v1
prefix, and some with/v1/notifications
(PR #274) - Fixed inconsistencies with JSON-RPC output values (PR #272)
- wallet sync error and password fixes related to encryption changes (PR #245)
- import contract_addr and build ... test fixes (PR #237)
- Easy Coznet support(PR #239)
- ContractParameterContext fix (PR #242)
- Zero length bytearray in VM fix (PR #244)
- Wallet Encryption changes (PR #232)
- Close wallet on quit (PR #226)
- Bugfix for smart contract storage events (PR #228)
- Fix Gas Cost Calculation (PR #220)
- Clarify message for token mint command (PR #212)
- Troubleshooting osx script (PR #208)
- Make Contract Search case insensitive (PR #207)
- implement a more robust CLI command parser
- added peristence to NotificationDB for NEP5 Tokens
- upstream neocore update
- Added support for StateTransaction and StateDescriptors (PR #193)
- Allow multiple open wallets (PR #185)
- Added ability to include transaction attributes with the send command. example:
send neo APRgMZHZubii29UXF9uFa6sohrsYupNAvx 10 --tx-attr={'usage':241,'data':'My Remark'}
(PR #184) - Notification REST API (PR #177, examples/notification-rest-api-server.py)
- Minor cleanups and documentation updates
- updated
neo-boa
to0.2.2
, added support for arrayREMOVE
VM opcodes - moved core functions to neocore
- better LevelDB support for OSX
- dependency udates
- Makefile with some useful commands
- ability to claim GAS from SC address
- lots of documentation
- various small bugfixes
- updated
neo-boa
to0.2.1
- added support for array
REVERSE
andAPPEND
VM opcodes
- updated
neo-boa
to0.2.1
- added support for array
REVERSE
andAPPEND
VM opcodes
- updated
neo-boa
to0.2.0
- added support for debug storage
- added support for runtime notifications from verification contracts
- added support for checking verification during
mintTokens
invoke - updated prompt help
- added additional SC Api (
Neo.Runtime.GetTime
,Neo.Transaction.GetUnspentCoins
,Neo.Header.GetIndex
) - added support for dynamically defined smart contract execution
- added ability to alias an address in the wallet