UNPKG

cosmic-lib

Version:

A JavaScript implementation of the CosmicLink protocol for Stellar

495 lines (319 loc) 14.6 kB
**cosmic-lib /** [Documentation](https://cosmic.plus/#view:js-cosmic-lib/web/doc) • [Examples](https://cosmic.plus/#view:js-cosmic-lib/EXAMPLES) • [Contributing](https://cosmic.plus/#view:js-cosmic-lib/CONTRIBUTING) • [Changelog](https://cosmic.plus/#view:js-cosmic-lib/CHANGELOG) # Changelog All notable changes to this project will be documented in this file. This project adheres to **[Semantic Versioning](https://semver.org/spec/v2.0.0.html)**. Version syntax is `{major}.{minor}.{patch}`, where a field bump means: - **Patch**: The release contains bug fixes. - **Minor**: The release contains backward-compatible changes. - **Major**: The release contains compatibility-breaking changes. **Remember:** Both micro and minor releases are guaranteed to respect backward-compatibility and can be updated to without risk of breakage. For major releases, please check this changelog before upgrading. ## 2.24.0 - 2021-09-17 ### Added - API: Add support for claimClaimableBalance operation. ### Changed - Meta: Upgrade [stellar-sdk] to 8.x. - Meta: Update dependencies. ## 2.23.0 - 2021-01-11 ### Changed - Meta: Upgrade [stellar-sdk] to 7.x. ## 2.13.0 - 2021-01-11 ### Changed - Meta: Upgrade [stellar-sdk] to 7.x. ## 2.12.0 - 2020-11-08 ### Changed - Meta: Upgrade [stellar-sdk] to 6.x. ## 2.11.0 - 2020-09-12 ### Changed - Logic: Update [stellar-sdk] to 5.0.4. ## 2.10.1 - 2020-07-01 ### Fixed - API: Fix decoding of escaped xdrUri. ## 2.10.0 - 2020-06-21 ### Changed - UI: Improve `createAccount` description. ## 2.9.0 - 2020-05-31 ### Added - UI: Add description for the new `authorize` flag. ### Fixed - Logic: Revert no-timebound handling to pre-5.x behavior. StellarSdk 5.x introduced a new default for timeBounds that leads to failures on Trezor wallets. ## 2.8.1 - 2020-05-24 ### Fixed - Logic: Update @cosmic-plus/base to 2.7.0. ## 2.8.0 - 2020-05-24 ### Changed - Logic: Upgrade [stellar-sdk] to 5.x (protocol 13). ## 2.7.0 - 2020-03-28 ### Changed - Logic: Update [stellar-sdk] to 4.1.0. (support for SEP29 have been added, [see changelog](https://github.com/stellar/js-stellar-sdk/blob/master/CHANGELOG.md#v410)) ## 2.6.0 - 2020-03-07 ### Changed - Meta: Upgrade [stellar-sdk] to 4.x. ## 2.5.0 - 2019-11-27 ### Changed - Protocol: Re-introduce source-less SEP7 requests. It's not part of the specs anymore, but some Wallets such as StellarTerm or Lobstr use it anyway. ## 2.4.1 - 2019-11-23 ### Fixed - UI: Give SideFrame a minWidth. This is intended to improve big screens support. - UI: Fix the shadow overlay positioning. In some cases, it was not covering fully the window. - UI: Have SideFrame `Close` button always ontop. It was not showing up on website where SideFrame z-index was set to be higher than 1000. ## 2.4.0 - 2019-11-15 ### Changed - Style: Upgrade graphic design. ### Fixed - UI: Make SideFrame animation smoother. - UI: Fix SideFrame height. The last 2em were overflowing the window. ## 2.3.0 - 2019-11-11 ### Added - Meta: Add `side-frame.js` web bundle. It is now possible to load the SideFrame component independently from <https://cdn.cosmic.plus/cosmic-lib/side-frame.js>. The component is then available as `SideFrame`. ### Changed - UI: Make SideFrame "close" button bigger. ## 2.2.1 - 2019-11-09 ### Fixed - API: Fix decoding of messages with an '=' sign. ## 2.2.0 - 2019-10-26 ### Added - API: Add operation `pathPaymentStrictSend`. [Example](https://cosmic.plus/js-cosmic-lib/web/demo?type=pathPaymentStrictSend&destination=tips*cosmic.link&destAsset=GILS:gils*cosmic.plus&destMin=100&sendAsset=XLM&sendAmount=20&network=test) (part of [protocol 12 update](https://www.stellar.org/developers/blog/horizon-v0-22-0-released-protocol-12-support/#about-protocol-12)) ### Changed - API: Rename pathPayment in pathPaymentStrictReceive. (part of [protocol 12 update](https://www.stellar.org/developers/blog/horizon-v0-22-0-released-protocol-12-support/#about-protocol-12)) - Logic: Update [stellar-sdk] to 3.1.2. (protocol 12 support) ## 2.1.1 - 2019-09-28 ### Added - Documentation: Add examples. - Documentation: Add `cosmicLink.signSep7()` documentation. ### Fixed - API: `cosmicLink.signSep7()` is synchronous. The `async` attribute was kept by mistake in the previous release. ## 2.1.0 - 2019-09-14 ### Added - API: Add `sep7Utils.registerWebHandler()`. This is a helper to register a page as a SEP-0007 web handler. [See documentation](https://cosmic.plus/#view:js-cosmic-lib/web/doc/module-sep7Utils.html#.registerWebHandler). - API: Add `sep7Utils.isWebHandlerSupported()`. This helpers returns whether or not web protocol handlers are supported by the current browser. [See documentation](https://cosmic.plus/#view:js-cosmic-lib/web/doc/module-sep7Utils.html#.isWebHandlerSupported). - Documentation: Add [EXAMPLES.md](https://cosmic.plus/#view:js-cosmic-lib/EXAMPLES). ### Changed - API: Change SEP-0007 handler default parameter. Replace the generic `?req=` by the more specific `?sep7=`; Handlers should then register as `{handler}?sep7=%s` where %s will be replaced by the encoded SEP-0007 link. _Note: `?req=` is still accepted for backward-compatibility purpose._ - API: Read `network` from Transaction. As StellarSdk _Transaction_ now embeds a network passphrase, it gets parsed when calling `new CosmicLink(transaction)`. - Demo: Set as SEP-0007 handler on compatible browsers only. ### Fixed - Meta: Set bower package to use stellar-sdk 3.x. ## 2.0.0 - 2019-09-07 ### Breaking - Protocol: SEP-0007 `tx` now requires a source account. A recent change in the SEP-0007 protocol removed `tx` operation support for source-independent transaction requests. As a consequence, SEP-0007 links using the source account `GAAA...AWHF` don't get stripped of their source by default anymore, and trying to build SEP-0007 links without specifying a source will fail. - Protocol: Keep neutral account & sequence. When SEP-0007 `tx` support was initially implemented, it required the neutral account (`GAAA...AWHF`) and sequence to get stripped off & replaced by user account values. This feature "leaked" into CosmicLink `xdr` queries parsing as a free addition. However, this feature has never been included in the specs and is now getting removed. _- Note: SEP-0007 `tx` neutral sequence still get stripped as required by its own specifications._ ### Removed - API: Remove deprecated _CosmicLink_ properties. Those properties were deprecated since a year: `server`, `htmlNode`, `transactionNode`, `statusNode`, `signersNode`, `hasSigned`, `hasSigner`. ### Added - API: Add `cosmicLink.verifySep7()`. Verify SEP-0007 signature by resolving `cosmicLink.extra.domain`, if any. Throw an error if the signature is not valid. - API: Add `cosmicLink.signSep7()`. Parameters: domain, keypair. Sign SEP-0007 link for **domain**, using **keypair**. - API: Add options to strip neutral account & sequence. To compensate with the protocol changes introduced in this release, two XDR/SEP-0007 options have been introduced: `stripNeutralAccount` and `stripNeutralSequence`. cosmic-lib 1.x behavior can be implemented this way: `new CosmicLink(xdr, { stripNeutralAccount: true, stripNeutralSequence: true})`. - UI: Add SEP-0007 origin_domain in HTML description. ### Changed - Demo: Display SEP-0007 source account error. - Logic: Update status on SEP-0007 verification failure. You still need to `await cosmicLink.verifySep7()` before signing a transaction request, as signature verification is asynchronous. - Logic: Allow to set SEP-0007 `pubkey` & `msg`. Those can be defined with `cosmicLink.extra.pubkey` and `cosmicLink.extra.msg` before reading `cosmicLink.sep7`. ### Fixed - API: Fix a regression in the parser. 1.8.1 did not properly handle empty transactions (`?`). - API: Add `&strip=source` to sourceless XDR query. Sourceless XDR query are computed when calling `cosmicLink.lock()` without having a source defined. - UI: Fix buying/selling description. Use "at {price}" rather than "for {price}". ## 1.8.1 - 2019-09-02 ### Fixed - Api: Fix a regression in the parser. 1.8.0 broke backward-compatibility for queries made by one operation only, such as `?inflation` and `?setOptions`. ## 1.8.0 - 2019-08-31 ### Deprecated - Api: Deprecate functions related to the global Network class. StellarSdk now uses a scoped network parameter, hence the functions `cosmicLink.selectNetwork()` and `resolve.useNetwork()`, which are helpers to switch the StellarSdk global Network, are now deprecated. Those functions will get removed in sync with StellarSdk removal of its global Network class. ### Added - Documentation: Add navigation header. ### Changed - Meta: Upgrade [stellar-sdk] to 3.x. - Api: Implement XDR-links param `strip`. It replaces parameters `stripSource`, `stripSequence` & `stripSignatures` by the standard-compliant `strip="source"|"sequence"|"signatures"`. - Api: Add a `type=` prefix to param queries. The previous syntax was not standard-compliant. Example: `?type=payment&destination=tips*cosmic.link&amount=20` - Documentation: Differenciate between meta & transaction fields. - Documentation: Update CONTRIBUTING.md. ## 1.7.2 - 2019-08-27 ### Fixed - Meta: Fix a regression that prevented to bundle cosmic-lib. It was introduced in 1.7.0. ## 1.7.1 - 2019-08-24 ### Fixed - Api: Fix SEP-0007 `pay` memo & asset error checks. - Demo: Fix source-code link. ## 1.7.0 - 2019-08-17 ### Added - Api: Add action `cosmicLink.open(target)`. Valid targets are: - `frame` (default): Open cosmicLink in a side-frame. - `tab`: Open cosmicLink in a new tab. - `current`: Open cosmicLink into the current window. - `sep7`: Open cosmicLink using user's SEP-0007 handler. - Api: Add SEP-0007 signature check. - `cosmicLink.extra.originDomain` is a _Promise_ that resolves to the origin_domain parameter when the link signature is valid. It rejects an error when the signature check fails. This property is `undefined` when the link has no origin_domain. - `cosmicLink.extra.signature` contains the link signature, if any. - Demo: Add a link to register as a SEP-0007 handler. ### Fixed - Api: Fix SEP-0007 `callback` parameter encoding. (thanks [@pselden] & [@nikhilsaraf]) - Demo: Fix the 'computing...' message in format boxes. ## 1.6.0 - 2019-08-10 ### Added - Implement support for SEP-0007 `pay` operation. - Add the `cosmicLink.extra` property for SEP-0007 specific information: - `cosmicLink.extra.type` indicates the operation encoded into the SEP-0007 link (either `tx` or `pay`). - `cosmicLink.extra.pubkey` contains the tx operation `pubkey`, if any. - `cosmicLink.extra.msg` contains the parsed `msg`, if any. This is provided for compatibility purpose only. Displaying messages from untrusted sources into trusted interfaces opens hard to mitigate attack vectors & is discouraged. - Add new method `cosmicLink.insertOperation(index, type, params)`. ### Fixed - Set `cosmicLink.sep7` to input URL when parsing CosmicLink from SEP-0007 link. ## 1.5.5 - 2019-07-26 ### Changed - Automate release procedure. - Add contributing guidelines. - Update [stellar-sdk] to 2.1.1 (bugfixes). ## 1.5.4 - 2019-07-23 ### Fixed - Workaround a regression in [stellar-sdk] 2.0.1 that causes CallBuilder to fetch the wrong URL when several of them are created from the same Server instance. ([#379](https://github.com/stellar/js-stellar-sdk/issues/379)). ## 1.5.3 - 2019-07-20 ### Changed - Improve discoverability (add badges, keywords, set homepage...). ## 1.5.2 - 2019-07-19 ### Changed - Update [stellar-sdk] to 2.0.1. - Switch to new cosmic.plus paths (cdn.cosmic.plus, new repository name). ## 1.5.1 - 2019-06-18 ### Changed - Update [stellar-sdk] to 1.0.3. (Get rid of a vulnerability in axios) ### Fixed - Ignore SEP-0007 `msg` field as intended, instead of raising an error. This field is not supported by cosmic-lib because we don't want to display a message from untrusted sources into trusted interfaces, and because URL length is limited. Transaction request emitter should make sure the purpose of the transaction is clear before issuing a transaction request. - Thanks [@tyvdh] - Decode the '+' character as a space for string parameters (text memo, network passphrase, text data in 'manageData' operation). - Thanks [@tyvdh] ## 1.5.0 - 2019-06-08 ### Added - Support for the new operation `manageBuyOffer`. - New operations `manageSellOffer` & `createPassiveSellOffer` replace `manageOffer` & `createPassiveOffer` in protocol 11 update. For backward compatibility, the old operations are still accepted. ### Changed - Update [stellar-sdk] to 1.0.2. ### Fixed - Fix a rare bug related to offer deletion. ## 1.4.1 - 2019-05-17 ### Fixed - Fix gateway timeout handling (error 504). ## 1.4.0 - 2019-04-26 ### Added - Bundle transpiled ES5 code within the package. ## 1.3.0 - 2019-04-19 ### Added - Syntactic sugar to define minTime/maxTime relatively to the current time, in minutes. This gets immediately computed into the corresponding UTC date. - In queries: `&maxTime=+10` - In objects: `{ maxTime: "+10" }`. ### Changed - Update documentation. ## 1.2.10 - 2019-04-12 ### Changed - Update [stellar-sdk] to 0.15.0. - When sending transactions, keep connection alive over gateway timeouts (error 504). - Errors returned by Horizon are now logged in the console. ## 1.2.9 - 2019-02-28 ### Changed - Update [stellar-sdk] to 0.14.0. ## 1.2.8 - 2019-02-14 ### Changed - New loader animation. - Improve display of operations that edit an offer (manageOffer). ## 1.2.7 - 2019-02-06 ### Added - Add a syntactic sugar for offer deletion: `?manageOffer&offerId={id}&amount=0`. ### Changed - Update [stellar-sdk] to 0.13.0. ## 1.2.6 - 2019-02-01 ### Added - It is now possible to setup onclick event handlers for any transaction field type, not only address, assets, memo & hashes. ### Changed - Update [stellar-sdk] to 0.12.0. - Improve memo display. - Improve assets display. - Improve longs amounts/prices display. ## Older Releases There is no changelog for older releases. Please take a look at the [commit history](https://github.com/cosmic-plus/js-cosmic-lib/commits/master). [stellar-sdk]: https://github.com/stellar/js-stellar-sdk/blob/master/CHANGELOG.md [@nikhilsaraf]: https://github.com/nikhilsaraf [@pselden]: https://github.com/pselden [@tyvdh]: https://github.com/tyvdh