All notable changes will be documented in this file.
Check Keep a Changelog for recommendations on how to structure this file.
- TBD
- Prepare integration with erdjs-snippets (from templates)
- Move test wallets to a separate repository. Handle them as an erdpy dependency.
- Fix log for builds using absolute paths.
- CLI output builder: remove deprecated fields.
- Add (update) examples of using erdpy in Python scripts. Refactoring.
- Allow "str:" and "0x" as contract arguments, as well
- Add reports: contract sizes and twiggy symbol checks
- Add
--recursive
option on contract build - Local testnet: minor refactoring, and remove
*:TRACE
from the default log-level - Transaction simulation & cost simulation: fix & redesign
- Remove old & deprecated, experimental code related to the Elrond IDE
- Fix
erdpy account get-transactions
(handle transactions with no data field) - Fix link in documentation
- Fix build (test) issues on Github Actions by setting erdpy's
github_api_token
- Added caching for the github releases URL when creating projects from templates in order to avoid rate limit errors
- Fix issue with project creation when using the
crowdfunding-esdt
template due to dependencies - Add
readable
andpayable_by_sc
code metadata flags erdpy contract clean
fix - themeta/target
folder is removed
- Refactor and fix Ledger signing
- Fix erdpy-up
venv
installation on Ubuntu - Remove tests for ERC20 contracts, they have been deprecated
- Fix - when specifying
latest
for a dependency, get the highest semantic version instead of the most recent release - Fix github actions to run
pytest
tests as well
- Fix the patching of the
meta
subproject - Add a check when signing transactions so that the gas limit is below the maximum allowed
- Add
--from-branch
option forerdpy-up.py
- Add github actions check for MacOS
- Update help strings and
CLI.md
- New command
erdpy wallet new
, which generates a new wallet mnemonic and optionally saves it to JSON or PEM - Add support for Rust contract
meta
crates - Update reference to the renamed VM repository (VM dependency is now named
vmtools
) - Change
erdpy deps install all
to avoid installing / overwriting non-repository dependencies, e.g. Rust, LLVM, Go - Update help strings and
CLI.md
- Bugfix by phanletrunghieu: use $PATH in
erdpy-up
- Bugfix by x2ocoder: add missing
enable_epochs
configurations - Dependency tags now accept
latest
- New optional configuration value
github_api_token
for querying latest versions from Github - The command
erdpy deps install
now acceptsall
as an argument - More fixes for
erdpy testnet
- Bugfix by MWFIAE: add missing
enable_epochs
configurations
- Load a local
erdpy.json
file when runningerdpy
commands, containing default values for CLI options per project - Bugfix by MWFIAE: correctly verify the value of the
--bytecode
argument - Bugfix by MWFIAE:
QueryResult
objects are now properly JSON-serializable - Add more output information after building and deploying contracts
- Improve error reporting to standard output
- Enable
mypy
checking as a GitHub action - Add and fix more type hints for
mypy
- Merge branch
legolas-addons
- Fix
erdpy testnet
to work with recent changes inelrond-go
- Add more type hints for
mypy
- Many small improvements
- Minor fixes to the configuration profiles support
- Dependency
arwentools
is now built locally, instead of fetching precompiled binaries
- Update commands for testnet in order to work with the development and master elrond-go branch
- Update the proxy config for testnet in order to have all the api routes active
- Added new commands for validator
- Fix bug with the command add-nodes for staking-provider
- Add --wait-result flag for erdpy tx new cli command.
- Multiple config templates #152. One can now
switch
between different configuration profiles. - Refactor validator.pem parser, allow lookup by index #126.
- erdpy contract build - naming fix, extra CLI options #161.
- Fix flags for phase 3 features #162.
- Update reference to newer Arwentools (Mandos).
- Add commands for the delegation manager contract.
- Added commands for DNS. Tests for DNS CLI.
- Added
--sender-username
and--receiver-username
parameters. - For Rust projects, run ABI generator upon building the WASM file.
- For Rust projects, patch contract templates wrt. ABI module.
- Cache templates repository (30 seconds).
- Add github workflow for erdpy.
- Optimize running time for tests, build time (for rust projects).
- Add PIP update prior installing dependencies #136 @tebayoso (PR from community).
erdpy testnet
- enabled Phase 3 features.erdpy testnet
: Fixes for MacOS, enable log-save for Proxy.
erdpy contract new
: Fix typo (crate
/create
).erdpy contract new
: removepath
ofdev-dependencies
, for rust templates.erdpy contract new
: remove debug-related logic (not needed anymore).
- Update reference to templates.
- Update reference to templates.
- Update reference to templates.
- Update reference to templates, to arwentools.
- Handle empty query response.
- Remove some redundant logging.
- Automatically copy devnet wallets into the project (at
contract new
).
- Fix devnet config wrt. latest node changes.
- Fix path to templates (for contract new).
- Refactor (mostly around validator commands).
- Add "send", "simulate" for
validator
commands. - Fix
staking.py
example. - Add
Address.is_contract_address()
. - Change testnet URL.
- Fix tests, cleanup test data.
- Add dependency tag for elrond-wasm-rs.
- Minor fix for Rust templates.
- Add better output for simulated deployments.
- Do not build
.hex
file anymore atcontract build
. - Patch field
name
in contract templates / mandos tests. - Patch logging and log-level for local testnet. Include
arwen
logs. - Optimize local testnet: no observers, only 4 DNS contracts, less waiting time.
- Fix
testnet clean
(when folder is missing). - Implement global scope. Initialize
chainID
andproxy
parameters fromtestnet.toml
, if any. - Add
erdpy data
sub-command to parse files, store and load key-value pairs. Useful for IDE snippets, but not limited to. - Pretty handling of
Ctrl+C
, overall. - Reference newest Mandos.
- For NodeJS dependency, add a symlink to latest version. Set
env
for nodejs execution. Will be used forerdtestjs
etc. - Prettier dump of
account
json (erdpy get account
). - Support
omit-fields
parameter (when dumping) foraccount get
andtx get
.
- Adjust
erdpy validator
commands to use theMCL signer
(external component). - Fix
erdpy account
with flags--nonce, --balance
. - Possible fix for setup / installation: multiversx/mx-deprecated-sdk-monorepo#58.
- Minor
erdpy-up
improvements. - Minor
erdpy testnet ...
fixes regarding the patched configuration of the Node (config.toml
). - Reference newest
arwentools
. - Fix response casing for
contract query
.
- Allow one to start a local testnet via
erdpy testnet ...
commands. - Simulate transactions via
--simulate
flag (both regular and smart contract transactions). - Rust build - fix name of binary artifact ("-" vs. "_").
- Fix templates patching to work with elrond-wasm
0.6.0
. - Update build with respect to elrond-wasm
0.6.0
. - Update reference to newest Mandos
v0.3.35
, update tests runner. - Remove dependency on
list_api.txt
for C projects. - Trim whitespace for "wallet derive --mnemonic".
- Fix
erdpy validator
commands (were broken upon refactoring).
- Fix proxy requests, implement
hyperblock
route.
- Strip password for keyfile (remove left & right spaces, newlines)
- Allow one to specify path to WASM (bytecode) for
contract deploy
andcontract upgrade
- Update reference to Arwen Tools
- Allow sending SC transactions in offline mode (
--send
defaults tofalse
). - Allow multi-pem files (selection via
--pem-index
parameter).
- Add SDK helpers to generate relayed transactions.
- Updated signing procedure with respect to the
data
field (which is now base64-encoded) - Redesigned the CLI for
validator stake
- Refactoring and design improvements
Note that below, the changelog is in chronological order. It will be soon updated to be in inverse chronological order (how it should have been in the first place).
- Initial release
- Include psutil in the list of dependencies in
setup.py
. - Handle missing /
none
arguments at deploy. - Default to current directory in
build
command. - Allow paths starting with
~
when specifying PEM. - Forward gas limit, gas price parameters correctly.
- Improve example for testnet to allow query after deploy.
- Default to current directory in
build
command.
- Enabled test runner:
erdpy test --wildcard='*'
- Set
LD_LIBRARY_PATH
before executingnodedebug
andtestrunner
.
- Fixed passing environment variables to test runner.
- Fixed node-debug stdout & stderr decode.
- Updated reference to node-debug.
- SOLL migration in progress (Solidity build does not work yet).
- Fixed Solidity / SOLL buildchain.
- Default to current directory for
erdpy deploy
.
- Fix passing arguments for command
erdpy call
.
- Fix passing arguments for command
erdpy query
.
- For MacOS
chmod +x
upon downloading SOLL, nodedebug.
- Downloads performed using
requests
module (certificate errors on MacOS otherwise).
- Node-debug build for MacOS.
- Updated reference to node-debug.
- Transaction signing - updated to Ed25519
- Removed node-debug from the testnet flows (deployment and execution of smart contracts)
- Fixed contract project generation from Rust templates
- Minor fixes on the build flow.
- Temporarily disabled node-debug interaction (node-debug's place will be soon taken by a debug version of Arwen VM)
- Added extra command to prepare and send transactions against the testnet
- Added extra examples.
- Fixed getting metrics from testnet.
- Temporarily disabled transaction costs estimators.
- Fixed reference to pycryptodomex.
- Fixed (improved) handling of proxy request errors.
- Fixed CPP compilation support.
- Dependency to psutils.
- Extra CLI command to prepare and send transaction.
- Format of "transaction.data" field.
- Upgradeable smart contracts.
- Implement bech32 addresses.
- Fixed calls to estimators.
- Adjust reference to the new JSON testing tool.
- Other minor fixes.
- Fix path to WASM binary (for rust projects).
- Fix build of rust projects (trim size of artifact).
- Fix path to contract binary within JSON tests.
- Fix templates download by deleting the "templates" folder at first.
- Display address of smart contract upon deploy
- Improve tests CLI
- Copy build artifacts to "output" folder
- Extra exported function for C builds
- Stake, UnStake, UnBound, UnJail, ChangeRewardAddress
- Extra exported function for C builds
- Serialization algorithm used for signing ("data as string")
- Prettier CLI
- Long description for setup (temporary workaround).
- Add
claim
function for validators
- Fixed action of CLI / network.
- Fixed passing arguments for stake.
- First implementation of the transactions dispatcher.
- Fix packaging.
- Fix gas estimators for staking.
- Add mnemonic to PEM converter.
- Fixed
new
command (default directory). - Improved
deploy
command (add parameteroutfile
).
- Mark
gas-limit
field as required.
- Update reference to
mandos
, fix templating for tests.
- Improved CLI for contracts (added CLI group of actions)
- Fixed response handling for
send-multiple
- Fixed list of
elrondei
functions.
- Fix passing
--nonce
argument to validator commands. - Add flag
--recall-nonce
, as an alternative to specifying the--nonce=42
.
- Deprecated commands
stake-prepare
andstake-send
. Will be replaced soon bystake --prepare
andtx send
.
- Redesigned CLI for creating and broadcasting transactions (
erdpy tx
). - Included
chainID
andversion
in transactions (erdpy, erdjs), updated signature accordingly. - Allow provisioning of wallet JSON key-file as well, in addition to PEM files (which will be deprecated). Many thanks to flyingbasalt.
- Redesign
erdpy-up
to use light Python virtual environments (venv
). - Allow options
--no-modiy-path
and--exact-version
inerdpy-up
- Renamed some CLI commands (for
wallet
, fortx
). - Cleanup templating logic for Smart Contracts - moved some features to Elrond IDE.
- erdtestjs fixes and design improvements / refactoring.
- Completely redesigned dependency management (
erdpy deps
), improved associated CLI. - Refactor and group (under
erdpy group
) validator-related commands. - Improved CLI help, added descriptions.
- Do not receive mnemonic as parameter in
erdpy wallet derive
, but ask for user input instead. - Add Clean command for Smart Contract projects.
- Create symlinks for
arwentools
binaries. - Updated references to
arwentools
components (Mandos, Arwen Debug). - Added CLI group
erdpy config
, which manages~/elrondsdk/elrond.json
. - Deprecated
~/ElrondSCTools
, which will be removed byerdpy-up
. The new installation folder is~/elrondsdk
. - Require Python 3.8 on MacOS.
- Smart Contracts
query
- return as base64, hex, number. - Require nonce for SC
deploy
&call
. - Removed .py SC interaction samples, moved to
sc-examples
sc-examples-rs
repositories, so that they become available in Elrond IDE. - Removed some deprecated code.
mypy
-related refactoring.- Fix accounts CLI. Truncate data for "account get-transactions".
- Installation of
rust
(was broken upon refactoring). - Re-added command
erdpy contract test
. - Throw error when bad input for
erdpy validator ...
.
- Fixed call to
BunchOfTransactions
.