All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Support for Gnosis Safe wallets
- UserInformation.ts was not included in the build
- Trustline update requests with transfer set to "0" were calling the wrong contract function
- Added method
UserInformation.getTotalTransferredSum()to get the total transferred sum from one user to the other in a time window in a currency network
- Added optional parameter
transfertoTrustline.prepareUpdate()andTrustline.prepareAccept()to open a trustline with a transfer request. - Added argument
transferto trustline update request events corresponding to the requested transfer in the point of view of the initiator of the request
- Rename
Interests.tstoUserInformation.tsand their class and methods accordingly
- Added function
UserInformation.getEarnedMediationFees()to get all the mediation fees earned by a user in a network. (requires version of relay 0.19.0) - Added option
options.remainingDatato prepare payment. TheremainingDatawill be encoded together with other options in the transferextraData - Added field
remainingDatafor payment details and transfer events corresponding to the newly addedremainingDatafield - Added method
paymentRequestCancelto cancel a payment request you already sent to a counterparty.
- Use
feeRecipientas given by the provider instead of zeroAddress for meta-tx - Use random none generation at the identity wallet for meta transactions
- Add function to get the delegation fees paid in transaction:
Transaction.getAppliedDelegationFees(txHash). It returns a list of all delegation fees applied in transaction with given hash where the fee payer is the loaded user - Add
extraDatatoTransferDetails, it contains the rawextraDatathat was present in the transfer for which details are returned - Add
paymentRequestIdandmessageIdtoTransferDetailscorresponding to the decodedextraData - Add option to
Payment.preparePaymentfunctionoptions.addMessageId: boolean = truethat signals whether a messageId should be generated and added to the payment's extraData. - Add
messageIdto the returned values ofPayment.preparePayment - Add function
Payment.confirmPaymentto confirm anyPaymentTxObjectreturned byprepareand potentially send a payment message along with the payment - Add function
Messaging.paymentMessageto send a payment message for a messageId to a counterparty address - Add optional field to the
TLNetworkConfigfor the nonce mechanism to use
- Deprecates function
Payment.confirm, usePayment.confirmPaymentinstead
- Removed the field
noncefrom payment requests and declines, useidinstead
(requires relay version >=0.15.0)
- Transaction prepare functions do not return
ethFeesanddelegationFeesanymore, instead they returntxFeesalways, which represent the chain coin fees or delegation fees depending on which wallet type was used. The following fields exist:totalFee,baseFee,gasLimit,gasPrice,feeRecipient(null, if not set),currencyNetworkOfFees(null, if not set). (BREAKING) - Transaction fees will now have
nullcurrencyNetworkOfFeeswhen delegation fees are zero instead ofzeroAddress(BREAKING) - Meta transactions will now use
feeRecipientgiven by the relay provider (BREAKING) - Use
userandcounterpartyinstead ofaddressfor TrustlineObject and TrustlineRaw types. The previousaddressnow corresponds tocounterparty(BREAKING) - Use gas limits from contracts tests for transactions and meta transactions
- Change link schema and api (
X.createLink) to allow for easier addition of optional data (BREAKING)
- Added function to get trustline balance updates
Trustline.getTrustlineBalanceUpdates(Requires relay server >=v0.15.0) - Added function to get transfer details
Payment.getTransferDetailseither from tx hash or event identifier: (blockHash, logIndex) (Requires relay server >=v0.15.0) - Events now include
blockHashandlogIndex(Requires relay server >=v0.15.0) - Added function to decline payment requests
Messaging.paymentRequestDecline - Added function to check for tx status via tx hash or meta-tx status either via enveloping tx-hash or raw-tx
Transaction.getTxStatus
transactionIdon events is deprecated fortransactionHash. (Based on relay server deprecations)
- Updated default values for meta transaction fees to use valid zero address in case the relay does not return any
TLNetworknow uses two distinct urls for messaging and relay in its config (BREAKING)- Updated initcode of identity proxy to match new contracts version, this changes the address of deployed identities (BREAKING)
- Updated meta-transaction fields to match new contracts feature (BREAKING) New fields: chainId, version, baseFee, gasPrice, gasLimit, feeRecipient, timeLimit, operationType. Fields removed: delegationFees, extraData
- Added method
getAllOfUser()inTrustlineto get all trustlines of loaded user - Added caching for getting the decimals of a currency network
- Enabled websocket stream subscribers to handle websocket errors
- Added function
getUserAccruedInterestsinInformationto get all accrued interests of user - Added function
getTrustlineAccruedInterestsinInformationto get all accrued interests of trustline
- Make
User.createLink()synchronous (BREAKING) - Make
Contract.createLink()synchronous (BREAKING) Transactionnow takes aCurrencyNetworkas argument to be able to get the decimals for delegationFees (BREAKING)
- Added function
Trustline.prepareCancelTrustlineUpdate()to reject or cancel trustline update requests - Added function
Trustline.getCancels()to get TrustlineUpdateCancel events for user - Function
Payment.prepareEth(),Transaction.prepareContractTransaction(),Transaction.prepareValueTransaction(),Trustline.prepareUpdate(),Trustline.prepareAccept(),Trustline.prepareClose(), now returndelegationFeesthat could be used for a meta-tx - Added utils functions to format and convert delegation fees
- Added option to
Transaction.prepareContractTransaction()for providing delegation fees - Added function
TLProvider.getMetaTxFees()andTLProvider.getRelayVersion() - Added function
sendUsernameToCounterparty() - Added infos about whether a network is frozen to network details
- Changed how internal payload of messages is formated. (BREAKING)
- Changed user api of how to load and create the wallets (BREAKING)
- Removed estimateGas field of pathfinding functions (BREAKING)
- Added function to deploy an identity contract
- Added function to check if identity contract is deployed
- Implemented recover from seed for identity wallet
- Changed user.create will no longer deploy an identity contract (BREAKING)
- Changed config of clientlib will need the factory address and the implementation address to configure the identity wallet (BREAKING)
- Changed metatransaction to now take a fee parameter (BREAKING)
- Changed have default value for freeze feature
- Fix build issue on mac with fsevents
- Added
frozenBalanceto UserOverview to return the sum of all frozen balances for a user's trustlines - Added
isFrozento trustline events - Added
isFrozentoprepareUpdateandprepareAcceptoptions argument to freeze a trustline (BREAKING)
- Added
extraDatatoPaymentOptionsfor transfers, used for logging arbitrary data (BREAKING) - Added
extraDatato queried transfer events (BREAKING)
- Added
DecimalsOptionsto avoid querying decimals from the server when not necessary
messaging.paymentRequestreturns sent payment request so that the sender can keep track of sent requests
- New base URL
trustlines://for all created links - Additional optional custom base url parameter for
contact.createLinkandpayment.createRequest
- Dependency update of
reconnecting-websocket
Object is not a constructor (new ReconnectingWebSocket)bug in react-native
Can not resolve module child_processbug in react-native
- Additional option
feePayerinpayment.preparewhich specifies who pays network fees for transfer IdentityWalletfor creating and interacting with identity contracts- Additional configuration option
walletTypefor initializingTLNetworkinstance- Defaults to
'WalletTypeEthers' - When using
'WalletTypeIdentity'it enables meta-transactions which are relayed by configured relay server
- Defaults to
- Basic example app for using clientlib with injected web3 instance via MetaMask under
/examples/injected-web3
- Copyright transferred to trustlines foundation
- Every call to
user.addresshas been replaced withawait user.getAddress
- Bug when using
Web3Signervia MetaMask which referenced an empty address - Wrong devDependency of
reconnecting-websocketwhich should be a normal dependency
- Removed obsolete parameters
serializedWalletandprogressCallbackinuser.createOnboardingMsg(only mandatory parameter is nowusername)
Minor breaking change due to migration to ethers.js. The API itself did not change, but keystore files of previous versions are not compatible with the new library.
- Basic unit tests
ethers.jslibrary and support- Optional
progressCallbackfor creating and loadinguserinstances
- Change CI provider to
CircleCI - Build and deploy docker image for
end2endtests - Migration to
ethers.jsfor wallet, signer and provider functionalities
eth-lighwalletandweb3dependenciesTravisCIconfig files/tests/testrelayfiles
build,npmandcoverageshields to README- Linter and pre-commit hooks:
prettier,lint-stagedandhusky - Code coverage tools:
nycandcodecov
- Use
contracts.jsonfrom npm
trustline.prepareUpdatenow uses eitherupdateCreditlimitsorupdateTrustline(see #150)trustline.prepareClosehandles cases where balance is 0 (see #151)
- Local
contracts.jsonfile package-lock.json(only maintainingyarn.lock)
bump.shscript for bumping version
Updated minor version of library as breaking changes were introduced in 0.1.4.
- Fix decimals bug in
trustline.prepareClose
- Unit tests for
LightwalletSignerandWeb3Signer - Interest rates feature
- Close trustline feature
trustline.prepareClose()trustline.getClosePath()
- Update docker setup for e2e tests
- Update contracts abi
- Update
currencyNetwork.getInfo()to return interest rate related information - Update
currencyNetwork.getDecimals()to support interest rate decimals - Add attributes
interestRateGivenandinterestRateReceivedto trustline related events
- Start using changelog
- Fluid publish of most recent develop version of library to npm via travis
- New method
Payment.getMaxAmountAndPathInNetwork(networkAddress, receiverAddress)
- Update vulnerable dependencies