- [Feature]: Update WebUI to version 0.11.0 https://github.com/raiden-network/webui/releases/tag/v0.11.0
- [Feature] #5589: The Rest API now includes the token address in all returned payment related events.
- [Feature] #4588: Remove the echo_node subcommand of the command line interface.
- [Feature] #5281: Add a /status endpoint; start the API earlier and return 503 SERVICE UNAVAILABLE during the initial sync.
- [Feature] #5338: The number of blocks queried for events is now dynamically adjusted. This is necessary to prevent timeouts because the Ethereum client is overloaded.
- [Feature]: Update WebUI to version 0.11.1 https://github.com/raiden-network/webui/releases/tag/v0.11.1
- [Bug] #5395: Convert and return big integers as strings in the API response body.
- [Bug] #5591: Rest API payment events can now be properly filtered by token address.
- [Bug] #5583: The connection manager no longer opens channels with offline nodes when trying to connect to a token network.
- [Bug] #5779: Handle the API exception when no further token networks can be registered by returning 403 FORBIDDEN.
- [Bug] #6066: Workaround slow speed of geth on mainnet for eth_getLogs.
- [Bug] #6067: Workaround gevent’s bug on wait for single elements.
- [Bug] #6072: Always return valid JSON on the config endpoint, even when the REST API is starting.
- [Bug] #6077: Fix missing requirement to build macOS binaries
- [Bug] #6075: Fixed serialization problem for pending transactions.
- [Bug] #6071: Fixed transport race condition which prevented a node to restart after a failure.
- [Bug] #6083: Weakened byte code check to prevent errors with client pruning.
- [Bug] #6082: Small bug fix, use of undefined variable.
- [Feature]: Update WebUI to version 0.10.1 https://github.com/raiden-network/webui/releases/tag/v0.10.1
- [Feature] #5053: Make mediation fees non-negative by default. This fixes some counter-intuitive behaviour.
- [Feature] #5217: Fully support infura as an underlying ethereum rpc node.
- [Feature] #5278: Always use private rooms in the matrix transport.
- [Feature] #5050: Raiden’s argument –debug-logfile-name has been renamed to –debug-logfile-path to better reflect the argument’s function.
- [Bug] #4835: Fix etherscan sync by passing user-agent in the HTTP request. The request was failing because etherscan is protected by Cloudflare.
- [Bug] #5055: Fix withdraw messages deserialization when the messages are queued in queueids_to_queues.
- [Bug] #5064: Display a user-friendly error message when the PFS info request fails.
- [Bug] #5050: Raiden now works on OSX Catalina. Debug logfile is no longer written in the current directory.
- [Feature]: Added a new api endpoint
/api/v1/versionto query the raiden version via the Rest API.
- [Feature]: Update WebUI to version 0.10.0 https://github.com/raiden-network/webui/releases/tag/v0.10.0
- [Feature] #4102: Display progress during syncing the blockchain.
- [Feature] #4653: Allow setting per token network flat mediation fee from CLI.
- [Feature] #4653: Allow setting per token network flat fees from CLI
- [Feature] #4697: lock_timeout can be provided when making a payment.
- [Feature] #4654: Define imbalance fees relative to channel balance.
- [Feature] #4731: Setting fee defaults for Alderaan
- [Feature] #4751: Add Fees to internal Routing
- [Feature] #4815: Exclude direct transfers from fees
- [Feature] #4844: Formalize fee calculation
- [Feature] #4858: Add check for bound in med fee calculation
- [Feature] #4860: Update per-channel proportional fee calculation
- [Feature] #4917: Added documentation on using Raiden for atomic swaps.
- [Feature] #4976: Geth users no longer need to activate the special txpool RPC api when starting their geth node.
- [Feature]: The lowest supported geth version is now 1.8.21.
- [Feature] #4905: Added API parameter to the PATCH channel endpoint to update channel’s reveal timeout.
- [Bug] #4446: Fix assertion error in ‘calculate_imbalance_fees’
- [Bug] #4561: Limit and offset should now work properly in the payment API event queries.
- [Bug] #4560: Formatting of timestamp fields on the API should follow ISO8601.
- [Bug] #4685: Invalidate a withdraw transaction on restart if the channel is closed.
- [Bug] #4762: Properly check the withdraw expiration on the TokenNetworkProxy. This gives a better error message to the users and prevents a corner case error.
- [Bug] #4835: Catch undefined med fee inside the sate machine
- [Feature]: Update WebUI to version 0.9.2 https://github.com/raiden-network/webui/releases/tag/v0.9.2
- [Bug] #4502: Fix a Raiden crash related to routing feedback
- [Bug] #4348: Fix wrong calculation of
balancefield of channel information when tokens are locked in payments
- [Bug] #4498: Raiden now waits for synchronization with the blockchain events before finishing its startup and opening the API.
- [Feature]: Update WebUI to version 0.9.1 https://github.com/raiden-network/webui/releases/tag/v0.9.1
- [Feature] #4457: Raiden now checks the version of the ethereum node at startup and if it is not supported quits with an appropriate message.
- [Bug] #4301: Providing an endpoint argument without a port no longer leads to a crash.
- [Bug] #4377: The client now sends proper capacity updates to the PFS.
- [Bug] #4373: Fix a deserialization error for imbalance penalty
- [Bug] #4378: Fix json decoding error that could lead to a crash.
- [Bug] #4383: Fix locked transfer not being sent due to global queue handling.
- [Bug] #4446: Fix problems with the calculation of mediation fees
- [Feature] #1498: Implement on-chain channel withdraw
- [Feature] #3303: Use direct channels for payments when possible, without asking PFS
- [Feature] #3754: Publish mediation fee infos to PFS
- [Feature] #3863: Implement permissive source routing
- [Feature] #3894: Drop support for UDP transport
- [Feature] #4062: Use PFS requested fee instead of client max fee
- [Feature] #4088: Check PFS info about registry address, prevent use of a PFS that doesn’t support the current network.
- [Feature] #4095: Prevent Raiden from sending IOU to PFS when fee is 0
- [Bug] #3778: Fix handling of pruned blocks in proxies.
- [Bug] #4036: Initiator should check the state of the partner nodes
- [Feature] #3461: Static PFS payment for provided routes through the user deposits contract. Only usable if Raiden is run in development environment
- [Feature] #3462: Static Monitoring service reward through user deposits contract. Only usable if Raiden is run in development environment
- [Feature] #3464: Raiden will warn users about insufficient user deposit funds (If monitoring service or path-finding service are enabled and used).
- [Feature] #3697: Make sure a token implements the ERC20 interface when registering a new token network. In this case, totalSupply function existence is implemented
- [Feature] #4043: Update raiden-contracts to 0.19.0 with Görli Testnet support
- [Bug] #3566: Handle cases where Raiden tries to query blocks which are old and pruned by the blockchain client (Geth & Parity)
- [Bug] #3567: Resolve an issue in route filtering where the partner’s network state is taken into account when choosing a route
- [Bug] #3687: Fix startup initialization issue which caused Raiden to crash on private chains
- [Bug] #3832: Fix Raiden startup when a previous run aborted during migrations
- [Bug] #3856: Handle pruned blocks during settle/unlock when requesting on-chain state, use latest if block is pruned
- [Bug] #3874: Fix invalidation of a batch-unlock transaction in case a similar transaction was already sent/mined by channel partner
- [Bug] #4024: Fix clearing a channel state iff all unlocks are done by channel participants
- [Feature]: Add support for Görli testnet in Raiden.
- [Feature] #3425: Update raiden-contracts package to version 0.9.0
- [Feature] #3318: allow secret and/or hash with payment request
- [Feature] #2436: Add an API endpoint to list pending transfers
- [Feature] #3467: Raiden now chooses a PFS from a provided registry. Also added a new argument
--routing-modeto configure the routing mode to either be PFS or BASIC.
- [Bug] #3475: Properly check async_result in rest api payments
- [Bug] #3567: Properly check handling offline partners
- [Bug] #3558: Raiden will no longer crash if starting with a fresh DB due to the ethereum node queries timing out.
- [Feature] #2793: Faster restarts, transactions are sent in parallel on restarts.
- [Feature]: Set python 3.7 as a minimum python version requirement to run Raiden.
- [Feature] #3317: Return the secretHash and the Secret as part of payment response
- [Bug] #2974: Alarm task is not longer blocking until transactions are mined.
- [Bug] #3369: Fix high CPU usage when the raiden node is idle.
- [Bug] #3380: Connection manager no longer attempts deposit if per partner funds are zero.
- [Feature] #2988: If estimateGas returns failure don’t send a transaction.
- [Feature] #3236: Add backwards-compatible PFS integration in the routing layer
- [Feature]: Update WebUI to version 0.8.0 https://github.com/raiden-network/webui/releases/tag/v0.8.0
- [Bug] #3196: Proper fix for the bug that caused not finding locksroot in the DB during unlock
- [Feature]: Update WebUI to version 0.7.1 https://github.com/raiden-network/webui/releases/tag/v0.7.1
- [Bug] #3257: Requesting the channel list with a token address and not a partner address via the API should no longer cause a 500 server error.
- [Feature] #3217: If channel is already updated onchain don’t call updateNonClosingBalanceProof.
- [Bug] #3190: Prevents removal of initiator task when one of the transfers is expired.
- [Bug] #3201: Workaround for gas price strategy crashing Raiden with an Infura ethereum node.
- [Bug] #3121: If the same payment identifier is reused avoid a specific race condition that can crash Raiden.
- [Bug] #3211: If using parity and getting the already imported error, attempt to handle it and not crash the client.
- [Bug] #3216: If coming online after partner closed channel don’t try to send updateNonClosingBalanceProof twice and crash Raiden.
- [Bug] #3146: If a refund transfer is received and there are no other routes, keep the payment task so that the channel does not hang when mediator sends a LockExpired.
- [Bug] #3170: If the same refund transfer is received multiple times, the mediator state machine will reject subsequent ones rather than clearing up the mediator task.
- [Bug] #3175: If Github checking of latest version returns unexpected response do not let Raiden crash.
- [Bug] #3179: Properly process a SendRefundTransfer event if it’s the last one before settlement and not crash the client.
- [Bug] #3183: If as initiator our nodes receives a RefundTransfer then do not delete the payment task at the lock expiration block but wait for a LockExpired message. Solves one hanging transfer case.
- [Bug] #3193: Channel balance shown to the user now takes locked amount into account.
- [Bug] #3196: If our partner updates onchain with earlier balance proof find the event in the DB and properly perform the unlock onchain.
- [Bug] #3171: Do not crash raiden if the Matrix server is offline when joining a discovery room.
- [Feature] #3157: Change REST api version prefix from 1 to v1.
- [Bug] #3135: In development mode if more than 100 * (10^18) tokens are deposited then raiden no longer crashes.
- [Bug] #3152: If the onchain unlock has already been mined when we try to send the transaction don’t crash Raiden.
- [Bug] #3153: If a non-contract address is given for token_address in the channel open REST API call, the client no longer crashes.
- [Bug] #3093: Getting raiden payment history will no longer crash raiden for failed sent payment events.
- [Bug] #3094: Raiden will now properly return payment failure and no longer hang if a payment times out due to a lock expiration.
- [Bug] #3103: Fixes a bug in matrix which prevented retries of messages.
- [Bug] #2779: Fixes a long standing bug that could cause payments to hang indefinitely.
- [Bug] #3046: Sync with the matrix server using the last known sync token. This solves the issue of missing messages during restart as previously only the last 10 were fetched.
- [Bug] #3054: Client will now reject any signatures with
vnot in (0, 1, 27, 28)
- [Bug] #3091: Client will no longer accept secret of 0x0 or secrethash keccak(0x0).
- [Bug] #2931: Fixes serialization of state changes for refund transfers, allowing it to be used for unlocks.
- [Bug] #3001: Don’t delete payment task when receiving invalid secret request.
- [Bug] #2932: Node will no longer crash if it mediated a transfer and the channel cycle for mediation has completed.
- [Bug] #3022: Reject REST API channel opening with an error if there is not enough token balance for the initial deposit.
- [Bug] #3013: Encode all integers before saving to the sqlite database
- [Bug] #3035: Registering a token twice should now return a proper error.
- [Feature] #2962: Check that the ethereum node has all required json rpc interfaces enabled when Raiden starts. If not fail with a proper error.
- [Feature] #2946: Do not show full block information in the INFO logging message.
- [Bug] #2923: Fix a race with multiple calls circumventing the gas reserve check.
- [Bug] #2918: Fixed a synchronization problem, where a node would send invalid balance proofs.
- [Bug] #2938: Don’t cleanup mediator if the transfer could not be forwarded. Could lead to stuck channels.
- [Bug] #2934: Don’t send unecessary register secret transactions.
- [Bug] #2951: Fallback to eth_getTransactionCount if there is no api to get the next available nonce.
- [Bug] #2921: Properly estimate gas cost of transactions so that we have a more reasonable minimal amount of ETH required to run Raiden.
- [Bug] #2973: Introduce special handling of infura endpoints so that the old getTransactionCount is used.
- [Bug] #2963: Fixes an overflow issue with the hint of the join network dialog.
- [Bug] #2933: Raiden can now recover from crashes/restarts when there are pending onchain transactions.
- [Feature] #2858: Changed contract address argument names to be consistent with the names of the contracts in the contracts repository.
- [Feature] #2857: Respect the
--environment-typefor private chain setup.
- [Feature] #2909: Add explicit flag –unrecoverable-error-should-crash to control UnrecoverableError crashing behaviour.
- [Bug] #2894: Raiden will no longer miss confirmation blocks at restart and will emit the block state change only for confirmed blocks.
- [Bug] #2905: Mediator task must wait for the expired message, not just for the lock to expire, otherwise the channel will be unsychronized.
- [Feature] #2752: Renamed
--network-typecli option to
- [Bug] #2664: Raiden node will now wait for 5 block confirmations before processing a given transaction.
- [Bug] #2794: UnlockPartialProofState does no longer raise AttributeError when accessing lockhash.
- [Bug] #2813: Fixed swapped message and payment id, which caused problems on node restart.
- [Bug] #2827: Fixed a typo in the handle_secretrequest function.
- [Bug] #2449: Only polling events from confirmed blocks to prevent conflicts with reorgs.
- [Bug] #2836: Contract version check now works for any deployed contract version.
- [Bug] #2835: Incorrectly accepting a
RemoveLockExpiredis no longer possible
- [Bug] #2845: Properly update local state balance proof during a lock expiration.
- [Feature] #2708: Add –showconfig CLI flag which dumps all configuration values that will control Raiden behavior.
- [Feature] #2713: Added the protocol version in the Ping message.
- [Feature] #2764: Support pre-deployed contracts on Kovan and Rinkeby testnets
- [Bug] #2720: A lock expired message must be considered invalid if the block in which the lock expired has not been confirmed.
- [Bug] #2730: Refuse to send a transfer and ignore it during receiving, if its secret is already registered on-chain.
- [Bug] #2662: Fix wrong deserialization of snapshots in special cases.
- [Bug] #2746: Refuse to process a payment with an identifier already in use for another payment, and return a 409 Conflict in that case.
- [Feature] #2568: Validate the state changes for the Delivered and Processed sender.
- [Feature] #2699: Add
/channels/<token_address>REST-API endpoint to query all node’s channels for a specific token.
- [Bug] #2630: If a smaller deposit than
total_depositis given to the deposit RPC call then return 409 Conflict and not 200 OK.
- [Bug] #2655: Raiden node will now properly crash if communication with the ethereum node is lost.
- [Bug] #2676: Return an error if an invalid
joinable_funds_targetvalue is provided to the connect endpoint.
- [Bug] #2567: Increase default channel reveal timeout to 50 blocks.
- [Feature] #2600: Improve logging for on-chain transactions
- [Bug] #2535: Registering a secret on-chain for a locked transfer is now checked if it was received before the lock has expired.
- [Bug] #2577: Small logging improvements
- [Bug] #2602: On-chain secret reveal forces off-chain reveal
- [Bug] #2603: Prevent crash in case of invalid Matrix server response
- [Bug] #2609: Allow numeric network ids in the config file
- [Bug] #2566: Warn the user about older existing database versions
- [Bug] #2631: Prevent excessive state replay on restart
- [Feature] #2470: Add a main/test network switch enabling or disabling specific functionality depending on the network type.
- [Feature] #2517: Increase the time a notification stays visible on the webui.
- [Bug] #2414: If partner uses our old balance proof on-chain, the raiden client will now recover it from the WAL and properly use it on-chain.
- [Bug] #2449: Fix a race condition when handling channel close events.
- [Bug] #2501: Adds a matrix.private_rooms config to communicate only through private rooms in Matrix
- [Bug] #2507: Fix a security issue where an attacker could eavesdrop Matrix communications between two nodes in private rooms
- [Bug] #2512: Add descending order by block_number as default for blockchain events on webui.
- [Bug] #2515: Adds validation for settle timeout against reveal timeout when opening a channel from the webui.
- [Feature] #2460: Pinned depedencies versions, builds are now reproducible and build artifacts won’t break because of downstream dependencies.
- [Feature] #1473: Add gas price strategies that adapt the gas price to the network conditions.
- [Feature] #2252: Adds payment history page to the webui.
- [Feature] #2307: Matrix discovery rooms now are decentralized, aliased and shared by all servers in the federation
- [Feature] #2287: Internal events now have timestamps.
- [Bug] #2431: Do not crash on recoverable errors during settlement
- [Bug] #2427: Fix a bug crashing the client when an unlock event for our address is seen on the chain
- [Bug] #2419: Fix Matrix transport crash due to inability to decode events
- [Bug] #2439: Return properly filtered results from the API payments event endpoint
- [Bug] #2370: Fixes a few issues with the token amount input.
- [Bug] #2437: Fix a bug where neighbors couldn’t communicate through matrix after restart
- [Bug] #2453: Connection manager will no longer be stuck if there are no available channel partners
- [Bug] #2367: Token network selection dropdown will not filter out not connected networks.
- [Bug] #2461: For received payments events filter based on the initiator.
- [Feature] #2340: Add
--accept-disclaimerargument to bypass the experimental software disclaimer.
- [Feature] #2363: Add copy functionality for addresses shown on the webui.
- [Feature] #862: Switch WAL serialization format to JSON in order to facilitate for WAL upgradability.
- [Feature] #1894: We now start having nightly releases found here: https://raiden-nightlies.ams3.digitaloceanspaces.com/index.html
- [Bug] #2336: Fixes webui wallet page not loading data due to error.
- [Bug] #2283: Fix API server Internal server error at token deposits.
- [Bug] #2291: Adds EIP55 address validation to webui address inputs.
- [Bug] #2362: Renamed wallet to tokens in the webui.
- [Bug] #2356: Create a new database per token network registry.
- [Bug] #2373: Include events for received payments in the payment events API endpoint.
- [Feature] #2225: Using a constant expiration for lock, making sure that on-chain unlocks are atomic.
- [Feature] #2285: Request user acknowledgement for the experimental software disclaimer.
- [Feature] #2251: Add webui support for switching token input between decimal and integer values.
- [Feature] #2296: Gracefully handle malformed messages
- [Bug] #2170: Removed block number from internal events and rearranged REST API debug endpoints
- [Bug] #2264: Notification fonts are now aligned with the rest of the WebUI.
- [Bug] #2278: Fixes leave network button request.
- [Bug] #2277: Fixes sorting by balance for tokens and channels.
- [Bug] #2284: Fixes balance notifications showing for wrong channels.
- [Bug] #2282: Fixes internal webui error that would not propagate channel updates.
- [Bug] #2275: Adds scientific notation for really small fractions when displaying balances.
- [Bug] #2293: Initiator had the payment and message identifiers swapped.
- [Feature] #2253: Make addresses in REST logging user readable
- [Feature] #2134: Database is now versioned and the DB directory path now uses that version
- [Feature] #2192: Show notification on the WebUI when transfer is received or when channel is opened
- [Feature] #2034: Update WebUI’s design
- [Bug] #2197: WebUI now handles token decimals
- [Bug] #2233: Fix MatrixTransport exception for invalid user displayname
- [Bug] #2176: Expose total_deposit in the Rest API and fix depositing in the WebUI
- [Bug] #2198: Fix building of the WebUI in the linux bundle.
- [Feature] #1950: Breaking change: Better transaction handling on restart. This change breaks binary compatibility with the previous WAL.
- [Feature] #1998: Add a strategy to make sure that the account Raiden runs on always has enough balance to settle all channels. No new channels can be openend when no sufficient balance for the whole channel lifecycle is available.
- [Feature] #2084: Rename the
- [Feature] #1949: Add an endpoint to query the payment history.
- [Feature] #682: Store a Snapshot of WAL state as recovery optimization.
- [Feature] #2090: Rename transfers to payments in the webui.
- [Bug] #2027: Raiden should now be able to connect to Infura.
- [Bug] #2125: Show proper error message for invalid tokens on
- [Bug] #2149: Don’t crash if reusing same payment identifier for a payment
- [Feature] #1844: Log debug output to a file to make debugging of problems easier.
- [Feature] #2011: Add a
--disable-debug-logfileargument to disable the always on debug file if required by the user.
- [Bug] #1994: Starting Raiden with a corrupt database will now throw a proper error instead of crashing with an exception.
- [Bug] #1996: Providing contracts addresses via the CLI that either have no code or contain unexpected code will now result in an error and not crash Raiden.
- [Bug] #1817: Change the webui error message when the token registration fails.
- [Bug] #1821: Show a better error message when channel creation fails.
- [Bug] #2039: Return error for negative deposits via REST API
- [Bug] #2004: Show a webui error when JSON-RPC requests fail.
- [Feature] #1825: Added periodical update notification and security releases checks.
- [Bug] #1975: Fix balance hash generation for zero transfers and empty locksroot
- [Bug] #1899: Print proper error without throwing exception if no accounts are found in the keystore
- [Bug] #1911: The syncing message is now printed properly and does not repeat across the screen
- [Bug] #1902: Check for ethnode connection at start and print proper error if Raiden can not connect
- [Bug] #1869: Various matrix improvements. Prevent DOS attacks, and race conditions that caused client crashes. Require peers to be present to send message to them. Improves user discovery across Matrix federation.
- [Bug] #1916: Return E409 on two concurrent conflicting channel deposits
- [Bug] #1960: Return E409 when trying to open a channel for a token that is not registered
- [Bug] #1969: Return E409 if negative
initial_fundsare given to the connect endpoint
- [Bug] #1883: Properly update menu state when channel state changes on webui
- [Bug] #1976: Remove the ability to removedb. User should not be able to easily delete local state.
- [Bug] #1897: Limit number of concurrent matrix connections so that raiden client does not crash.
- [Bug] #1879: Leaving a token network should now work. Also removed the
only_receivingparameter from the leave endpoint
- [Feature] #1328: Use separate database directory per network id. This is a breaking change. You will need to copy your data from the previous directory to the new network id subdirectory.
- [Feature] #1195: Improve AccountManager error handling if keyfile is invalid.
- [Feature] #1518: Update installation docs with Homebrew tap and update Homebrew formula on release.
- [Feature]: Restartability in case of a proper shutdown of the Raiden node.
- [Feature]: Smart contracts refactoring for readability, gas costs and new features.
- [Feature]: New Matrix transport protocol.
- [Feature]: Considerable codebase refactoring.
- [Bug] #1237: Inform the user if geth binary is missing during raiden smoketest.
- [Feature] #921: Add
/api/1/connectionAPI endpoint returning information about all connected token networks.
- [Feature] #1022: Include an
errorsfield in all unsuccessful API responses.
- [Feature] #1010: Add
- [Feature] #670: Block raiden startup until ethereum node is fully synchronized.
- [Feature] #1037: Add
show_defaultto CLI options.
- [Feature] #507: Making python’s channels crash resilient (recoverable). Note, this is a breaking change, the serialization format of channel objects changed to a WAL compatible representation.
- [Feature] #1038: Introduce an upper limit for the
settle_timeoutattribute of the netting channel.
- [Feature] #1097: Added
--gas-pricecommand line option.
- [Feature] #1093: Reconnect raiden to ethereum node after disconnect.
- [Feature] #1015: Added macOS compatibility and binary releases.
- [Feature] #87: Update raiden to use Python 3 and the latest version of pyethereum.
- [Feature] #1230: Unless specifically provided gas price and gas limit are now dynamically calculated from the
eth_gasPrice()and latest blocks limit respectively.
- [Bug] #1011: Remove
settledattribute from the NettingChannel smart contract.
- [Bug] #870: User selectable NAT traversal.
- [Bug] #450: Removed
block_numberfrom contracts events, using block_number from block on which it was mined.
- [Bug] #1049: Make raiden byzantium compatible by no longer relying on
- [Bug] #1044: Rename
/connectionAPI endpoint to
- [Bug] #1138: REST and Python API close did not work if a transfer was made.
- [Bug] #1261: REST API now returns json error for invalid endpoints.
- [Bug] #1224: Fix internal server error on REST endpoint
/events/tokens/for non-existing tokens.
- [Bug] #1217: Correctly decode network events in the REST API.
- [Bug] #1273: Don’t crash when using the
--nat=ext:IPcommand line option.