Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge: evm #25

Merged
merged 88 commits into from
Sep 17, 2024
Merged

merge: evm #25

merged 88 commits into from
Sep 17, 2024

Conversation

sebastijankuzner
Copy link
Owner

No description provided.

sebastijankuzner and others added 30 commits February 23, 2024 11:55
* setup evm package boilerplate

* ensure directory

* add evm transaction type

* tweak build command

* missing license info

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
…tem#447)

* setup evm package boilerplate

* ensure directory

* add evm transaction type

* tweak build command

* missing license info

* use crypto-address-keccak256

* crypto fixes

* update generator

* regenerate genesis block

* fix tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>
* implement evm-development package

* remove superfluous log

* ensure validator funds

* deploy from genesis address

* style: resolve style guide violations

* increase amount

* infer recipients from genesis block

* style: resolve style guide violations

* commit Cargo.lock

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
…ArkEcosystem#455)

* try improve build rerun

* evm call builder

* serde

* update test-framework

* schema tests

* fixes

* make recipient mandatory

* fix circular dependency

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* Update version

* Update dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
* Intiail evm-api package

* Include package

* Include in app.json

* Set 2 workers

* Define EVN variables

* Enable EVM api in .env

* Remove unused plugins

* Register base route

* Validation

* Generate RCP errors

* Bind rpc processor

* Extract RPC contracts

* Add getRPCProcessor

* Call RPCServer directly

* Validate schema

* Fix validation

* Add method

* Add call action

* Register action

* Handle methodNotFound

* Validate params & handler error

* Move plugin to api-common

* Use common utils

* Remove console.logs

* Extract prepareRpcError handler

* Enable rate limit

* Reset rate limit

* Add todo
* Add ajv

* Add schema

* Export validation

* Add Validator.hasSchema

* Register schema

* Fix schema

* Verify payload

* Use ajv

* style: resolve style guide violations

* Fix dependencies

* Fix integration tests

* Update pnpm-lock.yaml

