- Upgrade cleaners to v0.3.11
- fixed: Restore Webpack production mode
- fixed: Limit the number of documents uploaded to the sync server in one request.
- fixed: Upgrade to edge-sync-client v0.2.1, which improves the sync-server retry logic.
- changed: Use edge-sync-client to retrieve the list of sync servers instead of a hard-coded list.
- fixed: If multiple metadata files exist for a single transaction, always load the oldest one.
- fixed: Ensure that transactions never have
undefined
as anativeAmount
. - fixed: Change the WebPack build settings to allow easier debugging.
- fixed: Fix the React Native WebView bundle to work on really old devices.
- Replace nullish coalescing operator with ternary
- added: Save the device description on sent transactions.
- added: Add an optional
InsufficientFundsError.networkFee
field. - fixed: Avoid performing back-to-back initial syncs.
This is a breaking release to remove various deprecated features that have accumulated.
- Remove several methods and properties:
EdgeAccount.exchangeCache
- UseEdgeAccount.rateCache
instead.EdgeContext.getRecovery2Key
- UseEdgeUserInfo.recovery2Key
instead.EdgeContext.pinExists
- UseEdgeUserInfo.pinLoginEnabled
instead.EdgeContext.on('login')
- UseEdgePendingEdgeLogin.watch('account')
instead.EdgeContext.on('loginError')
- UseEdgePendingEdgeLogin.watch('error')
instead.EdgeContext.on('loginStart')
- UseEdgePendingEdgeLogin.watch('username')
instead.EdgeCurrencyWallet.exportTransactionsToCSV
- Moved to edge-react-gui project.EdgeCurrencyWallet.exportTransactionsToQBO
- Moved to edge-react-gui project.EdgeCurrencyWallet.getBalance
- UseEdgeCurrencyWallet.balance
instead.EdgeCurrencyWallet.getBlockHeight
- UseEdgeCurrencyWallet.blockHeight
instead.EdgeCurrencyWallet.getDisplayPrivateSeed
- UseEdgeCurrencyWallet.displayPrivateSeed
instead.EdgeCurrencyWallet.getDisplayPublicSeed
- UseEdgeCurrencyWallet.displayPublicSeed
instead.EdgeCurrencyWallet.startEngine
- UseEdgeCurrencyWallet.changePaused(false)
instead.EdgeCurrencyWallet.stopEngine
- UseEdgeCurrencyWallet.changePaused(true)
instead.EdgeEncodeUri.legacyAddress
- UseEdgeEncodeUri.publicAddress
instead.EdgeEncodeUri.segwitAddress
- UseEdgeEncodeUri.publicAddress
instead.
- Remove the
options
prop on theMakeEdgeContext
React Native component.- Just pass any context options as normal props.
- Remove the
type
property from all error classes, as well as the globalerrorNames
table.- Use the new error-identification methods, such as
asMaybePasswordError
, to determine if an error is a specific type.
- Use the new error-identification methods, such as
- Stop allowing
null
in places where we expect anEdgeAccountOptions
object.- Just pass
undefined
if this parameter isn't used.
- Just pass
- Return the
EdgeAccount.otpResetDate
as aDate
object.
The following changes affect Edge core plugins:
- Remove
EdgeIo.console
- UseEdgeCorePluginOptions.log
instead. - Define
EdgeCurrencyEngine
methods to returnPromise<void>
instead ofPromise<mixed>
. - The core will no longer upgrade
pluginName
topluginId
for legacy currency plugins.
- Add a
paused
flag toEdgeCurrencyWallet
, and a matchingchangePaused
method. - Deprecate
EdgeCurrencyWallet.startEngine
- UseEdgeCurrencyWallet.changePaused(false)
instead. - Deprecate
EdgeCurrencyWallet.stopEngine
- UseEdgeCurrencyWallet.changePaused(true)
instead. - Clean legacy Airbitz wallet files to prevent potential crashes at login.
- Enable safari10 option in webpack minimizer to fix stuck loading screens on iOS 10
- Add
crash
andbreadcrumb
methods toEdgeLog
for crash reporting. - Deprecate the
options
prop on theMakeEdgeContext
React Native component.- Just pass any context options as normal props.
- Reset the wallet sync ratio as part of a resync.
- Deprecate several methods:
EdgeContext.getRecovery2Key
- UseEdgeUserInfo.recovery2Key
instead.EdgeCurrencyWallet.exportTransactionsToCSV
- Moved to edge-react-gui project.EdgeCurrencyWallet.exportTransactionsToQBO
- Moved to edge-react-gui project.EdgeCurrencyWallet.getDisplayPrivateSeed
- UseEdgeCurrencyWallet.displayPrivateSeed
instead.EdgeCurrencyWallet.getDisplayPublicSeed
- UseEdgeCurrencyWallet.displayPublicSeed
instead.
- Upgrade build scripts to use Webpack 5.
- Fix an error which was causing all new 2FA-protected logins to fail.
- Add cleaners for all core error types, such as
asMaybeOtpError
. These provide a type-safe way to identify different error objects that may have been thrown. - Deprecate the old
errorNames
table.
- Fix a code-packaging error in the previous release.
- Improve the
EdgePendingEdgeLogin
API.- Add a
state
field to track the progress of the barcode login. - Add other fields to hold the outcome of the barcode login.
- Add a
watch
method to track changes to these fields.
- Add a
- Allow
EdgeCurrencyEngine.dumpData
to return a promise. - Cache exchange-rate hints from all local accounts to speed up initial rates query.
- Validate incoming & outgoing network requests even more thoroughly.
- Fix the
EdgeContext.listRecoveryQuestionChoices
method.- Fix the runtime data validation to accept the actual server return values.
- The return type of
Promise<string[]>
has always been incorrect, so the correct return type is nowPromise<EdgeRecoveryQuestionChoice[]>
. - As a stop-gap measure, though the return-type definitions is now
any
. We will insert the correct return type definition in the next breaking release.
- Load all supported currency pairs at launch to improve exchange rate loading. List is replaced by enabled wallets once the wallets are loaded.
- Fix the
parentNetworkFee
field missing in certainEdgeTransaction
instances. - Fix missing transactions while searching.
- Perform more data validation on network requests.
- Fix a bug that would prevent login vouchers from working on Airbitz accounts with 2fa turned on.
- Expose periodic 2fa errors through the context's
error
event. - Add an
EdgeAccount.repairOtp
method.
- Ensure all crypto to crypto exchange rates have a route to USD
- Add currency code column to CSV exports
- Update
EdgeCurrencyEngine
to allowgetFreshAddres
,addGapLimitAddresses
, andisAddressUsed
to return promises.
- Periodically perform a re-login to sync logged-in account credentials with the server.
- Fix a bug that would prevent the
EdgeContext.logSettings
property from updating.
- Add an
EdgeContextOptions.logSettings
property to control logging verbosity, along with anEdgeContext.changeLogSettings
method. - Deprecate the
EdgeEncodeUri.legacyAddress
andEdgeEncodeUri.segwitAddress
parameters. Just pass the address inEdgeEncodeUri.publicAddress
, regardless of format. - Update the swap logging to give more information about failed quotes.
- Upgrade Airbitz accounts with secret-key login
- Filter duplicates from rateHints
- Add low priority edgeRates bias
- Update linting
- (feature) Add ability to filter
getTransactions()
withsearchString
option - (feature) Add requested currency pair to rateHints if it cannot be served by searchRoutes()
- (feature) Identify enabled currency and fiat pairs to pass to exchange rate plugins
- (feature) RBF Transaction Support
- Adds new
rbfTxid
optional string toEdgeSpendInfo
type definition - Adds new
rbfTxid
to the returnedEdgeTransaction
object inmakeSpend
onEdgeCurrencyWallet
objects
- Adds new
- Include sync keys in the logs
- (feature) Add onAddressChanged callback
- This allows a plugin to inform the GUI of address or account name updates (e.g. when an EOS account becomes activated)
- (fix) Don't crash when using a barcode to log into accounts with pending OTP resets.
- (fix) Correctly expire any vouchers on the device while doing a barcode login.
- (fix) Upgrade to node-fetch v2.6.1.
- (fix) Switch to the new voucher endpoint.
- (fix) Always return
OtpError.voucherId
when available. - (feature) Expose an
EdgeAccount.pendingVouchers
field. - (feature) Expose as
EdgeUserInfo.voucherId
field.
- (feature) Add a
keyLoginEnabled
flag toEdgeUserInfo
. - (feature) Add a
lastLogin
date toEdgeUserInfo
andEdgeAccount
.
- (feature) Add a login voucher system. When a new device tries to log into an account with 2-factor security, the server can issue a voucher along with the
OtpError
. Existing devices with the 2-factor token can then log in and either approve or deny the voucher usingEdgeAccount.approveVoucher
orEdgeAccount.rejectVoucher
. TheEdgeLoginMessages
type also includes a list of pending vouchers now. - (chore) Upgrade to hash.js v1.1.7 and redux-keto v0.3.4.
- (feature) Allow users to pass 6-digit OTP codes directly. This means
EdgeAccountOptions.otp
is deprecated for passing the secret. UseEdgeAccountOptions.otpKey
to pass the secret, orEdgeAccountOptions.otp
to pass the 6-digit code. - (feature) Save usernames for first-time logins that fail 2fa.
- (feature) Save & return the account creation date as
EdgeAccount.created
. - (fix) Harden server response parsing.
- (fix) Upgrade many dev dependencies.
- Restore sync failure messages in the UI
- Allow the user to pass an
onLog
callback to the context constructor- This allows our CLI to silence the core and supports more flexibilty in GUI log handling
- Apply cleaners to the login stashes as well as remove some legacy disklet API usage
- Support date filters for
getTransactions
- Save fee information in the spend metadata
- Send sync failures to the logs, not the UI
- Fix BSV replay protection feature broken by commit 11e752d8
- Update info server URI
- Add bias for Coinmonitor exchange rate provider
- Fix type annotations on some optional parameters that were accidentally marked as mandatory.
- Work around an issue in edge-currency-bitcoin that prevented spends from saving metadata.
- Expose an
EdgeAccount.rootLoginId
.
- Save the decryption keys for Monero spends (requires a matching Monero plugin change).
- Replace git2.airbitz.co with git1.edge.app in the sync server list.
- Save transaction metadata with spends.
- Save an
EdgeTransaction.spendTargets
list with every spend. - Save an optional
EdgeTransaction.swapData
field with swap transactions.
- Prioritize the
wazirx
rate plugin when available.
- Use constant-time comparisons for encryption & decryption.
- Upgrade redux-keto dependency & fix uncovered type errors.
- Improve git server error messages & rotation logic.
This is a breaking release to address some issues in the swap API.
This release also renames all pluginName
instances to pluginId
. This affects all plugin types, but the core contains compatibility code so old currency plugins continue working (but not for rate or swap plugins, which are easier to just upgrade).
- Breaking changes to the swap API:
- Return a new
EdgeSwapResult
structure fromEdgeSwapQuote.approve
. This now contains thedestinationAddress
andorderId
that used to exist on theEdgeSwapQuote
type. - Merge the
EdgeSwapPluginQuote
andEdgeSwapQuote
types into one.- The
EdgeSwapQuote.isEstimate
flag is no longer optional, but must betrue
orfalse
. - Remove
EdgeSwapQuote.quoteUri
. Just concatenateEdgeSwapInfo.orderUri
withEdgeSwapResult.orderId
to get this.
- The
- Rename
EdgeSwapInfo.quoteUri
toorderUri
. - Remove the deprecated
plugins
option fromEdgeSwapRequestOptions
.
- Return a new
- Other breaking changes:
- Remove deprecated
EdgeAccount.currencyTools
. UseEdgeAccount.currencyConfig
. - Remove deprecated
EdgeAccount.exchangeTools
. UseEdgeAccount.swapConfig
. - Remove deprecated
EdgeAccount.getExchangeQuote
. UseEdgeAccount.fetchSwapQuote
. - Remove deprecated
EdgeAccount.pluginData
. UseEdgeAccount.dataStore
. - Remove deprecated
EdgeIo.WebSocket
.
- Remove deprecated
- Prioritize swap providers with active promo codes.
- Simplify the API for providing plugin swap promo codes.
- Quick re-publish to fix Flow bug in previous release.
- Fix the TypeScript type definitions.
- Add a way to prioritize different exchange-rate plugins.
- Add a way to pass promotion codes & disable swap providers on-the-fly while quoting.
- Deprecate
pluginName
fields in favor ofpluginId
, which is a less confusing name. - Add a way to pass a preferred plugin to
fetchSwapQuote
.
- Add
EdgeCurrencyInfo.xpubExplorer
.
- Record auth server failures in the log.
- Type updates:
- Deprecate
EdgeIo.console
. - Supply our own types for
EdgeIo.fetch
, which clarify our supported feature set. - Fix
EdgeOtherMethods
to be read-only.
- Deprecate
- New features:
- Pass a
log
method to plugins and engines. - Add an
EdgeIo.fetchCors
method on platforms that support it.
- Pass a
- Fixes:
- Fix Edge login network error handling.
- Use the
log
method internally, which changes our message format.
- Work around a balance update bug.
- Add a
hidden
wallet state.
- Generate TypeScript type definitions from the public Flow types.
- Add Flow type definitions to the error types.
- Perform the React Native polyfill more safely.
- Add an
EdgeCurrencyWallet.changeEnabledTokens
method.
- Save 2-factor keys sent back from the auth server.
- Expose the
recovery2Key
inEdgeContext.localUsers
.
- Include a default API key in the core, in case the user initializes the context with a blank
apiKey
.
- Add a
currencyCode
toInsufficientFundsError
. - Update the readme with helpful information.
- Fix swap quote prioritization logic to always prefer exact quotes.
- Add an
EdgeCurrencyConfig.importKey
method. - Add optional properties to
EdgeCurrencyInfo
:canAdjustFees
canImportKeys
customFeeTemplate
customTokenTemplate
- De-duplicate dependencies.
- Enable minification on React Native builds.
- Always prefer top-level currency codes over tokens, if there is a conflict.
- Close unused swap quotes.
- Update YAOB correctly when plugin configurations change.
- Simplify the react-native WebView debug appearance.
- Update linting and build tooling.
- Add a new
EdgeContext.paused
control for stopping background work.
- Fix OTP settings to only apply to the root login.
- Add
close
events to Flow type definitions. - Apply timeouts to the exchange-rate fetching logic.
- Add polyfills for old React Native WebView implementations.
- Pass
otherParams
through theEdgeCurrencyWallet
implementation.
- Fix exchange-rate fetching again (for real this time?).
- Fix exchange-rate fetching again.
- rn: Re-start the core when the
WebView
reloads.
- Improve swap error-ranking logic.
- Make exchange-rate fetching more robust.
- Indicate which swap quotes are only estimates, and de-prioritize those.
Breaking changes:
- Remove swap plugins from core. These now live in the
edge-exchange-plugins
project. - Tighten up spending-related Flow types
Fixes:
- Do not fail login when accounts contain broken Ethereum keys.
- Support
react-native-webview
^5.0.1. - Pass custom tokens to currency plugin URI logic.
- Improve logging & error messages.
- Remove unused
EdgeSpendInfo
fields.
- Do not let missing files crash
EdgeCurrencyWallet.getTransactions
. - Fix a packaging error that would wrongly include
src/index.js
in the distribution. - Work around bad Litecoin defaults in the bitcoin plugin.
- Cache public keys at wallet start-up.
- Reduce logging related to missing fiat amounts.
- Throttle wallet updates.
- Upgrade to disklet v0.4.0.
- Add an optional
EdgeCurrencyTools.importPrivateKey
method.
- Delay bridge crash
- Harden the react-native WebView bridge to avoid crashes.
- Add Flow types for the plugin initialization functions.
- Work around bugs in the Bitcoin plugin resulting in missing wallets.
- Do not send rate plugin errors to
EdgeContext.on('error')
.
- Fix out of range errors for ChangeNOW.
- Add a standalone
fetchLoginMessages
for react-native. - Add a secret
unfilteredIndex
hack toEdgeCurrencyWallet.getTransactions
to work around a missing transaction bug. - Add an
EdgeCurrencyWallet.publicWalletInfo
property.
This is a major release with large numbers of breaking changes for all platforms:
- Remove legacy type names.
- Remove legacy account and context callbacks.
- Remove
EdgeAccount.fetchSwapCurrencies
. - Rename
EdgeSwapQuoteOptions
toEdgeSwapRequest
. - Replace
makeFakeEdgeContexts
with a newmakeFakeEdgeWorld
API. - Replace
makeFakeIos
withmakeFakeIo
. - Remove
error
namespace. - Rework plugin loading:
- Plugins must now provide their own networking and crypto.
- The
addEdgeCorePlugins
/lockEdgeCorePlugins
functions install plugins. - The
makeEdgeContext
function accepts a plain JSON plugin configuration object.
- Swap plugins:
- Remove
pluginType
property - Remove
makeTools
method - Remove
EdgePluginEnvironment
&EdgeSwapTools
types - Add
checkSettings
method &EdgeSwapPluginStatus
type - Add
fetchSwapQuote
method
- Remove
- Rate plugins:
- Rename
EdgeExchangePairHint
toEdgeRateHint
- Rename
EdgeExchangePair
toEdgeRatePair
- Rename
EdgeExchangePlugin
toEdgeRatePlugin
- Rename
exchangeInfo
torateInfo
- Rename
rateInfo.exchangeName
torateInfo.displayName
- Rename
fetchExchangeRates
tofetchRates
- Rename
- Currency plugins:
- In
EdgeCurrencyInfo
- Change
walletTypes
towalletType
- Rename
currencyName
todisplayName
- Change
- In
EdgeCurrencyPlugin
- Rename
makeEngine
tomakeCurrencyEngine
- Move
changeUserSettings
to the engine. - Move all other features behind a
makeCurrencyTools
method &EdgeCurrencyTools
type - Make methods fully async
createPrivateKey
derivePublicKey
parseUri
encodeUri
- Rename
- In
EdgeCurrencyEngineOptions
- Rename
optionalSettings
touserSettings
- Remove legacy disklet
- Rename
- In
EdgeCurrencyEngine
- Remove unused options from
isAddressUsed
&addGapLimitAddresses
- Remove
EdgeUnusedOptions
type - Remove
EdgeDataDump.pluginType
- Remove unused options from
- In
For React Native in particular, we have the following changes:
- Replace
makeEdgeContext
with a<MakeEdgeContext />
React component. - Replace
makeFakeContexts
with a<MakeFakeEdgeWorld />
React component. - Remove
makeReactNativeIo
. - The assets in
lib/react-native
need to be installed into the app bundle and pulled in via HTML:- Android:
file:///android_asset/edge-core/index.html
- iOS:
file://${main-bundle-path}/edge-core/index.html
- Android:
- Plugins need to be compiled as standalone scripts and installed in the same way.
- Ship the library as debug-friendly ES 2018 code. Non-standard features like Flow are still transformed out.
- Add an
edge-core-js/types
entry point containing just Flow types. - Remove
peerDependencies
, which was causing problems for users on platforms other than React Native.
- Add
payinAddress
anduniqueIdentifier
to swap metadata.
- Fix
getTransactions
for compatibility withedge-currency-accountbased
Ethereum. - Fix AUD currency lookup bug.
- Clean up Flow types
- Fix
EdgeGetTransactionsOptions.startEntries
type. - Add an
EdgePluginMap
helper type.
- Fix
- Upgrade build tools to fix Travis.
- Fix
peerDependencies
spelling. - Expose repo syncing through the secret internal API.
- Add Faa.st swap plugin.
- Log more steps during login.
- Upgrade to Flow v0.89.0.
- Upgrade to redux-pixies v0.3.6 to fix ghost wallets appearing at login.
- Sync the account keys during a
loginWithKey
.
- Fix
getTransactions
to return token transactions in the requested range. - Fix ChangeNOW 400 errors.
- Fix ChangeNOW support email & quote URI.
- Add
EdgeSwapQuote.destinationAddress
. - Re-apply replay protection when splitting BCH->BSV a second time.
- Fix ChangeNOW out of range errors.
- Add ChangeNOW swap plugin.
- Upgrade to disklet v0.3.0
- Replace
folder
andlocalFolder
withdisklet
andlocalDisklet
in all API's to use the new Disklet API.
- Replace
- Removed deprecated API's:
- Renamed API's:
EdgeCurrencyConfig.changePluginSettings
(usechangeUserSettings
)EdgeCurrencyConfig.changeSettings
(usechangeUserSettings
)EdgeCurrencyConfig.pluginSettings
(useuserSettings
)EdgeCurrencyConfig.settings
(useuserSettings
)EdgeSwapConfig.exchangeInfo
(useswapInfo
)EdgeSwapConfig.settings
(useuserSettings
)EdgeSwapConfig.changeSettings
(usechangeUserSettings
)EdgeSwapCurrencies.exchanges
(usepluginNames
)EdgeSwapQuote.exchangeService
(usepluginName
)
- Legacy swap API:
EdgeCurrencyWallet.getQuote
EdgeContext.getExchangeSwapRate
EdgeContext.getExchangeSwapInfo
- Renamed API's:
- Upgraded to Disklet v0.3.0 API:
EdgeAccount.folder
->EdgeAccount.disklet
EdgeAccount.localFolder
->EdgeAccount.localDisklet
EdgeCurrencyWallet.folder
->EdgeCurrencyWallet.disklet
EdgeCurrencyWallet.localFolder
->EdgeCurrencyWallet.localDisklet
- Made
convertCurrency
async. - Made
makeFakeContexts
async. - Make
EdgeContextOptions.apiKey
&EdgeContextOptions.appId
mandatory. - Optimize the build system.
- Fixed an issue with
wallet.getTransactions()
that sometimes it wouldn't return the oldest transactions. - Small cleanups and type fixes
- Fix the splitting/replay protection from Bitcoin Cash to Bitcoin SV
- Some flow fixes
- Add metadata to replay protection transactions
- Do not await on
reloadPluginSettings
, This prevents network roundtrips from blocking login. Upwards of 30s saved on really slow networks.
- When splitting from Bitcoin Cash to Bitcoin SV, preform a max spend to self to have replay protection before splitting the wallet
- Fix detecting and throwing of ShapeShift errors due to geo location or unverified accounts
- Improve
fetchSwapQuote
error hierarchy with rich information about different possible error conditions.
- Fix
getTransactions
from only returning a subset of transactions - Fix swap exchange to gracefully fallback if one exchange errors
- Properly filter out a swap provider if they don't support a
getQuote
currency pair
- Do not call
makeEngine
on wallets which are archived or deleted
- Allow
createPrivateKey
,derivePublicKey
,parseUri
, andencodeUri
methods from currency plugins to be async
- Fix a potential crash on logout.
- Allow swap plugins to be disabled.
- Add
supportEmail
toEdgeSwapInfo
. - Fix swapping from coins with unique id's using Changelly.
- Log more swap steps.
- Upgrade to Disklet v0.2.8.
- Remove change to types of
createPrivateKey
andderivePublicKey
due to Flow errors
- Fix throw when user account doesn't have a Shapeshift auth token
- Fix Changelly to use legacy addresses except for DGB
- Add denomination conversion helper routines.
- Add Changelly support to the swap API.
New:
EdgeSwapConfig.needsActivation
for exchanges that need KYC or other data.EdgeSwapQuote.networkFee
for outgoing network fee.SwapBelowLimitError
&SwapAboveLimitError
for failed quotes.
Deprecations:
EdgeContext.getAvailableExchangeTokens
EdgeContext.getExchangeSwapInfo
EdgeContext.getExchangeSwapRate
EdgeCurrencyWallet.getQuote
Renames (old names deprecated):
EdgeAccount.currencyTools
->EdgeAccount.currencyConfig
EdgeAccount.exchangeTools
->EdgeAccount.swapConfig
EdgeAccount.getExchangeCurrencies
->EdgeAccount.fetchSwapCurrencies
EdgeAccount.getExchangeQuote
->EdgeAccount.fetchSwapQuote
EdgeCurrencyTools.settings
->EdgeCurrencyConfig.userSettings
EdgeCurrencyTools.changeSettings
->EdgeCurrencyConfig.changeUserSettings
EdgeExchangeQuote.exchangeSource
->EdgeSwapQuote.pluginName
EdgeExchangeCurrencies.exchanges
->EdgeSwapCurrencies.pluginNames
- Fix a packaging issue with the client-side methods.
- Move the client-side methods into their own file.
- Add a new Shapeshift API (still experimental & subject to change).
- Rename
EdgeCurrencyTools.pluginSettings
toEdgeCurrencyTools.settings
. - Rename
EdgeCurrencyTools.changePluginSettings
toEdgeCurrencyTools.changeSettings
.
- Do not use legacy address for Digibyte when using ShapeShift
- Add a
waitForCurrencyWallet
helper. - Work around 0 block-height problem with some currency plugins.
- Update to
yaob
0.3.0. This one changes the timing on some callbacks a bit (breaking).
- Add a fake user with several test wallets.
- Hack around weird GUI Flow bug.
- Update the readme file.
- Work around a GUI crash.
-
Make the core API bridgeable using Yaob.
-
Add a private key hiding mode.
-
Add a user list to the context object.
-
Remove the ability to pass a node-style callback to any asynchronous API method instead of getting a promise.
-
Fail earlier if the
apiKey
is missing. -
Rename
EdgeEdgeLoginRequest
toEdgePendingEdgeLogin
- Fix the git server list again.
- Fix the git server list.
- Upgrade disklet dependency.
- Add more git servers.
- Fix a type error that Flow somehow doesn't catch when run in this repo, but does catch when this library is in somebody else's
node_modules
.
- Expose the wallet sync ratio as a property
- Rename the account data store API
- Many, many code cleanups & fixes:
- Fix an edge login race condition.
- Do not allow users to delete logged-in accounts from disk.
- Fix a hang if anything goes wrong creating wallets (redux-pixies upgrade).
- Remove deprecated context properties & options
- Remove
EdgeContext.io
- Remove
EdgeContext.getCurrencyPlugins
- Make many methods async:
EdgeCurrencyWallet.getNumTransactions
EdgeAccount.listSplittableWalletTypes
EdgeCurrencyWallet.dumpData
EdgeCurrencyWallet.parseUri
EdgeCurrencyWallet.encodeUri
- Add wallet properties for balances, block heights, and seeds
- Fix QBO & CSV export crash
- Another fix to QBO export 255-character limit (memo field)
- Pass options to
EdgeCurrencyPlugin.createPrivateKeys
.
- Fix QBO export error.
- Fix minor Flow bug.
- Upgrade Flow.
- Improve Flow types in currency wallet code.
- Fix bug where Edge could not edit Airbitz metadata.
- Add a basic
EdgeAccount.currencyTools
API. - Fix QBO export bug.
- Fix more incorrect wallet key types.
- Add a
NoAmountSpecifiedError
.
- Fix a return value error in
listSplittableWalletTypes
.
- Fix Flow type bugs
- Fix incorrect platform detection on Web.
- Fix payment request Flow types.
- Implement plugin data API.
- Fix Edge login unhandled promise rejection error.
- Fix the Flow type for the transaction export denomination.
- Export the
Error
types directly.
- Fix Shapeshifting XMR and XRP.
- Add
EdgeCurrencyInfo.requiredConfirmations
and associatedPendingFundsError
types.
- Move the unit tests out of the
src
directory.
- Replace flow-copy-source with rollup-plugin-flow-entry to fix a packaging bug.
- Add
uniqueIdentifier
toEdgeParsedUri
.
- Improve various flow typing issues, both inside and outside the core
- Add
getTxids
& related callback to the CurrencyEngine.
- Auto-correct mis-typed 2fa secrets
- Expose
hmacSha256
for the CLI - Fixed spelling mistake
- Storage and Wallet flow coverage
- Rename storage and exchange related files
- Change createPrivateKey and derivePublicKey to Object instead of {}
- Remove empty strings in the QBO export
- Flow type fix
- Add QBO & CSV export
- Add private key sweeping
- Add
EdgeCurrencyWallet.getNumTransactions
- Remove deprecated methods
- Throttle wallet callbacks
- Do not crash on really long passwords when running in the web.
- Fix Edge login race conditions.
- Support Shapeshift precise transactions
- Do not report transactions that have been dropped
- Fix incorrect array dereference when saving transaction metadata
- Optimize getTransactions to only decrypt data for the range queried
- Prevent bitcoin segwit wallets from being split to bitcoin cash
- Add
legacyAddress
toEdgeEncodeUri
- Fix git sync on timer after login
- Fix wallet splitting issues
- Fix git syncing issues for large wallets
- Add a
listSplittableWaleltTypes
function
- Renamed the library to edge-core-js
- Fix build issues on React Native & web.
- Properly handle Shapeshift HTTP error codes.
- Add a
getAvailableExchangeTokens
function to the context.
- Fix login checksum errors exposed by previous release.
- Fall back on the app name for unnamed wallets.
- Fixes exchange rate multipliers for custom tokens.
- Handle plugin errors more gracefully.
- Make PIN changes fully recursive across all apps
- Allow the PIN to be enabled / disabled
- Fixes to Flow types, including brand-new flow types for
EdgeCurrencyWallet
. - Fixes for Shapeshift spends (Bitcoin Cash addresses, proper fees).
- Redux state cleanups
- Fix accelerated crypto on React Native.
- Remove
core-js
polyfill. The main GUI needs to pull this in, if needed, since including it too late in the setup process can break React. - Switch to
regenerator
instead ofnodent
for async / await support. This is slower but more compatible.
- Renamed the library to edge-login, massive development work.
Fixes:
- Logging into partner apps works again (round 2)
Fixes:
- Logging into partner apps works again
New:
- New plugin format
- Exchange rate cache
looginWithKey
method- Store transaction metadata on first detection
Fixes:
- Code cleanup & reorganization
- Fixes to the transaction list
- Fixes to the transaction metadata format
Breaking changes:
- No longer expose the internal
login
orloginTree
on the account.
New:
- Currency wallet support
- Wallet sort / archive / delete support
- Support for legacy wallet keys
Breaking changes:
- Fix the wallet id derivation algorithm
Fixes:
- The library explicitly depends on
buffer
now, fixing React Native - Build system cleanups
- Many, many code cleanups
New:
- Error types all have a
name
property, which will replace thetype
- Use the
disklet
library for all storage needs - Expose
hashUsername
for the CLI
Breaking changes:
- api: Make
removeUsername
async - The on-disk repo format has changed, requiring a re-sync
New:
- Accept the
io
object as amakeContext
option
Breaking changes:
- Move the CLI tool to its own package
- api: Make
usernameAvailable
produce a bool - api: Make
listUsernames
async - api: Make
pinExists
&pinLoginEnabled
async - api: Remove deprecated exports
- api: Remove obsolete C++ error code system
- api: Remove platform-specific context constructors
- Make the auth server configurable
- Switch back to the production auth server by default
Breaking changes:
- Edge login v2
- New on-disk storage format
- Quick fix to package.json to exclude node-isms from the browser
Breaking changes:
- Make
checkPassword
async - Remove
runScryptTimingWithParameters
New:
- Add a
removeUsername
method to the context makeContext
accepts arandom
function- Add a
makeRandomGenerator
helper for RN - Many CLI improvements
- Better error types
Fixes:
- Faster
scrypt
- Switch to the
fetch
API - Troublesome dependencies are now bundled and isolated
- Port project to ES2015
Fixes:
- Sync server rotation support
- HTTPS connections to sync servers
- Removed
asmcrypto.js
- Made the CLI executable & installable
- Pruned the list of files we publish to NPM