* Fix deps

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
…p cyclic dependency on evm (ArkEcosystem#462)

* evm interfaces

* remove hard dependency

* remove unused dep
* handle errors more gracefully

* setup initial tests

* ci

* add try catch

* style: resolve style guide violations

* fix

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* Call view method

* Add ethers dep

* Add additional evm tests

* Remove only

* Add ethers to api-evm

* Prepare buffer data

* Return success

* Response order

* Custom RPC error

* Handle revert

* Schema uses address

* Use prefixed hex

* style: resolve style guide violations

* Use prefixedHex name

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
…rkEcosystem#471)

* Add type TransactionHandlerContext

* Fix processor, pool, and transactionHandler

* Fix transaction handlers

* Fix vote tests

* Use interface

* Rename files

* Add mock instance

* Fix tests

* Add evm into context

* Use EVM instance from context

* Remove comment

* Fix deps

* pnpm lock
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(validator-set-vote-weighted): active validators is subset of registered validators (ArkEcosystem#466)

* Mak method private

* Build validators

* Local variable

* Use for of loop

* Check active validators

* Fix tests

* fix(processor): `validatorVoteBalance` calculation (ArkEcosystem#467)

* Add pg:reset

* Decrease vote balance

* Include fee

* Remove unused line

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: docker validator support (ArkEcosystem#468)

* release: 0.0.1-alpha.9 (ArkEcosystem#469)

* release: 0.0.1-alpha.9

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: fix publish GitHub workflow (ArkEcosystem#470)

* Run on pull request

* No git checks

* set token

* Revert to original build conditions

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* refactor(transactions): move amount deduction into transaction handlers (ArkEcosystem#472)

* refactor transfer amount deduction

* cleanup

* update schema tests

* feat: add `env:paths:clear` commands (ArkEcosystem#473)

* Clear plugins & exports

* Clear data

* Remove variables

* Add paths to contracts

* Remove config paths

* Cache cache, log, temp

* Cleanup

* Add command to api

* Add clear all

* Fix case

* release: 0.0.1-alpha.10 (ArkEcosystem#474)

* release: 0.0.1-alpha.10

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(crypto-transaction-username-registration): limit one transaction by sender in pool (ArkEcosystem#475)

* Rename variable

* Fix text

* Check transaction already in the pool

* feat(validator): log loaded validators (ArkEcosystem#477)

* Inject

* Print method

* Print on bootstrap

* Rename method

* Execute after state check

* Improve text

* Log 0 validators

* Determine activa & standby

* Wallet to string

* chore: fix typo in transaction fee errors (ArkEcosystem#476)

* feat(state): implements `sizeOfIndex` on WalletRepository (ArkEcosystem#479)

* Add sizeOfIndex

* Add initial implementation

* Wallet repository clone

* Implement on wallet repo clone

* Add missing attribute

* FIx validator resignation

* release: 0.0.1-alpha.11 (ArkEcosystem#480)

* release: 0.0.1-alpha.11

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat: port to ES modules (ArkEcosystem#478)

* initial browser support

* add package link script

* port api-common

* port api-database

* port api-development

* port api-http

* port api-sync

* port api-transaction-pool

* port api

* port bootstrap

* port cli

* port configuration-generator

* port consensus

* port webhooks

* port validator

* port validator-set-vote-weighted

* port validator-set-static

* port validation

* port utils

* port transactions

* port transaction-pool

* port test-framework

* port state

* port serializer

* port proposer

* port processor

* port p2p

* port networking-ntp

* port networking-dns

* port logger-winston

* port logger-pino

* port kernel

* port fees

* port fees-static

* port fees-managed

* port fees-burn

* port database

* port crypto-worker

* port crypto-wif

* port crypto-validation

* port crypto-transaction

* port crypto-transaction-vote

* port crypto-transaction-validator-resignation

* port crypto-transaction-validator-registration

* port crypto-transaction-username-resignation

* port crypto-transaction-username-registration

* port crypto-transaction-transfer

* port crypto-transaction-multi-signature-registration

* port crypto-transaction-multi-payment

* port crypto-signature-schnorr

* port crypto-signature-schnorr-secp256k1

* port crypto-signature-ed25519

* port crypto-signature-ecdsa

* port crypto-signature-bls12-381

* port crypto-messages

* port crypto-key-pair-schnorr

* port crypto-key-pair-ed25519

* port crypto-key-pair-ecdsa

* port crypto-key-pair-bls12-381

* port crypto-hash-wasm

* port crypto-hash-noble

* port crypto-hash-bcrypto

* port crypto-consensus-bls12-381

* port crypto-config

* port crypto-commit

* port crypto-block

* port crypto-address-ss58

* port crypto-address-keccak256

* port crypto-address-bech32m

* port crypto-address-bech32

* port crypto-address-base58

* port core

* port contracts

* port container

* update tsconfig to nodenext

* fix kleur/color

* update core/bin/run.js

* command fixes

* lmdb import fixes

* p2p fixes

* ajv fix

* get __dirname

* update pnpm-lock.yaml

* remove unused @pm2/io dependency

* replace fileURLToPath

* use filesystem service inside kernel

* cleanup

* update TypeScript to 5.4.2

* move __dirname into local scope

* replace fast-memoize with memoizee

* test-runner packacge

* re-export test-runner

* tests: utils

* tests: validation

* tests: crypto-config

* tests: container

* tests: kernel

* tests: transactions

* style: resolve style guide violations

* fix more tests

* fix transaction dependency lookup

* fix p2p tests

* more fixes

* fix cli and configuration-generator

* cli fixes

* kernel fixes

* transaction-pool

* all pass

* commit dirty

* style: resolve style guide violations

* fix api-http integration tests

* fix deps:check

* runtime fixes

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix(api): broken entrypoint (ArkEcosystem#481)

* fix api entrypoint

* fix more commands

* refactor(transaction-pool): return tx indexes as integers (ArkEcosystem#483)

* return tx indexes as integers

* fix compile error

* chore: update dependencies (ArkEcosystem#482)

* update dependencies

* Empyt commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix wallet response (ArkEcosystem#485)

* fix(configuration-generator): create genesis block script (ArkEcosystem#484)

* fix create genesis block script

* Empty commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* resolve conflicts

* refactor(core): rename run script to have explicit file extension (ArkEcosystem#486)

* ensure run script has explicit file extension

fixes ERR_UNKNOWN_FILE_EXTENSION

* empty commit

* fix: use .js extension in `start` commands (ArkEcosystem#487)

* Fix start commands

* Fix package.json

* Fix tests

* release: 0.0.1-alpha.12 (ArkEcosystem#488)

* release: 0.0.1-alpha.12

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(core): resolve correct plugin `package.json` path (ArkEcosystem#489)

* Fix package manifest

* Skip tests

* release: 0.0.1-alpha.13 (ArkEcosystem#490)

* release: 0.0.1-alpha.13

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(cli): determine correct entrypoint paths (ArkEcosystem#491)

* Add setup class

* Fix setup

* Bind

* Fixes

* Use setup paths

* Use in api

* Remove logs

* Fix tests

* Cleanup tests

* fix(test-framework): list project packages in dependencies (ArkEcosystem#492)

* Use direct dependencies

* Empty commit

* Fix dependencies

* Fix dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* exclude genesis transactions from fee statistics calculation (ArkEcosystem#494)

* fix(crypto): manage static fees via milestones (ArkEcosystem#493)

* add static fees to milestones

* update tests

* style: resolve style guide violations

* initialize static fees only in a single place

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api): sync active milestones on change (ArkEcosystem#495)

* sync active milestones on change

* fix test

* fix(api-http): add missing fields to transaction resource (ArkEcosystem#496)

* improve error logging

* populate all transaction fields

* review

* remove type cast

* add comment

* simplify more

* rename block model too and add assert

* fix paths according to the latest paths naming convention (ArkEcosystem#497)

* refactor(p2p): replace ip with `url` in api nodes (ArkEcosystem#498)

* api node urls

* update protobuf definitions

* update test fixtures

* cleanup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(transaction-pool): invalid tx error reporting (ArkEcosystem#500)

* fix tx pool error reporting

* empty commit

* test: use `tsx` TypeScript loader (ArkEcosystem#499)

* Add tsx

* Fix runner

* Fix test-runner scripts

* Update tsconfig

* Fix tests

* Use test config

* Fix api tests

* api-common

* Api-database

* api-development

* api-http

* api-sync

* api-transaction-pool

* bootstrap

* cli partial

* Fix cli tests

* Runner extends contracts

* Configuration generator

* Consensus

* Container

* Contracts

* Core

* Crypto address

* Crypto block

* Cypto commit

* Crypto config

* Crypto

* Crypto messages

* Crypto signature

* Crypto transaction

* Crypto

* Database

* Fees

* Kernel

* Logger pino

* Logger winston

* Networking

* Server

* Processor, proposer, serializer

* State

* Transaction pool

* Transactions

* Utils

* Validation

* Validator

* Validator set

* Webhooks

* Remove tsm

* Fix integration tests

* Update lint CI

* Fix dependencies

* Prettier

* Lint

* Perttier

* style: resolve style guide violations

* refactor: remove `__dirname` usage (ArkEcosystem#501)

* Remove __dirname

* Fix tests

* Factory require config

* test(functional/consensus): add skeleton for functional tests (ArkEcosystem#503)

* Prepare base structure

* Add test runner

* Base test

* Add base packages

* Register base packages

* Add config

* Add pacakges

* Export bootstrap

* Export individual bootstrappers

* Register bootstrappers

* Extract bootstrapper itnerface

* Test

* Use tsm

* Pass url to PluginManifest

* Register service provider

* Setup up to validator package

* Register all necessary packages

* Add missing packages

* Boot

* Register transactions

* Process genesis

* Run consensus

* Add worker

* Fix worker

* Fix broadcaster

* refactor(consensus-storage): extract storage logic into package (ArkEcosystem#502)

* Add consensus storage package

* Prepare service provider

* Remove storage from consensus

* Add dependencies

* Move root into consensus storage

* Rename identifier

* Fix identifiers

* Edit contracts

* Fix deps

* Update packages/consensus-storage/README.md

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* milestone generator add static fees (ArkEcosystem#504)

* test(functional/transaction-pool-api): initial boilerplate and tests (ArkEcosystem#505)

* update gitignore

* add tx pool api boilerplate and basic broadcast

* add signWithKeyPair to tx builder

* update functional consensus milestones

* wait for block and assert committed transaction

* invalid transfer test

* assert invalid transactions are not committed

* test with invalid / malformed signature

* fix(test-runner): rethrow error in runHook (ArkEcosystem#506)

* bubble up error thrown in runHook

* Empty

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(database): return commits instead blocks (ArkEcosystem#507)

* getBlock to getCommit

* Fix tests

* getLastBlock -> getLastCommit

* Fix tests

* Implement isEmpty

* Fix tests

* feat(transaction-pool): support `in-memory` database (ArkEcosystem#510)

* Support im memory database

* Deps

* Test

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional/consensus): prepare package replacements, asserts and p2p layer (ArkEcosystem#508)

* Bind consensus storage

* Mock database

* Add contracts

* Use relative paths

* Prepare 2 setups

* Run 2 nodes

* Make log protected

* Make MemoryLogger fields protected

* Prepare custom logger

* Prepare p2p layer

* Fix p2p

* MemoryDatabase

* Load crypto

* Read validators

* Prepare validators

* Use common config

* Add snooze for one block

* Stop node

* Snooze for block

* Prepare smaller config

* Asserts

* Fix and check TS code

* Add script for check & test

* Use strict true

* Support plugin options

* Assert validators

* refactor(kernel): create bootstraper for shutdown signals  (ArkEcosystem#511)

* Register error handler first

* Move listen to shutdown signals into bootstrapper

* test(functional/transaction-pool-api): test all transaction types (ArkEcosystem#509)

* missing dependency

* transfer

* vote

* username-registration

* username-resignation

* validator-registration

* validator-resignation

* multipayment

* fix default payload

* update utils

* multi signature test plus fixes

* fix compile error

* test transfer with multisig

* rename tests for clarity

* add wallets to context

* tsc strict

* add snapshot based balance checks

* reduce block time

* review

* test(functional/transaction-pool): increase vote coverage (ArkEcosystem#512)

* votes

* empty commit

* test switch vote and unvote for non voted validator

* test(functional/transaction-pool): increase validator registration coverage (ArkEcosystem#513)

* votes

* empty commit

* validator registration

* empty commit

* test(functional/transaction-pool): increase validator resignation coverage (ArkEcosystem#514)

* votes

* empty commit

* validator resignation

* empty commit

* test(functional/transaction-pool): increase username registration coverage (ArkEcosystem#515)

* votes

* empty commit

* username registration

* empty commit

* test(functional/transaction-pool): increase username resignation coverage (ArkEcosystem#516)

* votes

* empty commit

* username resignation

* empty commit

* fix(kernel): minority and majority calculation (ArkEcosystem#520)

* Fix majority, minority

* Tests

* Add extra tests

* fix(api-http): allow 0 nonce in schema (ArkEcosystem#521)

* Allow nonce 0

* Empty commit

* fix(api-http): implement missing `/transaction/fees` route (ArkEcosystem#523)

* implement missing route /transaction/fees

* add test

* style: resolve style guide violations

* remove unused query param

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/transaction-pool): increase multi sig registration coverage  (ArkEcosystem#517)

* more multi signature tests

* empty commit

* update min participants

* test missing participant signature

* test(functional/transaction-pool): add more misc coverage  (ArkEcosystem#518)

* more multi signature tests

* empty commit

* add misc tests

* empty commit

* release: 0.0.1-alpha.14 (ArkEcosystem#522)

* release: 0.0.1-alpha.14

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(consensus): emit events (ArkEcosystem#524)

* Add bootstrapped

* New round

* Add events

* Dispatch events

* Fix tests

* test(functional/transaction-pool): extract transaction builders into separate package (ArkEcosystem#525)

* introduce test-transaction-builders package

* use test transactions package

* include type when logging rejected tx

* style: resolve style guide violations

* fix deps:check

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test proposal scenarios (ArkEcosystem#526)

* Add initial test

* Rename base test

* Optional blockId

* Full test

* Bind custom proposer selector

* Check generatorPublic key

* Make consensus methods protected

* Expose boot and bootstrap methods

* Skip error handler registration

* Make consensus methods public

* Assert blockRound

* Implement *Many helpers

* Fix base test

* Force async to p2p

* Test missing propose

* Simulate double propose

* Simulate 50:50 split

* Remove assertCommitValidators

* Record messages

* Asserts

* majority minority split

* SnozeForBlock with height

* Assert next block is fine

* Check multiple rounds

* Check invalid proposer

* Add CI for functional

* Rename tests to proposal

* Rename tests

* fix(api-http): delegate search (ArkEcosystem#527)

* Fix delegate search in API

* Initial support for sorting on jsonb fields

* Update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(p2p): log route on codec error (ArkEcosystem#528)

* Log error

* Allow empty

* test(functional/transaction-pool): add .gitkeep (ArkEcosystem#530)

* add .gitkeep

* empty commit

* test(functional/consensus): test prevote & precommit scenarios (ArkEcosystem#529)

* Check minority not prevoting

* Test null prevotes

* Extract methods to utils

* Check random block

* Check with multiple prevotes

* Lint

* Fix ts errors

* Disable unicorn/no-useless-undefined

* Check missing precommits

* Test precommits

* Check multiple messages

* fix(configuration-generator): update export paths (ArkEcosystem#531)

* Update paths

* Empty

* feat(api-development): add `peers/banned` endpoint (ArkEcosystem#532)

* Disposer returns list of banned peers

* Add endpoint

* Add pagiantion

* Format timeout

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): update ci workflow (ArkEcosystem#534)

* run all functional tests in ci

* test

* style: resolve style guide violations

* test

* revert me

* style: resolve style guide violations

* include matrix name

* revert trigger

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test rejection of invalid block proposals (ArkEcosystem#533)

* custom funded wallet provider

* REVERT ME: debug logs

* export Proposer

* custom block proposal

* emit event on invalid block

* add assertInvalidBlock

* extract custom proposal function

* ensure wallet exists on each node

* invalid proposals

* seed with randomBytes

* log error instance on mismatch

* lint

* Revert "REVERT ME: debug logs"

This reverts commit defdf7e.

* deps: update lmdb (ArkEcosystem#535)

* Update lmdb

* Log if commit cannot be read

* Await transaction flushed

* Await flush

* test(functional): fix `MaxListenersExceeded` warning (ArkEcosystem#537)

* fix MaxListenersExceededWarning

* empty commit

* feat(api-http): support sorting on jsonb attributes (ArkEcosystem#538)

* support sort on wallet attributes

* NULLS LAST

* tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(p2p): peer ban and validate ip plugin (ArkEcosystem#539)

* Skip header check if peer is not in repo

* Validate peer ip

* Remove repo check

* Validate ip and data separately

* Fix test

* Update default peer ban time

* feat(cli): add --overwrite flag to `config:publish:custom` (ArkEcosystem#536)

* expose `skip` callback

* update publish:custom command

* style: resolve style guide violations

* Make fields optional

* Require flags error

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* conflict fixes

* style: resolve style guide violations

* fix tests

---------

Co-authored-by: Sebastijan K <58827427+sebastijankuzner@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: Adrian Kerchev <akerchev@gmail.com>
Co-authored-by: Edgar Goetzendorff <hello@dated.fun>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(validator-set-vote-weighted): active validators is subset of registered validators (ArkEcosystem#466)

* Mak method private

* Build validators

* Local variable

* Use for of loop

* Check active validators

* Fix tests

* fix(processor): `validatorVoteBalance` calculation (ArkEcosystem#467)

* Add pg:reset

* Decrease vote balance

* Include fee

* Remove unused line

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: docker validator support (ArkEcosystem#468)

* release: 0.0.1-alpha.9 (ArkEcosystem#469)

* release: 0.0.1-alpha.9

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: fix publish GitHub workflow (ArkEcosystem#470)

* Run on pull request

* No git checks

* set token

* Revert to original build conditions

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* refactor(transactions): move amount deduction into transaction handlers (ArkEcosystem#472)

* refactor transfer amount deduction

* cleanup

* update schema tests

* feat: add `env:paths:clear` commands (ArkEcosystem#473)

* Clear plugins & exports

* Clear data

* Remove variables

* Add paths to contracts

* Remove config paths

* Cache cache, log, temp

* Cleanup

* Add command to api

* Add clear all

* Fix case

* release: 0.0.1-alpha.10 (ArkEcosystem#474)

* release: 0.0.1-alpha.10

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(crypto-transaction-username-registration): limit one transaction by sender in pool (ArkEcosystem#475)

* Rename variable

* Fix text

* Check transaction already in the pool

* feat(validator): log loaded validators (ArkEcosystem#477)

* Inject

* Print method

* Print on bootstrap

* Rename method

* Execute after state check

* Improve text

* Log 0 validators

* Determine activa & standby

* Wallet to string

* chore: fix typo in transaction fee errors (ArkEcosystem#476)

* feat(state): implements `sizeOfIndex` on WalletRepository (ArkEcosystem#479)

* Add sizeOfIndex

* Add initial implementation

* Wallet repository clone

* Implement on wallet repo clone

* Add missing attribute

* FIx validator resignation

* release: 0.0.1-alpha.11 (ArkEcosystem#480)

* release: 0.0.1-alpha.11

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat: port to ES modules (ArkEcosystem#478)

* initial browser support

* add package link script

* port api-common

* port api-database

* port api-development

* port api-http

* port api-sync

* port api-transaction-pool

* port api

* port bootstrap

* port cli

* port configuration-generator

* port consensus

* port webhooks

* port validator

* port validator-set-vote-weighted

* port validator-set-static

* port validation

* port utils

* port transactions

* port transaction-pool

* port test-framework

* port state

* port serializer

* port proposer

* port processor

* port p2p

* port networking-ntp

* port networking-dns

* port logger-winston

* port logger-pino

* port kernel

* port fees

* port fees-static

* port fees-managed

* port fees-burn

* port database

* port crypto-worker

* port crypto-wif

* port crypto-validation

* port crypto-transaction

* port crypto-transaction-vote

* port crypto-transaction-validator-resignation

* port crypto-transaction-validator-registration

* port crypto-transaction-username-resignation

* port crypto-transaction-username-registration

* port crypto-transaction-transfer

* port crypto-transaction-multi-signature-registration

* port crypto-transaction-multi-payment

* port crypto-signature-schnorr

* port crypto-signature-schnorr-secp256k1

* port crypto-signature-ed25519

* port crypto-signature-ecdsa

* port crypto-signature-bls12-381

* port crypto-messages

* port crypto-key-pair-schnorr

* port crypto-key-pair-ed25519

* port crypto-key-pair-ecdsa

* port crypto-key-pair-bls12-381

* port crypto-hash-wasm

* port crypto-hash-noble

* port crypto-hash-bcrypto

* port crypto-consensus-bls12-381

* port crypto-config

* port crypto-commit

* port crypto-block

* port crypto-address-ss58

* port crypto-address-keccak256

* port crypto-address-bech32m

* port crypto-address-bech32

* port crypto-address-base58

* port core

* port contracts

* port container

* update tsconfig to nodenext

* fix kleur/color

* update core/bin/run.js

* command fixes

* lmdb import fixes

* p2p fixes

* ajv fix

* get __dirname

* update pnpm-lock.yaml

* remove unused @pm2/io dependency

* replace fileURLToPath

* use filesystem service inside kernel

* cleanup

* update TypeScript to 5.4.2

* move __dirname into local scope

* replace fast-memoize with memoizee

* test-runner packacge

* re-export test-runner

* tests: utils

* tests: validation

* tests: crypto-config

* tests: container

* tests: kernel

* tests: transactions

* style: resolve style guide violations

* fix more tests

* fix transaction dependency lookup

* fix p2p tests

* more fixes

* fix cli and configuration-generator

* cli fixes

* kernel fixes

* transaction-pool

* all pass

* commit dirty

* style: resolve style guide violations

* fix api-http integration tests

* fix deps:check

* runtime fixes

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix(api): broken entrypoint (ArkEcosystem#481)

* fix api entrypoint

* fix more commands

* refactor(transaction-pool): return tx indexes as integers (ArkEcosystem#483)

* return tx indexes as integers

* fix compile error

* chore: update dependencies (ArkEcosystem#482)

* update dependencies

* Empyt commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix wallet response (ArkEcosystem#485)

* fix(configuration-generator): create genesis block script (ArkEcosystem#484)

* fix create genesis block script

* Empty commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(core): rename run script to have explicit file extension (ArkEcosystem#486)

* ensure run script has explicit file extension

fixes ERR_UNKNOWN_FILE_EXTENSION

* empty commit

* fix: use .js extension in `start` commands (ArkEcosystem#487)

* Fix start commands

* Fix package.json

* Fix tests

* release: 0.0.1-alpha.12 (ArkEcosystem#488)

* release: 0.0.1-alpha.12

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(core): resolve correct plugin `package.json` path (ArkEcosystem#489)

* Fix package manifest

* Skip tests

* release: 0.0.1-alpha.13 (ArkEcosystem#490)

* release: 0.0.1-alpha.13

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(cli): determine correct entrypoint paths (ArkEcosystem#491)

* Add setup class

* Fix setup

* Bind

* Fixes

* Use setup paths

* Use in api

* Remove logs

* Fix tests

* Cleanup tests

* fix(test-framework): list project packages in dependencies (ArkEcosystem#492)

* Use direct dependencies

* Empty commit

* Fix dependencies

* Fix dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* exclude genesis transactions from fee statistics calculation (ArkEcosystem#494)

* fix(crypto): manage static fees via milestones (ArkEcosystem#493)

* add static fees to milestones

* update tests

* style: resolve style guide violations

* initialize static fees only in a single place

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api): sync active milestones on change (ArkEcosystem#495)

* sync active milestones on change

* fix test

* fix(api-http): add missing fields to transaction resource (ArkEcosystem#496)

* improve error logging

* populate all transaction fields

* review

* remove type cast

* add comment

* simplify more

* rename block model too and add assert

* fix paths according to the latest paths naming convention (ArkEcosystem#497)

* refactor(p2p): replace ip with `url` in api nodes (ArkEcosystem#498)

* api node urls

* update protobuf definitions

* update test fixtures

* cleanup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(transaction-pool): invalid tx error reporting (ArkEcosystem#500)

* fix tx pool error reporting

* empty commit

* test: use `tsx` TypeScript loader (ArkEcosystem#499)

* Add tsx

* Fix runner

* Fix test-runner scripts

* Update tsconfig

* Fix tests

* Use test config

* Fix api tests

* api-common

* Api-database

* api-development

* api-http

* api-sync

* api-transaction-pool

* bootstrap

* cli partial

* Fix cli tests

* Runner extends contracts

* Configuration generator

* Consensus

* Container

* Contracts

* Core

* Crypto address

* Crypto block

* Cypto commit

* Crypto config

* Crypto

* Crypto messages

* Crypto signature

* Crypto transaction

* Crypto

* Database

* Fees

* Kernel

* Logger pino

* Logger winston

* Networking

* Server

* Processor, proposer, serializer

* State

* Transaction pool

* Transactions

* Utils

* Validation

* Validator

* Validator set

* Webhooks

* Remove tsm

* Fix integration tests

* Update lint CI

* Fix dependencies

* Prettier

* Lint

* Perttier

* style: resolve style guide violations

* refactor: remove `__dirname` usage (ArkEcosystem#501)

* Remove __dirname

* Fix tests

* Factory require config

* test(functional/consensus): add skeleton for functional tests (ArkEcosystem#503)

* Prepare base structure

* Add test runner

* Base test

* Add base packages

* Register base packages

* Add config

* Add pacakges

* Export bootstrap

* Export individual bootstrappers

* Register bootstrappers

* Extract bootstrapper itnerface

* Test

* Use tsm

* Pass url to PluginManifest

* Register service provider

* Setup up to validator package

* Register all necessary packages

* Add missing packages

* Boot

* Register transactions

* Process genesis

* Run consensus

* Add worker

* Fix worker

* Fix broadcaster

* refactor(consensus-storage): extract storage logic into package (ArkEcosystem#502)

* Add consensus storage package

* Prepare service provider

* Remove storage from consensus

* Add dependencies

* Move root into consensus storage

* Rename identifier

* Fix identifiers

* Edit contracts

* Fix deps

* Update packages/consensus-storage/README.md

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* milestone generator add static fees (ArkEcosystem#504)

* test(functional/transaction-pool-api): initial boilerplate and tests (ArkEcosystem#505)

* update gitignore

* add tx pool api boilerplate and basic broadcast

* add signWithKeyPair to tx builder

* update functional consensus milestones

* wait for block and assert committed transaction

* invalid transfer test

* assert invalid transactions are not committed

* test with invalid / malformed signature

* fix(test-runner): rethrow error in runHook (ArkEcosystem#506)

* bubble up error thrown in runHook

* Empty

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(database): return commits instead blocks (ArkEcosystem#507)

* getBlock to getCommit

* Fix tests

* getLastBlock -> getLastCommit

* Fix tests

* Implement isEmpty

* Fix tests

* feat(transaction-pool): support `in-memory` database (ArkEcosystem#510)

* Support im memory database

* Deps

* Test

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional/consensus): prepare package replacements, asserts and p2p layer (ArkEcosystem#508)

* Bind consensus storage

* Mock database

* Add contracts

* Use relative paths

* Prepare 2 setups

* Run 2 nodes

* Make log protected

* Make MemoryLogger fields protected

* Prepare custom logger

* Prepare p2p layer

* Fix p2p

* MemoryDatabase

* Load crypto

* Read validators

* Prepare validators

* Use common config

* Add snooze for one block

* Stop node

* Snooze for block

* Prepare smaller config

* Asserts

* Fix and check TS code

* Add script for check & test

* Use strict true

* Support plugin options

* Assert validators

* refactor(kernel): create bootstraper for shutdown signals  (ArkEcosystem#511)

* Register error handler first

* Move listen to shutdown signals into bootstrapper

* test(functional/transaction-pool-api): test all transaction types (ArkEcosystem#509)

* missing dependency

* transfer

* vote

* username-registration

* username-resignation

* validator-registration

* validator-resignation

* multipayment

* fix default payload

* update utils

* multi signature test plus fixes

* fix compile error

* test transfer with multisig

* rename tests for clarity

* add wallets to context

* tsc strict

* add snapshot based balance checks

* reduce block time

* review

* test(functional/transaction-pool): increase vote coverage (ArkEcosystem#512)

* votes

* empty commit

* test switch vote and unvote for non voted validator

* test(functional/transaction-pool): increase validator registration coverage (ArkEcosystem#513)

* votes

* empty commit

* validator registration

* empty commit

* test(functional/transaction-pool): increase validator resignation coverage (ArkEcosystem#514)

* votes

* empty commit

* validator resignation

* empty commit

* test(functional/transaction-pool): increase username registration coverage (ArkEcosystem#515)

* votes

* empty commit

* username registration

* empty commit

* test(functional/transaction-pool): increase username resignation coverage (ArkEcosystem#516)

* votes

* empty commit

* username resignation

* empty commit

* fix(kernel): minority and majority calculation (ArkEcosystem#520)

* Fix majority, minority

* Tests

* Add extra tests

* fix(api-http): allow 0 nonce in schema (ArkEcosystem#521)

* Allow nonce 0

* Empty commit

* fix(api-http): implement missing `/transaction/fees` route (ArkEcosystem#523)

* implement missing route /transaction/fees

* add test

* style: resolve style guide violations

* remove unused query param

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/transaction-pool): increase multi sig registration coverage  (ArkEcosystem#517)

* more multi signature tests

* empty commit

* update min participants

* test missing participant signature

* test(functional/transaction-pool): add more misc coverage  (ArkEcosystem#518)

* more multi signature tests

* empty commit

* add misc tests

* empty commit

* release: 0.0.1-alpha.14 (ArkEcosystem#522)

* release: 0.0.1-alpha.14

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(consensus): emit events (ArkEcosystem#524)

* Add bootstrapped

* New round

* Add events

* Dispatch events

* Fix tests

* test(functional/transaction-pool): extract transaction builders into separate package (ArkEcosystem#525)

* introduce test-transaction-builders package

* use test transactions package

* include type when logging rejected tx

* style: resolve style guide violations

* fix deps:check

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test proposal scenarios (ArkEcosystem#526)

* Add initial test

* Rename base test

* Optional blockId

* Full test

* Bind custom proposer selector

* Check generatorPublic key

* Make consensus methods protected

* Expose boot and bootstrap methods

* Skip error handler registration

* Make consensus methods public

* Assert blockRound

* Implement *Many helpers

* Fix base test

* Force async to p2p

* Test missing propose

* Simulate double propose

* Simulate 50:50 split

* Remove assertCommitValidators

* Record messages

* Asserts

* majority minority split

* SnozeForBlock with height

* Assert next block is fine

* Check multiple rounds

* Check invalid proposer

* Add CI for functional

* Rename tests to proposal

* Rename tests

* fix(api-http): delegate search (ArkEcosystem#527)

* Fix delegate search in API

* Initial support for sorting on jsonb fields

* Update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(p2p): log route on codec error (ArkEcosystem#528)

* Log error

* Allow empty

* test(functional/transaction-pool): add .gitkeep (ArkEcosystem#530)

* add .gitkeep

* empty commit

* test(functional/consensus): test prevote & precommit scenarios (ArkEcosystem#529)

* Check minority not prevoting

* Test null prevotes

* Extract methods to utils

* Check random block

* Check with multiple prevotes

* Lint

* Fix ts errors

* Disable unicorn/no-useless-undefined

* Check missing precommits

* Test precommits

* Check multiple messages

* fix(configuration-generator): update export paths (ArkEcosystem#531)

* Update paths

* Empty

* feat(api-development): add `peers/banned` endpoint (ArkEcosystem#532)

* Disposer returns list of banned peers

* Add endpoint

* Add pagiantion

* Format timeout

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): update ci workflow (ArkEcosystem#534)

* run all functional tests in ci

* test

* style: resolve style guide violations

* test

* revert me

* style: resolve style guide violations

* include matrix name

* revert trigger

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test rejection of invalid block proposals (ArkEcosystem#533)

* custom funded wallet provider

* REVERT ME: debug logs

* export Proposer

* custom block proposal

* emit event on invalid block

* add assertInvalidBlock

* extract custom proposal function

* ensure wallet exists on each node

* invalid proposals

* seed with randomBytes

* log error instance on mismatch

* lint

* Revert "REVERT ME: debug logs"

This reverts commit defdf7e.

* deps: update lmdb (ArkEcosystem#535)

* Update lmdb

* Log if commit cannot be read

* Await transaction flushed

* Await flush

* test(functional): fix `MaxListenersExceeded` warning (ArkEcosystem#537)

* fix MaxListenersExceededWarning

* empty commit

* feat(api-http): support sorting on jsonb attributes (ArkEcosystem#538)

* support sort on wallet attributes

* NULLS LAST

* tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(p2p): peer ban and validate ip plugin (ArkEcosystem#539)

* Skip header check if peer is not in repo

* Validate peer ip

* Remove repo check

* Validate ip and data separately

* Fix test

* Update default peer ban time

* feat(cli): add --overwrite flag to `config:publish:custom` (ArkEcosystem#536)

* expose `skip` callback

* update publish:custom command

* style: resolve style guide violations

* Make fields optional

* Require flags error

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* feat(crypto): add browser support for bls12-381 packages (ArkEcosystem#540)

* add bls12-381 browser support

* update test

* style: resolve style guide violations

* dep check exception

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.15 (ArkEcosystem#542)

* release: 0.0.1-alpha.15

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(p2p): postTransactions response schema and proto (ArkEcosystem#543)

* Update proto

* Build proto

* Fix schema

* Fix tests

* refactor(api): show `meta` field in response at top (ArkEcosystem#545)

* show `meta` field in response at top

* style: resolve style guide violations

* eslint: disable key sort

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api-http): change default sort for `/delegates` (ArkEcosystem#544)

* sort /delegates by rank by default

* empty commit

* refactor(block-processor): log commit round (ArkEcosystem#546)

* Log block round

* Empty commit

* perf(consensus): verify proposal signatures on main thread (ArkEcosystem#548)

* Verify signature on main thread

* Empty commit

* refactor(contracts): remove Consensus prefix from contracts (ArkEcosystem#549)

* Rename contracts

* Empty commit

* refactor(consensus): remove hasValidBlockGenerator check (ArkEcosystem#550)

* Remove hasValidBlockGenerator check

* Empty commit

* fix(api-http): sort delegates by rank asc by default (ArkEcosystem#552)

* sort delegates by rank asc by default

* empty commit

* test(e2e): add e2e tests and workflow (ArkEcosystem#547)

* network with 3 nodes

* add check for target block height

* workflow

* revert me

* exclude e2e directory

* style: resolve style guide violations

* docker fixes

* test

* add timeout

* test

* wait for checks to finish

* run detached

* show logs

* style: resolve style guide violations

* increase sleep

* increase target height

* revert trigger condition

* revert changes to defaults

* style: resolve style guide violations

* reply with 200

* Update tests/e2e/consensus/checks/index.mjs

Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* reduce timeout for now

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* release: 0.0.1-alpha.16 (ArkEcosystem#553)

* release: 0.0.1-alpha.16

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(validator): support secret encryption (ArkEcosystem#554)

* remove skipValidation flag

* write validator keystore

* support validator with encrypted passphrase

* update commands

* update tests

* optional keystore

* style: resolve style guide violations

* support --password

* review

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* perf: deserialize proposal in steps (ArkEcosystem#551)

* Rename ProposedBlock to ProposedData

* Remove ProposedBlockJson

* Rename proposal.block to proposal.data

* Fix consensus tests

* Fix crypto-message tests

* Add getData and isDataDeserialized

* Fix consensus tests

* Test proposal

* Rename method

* Make makeProposedDataFromBytes public

* Make proposal injectable

* Fix tests

* Add deserialize to proposal

* Check status before returning data

* Include deserializer

* Fix tests

* Pass only serialized data to proposal

* Deserialize in proposal processor

* Deserialize in handler

* Remove todo

* Fix tests

* Fix header

* Verify lock proof after deserialization

* Fix functional tests

* Fix proposal types

* Fix proposal creation

* perf(consensus): run pending RoundStates only once (ArkEcosystem#555)

* Set pending jobs

* Remove key

* Reduce complexity

* update test

* style: resolve style guide violations

* fix deps

* register evm

---------

Co-authored-by: Sebastijan K <58827427+sebastijankuzner@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: Adrian Kerchev <akerchev@gmail.com>
Co-authored-by: Edgar Goetzendorff <hello@dated.fun>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>
* update deps

* fix compile error
* add builder

* update genesis block

* bind evm-development data

* resolve tx pool actions

* add evm call builder and emit event

* tx pool api test

* style: resolve style guide violations

* fix test

* lint

* multi sig fixes

* remove event for now, check committed tx instead

* fix check error

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* update napi

* split process and commit

* fix mock

* call commit on evm

* update tests

* add round_key and auto commit

* update interfaces

* enrich evm context

* update tests

* handle missing pending commit gracefully

* remove debug logs, add asserts

* test auto commit

* rename commit key

* commit fixes and add test

* style: resolve style guide violations

* reduce block time in functional tests

* improve tests stability

* keep separate view function

* style: resolve style guide violations

* fix compile error

* style: resolve style guide violations

* remove auto commit feature

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* update Cargo.toml

* remove unused code

* add PersistentDB and EpheremalDB implementations

* update process and commit

* inject data path on evm instance creation

* update unit tests

* clean up

* style: resolve style guide violations

* ensure tmp data path

* store commits and make block processing immutable

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(validator-set-vote-weighted): active validators is subset of registered validators (ArkEcosystem#466)

* Mak method private

* Build validators

* Local variable

* Use for of loop

* Check active validators

* Fix tests

* fix(processor): `validatorVoteBalance` calculation (ArkEcosystem#467)

* Add pg:reset

* Decrease vote balance

* Include fee

* Remove unused line

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: docker validator support (ArkEcosystem#468)

* release: 0.0.1-alpha.9 (ArkEcosystem#469)

* release: 0.0.1-alpha.9

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: fix publish GitHub workflow (ArkEcosystem#470)

* Run on pull request

* No git checks

* set token

* Revert to original build conditions

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* refactor(transactions): move amount deduction into transaction handlers (ArkEcosystem#472)

* refactor transfer amount deduction

* cleanup

* update schema tests

* feat: add `env:paths:clear` commands (ArkEcosystem#473)

* Clear plugins & exports

* Clear data

* Remove variables

* Add paths to contracts

* Remove config paths

* Cache cache, log, temp

* Cleanup

* Add command to api

* Add clear all

* Fix case

* release: 0.0.1-alpha.10 (ArkEcosystem#474)

* release: 0.0.1-alpha.10

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(crypto-transaction-username-registration): limit one transaction by sender in pool (ArkEcosystem#475)

* Rename variable

* Fix text

* Check transaction already in the pool

* feat(validator): log loaded validators (ArkEcosystem#477)

* Inject

* Print method

* Print on bootstrap

* Rename method

* Execute after state check

* Improve text

* Log 0 validators

* Determine activa & standby

* Wallet to string

* chore: fix typo in transaction fee errors (ArkEcosystem#476)

* feat(state): implements `sizeOfIndex` on WalletRepository (ArkEcosystem#479)

* Add sizeOfIndex

* Add initial implementation

* Wallet repository clone

* Implement on wallet repo clone

* Add missing attribute

* FIx validator resignation

* release: 0.0.1-alpha.11 (ArkEcosystem#480)

* release: 0.0.1-alpha.11

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat: port to ES modules (ArkEcosystem#478)

* initial browser support

* add package link script

* port api-common

* port api-database

* port api-development

* port api-http

* port api-sync

* port api-transaction-pool

* port api

* port bootstrap

* port cli

* port configuration-generator

* port consensus

* port webhooks

* port validator

* port validator-set-vote-weighted

* port validator-set-static

* port validation

* port utils

* port transactions

* port transaction-pool

* port test-framework

* port state

* port serializer

* port proposer

* port processor

* port p2p

* port networking-ntp

* port networking-dns

* port logger-winston

* port logger-pino

* port kernel

* port fees

* port fees-static

* port fees-managed

* port fees-burn

* port database

* port crypto-worker

* port crypto-wif

* port crypto-validation

* port crypto-transaction

* port crypto-transaction-vote

* port crypto-transaction-validator-resignation

* port crypto-transaction-validator-registration

* port crypto-transaction-username-resignation

* port crypto-transaction-username-registration

* port crypto-transaction-transfer

* port crypto-transaction-multi-signature-registration

* port crypto-transaction-multi-payment

* port crypto-signature-schnorr

* port crypto-signature-schnorr-secp256k1

* port crypto-signature-ed25519

* port crypto-signature-ecdsa

* port crypto-signature-bls12-381

* port crypto-messages

* port crypto-key-pair-schnorr

* port crypto-key-pair-ed25519

* port crypto-key-pair-ecdsa

* port crypto-key-pair-bls12-381

* port crypto-hash-wasm

* port crypto-hash-noble

* port crypto-hash-bcrypto

* port crypto-consensus-bls12-381

* port crypto-config

* port crypto-commit

* port crypto-block

* port crypto-address-ss58

* port crypto-address-keccak256

* port crypto-address-bech32m

* port crypto-address-bech32

* port crypto-address-base58

* port core

* port contracts

* port container

* update tsconfig to nodenext

* fix kleur/color

* update core/bin/run.js

* command fixes

* lmdb import fixes

* p2p fixes

* ajv fix

* get __dirname

* update pnpm-lock.yaml

* remove unused @pm2/io dependency

* replace fileURLToPath

* use filesystem service inside kernel

* cleanup

* update TypeScript to 5.4.2

* move __dirname into local scope

* replace fast-memoize with memoizee

* test-runner packacge

* re-export test-runner

* tests: utils

* tests: validation

* tests: crypto-config

* tests: container

* tests: kernel

* tests: transactions

* style: resolve style guide violations

* fix more tests

* fix transaction dependency lookup

* fix p2p tests

* more fixes

* fix cli and configuration-generator

* cli fixes

* kernel fixes

* transaction-pool

* all pass

* commit dirty

* style: resolve style guide violations

* fix api-http integration tests

* fix deps:check

* runtime fixes

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix(api): broken entrypoint (ArkEcosystem#481)

* fix api entrypoint

* fix more commands

* refactor(transaction-pool): return tx indexes as integers (ArkEcosystem#483)

* return tx indexes as integers

* fix compile error

* chore: update dependencies (ArkEcosystem#482)

* update dependencies

* Empyt commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix wallet response (ArkEcosystem#485)

* fix(configuration-generator): create genesis block script (ArkEcosystem#484)

* fix create genesis block script

* Empty commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(core): rename run script to have explicit file extension (ArkEcosystem#486)

* ensure run script has explicit file extension

fixes ERR_UNKNOWN_FILE_EXTENSION

* empty commit

* fix: use .js extension in `start` commands (ArkEcosystem#487)

* Fix start commands

* Fix package.json

* Fix tests

* release: 0.0.1-alpha.12 (ArkEcosystem#488)

* release: 0.0.1-alpha.12

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(core): resolve correct plugin `package.json` path (ArkEcosystem#489)

* Fix package manifest

* Skip tests

* release: 0.0.1-alpha.13 (ArkEcosystem#490)

* release: 0.0.1-alpha.13

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(cli): determine correct entrypoint paths (ArkEcosystem#491)

* Add setup class

* Fix setup

* Bind

* Fixes

* Use setup paths

* Use in api

* Remove logs

* Fix tests

* Cleanup tests

* fix(test-framework): list project packages in dependencies (ArkEcosystem#492)

* Use direct dependencies

* Empty commit

* Fix dependencies

* Fix dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* exclude genesis transactions from fee statistics calculation (ArkEcosystem#494)

* fix(crypto): manage static fees via milestones (ArkEcosystem#493)

* add static fees to milestones

* update tests

* style: resolve style guide violations

* initialize static fees only in a single place

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api): sync active milestones on change (ArkEcosystem#495)

* sync active milestones on change

* fix test

* fix(api-http): add missing fields to transaction resource (ArkEcosystem#496)

* improve error logging

* populate all transaction fields

* review

* remove type cast

* add comment

* simplify more

* rename block model too and add assert

* fix paths according to the latest paths naming convention (ArkEcosystem#497)

* refactor(p2p): replace ip with `url` in api nodes (ArkEcosystem#498)

* api node urls

* update protobuf definitions

* update test fixtures

* cleanup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(transaction-pool): invalid tx error reporting (ArkEcosystem#500)

* fix tx pool error reporting

* empty commit

* test: use `tsx` TypeScript loader (ArkEcosystem#499)

* Add tsx

* Fix runner

* Fix test-runner scripts

* Update tsconfig

* Fix tests

* Use test config

* Fix api tests

* api-common

* Api-database

* api-development

* api-http

* api-sync

* api-transaction-pool

* bootstrap

* cli partial

* Fix cli tests

* Runner extends contracts

* Configuration generator

* Consensus

* Container

* Contracts

* Core

* Crypto address

* Crypto block

* Cypto commit

* Crypto config

* Crypto

* Crypto messages

* Crypto signature

* Crypto transaction

* Crypto

* Database

* Fees

* Kernel

* Logger pino

* Logger winston

* Networking

* Server

* Processor, proposer, serializer

* State

* Transaction pool

* Transactions

* Utils

* Validation

* Validator

* Validator set

* Webhooks

* Remove tsm

* Fix integration tests

* Update lint CI

* Fix dependencies

* Prettier

* Lint

* Perttier

* style: resolve style guide violations

* refactor: remove `__dirname` usage (ArkEcosystem#501)

* Remove __dirname

* Fix tests

* Factory require config

* test(functional/consensus): add skeleton for functional tests (ArkEcosystem#503)

* Prepare base structure

* Add test runner

* Base test

* Add base packages

* Register base packages

* Add config

* Add pacakges

* Export bootstrap

* Export individual bootstrappers

* Register bootstrappers

* Extract bootstrapper itnerface

* Test

* Use tsm

* Pass url to PluginManifest

* Register service provider

* Setup up to validator package

* Register all necessary packages

* Add missing packages

* Boot

* Register transactions

* Process genesis

* Run consensus

* Add worker

* Fix worker

* Fix broadcaster

* refactor(consensus-storage): extract storage logic into package (ArkEcosystem#502)

* Add consensus storage package

* Prepare service provider

* Remove storage from consensus

* Add dependencies

* Move root into consensus storage

* Rename identifier

* Fix identifiers

* Edit contracts

* Fix deps

* Update packages/consensus-storage/README.md

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* milestone generator add static fees (ArkEcosystem#504)

* test(functional/transaction-pool-api): initial boilerplate and tests (ArkEcosystem#505)

* update gitignore

* add tx pool api boilerplate and basic broadcast

* add signWithKeyPair to tx builder

* update functional consensus milestones

* wait for block and assert committed transaction

* invalid transfer test

* assert invalid transactions are not committed

* test with invalid / malformed signature

* fix(test-runner): rethrow error in runHook (ArkEcosystem#506)

* bubble up error thrown in runHook

* Empty

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(database): return commits instead blocks (ArkEcosystem#507)

* getBlock to getCommit

* Fix tests

* getLastBlock -> getLastCommit

* Fix tests

* Implement isEmpty

* Fix tests

* feat(transaction-pool): support `in-memory` database (ArkEcosystem#510)

* Support im memory database

* Deps

* Test

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional/consensus): prepare package replacements, asserts and p2p layer (ArkEcosystem#508)

* Bind consensus storage

* Mock database

* Add contracts

* Use relative paths

* Prepare 2 setups

* Run 2 nodes

* Make log protected

* Make MemoryLogger fields protected

* Prepare custom logger

* Prepare p2p layer

* Fix p2p

* MemoryDatabase

* Load crypto

* Read validators

* Prepare validators

* Use common config

* Add snooze for one block

* Stop node

* Snooze for block

* Prepare smaller config

* Asserts

* Fix and check TS code

* Add script for check & test

* Use strict true

* Support plugin options

* Assert validators

* refactor(kernel): create bootstraper for shutdown signals  (ArkEcosystem#511)

* Register error handler first

* Move listen to shutdown signals into bootstrapper

* test(functional/transaction-pool-api): test all transaction types (ArkEcosystem#509)

* missing dependency

* transfer

* vote

* username-registration

* username-resignation

* validator-registration

* validator-resignation

* multipayment

* fix default payload

* update utils

* multi signature test plus fixes

* fix compile error

* test transfer with multisig

* rename tests for clarity

* add wallets to context

* tsc strict

* add snapshot based balance checks

* reduce block time

* review

* test(functional/transaction-pool): increase vote coverage (ArkEcosystem#512)

* votes

* empty commit

* test switch vote and unvote for non voted validator

* test(functional/transaction-pool): increase validator registration coverage (ArkEcosystem#513)

* votes

* empty commit

* validator registration

* empty commit

* test(functional/transaction-pool): increase validator resignation coverage (ArkEcosystem#514)

* votes

* empty commit

* validator resignation

* empty commit

* test(functional/transaction-pool): increase username registration coverage (ArkEcosystem#515)

* votes

* empty commit

* username registration

* empty commit

* test(functional/transaction-pool): increase username resignation coverage (ArkEcosystem#516)

* votes

* empty commit

* username resignation

* empty commit

* fix(kernel): minority and majority calculation (ArkEcosystem#520)

* Fix majority, minority

* Tests

* Add extra tests

* fix(api-http): allow 0 nonce in schema (ArkEcosystem#521)

* Allow nonce 0

* Empty commit

* fix(api-http): implement missing `/transaction/fees` route (ArkEcosystem#523)

* implement missing route /transaction/fees

* add test

* style: resolve style guide violations

* remove unused query param

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/transaction-pool): increase multi sig registration coverage  (ArkEcosystem#517)

* more multi signature tests

* empty commit

* update min participants

* test missing participant signature

* test(functional/transaction-pool): add more misc coverage  (ArkEcosystem#518)

* more multi signature tests

* empty commit

* add misc tests

* empty commit

* release: 0.0.1-alpha.14 (ArkEcosystem#522)

* release: 0.0.1-alpha.14

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(consensus): emit events (ArkEcosystem#524)

* Add bootstrapped

* New round

* Add events

* Dispatch events

* Fix tests

* test(functional/transaction-pool): extract transaction builders into separate package (ArkEcosystem#525)

* introduce test-transaction-builders package

* use test transactions package

* include type when logging rejected tx

* style: resolve style guide violations

* fix deps:check

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test proposal scenarios (ArkEcosystem#526)

* Add initial test

* Rename base test

* Optional blockId

* Full test

* Bind custom proposer selector

* Check generatorPublic key

* Make consensus methods protected

* Expose boot and bootstrap methods

* Skip error handler registration

* Make consensus methods public

* Assert blockRound

* Implement *Many helpers

* Fix base test

* Force async to p2p

* Test missing propose

* Simulate double propose

* Simulate 50:50 split

* Remove assertCommitValidators

* Record messages

* Asserts

* majority minority split

* SnozeForBlock with height

* Assert next block is fine

* Check multiple rounds

* Check invalid proposer

* Add CI for functional

* Rename tests to proposal

* Rename tests

* fix(api-http): delegate search (ArkEcosystem#527)

* Fix delegate search in API

* Initial support for sorting on jsonb fields

* Update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(p2p): log route on codec error (ArkEcosystem#528)

* Log error

* Allow empty

* test(functional/transaction-pool): add .gitkeep (ArkEcosystem#530)

* add .gitkeep

* empty commit

* test(functional/consensus): test prevote & precommit scenarios (ArkEcosystem#529)

* Check minority not prevoting

* Test null prevotes

* Extract methods to utils

* Check random block

* Check with multiple prevotes

* Lint

* Fix ts errors

* Disable unicorn/no-useless-undefined

* Check missing precommits

* Test precommits

* Check multiple messages

* fix(configuration-generator): update export paths (ArkEcosystem#531)

* Update paths

* Empty

* feat(api-development): add `peers/banned` endpoint (ArkEcosystem#532)

* Disposer returns list of banned peers

* Add endpoint

* Add pagiantion

* Format timeout

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): update ci workflow (ArkEcosystem#534)

* run all functional tests in ci

* test

* style: resolve style guide violations

* test

* revert me

* style: resolve style guide violations

* include matrix name

* revert trigger

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test rejection of invalid block proposals (ArkEcosystem#533)

* custom funded wallet provider

* REVERT ME: debug logs

* export Proposer

* custom block proposal

* emit event on invalid block

* add assertInvalidBlock

* extract custom proposal function

* ensure wallet exists on each node

* invalid proposals

* seed with randomBytes

* log error instance on mismatch

* lint

* Revert "REVERT ME: debug logs"

This reverts commit defdf7e.

* deps: update lmdb (ArkEcosystem#535)

* Update lmdb

* Log if commit cannot be read

* Await transaction flushed

* Await flush

* test(functional): fix `MaxListenersExceeded` warning (ArkEcosystem#537)

* fix MaxListenersExceededWarning

* empty commit

* feat(api-http): support sorting on jsonb attributes (ArkEcosystem#538)

* support sort on wallet attributes

* NULLS LAST

* tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(p2p): peer ban and validate ip plugin (ArkEcosystem#539)

* Skip header check if peer is not in repo

* Validate peer ip

* Remove repo check

* Validate ip and data separately

* Fix test

* Update default peer ban time

* feat(cli): add --overwrite flag to `config:publish:custom` (ArkEcosystem#536)

* expose `skip` callback

* update publish:custom command

* style: resolve style guide violations

* Make fields optional

* Require flags error

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* feat(crypto): add browser support for bls12-381 packages (ArkEcosystem#540)

* add bls12-381 browser support

* update test

* style: resolve style guide violations

* dep check exception

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.15 (ArkEcosystem#542)

* release: 0.0.1-alpha.15

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(p2p): postTransactions response schema and proto (ArkEcosystem#543)

* Update proto

* Build proto

* Fix schema

* Fix tests

* refactor(api): show `meta` field in response at top (ArkEcosystem#545)

* show `meta` field in response at top

* style: resolve style guide violations

* eslint: disable key sort

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api-http): change default sort for `/delegates` (ArkEcosystem#544)

* sort /delegates by rank by default

* empty commit

* refactor(block-processor): log commit round (ArkEcosystem#546)

* Log block round

* Empty commit

* perf(consensus): verify proposal signatures on main thread (ArkEcosystem#548)

* Verify signature on main thread

* Empty commit

* refactor(contracts): remove Consensus prefix from contracts (ArkEcosystem#549)

* Rename contracts

* Empty commit

* refactor(consensus): remove hasValidBlockGenerator check (ArkEcosystem#550)

* Remove hasValidBlockGenerator check

* Empty commit

* fix(api-http): sort delegates by rank asc by default (ArkEcosystem#552)

* sort delegates by rank asc by default

* empty commit

* test(e2e): add e2e tests and workflow (ArkEcosystem#547)

* network with 3 nodes

* add check for target block height

* workflow

* revert me

* exclude e2e directory

* style: resolve style guide violations

* docker fixes

* test

* add timeout

* test

* wait for checks to finish

* run detached

* show logs

* style: resolve style guide violations

* increase sleep

* increase target height

* revert trigger condition

* revert changes to defaults

* style: resolve style guide violations

* reply with 200

* Update tests/e2e/consensus/checks/index.mjs

Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* reduce timeout for now

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* release: 0.0.1-alpha.16 (ArkEcosystem#553)

* release: 0.0.1-alpha.16

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(validator): support secret encryption (ArkEcosystem#554)

* remove skipValidation flag

* write validator keystore

* support validator with encrypted passphrase

* update commands

* update tests

* optional keystore

* style: resolve style guide violations

* support --password

* review

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* perf: deserialize proposal in steps (ArkEcosystem#551)

* Rename ProposedBlock to ProposedData

* Remove ProposedBlockJson

* Rename proposal.block to proposal.data

* Fix consensus tests

* Fix crypto-message tests

* Add getData and isDataDeserialized

* Fix consensus tests

* Test proposal

* Rename method

* Make makeProposedDataFromBytes public

* Make proposal injectable

* Fix tests

* Add deserialize to proposal

* Check status before returning data

* Include deserializer

* Fix tests

* Pass only serialized data to proposal

* Deserialize in proposal processor

* Deserialize in handler

* Remove todo

* Fix tests

* Fix header

* Verify lock proof after deserialization

* Fix functional tests

* Fix proposal types

* Fix proposal creation

* perf(consensus): run pending RoundStates only once (ArkEcosystem#555)

* Set pending jobs

* Remove key

* Reduce complexity

* fix: dispatch block events with expected payload (ArkEcosystem#558)

* dispatch BlockEvent.Forged again

* dispatch only block instead of whole commit

* fix

* test

* update e2e check

* chore: upgrade pnpm v9 (ArkEcosystem#556)

* upgrade pnpm v9

* empty commit

* support webhook condition on nested key (ArkEcosystem#557)

* improve stability (ArkEcosystem#564)

* fix(webhooks): restore webhooks on boot (ArkEcosystem#562)

* restore webhooks on boot

* skip events during bootstrap

* skip all but kernel events

* style: resolve style guide violations

* review

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* chore(ci): add workflow to enforce minimum commit count (ArkEcosystem#565)

* check minimum commit count

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.17 (ArkEcosystem#566)

* release: 0.0.1-alpha.17

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): upsert version on bootstrap (ArkEcosystem#567)

* upsert version on bootstrap

* empty commit

* feat: add `blockPrepareTime` to milestones (ArkEcosystem#568)

* Add blockPrepareTime

* Nest

* Scheduler

* Sync

* Fix generator

* Test config generator

* Test crypto config

* Fix scheduler

* Add test

* Fix functional tests

* stageTime to stageTimeout

* Fix api-http tests

* refactor(api-sync): add `syncInterval` option (ArkEcosystem#569)

* Implement getSyncIntervalMs on abstractListener

* Add syncInterval defaults

* Use configuration

* fix(api-sync): process transactions in chunks to support very large blocks (ArkEcosystem#572)

* sync transactions in chunks

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(consensus): prepare block after commit (ArkEcosystem#571)

* Log on round start

* Propose after commit

* Use timestamp

* Rename methods

* Fix tests

* Rename method

* Fix tests

* Deps

* Fix consensus tests

* Fix tests

* Update packages/validator/source/validator.ts

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(consensus):  dispatch *any events only once per round (ArkEcosystem#574)

* Return scheduler status

* Test scheduler

* Skip multiple dispatches

* Tests

* style: resolve style guide violations

* fix deps:check

---------

Co-authored-by: Sebastijan K <58827427+sebastijankuzner@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: Adrian Kerchev <akerchev@gmail.com>
Co-authored-by: Edgar Goetzendorff <hello@dated.fun>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(validator-set-vote-weighted): active validators is subset of registered validators (ArkEcosystem#466)

* Mak method private

* Build validators

* Local variable

* Use for of loop

* Check active validators

* Fix tests

* fix(processor): `validatorVoteBalance` calculation (ArkEcosystem#467)

* Add pg:reset

* Decrease vote balance

* Include fee

* Remove unused line

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: docker validator support (ArkEcosystem#468)

* release: 0.0.1-alpha.9 (ArkEcosystem#469)

* release: 0.0.1-alpha.9

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: fix publish GitHub workflow (ArkEcosystem#470)

* Run on pull request

* No git checks

* set token

* Revert to original build conditions

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* refactor(transactions): move amount deduction into transaction handlers (ArkEcosystem#472)

* refactor transfer amount deduction

* cleanup

* update schema tests

* feat: add `env:paths:clear` commands (ArkEcosystem#473)

* Clear plugins & exports

* Clear data

* Remove variables

* Add paths to contracts

* Remove config paths

* Cache cache, log, temp

* Cleanup

* Add command to api

* Add clear all

* Fix case

* release: 0.0.1-alpha.10 (ArkEcosystem#474)

* release: 0.0.1-alpha.10

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(crypto-transaction-username-registration): limit one transaction by sender in pool (ArkEcosystem#475)

* Rename variable

* Fix text

* Check transaction already in the pool

* feat(validator): log loaded validators (ArkEcosystem#477)

* Inject

* Print method

* Print on bootstrap

* Rename method

* Execute after state check

* Improve text

* Log 0 validators

* Determine activa & standby

* Wallet to string

* chore: fix typo in transaction fee errors (ArkEcosystem#476)

* feat(state): implements `sizeOfIndex` on WalletRepository (ArkEcosystem#479)

* Add sizeOfIndex

* Add initial implementation

* Wallet repository clone

* Implement on wallet repo clone

* Add missing attribute

* FIx validator resignation

* release: 0.0.1-alpha.11 (ArkEcosystem#480)

* release: 0.0.1-alpha.11

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat: port to ES modules (ArkEcosystem#478)

* initial browser support

* add package link script

* port api-common

* port api-database

* port api-development

* port api-http

* port api-sync

* port api-transaction-pool

* port api

* port bootstrap

* port cli

* port configuration-generator

* port consensus

* port webhooks

* port validator

* port validator-set-vote-weighted

* port validator-set-static

* port validation

* port utils

* port transactions

* port transaction-pool

* port test-framework

* port state

* port serializer

* port proposer

* port processor

* port p2p

* port networking-ntp

* port networking-dns

* port logger-winston

* port logger-pino

* port kernel

* port fees

* port fees-static

* port fees-managed

* port fees-burn

* port database

* port crypto-worker

* port crypto-wif

* port crypto-validation

* port crypto-transaction

* port crypto-transaction-vote

* port crypto-transaction-validator-resignation

* port crypto-transaction-validator-registration

* port crypto-transaction-username-resignation

* port crypto-transaction-username-registration

* port crypto-transaction-transfer

* port crypto-transaction-multi-signature-registration

* port crypto-transaction-multi-payment

* port crypto-signature-schnorr

* port crypto-signature-schnorr-secp256k1

* port crypto-signature-ed25519

* port crypto-signature-ecdsa

* port crypto-signature-bls12-381

* port crypto-messages

* port crypto-key-pair-schnorr

* port crypto-key-pair-ed25519

* port crypto-key-pair-ecdsa

* port crypto-key-pair-bls12-381

* port crypto-hash-wasm

* port crypto-hash-noble

* port crypto-hash-bcrypto

* port crypto-consensus-bls12-381

* port crypto-config

* port crypto-commit

* port crypto-block

* port crypto-address-ss58

* port crypto-address-keccak256

* port crypto-address-bech32m

* port crypto-address-bech32

* port crypto-address-base58

* port core

* port contracts

* port container

* update tsconfig to nodenext

* fix kleur/color

* update core/bin/run.js

* command fixes

* lmdb import fixes

* p2p fixes

* ajv fix

* get __dirname

* update pnpm-lock.yaml

* remove unused @pm2/io dependency

* replace fileURLToPath

* use filesystem service inside kernel

* cleanup

* update TypeScript to 5.4.2

* move __dirname into local scope

* replace fast-memoize with memoizee

* test-runner packacge

* re-export test-runner

* tests: utils

* tests: validation

* tests: crypto-config

* tests: container

* tests: kernel

* tests: transactions

* style: resolve style guide violations

* fix more tests

* fix transaction dependency lookup

* fix p2p tests

* more fixes

* fix cli and configuration-generator

* cli fixes

* kernel fixes

* transaction-pool

* all pass

* commit dirty

* style: resolve style guide violations

* fix api-http integration tests

* fix deps:check

* runtime fixes

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix(api): broken entrypoint (ArkEcosystem#481)

* fix api entrypoint

* fix more commands

* refactor(transaction-pool): return tx indexes as integers (ArkEcosystem#483)

* return tx indexes as integers

* fix compile error

* chore: update dependencies (ArkEcosystem#482)

* update dependencies

* Empyt commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix wallet response (ArkEcosystem#485)

* fix(configuration-generator): create genesis block script (ArkEcosystem#484)

* fix create genesis block script

* Empty commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(core): rename run script to have explicit file extension (ArkEcosystem#486)

* ensure run script has explicit file extension

fixes ERR_UNKNOWN_FILE_EXTENSION

* empty commit

* fix: use .js extension in `start` commands (ArkEcosystem#487)

* Fix start commands

* Fix package.json

* Fix tests

* release: 0.0.1-alpha.12 (ArkEcosystem#488)

* release: 0.0.1-alpha.12

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(core): resolve correct plugin `package.json` path (ArkEcosystem#489)

* Fix package manifest

* Skip tests

* release: 0.0.1-alpha.13 (ArkEcosystem#490)

* release: 0.0.1-alpha.13

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(cli): determine correct entrypoint paths (ArkEcosystem#491)

* Add setup class

* Fix setup

* Bind

* Fixes

* Use setup paths

* Use in api

* Remove logs

* Fix tests

* Cleanup tests

* fix(test-framework): list project packages in dependencies (ArkEcosystem#492)

* Use direct dependencies

* Empty commit

* Fix dependencies

* Fix dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* exclude genesis transactions from fee statistics calculation (ArkEcosystem#494)

* fix(crypto): manage static fees via milestones (ArkEcosystem#493)

* add static fees to milestones

* update tests

* style: resolve style guide violations

* initialize static fees only in a single place

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api): sync active milestones on change (ArkEcosystem#495)

* sync active milestones on change

* fix test

* fix(api-http): add missing fields to transaction resource (ArkEcosystem#496)

* improve error logging

* populate all transaction fields

* review

* remove type cast

* add comment

* simplify more

* rename block model too and add assert

* fix paths according to the latest paths naming convention (ArkEcosystem#497)

* refactor(p2p): replace ip with `url` in api nodes (ArkEcosystem#498)

* api node urls

* update protobuf definitions

* update test fixtures

* cleanup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(transaction-pool): invalid tx error reporting (ArkEcosystem#500)

* fix tx pool error reporting

* empty commit

* test: use `tsx` TypeScript loader (ArkEcosystem#499)

* Add tsx

* Fix runner

* Fix test-runner scripts

* Update tsconfig

* Fix tests

* Use test config

* Fix api tests

* api-common

* Api-database

* api-development

* api-http

* api-sync

* api-transaction-pool

* bootstrap

* cli partial

* Fix cli tests

* Runner extends contracts

* Configuration generator

* Consensus

* Container

* Contracts

* Core

* Crypto address

* Crypto block

* Cypto commit

* Crypto config

* Crypto

* Crypto messages

* Crypto signature

* Crypto transaction

* Crypto

* Database

* Fees

* Kernel

* Logger pino

* Logger winston

* Networking

* Server

* Processor, proposer, serializer

* State

* Transaction pool

* Transactions

* Utils

* Validation

* Validator

* Validator set

* Webhooks

* Remove tsm

* Fix integration tests

* Update lint CI

* Fix dependencies

* Prettier

* Lint

* Perttier

* style: resolve style guide violations

* refactor: remove `__dirname` usage (ArkEcosystem#501)

* Remove __dirname

* Fix tests

* Factory require config

* test(functional/consensus): add skeleton for functional tests (ArkEcosystem#503)

* Prepare base structure

* Add test runner

* Base test

* Add base packages

* Register base packages

* Add config

* Add pacakges

* Export bootstrap

* Export individual bootstrappers

* Register bootstrappers

* Extract bootstrapper itnerface

* Test

* Use tsm

* Pass url to PluginManifest

* Register service provider

* Setup up to validator package

* Register all necessary packages

* Add missing packages

* Boot

* Register transactions

* Process genesis

* Run consensus

* Add worker

* Fix worker

* Fix broadcaster

* refactor(consensus-storage): extract storage logic into package (ArkEcosystem#502)

* Add consensus storage package

* Prepare service provider

* Remove storage from consensus

* Add dependencies

* Move root into consensus storage

* Rename identifier

* Fix identifiers

* Edit contracts

* Fix deps

* Update packages/consensus-storage/README.md

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* milestone generator add static fees (ArkEcosystem#504)

* test(functional/transaction-pool-api): initial boilerplate and tests (ArkEcosystem#505)

* update gitignore

* add tx pool api boilerplate and basic broadcast

* add signWithKeyPair to tx builder

* update functional consensus milestones

* wait for block and assert committed transaction

* invalid transfer test

* assert invalid transactions are not committed

* test with invalid / malformed signature

* fix(test-runner): rethrow error in runHook (ArkEcosystem#506)

* bubble up error thrown in runHook

* Empty

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(database): return commits instead blocks (ArkEcosystem#507)

* getBlock to getCommit

* Fix tests

* getLastBlock -> getLastCommit

* Fix tests

* Implement isEmpty

* Fix tests

* feat(transaction-pool): support `in-memory` database (ArkEcosystem#510)

* Support im memory database

* Deps

* Test

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional/consensus): prepare package replacements, asserts and p2p layer (ArkEcosystem#508)

* Bind consensus storage

* Mock database

* Add contracts

* Use relative paths

* Prepare 2 setups

* Run 2 nodes

* Make log protected

* Make MemoryLogger fields protected

* Prepare custom logger

* Prepare p2p layer

* Fix p2p

* MemoryDatabase

* Load crypto

* Read validators

* Prepare validators

* Use common config

* Add snooze for one block

* Stop node

* Snooze for block

* Prepare smaller config

* Asserts

* Fix and check TS code

* Add script for check & test

* Use strict true

* Support plugin options

* Assert validators

* refactor(kernel): create bootstraper for shutdown signals  (ArkEcosystem#511)

* Register error handler first

* Move listen to shutdown signals into bootstrapper

* test(functional/transaction-pool-api): test all transaction types (ArkEcosystem#509)

* missing dependency

* transfer

* vote

* username-registration

* username-resignation

* validator-registration

* validator-resignation

* multipayment

* fix default payload

* update utils

* multi signature test plus fixes

* fix compile error

* test transfer with multisig

* rename tests for clarity

* add wallets to context

* tsc strict

* add snapshot based balance checks

* reduce block time

* review

* test(functional/transaction-pool): increase vote coverage (ArkEcosystem#512)

* votes

* empty commit

* test switch vote and unvote for non voted validator

* test(functional/transaction-pool): increase validator registration coverage (ArkEcosystem#513)

* votes

* empty commit

* validator registration

* empty commit

* test(functional/transaction-pool): increase validator resignation coverage (ArkEcosystem#514)

* votes

* empty commit

* validator resignation

* empty commit

* test(functional/transaction-pool): increase username registration coverage (ArkEcosystem#515)

* votes

* empty commit

* username registration

* empty commit

* test(functional/transaction-pool): increase username resignation coverage (ArkEcosystem#516)

* votes

* empty commit

* username resignation

* empty commit

* fix(kernel): minority and majority calculation (ArkEcosystem#520)

* Fix majority, minority

* Tests

* Add extra tests

* fix(api-http): allow 0 nonce in schema (ArkEcosystem#521)

* Allow nonce 0

* Empty commit

* fix(api-http): implement missing `/transaction/fees` route (ArkEcosystem#523)

* implement missing route /transaction/fees

* add test

* style: resolve style guide violations

* remove unused query param

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/transaction-pool): increase multi sig registration coverage  (ArkEcosystem#517)

* more multi signature tests

* empty commit

* update min participants

* test missing participant signature

* test(functional/transaction-pool): add more misc coverage  (ArkEcosystem#518)

* more multi signature tests

* empty commit

* add misc tests

* empty commit

* release: 0.0.1-alpha.14 (ArkEcosystem#522)

* release: 0.0.1-alpha.14

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(consensus): emit events (ArkEcosystem#524)

* Add bootstrapped

* New round

* Add events

* Dispatch events

* Fix tests

* test(functional/transaction-pool): extract transaction builders into separate package (ArkEcosystem#525)

* introduce test-transaction-builders package

* use test transactions package

* include type when logging rejected tx

* style: resolve style guide violations

* fix deps:check

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test proposal scenarios (ArkEcosystem#526)

* Add initial test

* Rename base test

* Optional blockId

* Full test

* Bind custom proposer selector

* Check generatorPublic key

* Make consensus methods protected

* Expose boot and bootstrap methods

* Skip error handler registration

* Make consensus methods public

* Assert blockRound

* Implement *Many helpers

* Fix base test

* Force async to p2p

* Test missing propose

* Simulate double propose

* Simulate 50:50 split

* Remove assertCommitValidators

* Record messages

* Asserts

* majority minority split

* SnozeForBlock with height

* Assert next block is fine

* Check multiple rounds

* Check invalid proposer

* Add CI for functional

* Rename tests to proposal

* Rename tests

* fix(api-http): delegate search (ArkEcosystem#527)

* Fix delegate search in API

* Initial support for sorting on jsonb fields

* Update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(p2p): log route on codec error (ArkEcosystem#528)

* Log error

* Allow empty

* test(functional/transaction-pool): add .gitkeep (ArkEcosystem#530)

* add .gitkeep

* empty commit

* test(functional/consensus): test prevote & precommit scenarios (ArkEcosystem#529)

* Check minority not prevoting

* Test null prevotes

* Extract methods to utils

* Check random block

* Check with multiple prevotes

* Lint

* Fix ts errors

* Disable unicorn/no-useless-undefined

* Check missing precommits

* Test precommits

* Check multiple messages

* fix(configuration-generator): update export paths (ArkEcosystem#531)

* Update paths

* Empty

* feat(api-development): add `peers/banned` endpoint (ArkEcosystem#532)

* Disposer returns list of banned peers

* Add endpoint

* Add pagiantion

* Format timeout

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): update ci workflow (ArkEcosystem#534)

* run all functional tests in ci

* test

* style: resolve style guide violations

* test

* revert me

* style: resolve style guide violations

* include matrix name

* revert trigger

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test rejection of invalid block proposals (ArkEcosystem#533)

* custom funded wallet provider

* REVERT ME: debug logs

* export Proposer

* custom block proposal

* emit event on invalid block

* add assertInvalidBlock

* extract custom proposal function

* ensure wallet exists on each node

* invalid proposals

* seed with randomBytes

* log error instance on mismatch

* lint

* Revert "REVERT ME: debug logs"

This reverts commit defdf7e.

* deps: update lmdb (ArkEcosystem#535)

* Update lmdb

* Log if commit cannot be read

* Await transaction flushed

* Await flush

* test(functional): fix `MaxListenersExceeded` warning (ArkEcosystem#537)

* fix MaxListenersExceededWarning

* empty commit

* feat(api-http): support sorting on jsonb attributes (ArkEcosystem#538)

* support sort on wallet attributes

* NULLS LAST

* tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(p2p): peer ban and validate ip plugin (ArkEcosystem#539)

* Skip header check if peer is not in repo

* Validate peer ip

* Remove repo check

* Validate ip and data separately

* Fix test

* Update default peer ban time

* feat(cli): add --overwrite flag to `config:publish:custom` (ArkEcosystem#536)

* expose `skip` callback

* update publish:custom command

* style: resolve style guide violations

* Make fields optional

* Require flags error

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* feat(crypto): add browser support for bls12-381 packages (ArkEcosystem#540)

* add bls12-381 browser support

* update test

* style: resolve style guide violations

* dep check exception

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.15 (ArkEcosystem#542)

* release: 0.0.1-alpha.15

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(p2p): postTransactions response schema and proto (ArkEcosystem#543)

* Update proto

* Build proto

* Fix schema

* Fix tests

* refactor(api): show `meta` field in response at top (ArkEcosystem#545)

* show `meta` field in response at top

* style: resolve style guide violations

* eslint: disable key sort

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api-http): change default sort for `/delegates` (ArkEcosystem#544)

* sort /delegates by rank by default

* empty commit

* refactor(block-processor): log commit round (ArkEcosystem#546)

* Log block round

* Empty commit

* perf(consensus): verify proposal signatures on main thread (ArkEcosystem#548)

* Verify signature on main thread

* Empty commit

* refactor(contracts): remove Consensus prefix from contracts (ArkEcosystem#549)

* Rename contracts

* Empty commit

* refactor(consensus): remove hasValidBlockGenerator check (ArkEcosystem#550)

* Remove hasValidBlockGenerator check

* Empty commit

* fix(api-http): sort delegates by rank asc by default (ArkEcosystem#552)

* sort delegates by rank asc by default

* empty commit

* test(e2e): add e2e tests and workflow (ArkEcosystem#547)

* network with 3 nodes

* add check for target block height

* workflow

* revert me

* exclude e2e directory

* style: resolve style guide violations

* docker fixes

* test

* add timeout

* test

* wait for checks to finish

* run detached

* show logs

* style: resolve style guide violations

* increase sleep

* increase target height

* revert trigger condition

* revert changes to defaults

* style: resolve style guide violations

* reply with 200

* Update tests/e2e/consensus/checks/index.mjs

Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* reduce timeout for now

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* release: 0.0.1-alpha.16 (ArkEcosystem#553)

* release: 0.0.1-alpha.16

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(validator): support secret encryption (ArkEcosystem#554)

* remove skipValidation flag

* write validator keystore

* support validator with encrypted passphrase

* update commands

* update tests

* optional keystore

* style: resolve style guide violations

* support --password

* review

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* perf: deserialize proposal in steps (ArkEcosystem#551)

* Rename ProposedBlock to ProposedData

* Remove ProposedBlockJson

* Rename proposal.block to proposal.data

* Fix consensus tests

* Fix crypto-message tests

* Add getData and isDataDeserialized

* Fix consensus tests

* Test proposal

* Rename method

* Make makeProposedDataFromBytes public

* Make proposal injectable

* Fix tests

* Add deserialize to proposal

* Check status before returning data

* Include deserializer

* Fix tests

* Pass only serialized data to proposal

* Deserialize in proposal processor

* Deserialize in handler

* Remove todo

* Fix tests

* Fix header

* Verify lock proof after deserialization

* Fix functional tests

* Fix proposal types

* Fix proposal creation

* perf(consensus): run pending RoundStates only once (ArkEcosystem#555)

* Set pending jobs

* Remove key

* Reduce complexity

* fix: dispatch block events with expected payload (ArkEcosystem#558)

* dispatch BlockEvent.Forged again

* dispatch only block instead of whole commit

* fix

* test

* update e2e check

* chore: upgrade pnpm v9 (ArkEcosystem#556)

* upgrade pnpm v9

* empty commit

* support webhook condition on nested key (ArkEcosystem#557)

* improve stability (ArkEcosystem#564)

* fix(webhooks): restore webhooks on boot (ArkEcosystem#562)

* restore webhooks on boot

* skip events during bootstrap

* skip all but kernel events

* style: resolve style guide violations

* review

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* chore(ci): add workflow to enforce minimum commit count (ArkEcosystem#565)

* check minimum commit count

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.17 (ArkEcosystem#566)

* release: 0.0.1-alpha.17

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): upsert version on bootstrap (ArkEcosystem#567)

* upsert version on bootstrap

* empty commit

* feat: add `blockPrepareTime` to milestones (ArkEcosystem#568)

* Add blockPrepareTime

* Nest

* Scheduler

* Sync

* Fix generator

* Test config generator

* Test crypto config

* Fix scheduler

* Add test

* Fix functional tests

* stageTime to stageTimeout

* Fix api-http tests

* refactor(api-sync): add `syncInterval` option (ArkEcosystem#569)

* Implement getSyncIntervalMs on abstractListener

* Add syncInterval defaults

* Use configuration

* fix(api-sync): process transactions in chunks to support very large blocks (ArkEcosystem#572)

* sync transactions in chunks

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(consensus): prepare block after commit (ArkEcosystem#571)

* Log on round start

* Propose after commit

* Use timestamp

* Rename methods

* Fix tests

* Rename method

* Fix tests

* Deps

* Fix consensus tests

* Fix tests

* Update packages/validator/source/validator.ts

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(consensus):  dispatch *any events only once per round (ArkEcosystem#574)

* Return scheduler status

* Test scheduler

* Skip multiple dispatches

* Tests

* style: resolve style guide violations

* fix deps:check

* update Cargo.toml

* update Cargo.lock

* fix compile error

* fix

---------

Co-authored-by: Sebastijan K <58827427+sebastijankuzner@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: Adrian Kerchev <akerchev@gmail.com>
Co-authored-by: Edgar Goetzendorff <hello@dated.fun>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>
* Refactor commit state handling

* Update tests

* Update deps
* set NO_SUB_DIR flag

* empty commit
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(validator-set-vote-weighted): active validators is subset of registered validators (ArkEcosystem#466)

* Mak method private

* Build validators

* Local variable

* Use for of loop

* Check active validators

* Fix tests

* fix(processor): `validatorVoteBalance` calculation (ArkEcosystem#467)

* Add pg:reset

* Decrease vote balance

* Include fee

* Remove unused line

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: docker validator support (ArkEcosystem#468)

* release: 0.0.1-alpha.9 (ArkEcosystem#469)

* release: 0.0.1-alpha.9

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: fix publish GitHub workflow (ArkEcosystem#470)

* Run on pull request

* No git checks

* set token

* Revert to original build conditions

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* refactor(transactions): move amount deduction into transaction handlers (ArkEcosystem#472)

* refactor transfer amount deduction

* cleanup

* update schema tests

* feat: add `env:paths:clear` commands (ArkEcosystem#473)

* Clear plugins & exports

* Clear data

* Remove variables

* Add paths to contracts

* Remove config paths

* Cache cache, log, temp

* Cleanup

* Add command to api

* Add clear all

* Fix case

* release: 0.0.1-alpha.10 (ArkEcosystem#474)

* release: 0.0.1-alpha.10

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(crypto-transaction-username-registration): limit one transaction by sender in pool (ArkEcosystem#475)

* Rename variable

* Fix text

* Check transaction already in the pool

* feat(validator): log loaded validators (ArkEcosystem#477)

* Inject

* Print method

* Print on bootstrap

* Rename method

* Execute after state check

* Improve text

* Log 0 validators

* Determine activa & standby

* Wallet to string

* chore: fix typo in transaction fee errors (ArkEcosystem#476)

* feat(state): implements `sizeOfIndex` on WalletRepository (ArkEcosystem#479)

* Add sizeOfIndex

* Add initial implementation

* Wallet repository clone

* Implement on wallet repo clone

* Add missing attribute

* FIx validator resignation

* release: 0.0.1-alpha.11 (ArkEcosystem#480)

* release: 0.0.1-alpha.11

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat: port to ES modules (ArkEcosystem#478)

* initial browser support

* add package link script

* port api-common

* port api-database

* port api-development

* port api-http

* port api-sync

* port api-transaction-pool

* port api

* port bootstrap

* port cli

* port configuration-generator

* port consensus

* port webhooks

* port validator

* port validator-set-vote-weighted

* port validator-set-static

* port validation

* port utils

* port transactions

* port transaction-pool

* port test-framework

* port state

* port serializer

* port proposer

* port processor

* port p2p

* port networking-ntp

* port networking-dns

* port logger-winston

* port logger-pino

* port kernel

* port fees

* port fees-static

* port fees-managed

* port fees-burn

* port database

* port crypto-worker

* port crypto-wif

* port crypto-validation

* port crypto-transaction

* port crypto-transaction-vote

* port crypto-transaction-validator-resignation

* port crypto-transaction-validator-registration

* port crypto-transaction-username-resignation

* port crypto-transaction-username-registration

* port crypto-transaction-transfer

* port crypto-transaction-multi-signature-registration

* port crypto-transaction-multi-payment

* port crypto-signature-schnorr

* port crypto-signature-schnorr-secp256k1

* port crypto-signature-ed25519

* port crypto-signature-ecdsa

* port crypto-signature-bls12-381

* port crypto-messages

* port crypto-key-pair-schnorr

* port crypto-key-pair-ed25519

* port crypto-key-pair-ecdsa

* port crypto-key-pair-bls12-381

* port crypto-hash-wasm

* port crypto-hash-noble

* port crypto-hash-bcrypto

* port crypto-consensus-bls12-381

* port crypto-config

* port crypto-commit

* port crypto-block

* port crypto-address-ss58

* port crypto-address-keccak256

* port crypto-address-bech32m

* port crypto-address-bech32

* port crypto-address-base58

* port core

* port contracts

* port container

* update tsconfig to nodenext

* fix kleur/color

* update core/bin/run.js

* command fixes

* lmdb import fixes

* p2p fixes

* ajv fix

* get __dirname

* update pnpm-lock.yaml

* remove unused @pm2/io dependency

* replace fileURLToPath

* use filesystem service inside kernel

* cleanup

* update TypeScript to 5.4.2

* move __dirname into local scope

* replace fast-memoize with memoizee

* test-runner packacge

* re-export test-runner

* tests: utils

* tests: validation

* tests: crypto-config

* tests: container

* tests: kernel

* tests: transactions

* style: resolve style guide violations

* fix more tests

* fix transaction dependency lookup

* fix p2p tests

* more fixes

* fix cli and configuration-generator

* cli fixes

* kernel fixes

* transaction-pool

* all pass

* commit dirty

* style: resolve style guide violations

* fix api-http integration tests

* fix deps:check

* runtime fixes

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix(api): broken entrypoint (ArkEcosystem#481)

* fix api entrypoint

* fix more commands

* refactor(transaction-pool): return tx indexes as integers (ArkEcosystem#483)

* return tx indexes as integers

* fix compile error

* chore: update dependencies (ArkEcosystem#482)

* update dependencies

* Empyt commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix wallet response (ArkEcosystem#485)

* fix(configuration-generator): create genesis block script (ArkEcosystem#484)

* fix create genesis block script

* Empty commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(core): rename run script to have explicit file extension (ArkEcosystem#486)

* ensure run script has explicit file extension

fixes ERR_UNKNOWN_FILE_EXTENSION

* empty commit

* fix: use .js extension in `start` commands (ArkEcosystem#487)

* Fix start commands

* Fix package.json

* Fix tests

* release: 0.0.1-alpha.12 (ArkEcosystem#488)

* release: 0.0.1-alpha.12

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(core): resolve correct plugin `package.json` path (ArkEcosystem#489)

* Fix package manifest

* Skip tests

* release: 0.0.1-alpha.13 (ArkEcosystem#490)

* release: 0.0.1-alpha.13

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(cli): determine correct entrypoint paths (ArkEcosystem#491)

* Add setup class

* Fix setup

* Bind

* Fixes

* Use setup paths

* Use in api

* Remove logs

* Fix tests

* Cleanup tests

* fix(test-framework): list project packages in dependencies (ArkEcosystem#492)

* Use direct dependencies

* Empty commit

* Fix dependencies

* Fix dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* exclude genesis transactions from fee statistics calculation (ArkEcosystem#494)

* fix(crypto): manage static fees via milestones (ArkEcosystem#493)

* add static fees to milestones

* update tests

* style: resolve style guide violations

* initialize static fees only in a single place

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api): sync active milestones on change (ArkEcosystem#495)

* sync active milestones on change

* fix test

* fix(api-http): add missing fields to transaction resource (ArkEcosystem#496)

* improve error logging

* populate all transaction fields

* review

* remove type cast

* add comment

* simplify more

* rename block model too and add assert

* fix paths according to the latest paths naming convention (ArkEcosystem#497)

* refactor(p2p): replace ip with `url` in api nodes (ArkEcosystem#498)

* api node urls

* update protobuf definitions

* update test fixtures

* cleanup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(transaction-pool): invalid tx error reporting (ArkEcosystem#500)

* fix tx pool error reporting

* empty commit

* test: use `tsx` TypeScript loader (ArkEcosystem#499)

* Add tsx

* Fix runner

* Fix test-runner scripts

* Update tsconfig

* Fix tests

* Use test config

* Fix api tests

* api-common

* Api-database

* api-development

* api-http

* api-sync

* api-transaction-pool

* bootstrap

* cli partial

* Fix cli tests

* Runner extends contracts

* Configuration generator

* Consensus

* Container

* Contracts

* Core

* Crypto address

* Crypto block

* Cypto commit

* Crypto config

* Crypto

* Crypto messages

* Crypto signature

* Crypto transaction

* Crypto

* Database

* Fees

* Kernel

* Logger pino

* Logger winston

* Networking

* Server

* Processor, proposer, serializer

* State

* Transaction pool

* Transactions

* Utils

* Validation

* Validator

* Validator set

* Webhooks

* Remove tsm

* Fix integration tests

* Update lint CI

* Fix dependencies

* Prettier

* Lint

* Perttier

* style: resolve style guide violations

* refactor: remove `__dirname` usage (ArkEcosystem#501)

* Remove __dirname

* Fix tests

* Factory require config

* test(functional/consensus): add skeleton for functional tests (ArkEcosystem#503)

* Prepare base structure

* Add test runner

* Base test

* Add base packages

* Register base packages

* Add config

* Add pacakges

* Export bootstrap

* Export individual bootstrappers

* Register bootstrappers

* Extract bootstrapper itnerface

* Test

* Use tsm

* Pass url to PluginManifest

* Register service provider

* Setup up to validator package

* Register all necessary packages

* Add missing packages

* Boot

* Register transactions

* Process genesis

* Run consensus

* Add worker

* Fix worker

* Fix broadcaster

* refactor(consensus-storage): extract storage logic into package (ArkEcosystem#502)

* Add consensus storage package

* Prepare service provider

* Remove storage from consensus

* Add dependencies

* Move root into consensus storage

* Rename identifier

* Fix identifiers

* Edit contracts

* Fix deps

* Update packages/consensus-storage/README.md

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* milestone generator add static fees (ArkEcosystem#504)

* test(functional/transaction-pool-api): initial boilerplate and tests (ArkEcosystem#505)

* update gitignore

* add tx pool api boilerplate and basic broadcast

* add signWithKeyPair to tx builder

* update functional consensus milestones

* wait for block and assert committed transaction

* invalid transfer test

* assert invalid transactions are not committed

* test with invalid / malformed signature

* fix(test-runner): rethrow error in runHook (ArkEcosystem#506)

* bubble up error thrown in runHook

* Empty

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(database): return commits instead blocks (ArkEcosystem#507)

* getBlock to getCommit

* Fix tests

* getLastBlock -> getLastCommit

* Fix tests

* Implement isEmpty

* Fix tests

* feat(transaction-pool): support `in-memory` database (ArkEcosystem#510)

* Support im memory database

* Deps

* Test

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional/consensus): prepare package replacements, asserts and p2p layer (ArkEcosystem#508)

* Bind consensus storage

* Mock database

* Add contracts

* Use relative paths

* Prepare 2 setups

* Run 2 nodes

* Make log protected

* Make MemoryLogger fields protected

* Prepare custom logger

* Prepare p2p layer

* Fix p2p

* MemoryDatabase

* Load crypto

* Read validators

* Prepare validators

* Use common config

* Add snooze for one block

* Stop node

* Snooze for block

* Prepare smaller config

* Asserts

* Fix and check TS code

* Add script for check & test

* Use strict true

* Support plugin options

* Assert validators

* refactor(kernel): create bootstraper for shutdown signals  (ArkEcosystem#511)

* Register error handler first

* Move listen to shutdown signals into bootstrapper

* test(functional/transaction-pool-api): test all transaction types (ArkEcosystem#509)

* missing dependency

* transfer

* vote

* username-registration

* username-resignation

* validator-registration

* validator-resignation

* multipayment

* fix default payload

* update utils

* multi signature test plus fixes

* fix compile error

* test transfer with multisig

* rename tests for clarity

* add wallets to context

* tsc strict

* add snapshot based balance checks

* reduce block time

* review

* test(functional/transaction-pool): increase vote coverage (ArkEcosystem#512)

* votes

* empty commit

* test switch vote and unvote for non voted validator

* test(functional/transaction-pool): increase validator registration coverage (ArkEcosystem#513)

* votes

* empty commit

* validator registration

* empty commit

* test(functional/transaction-pool): increase validator resignation coverage (ArkEcosystem#514)

* votes

* empty commit

* validator resignation

* empty commit

* test(functional/transaction-pool): increase username registration coverage (ArkEcosystem#515)

* votes

* empty commit

* username registration

* empty commit

* test(functional/transaction-pool): increase username resignation coverage (ArkEcosystem#516)

* votes

* empty commit

* username resignation

* empty commit

* fix(kernel): minority and majority calculation (ArkEcosystem#520)

* Fix majority, minority

* Tests

* Add extra tests

* fix(api-http): allow 0 nonce in schema (ArkEcosystem#521)

* Allow nonce 0

* Empty commit

* fix(api-http): implement missing `/transaction/fees` route (ArkEcosystem#523)

* implement missing route /transaction/fees

* add test

* style: resolve style guide violations

* remove unused query param

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/transaction-pool): increase multi sig registration coverage  (ArkEcosystem#517)

* more multi signature tests

* empty commit

* update min participants

* test missing participant signature

* test(functional/transaction-pool): add more misc coverage  (ArkEcosystem#518)

* more multi signature tests

* empty commit

* add misc tests

* empty commit

* release: 0.0.1-alpha.14 (ArkEcosystem#522)

* release: 0.0.1-alpha.14

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(consensus): emit events (ArkEcosystem#524)

* Add bootstrapped

* New round

* Add events

* Dispatch events

* Fix tests

* test(functional/transaction-pool): extract transaction builders into separate package (ArkEcosystem#525)

* introduce test-transaction-builders package

* use test transactions package

* include type when logging rejected tx

* style: resolve style guide violations

* fix deps:check

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test proposal scenarios (ArkEcosystem#526)

* Add initial test

* Rename base test

* Optional blockId

* Full test

* Bind custom proposer selector

* Check generatorPublic key

* Make consensus methods protected

* Expose boot and bootstrap methods

* Skip error handler registration

* Make consensus methods public

* Assert blockRound

* Implement *Many helpers

* Fix base test

* Force async to p2p

* Test missing propose

* Simulate double propose

* Simulate 50:50 split

* Remove assertCommitValidators

* Record messages

* Asserts

* majority minority split

* SnozeForBlock with height

* Assert next block is fine

* Check multiple rounds

* Check invalid proposer

* Add CI for functional

* Rename tests to proposal

* Rename tests

* fix(api-http): delegate search (ArkEcosystem#527)

* Fix delegate search in API

* Initial support for sorting on jsonb fields

* Update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(p2p): log route on codec error (ArkEcosystem#528)

* Log error

* Allow empty

* test(functional/transaction-pool): add .gitkeep (ArkEcosystem#530)

* add .gitkeep

* empty commit

* test(functional/consensus): test prevote & precommit scenarios (ArkEcosystem#529)

* Check minority not prevoting

* Test null prevotes

* Extract methods to utils

* Check random block

* Check with multiple prevotes

* Lint

* Fix ts errors

* Disable unicorn/no-useless-undefined

* Check missing precommits

* Test precommits

* Check multiple messages

* fix(configuration-generator): update export paths (ArkEcosystem#531)

* Update paths

* Empty

* feat(api-development): add `peers/banned` endpoint (ArkEcosystem#532)

* Disposer returns list of banned peers

* Add endpoint

* Add pagiantion

* Format timeout

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): update ci workflow (ArkEcosystem#534)

* run all functional tests in ci

* test

* style: resolve style guide violations

* test

* revert me

* style: resolve style guide violations

* include matrix name

* revert trigger

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test rejection of invalid block proposals (ArkEcosystem#533)

* custom funded wallet provider

* REVERT ME: debug logs

* export Proposer

* custom block proposal

* emit event on invalid block

* add assertInvalidBlock

* extract custom proposal function

* ensure wallet exists on each node

* invalid proposals

* seed with randomBytes

* log error instance on mismatch

* lint

* Revert "REVERT ME: debug logs"

This reverts commit defdf7e.

* deps: update lmdb (ArkEcosystem#535)

* Update lmdb

* Log if commit cannot be read

* Await transaction flushed

* Await flush

* test(functional): fix `MaxListenersExceeded` warning (ArkEcosystem#537)

* fix MaxListenersExceededWarning

* empty commit

* feat(api-http): support sorting on jsonb attributes (ArkEcosystem#538)

* support sort on wallet attributes

* NULLS LAST

* tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(p2p): peer ban and validate ip plugin (ArkEcosystem#539)

* Skip header check if peer is not in repo

* Validate peer ip

* Remove repo check

* Validate ip and data separately

* Fix test

* Update default peer ban time

* feat(cli): add --overwrite flag to `config:publish:custom` (ArkEcosystem#536)

* expose `skip` callback

* update publish:custom command

* style: resolve style guide violations

* Make fields optional

* Require flags error

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* feat(crypto): add browser support for bls12-381 packages (ArkEcosystem#540)

* add bls12-381 browser support

* update test

* style: resolve style guide violations

* dep check exception

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.15 (ArkEcosystem#542)

* release: 0.0.1-alpha.15

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(p2p): postTransactions response schema and proto (ArkEcosystem#543)

* Update proto

* Build proto

* Fix schema

* Fix tests

* refactor(api): show `meta` field in response at top (ArkEcosystem#545)

* show `meta` field in response at top

* style: resolve style guide violations

* eslint: disable key sort

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api-http): change default sort for `/delegates` (ArkEcosystem#544)

* sort /delegates by rank by default

* empty commit

* refactor(block-processor): log commit round (ArkEcosystem#546)

* Log block round

* Empty commit

* perf(consensus): verify proposal signatures on main thread (ArkEcosystem#548)

* Verify signature on main thread

* Empty commit

* refactor(contracts): remove Consensus prefix from contracts (ArkEcosystem#549)

* Rename contracts

* Empty commit

* refactor(consensus): remove hasValidBlockGenerator check (ArkEcosystem#550)

* Remove hasValidBlockGenerator check

* Empty commit

* fix(api-http): sort delegates by rank asc by default (ArkEcosystem#552)

* sort delegates by rank asc by default

* empty commit

* test(e2e): add e2e tests and workflow (ArkEcosystem#547)

* network with 3 nodes

* add check for target block height

* workflow

* revert me

* exclude e2e directory

* style: resolve style guide violations

* docker fixes

* test

* add timeout

* test

* wait for checks to finish

* run detached

* show logs

* style: resolve style guide violations

* increase sleep

* increase target height

* revert trigger condition

* revert changes to defaults

* style: resolve style guide violations

* reply with 200

* Update tests/e2e/consensus/checks/index.mjs

Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* reduce timeout for now

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* release: 0.0.1-alpha.16 (ArkEcosystem#553)

* release: 0.0.1-alpha.16

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(validator): support secret encryption (ArkEcosystem#554)

* remove skipValidation flag

* write validator keystore

* support validator with encrypted passphrase

* update commands

* update tests

* optional keystore

* style: resolve style guide violations

* support --password

* review

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* perf: deserialize proposal in steps (ArkEcosystem#551)

* Rename ProposedBlock to ProposedData

* Remove ProposedBlockJson

* Rename proposal.block to proposal.data

* Fix consensus tests

* Fix crypto-message tests

* Add getData and isDataDeserialized

* Fix consensus tests

* Test proposal

* Rename method

* Make makeProposedDataFromBytes public

* Make proposal injectable

* Fix tests

* Add deserialize to proposal

* Check status before returning data

* Include deserializer

* Fix tests

* Pass only serialized data to proposal

* Deserialize in proposal processor

* Deserialize in handler

* Remove todo

* Fix tests

* Fix header

* Verify lock proof after deserialization

* Fix functional tests

* Fix proposal types

* Fix proposal creation

* perf(consensus): run pending RoundStates only once (ArkEcosystem#555)

* Set pending jobs

* Remove key

* Reduce complexity

* fix: dispatch block events with expected payload (ArkEcosystem#558)

* dispatch BlockEvent.Forged again

* dispatch only block instead of whole commit

* fix

* test

* update e2e check

* chore: upgrade pnpm v9 (ArkEcosystem#556)

* upgrade pnpm v9

* empty commit

* support webhook condition on nested key (ArkEcosystem#557)

* improve stability (ArkEcosystem#564)

* fix(webhooks): restore webhooks on boot (ArkEcosystem#562)

* restore webhooks on boot

* skip events during bootstrap

* skip all but kernel events

* style: resolve style guide violations

* review

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* chore(ci): add workflow to enforce minimum commit count (ArkEcosystem#565)

* check minimum commit count

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.17 (ArkEcosystem#566)

* release: 0.0.1-alpha.17

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): upsert version on bootstrap (ArkEcosystem#567)

* upsert version on bootstrap

* empty commit

* feat: add `blockPrepareTime` to milestones (ArkEcosystem#568)

* Add blockPrepareTime

* Nest

* Scheduler

* Sync

* Fix generator

* Test config generator

* Test crypto config

* Fix scheduler

* Add test

* Fix functional tests

* stageTime to stageTimeout

* Fix api-http tests

* refactor(api-sync): add `syncInterval` option (ArkEcosystem#569)

* Implement getSyncIntervalMs on abstractListener

* Add syncInterval defaults

* Use configuration

* fix(api-sync): process transactions in chunks to support very large blocks (ArkEcosystem#572)

* sync transactions in chunks

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(consensus): prepare block after commit (ArkEcosystem#571)

* Log on round start

* Propose after commit

* Use timestamp

* Rename methods

* Fix tests

* Rename method

* Fix tests

* Deps

* Fix consensus tests

* Fix tests

* Update packages/validator/source/validator.ts

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(consensus):  dispatch *any events only once per round (ArkEcosystem#574)

* Return scheduler status

* Test scheduler

* Skip multiple dispatches

* Tests

* fix(api-http): support query criteria based on wallet attributes (ArkEcosystem#573)

* wallet attributes criteria

* delegate attributes criteria

* return BadRequest if request results in invalid query

* test for attribute query

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): query round by number (ArkEcosystem#591)

* fix 0 vote balance

* add round parameter

* update tests

* rename route

* feat(crypto-transaction-validator-registration): accept registration from multisig wallet (ArkEcosystem#593)

* remove check

* add tests

* cleanup obsolete exception class

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): expose validator round votes (ArkEcosystem#598)

* add column

* sync round votes

* return votes from controller

* update test

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1 alpha.18 (ArkEcosystem#599)

* release: 0.0.1-alpha.18

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): make bootstrap less verbose (ArkEcosystem#600)

* reduce verbosity of bootstrap

* empty commit

* feat: run transaction-pool in worker thread (ArkEcosystem#610)

* refactor(transaction-pool-service): rename package (ArkEcosystem#575)

* Rename package

* Empty commit

* Fix deeps check

* Fix p2p tests

* Fix e2e tests

* Fix workflow

* feat(transaction-pool): create CLI package (ArkEcosystem#576)

* Clone API package

* Use mainsail-tx-pool process name

* Neutral tests names

* Rename api: to tx-pool:

* Rename commands

* Scripts

* Deps

* Generate unit workflow

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(api-common): add JSON-RPC support (ArkEcosystem#577)

* Bind rpc processor

* Extract RPC contracts

* Add getRPCProcessor

* Validate schema

* Fix validation

* Add method

* Add call action

* Register action

* Handle methodNotFound

* Validate params & handler error

* Move plugin

* Use common utils

* Remove console.logs

* Extract prepareRpcError handler

* Fix imports and deps

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(api-common): use AJV for JSON_RPC schema validation (ArkEcosystem#580)

* Add ajv

* Add schema

* Export validation

* Add Validator.hasSchema

* Register schema

* Fix schema

* Verify payload

* Use ajv

* style: resolve style guide violations

* Fix deps

* Fix api-http tests

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(p2p): remove `postTransactions` route (ArkEcosystem#581)

* Remove postTransactions route

* Remove postTransactions

* Remove post transactions utils

* Remove broadcaster

* Rebuild proto

* Fix p2p tests

* Fix tests

* feat: implement `transaction-pool-server` & `transaction-pool-client` packages (ArkEcosystem#583)

* Add packages & crypto

* Add transaction pool api

* Add deps

* Add transaction pool server

* Add defaults

* Test controller

* Boot server

* Add client package

* Register client

* Add contract

* Register action

* Add base handler

* Remove test transactions

* Client getTx

* Replace TX pool service with client

* Fix schema validation

* Remove transactions from api-development

* Remove from bootstrapper

* Remove from processor and validator

* Remove api-transaction-pool from core

* Use optional query on TX

* Log errors

* style: resolve style guide violations

* Fix validator tests

* Fix consensus tests

* Temporary disable transaction-pool-api tests

* Update e2e app.json

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(state): supports state sync using delta changes (ArkEcosystem#584)

* Implement changesToJson

* Register onCommit

* Add address

* Add changesToJson on WalletRepository

* Return indexes

* Store to json

* Add interface

* Add commit action

* Apply changes to repostiory

* Apply wallet changes

* Apply changes

* Set and forget attributes

* Skip unknown attributes

* Errors

* style: resolve style guide violations

* Fix tests

* Fix

* Comment

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(transaction-pool-api): add transactions endpoints (ArkEcosystem#585)

* Rename route

* /unconfirmed

* /unconfirmed/{id}

* /types

* /unconfirmed

* Remove unused tag

* feat(transaction-pool): implement `get_transactions` action (ArkEcosystem#586)

* Collate transactions

* Set config height

* Transaction bytes return buffer

* Move transaction validator

* Validate transactions

* Add crypto block

* Simplify validator

* Test get transactions

* Remove collator

* Rename identifiers

* Rename contract

* Set failed transactions

* style: resolve style guide violations

* Empty commit

* Fix tests

* Fix consensus tests

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(crypto-transaction): make `id` mandatory (ArkEcosystem#587)

* Make id mandatory

* Make id mandatory

* Make type group mandatory

* Make network mandatory

* feat(transaction-pool): sync block and transactions (ArkEcosystem#588)

* Post failed transactions

* Commit block

* Increase payload size

* Reset failed transactions

* Set last block

* feat(transaction-pool): list & import snapshots (ArkEcosystem#589)

* Export state

* Add snapshot service

* Add action

* list snapshots

* Add import snapshot

* Call import snapshot

* Rename field

* Export from snapshot service

* Extract paths

* Use async fs methods

* Add remove snapshots

* List snapshots as promise

* Use list snapshots

* Implement import

* File changes

* Fix restore snapshots

* Restore snapshots

* Handle import snapshot

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(state): add `skipUnknownAttributes` option to StateRepository (ArkEcosystem#592)

* Log errors

* Fix error messages

* Allow unknown attributes

* Make wallet injectable

* Inject attribute repository

* Rename repository to state repository

* StateRepositoryFactory

* Rename defaults

* Read from defaults

* Add to options

* Extract stateRepositoryFactory

* Fix wallet factory

* fix tests

* Fix tests

* feat(transaction-pool): implement `get_status` JSON_RCP endpoint (ArkEcosystem#595)

* Implement get status

* Log status

* Endpoint returns data

* Disable e2e

* feat(transaction-pool): add  request and response schemas for JSON_RPC actions (ArkEcosystem#596)

* Add commit interfaces

* Add commit schema

* Get Status contracts

* GetTransactions contracts

* ImportSnapshot contracts

* ListSnapshots contracts

* Validate response

* Validate JsonRPC response

* Move schemas to common

* refactor(state): recreate state on snapshot restore (ArkEcosystem#597)

* Recreate base store

* Fix bootstrapper

* refactor(kernel): replace child processes with worker threads (ArkEcosystem#601)

* Use workers

* Limit crypto worker count

* Remove signal for shutdown

* feat(transaction-pool): run transaction pool in worker thread (ArkEcosystem#602)

* Remove transaction-pool

* Add tx pool plugins

* Add core and tx-pool entries

* Load core

* Set thread name

* Add thread name

* Load crypto worker

* Remove requiredByWorker

* Clone

* Cleanup

* Extract contracts

* Update contracts

* Determine if is worker

* Extract worker package

* Register package

* Update contracts

* Fix bindings

* Boot

* Fix

* Add app.json

* Fix app

* Fix functional tests

* CI Unit

* Remove workerLoggingEnabled

* fix(transaction-pool-worker): update local module import workaround (ArkEcosystem#605)

* fix workaround for local module import with custom launch config

* remove try catch

* refactor(transaction-pool): disable snapshot export (ArkEcosystem#604)

* TxPoolClient is mandatory

* Check snapshots enabled

* Fix factory

* refactor(transaction-pool-worker): implement IPC actions (ArkEcosystem#606)

* Import snapshot

* Improve handler

* Implement commit

* Fix contract

* Extract commit handler

* Implement get transactions

* Extract import snapshot

* Remove server client packages

* Remove client instances

* Remove workerPool

* Remove old contracts

* Fix tests

* Regenerate unit CI

* chore: merge develop to tx-pool (ArkEcosystem#607)

* fix(api-http): support query criteria based on wallet attributes (ArkEcosystem#573)

* wallet attributes criteria

* delegate attributes criteria

* return BadRequest if request results in invalid query

* test for attribute query

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): query round by number (ArkEcosystem#591)

* fix 0 vote balance

* add round parameter

* update tests

* rename route

* feat(crypto-transaction-validator-registration): accept registration from multisig wallet (ArkEcosystem#593)

* remove check

* add tests

* cleanup obsolete exception class

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): expose validator round votes (ArkEcosystem#598)

* add column

* sync round votes

* return votes from controller

* update test

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1 alpha.18 (ArkEcosystem#599)

* release: 0.0.1-alpha.18

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): make bootstrap less verbose (ArkEcosystem#600)

* reduce verbosity of bootstrap

* empty commit

* Increase version

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): fix transaction-pool-api tests (ArkEcosystem#609)

* Add custom pool worker

* Empty

* Enable tests

* test(ci): fix e2e tests (ArkEcosystem#608)

* Enable E2E tests

* Empty commit

* Update app.json

* Fix

* enable hapi debug logs

* fix invalid config lookup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* Changes

* Fix unit tests

* Fix consensus tests

* Fix transaction-pool-api tests

* Update e2e tests

* style: resolve style guide violations

* Fix dependencies

* Fix integration tests

* update validator secrets

* merge fix

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: Adrian Kerchev <akerchev@gmail.com>
Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: Edgar Goetzendorff <hello@dated.fun>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* add `@mainsail/evm-gas-fee` package

* add `gasLimit` field to block model

* pass `gasLimit` to evm

* deduct consumed gas fee from balance

* regenerate genesis block

* sync gasLimit to blocks table

* add dependencies

* update tests

* block gas limit

* more test fixes

* update functional consensus tests

* update functional tx pool api tests

* wip

* emit transaction receipt

* take consumed gas into account for balance snapshot checks

* re-enable skipped test

* fix genesis block

* fix block tests

* style: resolve style guide violations

* fixes

* style: resolve style guide violations

* make deps:check happy

* update p2p protobuf schema

* style: resolve style guide violations

* rename field

* calculate gas used in collator

* style: resolve style guide violations

* return consumed gas

* cache collator evm result

* style: resolve style guide violations

* missing bindings

* fixes

* style: resolve style guide violations

* update consensus test

* don't panic when running out of gas

* fix slice

* revert transaction pool gas limit check, update validator logic

* refactor processor result

* rename milestone

* return gasUsed from transaction validator

* fix balance snapshot check

* style: resolve style guide violations

* prevent redundant logs

* fix

* fix test

* refactor

* change `app.terminate` return type to never

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
… a cache (ArkEcosystem#613)

* add evm mode enum

* remove cache

* use ephemeral evm for transaction validator

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* add evm mode enum

* remove cache

* use ephemeral evm for transaction validator

* style: resolve style guide violations

* add block context

* update test

* test evm block env

* pass block context to evm

* fix pool mock

* add comment

* style: resolve style guide violations

* use block round

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* store tiny receipt

* pass tx hash

* update test

* also keep deployed contract addresses

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* setup receipts table

* sync receipts

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* add receipt controller

* fix typo

* store receipt block height, transform output buffer to hex string

* update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* update payload length check

* regenerate genesis block

* update functional

* remove workaround

* make test more robust

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* run cargo test

* empty commit

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
sebastijankuzner and others added 29 commits August 6, 2024 19:56
* Update nx.json

* Cache build

* Del target
…system#677)

* bump better-sqlite3

* empty commit

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* improve error logs

* fix state hash calculation

* update tests

* test(e2e): fix docker-compose setup (ArkEcosystem#673)

* try fix ci

* empty commit

* fix

* fix tx pool collator state when exceeding block gas limit

* Revert "fix tx pool collator state when exceeding block gas limit"

This reverts commit d8b3daa.

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>
… call (ArkEcosystem#680)

* add error reason to exception

* check error on verify result

* make signatures optional

* use AcceptAnyTransactionVerifier for test builders

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* update queries

* update test fixtures

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
* Update better-sqlite3

* Empty commit
* setup evm-consensus

* wip consensus integration

* wip contract integration

* change commit order

* update contract

* support evm value transfers

* set initial genesis balance

* update genesis generator to use evm transfers

* regenerate

* set genesis info dynamically

* fix

* regenerate
* remove obsolete code

* update rewards and votes

* add test

* update contract bytecode

* enrich genesis info

* update deps check
* Update consensus contract

* Update contract

* Update contract
* Get balance from evm

* Get nonce from evm

* Skip ballance checks

* Remove nonce checks
* return account updates on commit

* write account updates to wallet store

* update abi

* events module

* parse Voted/Unvoted events

* update wallet attributes

* Cargo.lock

* cleanup

* fix cast

* use BTreeMap to preserve insertion order
* Update contract

* Use calculateTopValidators
* Update contract

* Call get top validators

* Update contract

* Calculate top validators

* Use fixed number of validators

* Update contract

* Temporary disable verifyStateHash

* Convert to u8

* Calculate on every new round

* Calculate top validators in validator
* Cleanup bootstrap

* Fixed validator matrix and restore

* Replace publicKey with address

* Fix configuration generator

* Regenerate network

* Remove logs
…#22)

* Deploy direct transfer transaction

* Add logs

* Fix consensus

* Show len of update votes

* Increase gas limit to 30M
* Use block round

* Empty
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(validator-set-vote-weighted): active validators is subset of registered validators (ArkEcosystem#466)

* Mak method private

* Build validators

* Local variable

* Use for of loop

* Check active validators

* Fix tests

* fix(processor): `validatorVoteBalance` calculation (ArkEcosystem#467)

* Add pg:reset

* Decrease vote balance

* Include fee

* Remove unused line

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: docker validator support (ArkEcosystem#468)

* release: 0.0.1-alpha.9 (ArkEcosystem#469)

* release: 0.0.1-alpha.9

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* chore: fix publish GitHub workflow (ArkEcosystem#470)

* Run on pull request

* No git checks

* set token

* Revert to original build conditions

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* refactor(transactions): move amount deduction into transaction handlers (ArkEcosystem#472)

* refactor transfer amount deduction

* cleanup

* update schema tests

* feat: add `env:paths:clear` commands (ArkEcosystem#473)

* Clear plugins & exports

* Clear data

* Remove variables

* Add paths to contracts

* Remove config paths

* Cache cache, log, temp

* Cleanup

* Add command to api

* Add clear all

* Fix case

* release: 0.0.1-alpha.10 (ArkEcosystem#474)

* release: 0.0.1-alpha.10

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(crypto-transaction-username-registration): limit one transaction by sender in pool (ArkEcosystem#475)

* Rename variable

* Fix text

* Check transaction already in the pool

* feat(validator): log loaded validators (ArkEcosystem#477)

* Inject

* Print method

* Print on bootstrap

* Rename method

* Execute after state check

* Improve text

* Log 0 validators

* Determine activa & standby

* Wallet to string

* chore: fix typo in transaction fee errors (ArkEcosystem#476)

* feat(state): implements `sizeOfIndex` on WalletRepository (ArkEcosystem#479)

* Add sizeOfIndex

* Add initial implementation

* Wallet repository clone

* Implement on wallet repo clone

* Add missing attribute

* FIx validator resignation

* release: 0.0.1-alpha.11 (ArkEcosystem#480)

* release: 0.0.1-alpha.11

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat: port to ES modules (ArkEcosystem#478)

* initial browser support

* add package link script

* port api-common

* port api-database

* port api-development

* port api-http

* port api-sync

* port api-transaction-pool

* port api

* port bootstrap

* port cli

* port configuration-generator

* port consensus

* port webhooks

* port validator

* port validator-set-vote-weighted

* port validator-set-static

* port validation

* port utils

* port transactions

* port transaction-pool

* port test-framework

* port state

* port serializer

* port proposer

* port processor

* port p2p

* port networking-ntp

* port networking-dns

* port logger-winston

* port logger-pino

* port kernel

* port fees

* port fees-static

* port fees-managed

* port fees-burn

* port database

* port crypto-worker

* port crypto-wif

* port crypto-validation

* port crypto-transaction

* port crypto-transaction-vote

* port crypto-transaction-validator-resignation

* port crypto-transaction-validator-registration

* port crypto-transaction-username-resignation

* port crypto-transaction-username-registration

* port crypto-transaction-transfer

* port crypto-transaction-multi-signature-registration

* port crypto-transaction-multi-payment

* port crypto-signature-schnorr

* port crypto-signature-schnorr-secp256k1

* port crypto-signature-ed25519

* port crypto-signature-ecdsa

* port crypto-signature-bls12-381

* port crypto-messages

* port crypto-key-pair-schnorr

* port crypto-key-pair-ed25519

* port crypto-key-pair-ecdsa

* port crypto-key-pair-bls12-381

* port crypto-hash-wasm

* port crypto-hash-noble

* port crypto-hash-bcrypto

* port crypto-consensus-bls12-381

* port crypto-config

* port crypto-commit

* port crypto-block

* port crypto-address-ss58

* port crypto-address-keccak256

* port crypto-address-bech32m

* port crypto-address-bech32

* port crypto-address-base58

* port core

* port contracts

* port container

* update tsconfig to nodenext

* fix kleur/color

* update core/bin/run.js

* command fixes

* lmdb import fixes

* p2p fixes

* ajv fix

* get __dirname

* update pnpm-lock.yaml

* remove unused @pm2/io dependency

* replace fileURLToPath

* use filesystem service inside kernel

* cleanup

* update TypeScript to 5.4.2

* move __dirname into local scope

* replace fast-memoize with memoizee

* test-runner packacge

* re-export test-runner

* tests: utils

* tests: validation

* tests: crypto-config

* tests: container

* tests: kernel

* tests: transactions

* style: resolve style guide violations

* fix more tests

* fix transaction dependency lookup

* fix p2p tests

* more fixes

* fix cli and configuration-generator

* cli fixes

* kernel fixes

* transaction-pool

* all pass

* commit dirty

* style: resolve style guide violations

* fix api-http integration tests

* fix deps:check

* runtime fixes

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix(api): broken entrypoint (ArkEcosystem#481)

* fix api entrypoint

* fix more commands

* refactor(transaction-pool): return tx indexes as integers (ArkEcosystem#483)

* return tx indexes as integers

* fix compile error

* chore: update dependencies (ArkEcosystem#482)

* update dependencies

* Empyt commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* fix wallet response (ArkEcosystem#485)

* fix(configuration-generator): create genesis block script (ArkEcosystem#484)

* fix create genesis block script

* Empty commit

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(core): rename run script to have explicit file extension (ArkEcosystem#486)

* ensure run script has explicit file extension

fixes ERR_UNKNOWN_FILE_EXTENSION

* empty commit

* fix: use .js extension in `start` commands (ArkEcosystem#487)

* Fix start commands

* Fix package.json

* Fix tests

* release: 0.0.1-alpha.12 (ArkEcosystem#488)

* release: 0.0.1-alpha.12

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(core): resolve correct plugin `package.json` path (ArkEcosystem#489)

* Fix package manifest

* Skip tests

* release: 0.0.1-alpha.13 (ArkEcosystem#490)

* release: 0.0.1-alpha.13

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(cli): determine correct entrypoint paths (ArkEcosystem#491)

* Add setup class

* Fix setup

* Bind

* Fixes

* Use setup paths

* Use in api

* Remove logs

* Fix tests

* Cleanup tests

* fix(test-framework): list project packages in dependencies (ArkEcosystem#492)

* Use direct dependencies

* Empty commit

* Fix dependencies

* Fix dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* exclude genesis transactions from fee statistics calculation (ArkEcosystem#494)

* fix(crypto): manage static fees via milestones (ArkEcosystem#493)

* add static fees to milestones

* update tests

* style: resolve style guide violations

* initialize static fees only in a single place

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api): sync active milestones on change (ArkEcosystem#495)

* sync active milestones on change

* fix test

* fix(api-http): add missing fields to transaction resource (ArkEcosystem#496)

* improve error logging

* populate all transaction fields

* review

* remove type cast

* add comment

* simplify more

* rename block model too and add assert

* fix paths according to the latest paths naming convention (ArkEcosystem#497)

* refactor(p2p): replace ip with `url` in api nodes (ArkEcosystem#498)

* api node urls

* update protobuf definitions

* update test fixtures

* cleanup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(transaction-pool): invalid tx error reporting (ArkEcosystem#500)

* fix tx pool error reporting

* empty commit

* test: use `tsx` TypeScript loader (ArkEcosystem#499)

* Add tsx

* Fix runner

* Fix test-runner scripts

* Update tsconfig

* Fix tests

* Use test config

* Fix api tests

* api-common

* Api-database

* api-development

* api-http

* api-sync

* api-transaction-pool

* bootstrap

* cli partial

* Fix cli tests

* Runner extends contracts

* Configuration generator

* Consensus

* Container

* Contracts

* Core

* Crypto address

* Crypto block

* Cypto commit

* Crypto config

* Crypto

* Crypto messages

* Crypto signature

* Crypto transaction

* Crypto

* Database

* Fees

* Kernel

* Logger pino

* Logger winston

* Networking

* Server

* Processor, proposer, serializer

* State

* Transaction pool

* Transactions

* Utils

* Validation

* Validator

* Validator set

* Webhooks

* Remove tsm

* Fix integration tests

* Update lint CI

* Fix dependencies

* Prettier

* Lint

* Perttier

* style: resolve style guide violations

* refactor: remove `__dirname` usage (ArkEcosystem#501)

* Remove __dirname

* Fix tests

* Factory require config

* test(functional/consensus): add skeleton for functional tests (ArkEcosystem#503)

* Prepare base structure

* Add test runner

* Base test

* Add base packages

* Register base packages

* Add config

* Add pacakges

* Export bootstrap

* Export individual bootstrappers

* Register bootstrappers

* Extract bootstrapper itnerface

* Test

* Use tsm

* Pass url to PluginManifest

* Register service provider

* Setup up to validator package

* Register all necessary packages

* Add missing packages

* Boot

* Register transactions

* Process genesis

* Run consensus

* Add worker

* Fix worker

* Fix broadcaster

* refactor(consensus-storage): extract storage logic into package (ArkEcosystem#502)

* Add consensus storage package

* Prepare service provider

* Remove storage from consensus

* Add dependencies

* Move root into consensus storage

* Rename identifier

* Fix identifiers

* Edit contracts

* Fix deps

* Update packages/consensus-storage/README.md

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* milestone generator add static fees (ArkEcosystem#504)

* test(functional/transaction-pool-api): initial boilerplate and tests (ArkEcosystem#505)

* update gitignore

* add tx pool api boilerplate and basic broadcast

* add signWithKeyPair to tx builder

* update functional consensus milestones

* wait for block and assert committed transaction

* invalid transfer test

* assert invalid transactions are not committed

* test with invalid / malformed signature

* fix(test-runner): rethrow error in runHook (ArkEcosystem#506)

* bubble up error thrown in runHook

* Empty

---------

Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* refactor(database): return commits instead blocks (ArkEcosystem#507)

* getBlock to getCommit

* Fix tests

* getLastBlock -> getLastCommit

* Fix tests

* Implement isEmpty

* Fix tests

* feat(transaction-pool): support `in-memory` database (ArkEcosystem#510)

* Support im memory database

* Deps

* Test

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional/consensus): prepare package replacements, asserts and p2p layer (ArkEcosystem#508)

* Bind consensus storage

* Mock database

* Add contracts

* Use relative paths

* Prepare 2 setups

* Run 2 nodes

* Make log protected

* Make MemoryLogger fields protected

* Prepare custom logger

* Prepare p2p layer

* Fix p2p

* MemoryDatabase

* Load crypto

* Read validators

* Prepare validators

* Use common config

* Add snooze for one block

* Stop node

* Snooze for block

* Prepare smaller config

* Asserts

* Fix and check TS code

* Add script for check & test

* Use strict true

* Support plugin options

* Assert validators

* refactor(kernel): create bootstraper for shutdown signals  (ArkEcosystem#511)

* Register error handler first

* Move listen to shutdown signals into bootstrapper

* test(functional/transaction-pool-api): test all transaction types (ArkEcosystem#509)

* missing dependency

* transfer

* vote

* username-registration

* username-resignation

* validator-registration

* validator-resignation

* multipayment

* fix default payload

* update utils

* multi signature test plus fixes

* fix compile error

* test transfer with multisig

* rename tests for clarity

* add wallets to context

* tsc strict

* add snapshot based balance checks

* reduce block time

* review

* test(functional/transaction-pool): increase vote coverage (ArkEcosystem#512)

* votes

* empty commit

* test switch vote and unvote for non voted validator

* test(functional/transaction-pool): increase validator registration coverage (ArkEcosystem#513)

* votes

* empty commit

* validator registration

* empty commit

* test(functional/transaction-pool): increase validator resignation coverage (ArkEcosystem#514)

* votes

* empty commit

* validator resignation

* empty commit

* test(functional/transaction-pool): increase username registration coverage (ArkEcosystem#515)

* votes

* empty commit

* username registration

* empty commit

* test(functional/transaction-pool): increase username resignation coverage (ArkEcosystem#516)

* votes

* empty commit

* username resignation

* empty commit

* fix(kernel): minority and majority calculation (ArkEcosystem#520)

* Fix majority, minority

* Tests

* Add extra tests

* fix(api-http): allow 0 nonce in schema (ArkEcosystem#521)

* Allow nonce 0

* Empty commit

* fix(api-http): implement missing `/transaction/fees` route (ArkEcosystem#523)

* implement missing route /transaction/fees

* add test

* style: resolve style guide violations

* remove unused query param

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/transaction-pool): increase multi sig registration coverage  (ArkEcosystem#517)

* more multi signature tests

* empty commit

* update min participants

* test missing participant signature

* test(functional/transaction-pool): add more misc coverage  (ArkEcosystem#518)

* more multi signature tests

* empty commit

* add misc tests

* empty commit

* release: 0.0.1-alpha.14 (ArkEcosystem#522)

* release: 0.0.1-alpha.14

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(consensus): emit events (ArkEcosystem#524)

* Add bootstrapped

* New round

* Add events

* Dispatch events

* Fix tests

* test(functional/transaction-pool): extract transaction builders into separate package (ArkEcosystem#525)

* introduce test-transaction-builders package

* use test transactions package

* include type when logging rejected tx

* style: resolve style guide violations

* fix deps:check

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test proposal scenarios (ArkEcosystem#526)

* Add initial test

* Rename base test

* Optional blockId

* Full test

* Bind custom proposer selector

* Check generatorPublic key

* Make consensus methods protected

* Expose boot and bootstrap methods

* Skip error handler registration

* Make consensus methods public

* Assert blockRound

* Implement *Many helpers

* Fix base test

* Force async to p2p

* Test missing propose

* Simulate double propose

* Simulate 50:50 split

* Remove assertCommitValidators

* Record messages

* Asserts

* majority minority split

* SnozeForBlock with height

* Assert next block is fine

* Check multiple rounds

* Check invalid proposer

* Add CI for functional

* Rename tests to proposal

* Rename tests

* fix(api-http): delegate search (ArkEcosystem#527)

* Fix delegate search in API

* Initial support for sorting on jsonb fields

* Update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(p2p): log route on codec error (ArkEcosystem#528)

* Log error

* Allow empty

* test(functional/transaction-pool): add .gitkeep (ArkEcosystem#530)

* add .gitkeep

* empty commit

* test(functional/consensus): test prevote & precommit scenarios (ArkEcosystem#529)

* Check minority not prevoting

* Test null prevotes

* Extract methods to utils

* Check random block

* Check with multiple prevotes

* Lint

* Fix ts errors

* Disable unicorn/no-useless-undefined

* Check missing precommits

* Test precommits

* Check multiple messages

* fix(configuration-generator): update export paths (ArkEcosystem#531)

* Update paths

* Empty

* feat(api-development): add `peers/banned` endpoint (ArkEcosystem#532)

* Disposer returns list of banned peers

* Add endpoint

* Add pagiantion

* Format timeout

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): update ci workflow (ArkEcosystem#534)

* run all functional tests in ci

* test

* style: resolve style guide violations

* test

* revert me

* style: resolve style guide violations

* include matrix name

* revert trigger

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* test(functional/consensus): test rejection of invalid block proposals (ArkEcosystem#533)

* custom funded wallet provider

* REVERT ME: debug logs

* export Proposer

* custom block proposal

* emit event on invalid block

* add assertInvalidBlock

* extract custom proposal function

* ensure wallet exists on each node

* invalid proposals

* seed with randomBytes

* log error instance on mismatch

* lint

* Revert "REVERT ME: debug logs"

This reverts commit defdf7e.

* deps: update lmdb (ArkEcosystem#535)

* Update lmdb

* Log if commit cannot be read

* Await transaction flushed

* Await flush

* test(functional): fix `MaxListenersExceeded` warning (ArkEcosystem#537)

* fix MaxListenersExceededWarning

* empty commit

* feat(api-http): support sorting on jsonb attributes (ArkEcosystem#538)

* support sort on wallet attributes

* NULLS LAST

* tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(p2p): peer ban and validate ip plugin (ArkEcosystem#539)

* Skip header check if peer is not in repo

* Validate peer ip

* Remove repo check

* Validate ip and data separately

* Fix test

* Update default peer ban time

* feat(cli): add --overwrite flag to `config:publish:custom` (ArkEcosystem#536)

* expose `skip` callback

* update publish:custom command

* style: resolve style guide violations

* Make fields optional

* Require flags error

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijan.kuzner@outlook.com>

* feat(crypto): add browser support for bls12-381 packages (ArkEcosystem#540)

* add bls12-381 browser support

* update test

* style: resolve style guide violations

* dep check exception

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.15 (ArkEcosystem#542)

* release: 0.0.1-alpha.15

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(p2p): postTransactions response schema and proto (ArkEcosystem#543)

* Update proto

* Build proto

* Fix schema

* Fix tests

* refactor(api): show `meta` field in response at top (ArkEcosystem#545)

* show `meta` field in response at top

* style: resolve style guide violations

* eslint: disable key sort

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* fix(api-http): change default sort for `/delegates` (ArkEcosystem#544)

* sort /delegates by rank by default

* empty commit

* refactor(block-processor): log commit round (ArkEcosystem#546)

* Log block round

* Empty commit

* perf(consensus): verify proposal signatures on main thread (ArkEcosystem#548)

* Verify signature on main thread

* Empty commit

* refactor(contracts): remove Consensus prefix from contracts (ArkEcosystem#549)

* Rename contracts

* Empty commit

* refactor(consensus): remove hasValidBlockGenerator check (ArkEcosystem#550)

* Remove hasValidBlockGenerator check

* Empty commit

* fix(api-http): sort delegates by rank asc by default (ArkEcosystem#552)

* sort delegates by rank asc by default

* empty commit

* test(e2e): add e2e tests and workflow (ArkEcosystem#547)

* network with 3 nodes

* add check for target block height

* workflow

* revert me

* exclude e2e directory

* style: resolve style guide violations

* docker fixes

* test

* add timeout

* test

* wait for checks to finish

* run detached

* show logs

* style: resolve style guide violations

* increase sleep

* increase target height

* revert trigger condition

* revert changes to defaults

* style: resolve style guide violations

* reply with 200

* Update tests/e2e/consensus/checks/index.mjs

Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* reduce timeout for now

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: Sebastijan K. <58827427+sebastijankuzner@users.noreply.github.com>

* release: 0.0.1-alpha.16 (ArkEcosystem#553)

* release: 0.0.1-alpha.16

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(validator): support secret encryption (ArkEcosystem#554)

* remove skipValidation flag

* write validator keystore

* support validator with encrypted passphrase

* update commands

* update tests

* optional keystore

* style: resolve style guide violations

* support --password

* review

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* perf: deserialize proposal in steps (ArkEcosystem#551)

* Rename ProposedBlock to ProposedData

* Remove ProposedBlockJson

* Rename proposal.block to proposal.data

* Fix consensus tests

* Fix crypto-message tests

* Add getData and isDataDeserialized

* Fix consensus tests

* Test proposal

* Rename method

* Make makeProposedDataFromBytes public

* Make proposal injectable

* Fix tests

* Add deserialize to proposal

* Check status before returning data

* Include deserializer

* Fix tests

* Pass only serialized data to proposal

* Deserialize in proposal processor

* Deserialize in handler

* Remove todo

* Fix tests

* Fix header

* Verify lock proof after deserialization

* Fix functional tests

* Fix proposal types

* Fix proposal creation

* perf(consensus): run pending RoundStates only once (ArkEcosystem#555)

* Set pending jobs

* Remove key

* Reduce complexity

* fix: dispatch block events with expected payload (ArkEcosystem#558)

* dispatch BlockEvent.Forged again

* dispatch only block instead of whole commit

* fix

* test

* update e2e check

* chore: upgrade pnpm v9 (ArkEcosystem#556)

* upgrade pnpm v9

* empty commit

* support webhook condition on nested key (ArkEcosystem#557)

* improve stability (ArkEcosystem#564)

* fix(webhooks): restore webhooks on boot (ArkEcosystem#562)

* restore webhooks on boot

* skip events during bootstrap

* skip all but kernel events

* style: resolve style guide violations

* review

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* chore(ci): add workflow to enforce minimum commit count (ArkEcosystem#565)

* check minimum commit count

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1-alpha.17 (ArkEcosystem#566)

* release: 0.0.1-alpha.17

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): upsert version on bootstrap (ArkEcosystem#567)

* upsert version on bootstrap

* empty commit

* feat: add `blockPrepareTime` to milestones (ArkEcosystem#568)

* Add blockPrepareTime

* Nest

* Scheduler

* Sync

* Fix generator

* Test config generator

* Test crypto config

* Fix scheduler

* Add test

* Fix functional tests

* stageTime to stageTimeout

* Fix api-http tests

* refactor(api-sync): add `syncInterval` option (ArkEcosystem#569)

* Implement getSyncIntervalMs on abstractListener

* Add syncInterval defaults

* Use configuration

* fix(api-sync): process transactions in chunks to support very large blocks (ArkEcosystem#572)

* sync transactions in chunks

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* refactor(consensus): prepare block after commit (ArkEcosystem#571)

* Log on round start

* Propose after commit

* Use timestamp

* Rename methods

* Fix tests

* Rename method

* Fix tests

* Deps

* Fix consensus tests

* Fix tests

* Update packages/validator/source/validator.ts

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(consensus):  dispatch *any events only once per round (ArkEcosystem#574)

* Return scheduler status

* Test scheduler

* Skip multiple dispatches

* Tests

* fix(api-http): support query criteria based on wallet attributes (ArkEcosystem#573)

* wallet attributes criteria

* delegate attributes criteria

* return BadRequest if request results in invalid query

* test for attribute query

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): query round by number (ArkEcosystem#591)

* fix 0 vote balance

* add round parameter

* update tests

* rename route

* feat(crypto-transaction-validator-registration): accept registration from multisig wallet (ArkEcosystem#593)

* remove check

* add tests

* cleanup obsolete exception class

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): expose validator round votes (ArkEcosystem#598)

* add column

* sync round votes

* return votes from controller

* update test

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1 alpha.18 (ArkEcosystem#599)

* release: 0.0.1-alpha.18

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): make bootstrap less verbose (ArkEcosystem#600)

* reduce verbosity of bootstrap

* empty commit

* feat: run transaction-pool in worker thread (ArkEcosystem#610)

* refactor(transaction-pool-service): rename package (ArkEcosystem#575)

* Rename package

* Empty commit

* Fix deeps check

* Fix p2p tests

* Fix e2e tests

* Fix workflow

* feat(transaction-pool): create CLI package (ArkEcosystem#576)

* Clone API package

* Use mainsail-tx-pool process name

* Neutral tests names

* Rename api: to tx-pool:

* Rename commands

* Scripts

* Deps

* Generate unit workflow

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(api-common): add JSON-RPC support (ArkEcosystem#577)

* Bind rpc processor

* Extract RPC contracts

* Add getRPCProcessor

* Validate schema

* Fix validation

* Add method

* Add call action

* Register action

* Handle methodNotFound

* Validate params & handler error

* Move plugin

* Use common utils

* Remove console.logs

* Extract prepareRpcError handler

* Fix imports and deps

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(api-common): use AJV for JSON_RPC schema validation (ArkEcosystem#580)

* Add ajv

* Add schema

* Export validation

* Add Validator.hasSchema

* Register schema

* Fix schema

* Verify payload

* Use ajv

* style: resolve style guide violations

* Fix deps

* Fix api-http tests

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(p2p): remove `postTransactions` route (ArkEcosystem#581)

* Remove postTransactions route

* Remove postTransactions

* Remove post transactions utils

* Remove broadcaster

* Rebuild proto

* Fix p2p tests

* Fix tests

* feat: implement `transaction-pool-server` & `transaction-pool-client` packages (ArkEcosystem#583)

* Add packages & crypto

* Add transaction pool api

* Add deps

* Add transaction pool server

* Add defaults

* Test controller

* Boot server

* Add client package

* Register client

* Add contract

* Register action

* Add base handler

* Remove test transactions

* Client getTx

* Replace TX pool service with client

* Fix schema validation

* Remove transactions from api-development

* Remove from bootstrapper

* Remove from processor and validator

* Remove api-transaction-pool from core

* Use optional query on TX

* Log errors

* style: resolve style guide violations

* Fix validator tests

* Fix consensus tests

* Temporary disable transaction-pool-api tests

* Update e2e app.json

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(state): supports state sync using delta changes (ArkEcosystem#584)

* Implement changesToJson

* Register onCommit

* Add address

* Add changesToJson on WalletRepository

* Return indexes

* Store to json

* Add interface

* Add commit action

* Apply changes to repostiory

* Apply wallet changes

* Apply changes

* Set and forget attributes

* Skip unknown attributes

* Errors

* style: resolve style guide violations

* Fix tests

* Fix

* Comment

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(transaction-pool-api): add transactions endpoints (ArkEcosystem#585)

* Rename route

* /unconfirmed

* /unconfirmed/{id}

* /types

* /unconfirmed

* Remove unused tag

* feat(transaction-pool): implement `get_transactions` action (ArkEcosystem#586)

* Collate transactions

* Set config height

* Transaction bytes return buffer

* Move transaction validator

* Validate transactions

* Add crypto block

* Simplify validator

* Test get transactions

* Remove collator

* Rename identifiers

* Rename contract

* Set failed transactions

* style: resolve style guide violations

* Empty commit

* Fix tests

* Fix consensus tests

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(crypto-transaction): make `id` mandatory (ArkEcosystem#587)

* Make id mandatory

* Make id mandatory

* Make type group mandatory

* Make network mandatory

* feat(transaction-pool): sync block and transactions (ArkEcosystem#588)

* Post failed transactions

* Commit block

* Increase payload size

* Reset failed transactions

* Set last block

* feat(transaction-pool): list & import snapshots (ArkEcosystem#589)

* Export state

* Add snapshot service

* Add action

* list snapshots

* Add import snapshot

* Call import snapshot

* Rename field

* Export from snapshot service

* Extract paths

* Use async fs methods

* Add remove snapshots

* List snapshots as promise

* Use list snapshots

* Implement import

* File changes

* Fix restore snapshots

* Restore snapshots

* Handle import snapshot

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* feat(state): add `skipUnknownAttributes` option to StateRepository (ArkEcosystem#592)

* Log errors

* Fix error messages

* Allow unknown attributes

* Make wallet injectable

* Inject attribute repository

* Rename repository to state repository

* StateRepositoryFactory

* Rename defaults

* Read from defaults

* Add to options

* Extract stateRepositoryFactory

* Fix wallet factory

* fix tests

* Fix tests

* feat(transaction-pool): implement `get_status` JSON_RCP endpoint (ArkEcosystem#595)

* Implement get status

* Log status

* Endpoint returns data

* Disable e2e

* feat(transaction-pool): add  request and response schemas for JSON_RPC actions (ArkEcosystem#596)

* Add commit interfaces

* Add commit schema

* Get Status contracts

* GetTransactions contracts

* ImportSnapshot contracts

* ListSnapshots contracts

* Validate response

* Validate JsonRPC response

* Move schemas to common

* refactor(state): recreate state on snapshot restore (ArkEcosystem#597)

* Recreate base store

* Fix bootstrapper

* refactor(kernel): replace child processes with worker threads (ArkEcosystem#601)

* Use workers

* Limit crypto worker count

* Remove signal for shutdown

* feat(transaction-pool): run transaction pool in worker thread (ArkEcosystem#602)

* Remove transaction-pool

* Add tx pool plugins

* Add core and tx-pool entries

* Load core

* Set thread name

* Add thread name

* Load crypto worker

* Remove requiredByWorker

* Clone

* Cleanup

* Extract contracts

* Update contracts

* Determine if is worker

* Extract worker package

* Register package

* Update contracts

* Fix bindings

* Boot

* Fix

* Add app.json

* Fix app

* Fix functional tests

* CI Unit

* Remove workerLoggingEnabled

* fix(transaction-pool-worker): update local module import workaround (ArkEcosystem#605)

* fix workaround for local module import with custom launch config

* remove try catch

* refactor(transaction-pool): disable snapshot export (ArkEcosystem#604)

* TxPoolClient is mandatory

* Check snapshots enabled

* Fix factory

* refactor(transaction-pool-worker): implement IPC actions (ArkEcosystem#606)

* Import snapshot

* Improve handler

* Implement commit

* Fix contract

* Extract commit handler

* Implement get transactions

* Extract import snapshot

* Remove server client packages

* Remove client instances

* Remove workerPool

* Remove old contracts

* Fix tests

* Regenerate unit CI

* chore: merge develop to tx-pool (ArkEcosystem#607)

* fix(api-http): support query criteria based on wallet attributes (ArkEcosystem#573)

* wallet attributes criteria

* delegate attributes criteria

* return BadRequest if request results in invalid query

* test for attribute query

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): query round by number (ArkEcosystem#591)

* fix 0 vote balance

* add round parameter

* update tests

* rename route

* feat(crypto-transaction-validator-registration): accept registration from multisig wallet (ArkEcosystem#593)

* remove check

* add tests

* cleanup obsolete exception class

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(api-http): expose validator round votes (ArkEcosystem#598)

* add column

* sync round votes

* return votes from controller

* update test

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* release: 0.0.1 alpha.18 (ArkEcosystem#599)

* release: 0.0.1-alpha.18

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(api-sync): make bootstrap less verbose (ArkEcosystem#600)

* reduce verbosity of bootstrap

* empty commit

* Increase version

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(functional): fix transaction-pool-api tests (ArkEcosystem#609)

* Add custom pool worker

* Empty

* Enable tests

* test(ci): fix e2e tests (ArkEcosystem#608)

* Enable E2E tests

* Empty commit

* Update app.json

* Fix

* enable hapi debug logs

* fix invalid config lookup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(transaction-pool-broadcaster): implement node verification and broadcast (ArkEcosystem#612)

* Add package

* Add peer

* Add peer repository

* Add verifier

* Add peer processor

* Defaults

* Bind identifiers

* Add broadcaster

* Skip verification

* Extract api node

* Register services

* Add index

* Fix

* Register broadcaster

* Set peer action

* Forget peer

* Use in actions

* Broadcast

* Remove after errors

* Use defaults

* Add env variables

* Remove send action

* Support worker events

* Remove peer

* Remove pending peers, verifier and processor

* Verify tx pool node

* Remove log

* Read port from defaults

* Read from defaults

* Remove identifiers

* Fix unit tests

* Fix deps

* Fix functional tests

* Update e2e app.json

* style: resolve style guide violations

* Fix ts error

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(kernel): make crypto-worker and transaction-pool optional in app.json (ArkEcosystem#615)

* Make fields optional

* Add validation

* Add deps

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(consensus): await proposal creation and reduce thread blocking (ArkEcosystem#617)

* Set timeout before handle

* Make proposal promise

* Add timeouts

* fix(bootstrap): set processor result on commit state (ArkEcosystem#618)

* set processor result on bootstrap

* empty commit

* fix(bootstrap): set genesis block after restore (ArkEcosystem#623)

* Restore before genesis

* Empty commit

* skip restore if database is empty

---------

Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>

* perf(crypto-block): skip deserialization on make (ArkEcosystem#625)

* Skip deserialization on make

* Fix crypto-block tests

* Fix test framework

* Fix database tests

* refactor(p2p): increase timeouts (ArkEcosystem#624)

* Empty commit

* Increase timeouts

* feat(validator): time limit transaction collation (ArkEcosystem#620)

* Time limit

* Empty commit

* Add defaults

* Use default

* Fix tests

* Set block prepare time

* feat(logger-pino): log worker thread name (ArkEcosystem#627)

* Remove ignores

* Update pino

* Update pino pretty

* Update rotating-file-stream

* Remove pid

* Show thread name

* Fix tests

* feat(block-processor): check future blocks (ArkEcosystem#628)

* Add dayjs

* Verify future blocks

* Add tolerance milestone

* Use tolerance

* Fix tests

* style: resolve style guide violations

* Fix integration tests

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(transaction-pool-worker): remove extra logs (ArkEcosystem#629)

* Remove commit messages

* empty commit

* refactor(transaction-pool-service): readd transactions on boot and milestone change (ArkEcosystem#630)

* Skip export

* Cleanup after block

* Re add transactions on milestone change

* Remove handlers

* Add start handler

* Fix tests

* chore(ci): fix deprecation warning (ArkEcosystem#634)

* use latest actions

* update script

* feat(transaction-pool-service): re-add transactions on invalid states (ArkEcosystem#632)

* Remove revert on sender state

* Remove forged transactions method

* Add initial commit methods

* Remove forged transactions

* Implement commit

* Remove failed transactions

* Cleanup is private

* Implement reAddTransactions transactions

* Add remove transactions

* Make remove methods sync

* Rename method to fixInvalidStates

* Call fixInvalidStates

* Cleanup service

* Remove asserts

* Remove removeTransaction

* Move commit to service

* Use debug logs

* Skip tests

* style: resolve style guide violations

* Fix worker

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* refactor(contracts): move events to contracts (ArkEcosystem#635)

* Add events

* Move events under contracts

* Fix tests

* Fix tests

* Void floating promises

* Move webhook events

* Fix webhook tests

* refactor(transactions): inject EventDispatcher (ArkEcosystem#636)

* Remove emitter in parameter

* Fix tests

* test(e2e): run network with less validators (ArkEcosystem#638)

* update e2e network config

* add 2 more nodes

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>

* feat(webhooks): add support for workers (ArkEcosystem#637)

* Emit events

* Boot only on main thread

* Move interfaces

* Move identifiers

* Use database contract

* Add webhooks to transaction pool

* Fix tests

* Add handler

* Listen to events

* Fix tests

* refactor(state): increase default export interval (ArkEcosystem#642)

* Increase export interval

* Empty

* refactor(api-sync): remove obsolete mempool transaction sync (ArkEcosystem#644)

* remove mempool sync

* delete fixture

* release:  0.0.1-alpha.19 (ArkEcosystem#645)

* release:  0.0.1-alpha.19

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* deps(core): add api-transaction-pool (ArkEcosystem#646)

* Include api-transaction-pool

* Fix deps

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* release: 0.0.1-alpha.20 (ArkEcosystem#647)

* release: 0.0.1-alpha.20

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* fix(p2p): remove block header from getStatus  (ArkEcosystem#650)

* Rebuild proto

* Update get status

* Update controller

* Fix tests

* style: resolve style guide violations

* Update schema

* style: resolve style guide violations

* Reply schema required fields

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>

* test(e2e): fix docker-compose setup (ArkEcosystem#673)

* try fix ci

* empty commit

* fix

---------

Co-authored-by: sebastijankuzner <sebastijankuzner@users.noreply.github.com>
Co-authored-by: Adrian Kerchev <akerchev@gmail.com>
Co-authored-by: oXtxNt9U <120286271+oXtxNt9U@users.noreply.github.com>
Co-authored-by: Edgar Goetzendorff <hello@dated.fun>
Co-authored-by: oXtxNt9U <oXtxNt9U@users.noreply.github.com>
@sebastijankuzner sebastijankuzner merged commit c32a929 into develop Sep 17, 2024
3 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants