* Update API deps * Duplicate new Api from api * Explorer renders * Cleanup trapping * Allow Moment values * Vector -> Array * Add mapping FIXME * Updates * proposals -> publicProposals * QueueTx * nonce -> accountNonce * Cleanup (some) naming * FIXME * Cleanups * cmp & isZero on UInt * WIP... storage dropdowns may work after latest API PR... * Misplaced .public * Update exposed methods * Remove getBlock checks (available in poc-3) * Align method/section * Align with API (method) * api-codec -> types * Reanme API interfaces * Type updates, still very much a WIP * We have updating queries... without params * Chainstate app is working * Get rid of some params imports * Cleanups * Remove app-example... outdated, non-working * Remove app-example link from README * Additional cleanups * InputRpc dropdowns working * We can make transfers (Transfer app) * Call doesn't encode toU8a * Cleanup to use extrinsics from Api * Remove references to @polkadot/params * Update deps * Submitting transactions hsould work in app-* * Bump * Extrinsics app renders * Extrinsic app can transfer * Adapt travis.yml * Force things to pass checks... * Update @polkadot/dev for gh-pages -> next * Bump dev (hopefully now gh-pages deploy) * Default theme * Don't skip signer for sending * Don't throw on unknown types * Signer queue rework * Render input params for rpc * Explorer click-through working * Update deps * WIP#327 - app-accounts with ss58 address inputs * transformtoss58 returns valid address or null * syntax * app-accounts * app-democracy * app-extrinsics * app-rpc * app-staking * app-transfer * Generate ui-identicon from ss58 as input currently handling null address with null return - there should be a better way to do this but it "works". * ui-app adapt onChange Props params * manage identities with ss58 addresses rather than u8a. also currently handling null value input, should be a better way to handle this but currently "works". * ui-signer use ss58 address in keyring * ui-signer combine duplicate imports * ui-signer signMessage with ss58 address derive public key by decoding ss58 input * use 'accountId' as variable name instead of 'ss58' * Addressing some issues * sanity check for accountId by decoding and checking public key * allow u8a account id types for more flexibility around short address input types in the future * throw error on generate identicon with empty seed * fix: accountId over publicKey Transactions work in extrinsics and transfers. * fix linting errors in rpc, addresses, transfer, identicon * accountId in stakelist * Allow file upload for Bytes * Extrinsic change updates correctly, Params track codec instances * Unused import * Cleanup conflicts, linting * [next] Display balance with μ, k & m (#350) * Display balance with μ, k & m * balanceFormat to handle UInt * let -> const * Format static Balance properly * Take care of new extrinsics format * m -> M (not mili, mega) * [next] Proposals & democracy updates (#352) * Update README.md * Proposals actually submit (non-valid atm) * New API package * Promposal propose * Poposal decoding * Proposal & Referendums show up * Formats * Proposal & voting works as expected * Staking works as expected * Staking & Democracy fully operational * Update package.json * [next] Update API deps (#354) * Update API deps * Update type locations * Update api deps * [next] Add mnemonic support from keyring (#356) * Add mnemonic support from keyring * Bump @polkadot/api * Bump dependencies (#358) * [next] Add app-settings (#359) * [next] Add app-settings * Update deps, cleanups * Re-encode address for adding * Action for seedType selection * Revert denominations (#360) * [next] Dependency bumps (#362) * Bump API decoding * Bump deps * [next] Chain configs (#361) * Revert denominations * Chain Id * Distinct colours * Cleanup options for settings * Adjust tests aftrer colour change * Gated on isConnected & isReady * Allow selection/add of AccountIndex * Remove examples (code removed already) * Reverse Id <-> Index lookups * Index reverse lookups * Usable AccountIndex * [next] Bump API (#363) * [next] Merge master (#364) * Update README.md * Re-lock account only after save * trying to get mapping of nominators correct (#346) * trying to get mapping of nominators correct * changed double quote to single * Fix for disabled chain state button bug (#351) * merge prev and next params on Selection key change * build error * [next] Balance formatting (#365) * Update README.md * Re-lock account only after save * trying to get mapping of nominators correct (#346) * trying to get mapping of nominators correct * changed double quote to single * Fix for disabled chain state button bug (#351) * merge prev and next params on Selection key change * build error * Load order (we need chain) * Dropdown for seed type selection * Allow SI unit selection on number inputs * Remove unused function * Cleanup BalanceFormatter * Fix tests * [next] Bump API version (#366) * Bump API version * Proposal construction & chain units * Update Extrinsic -> Call * Pass correct call params * Cleanup linting * Re-encode address on loading * Bump * Lint fix. * [next] Import from package indexes (#370) * [next] Import form package indexes * Update deps, fix Transfer balance checks * Add error on unlock * Save account with hex encoded (not address) * Import InputAddress for swap * Bump @polkadot/api (staking nominators show up) * Align api & util deps * Bump @polkadot/api * [next] Bump API, adjust call/method (#372) * Bump API, adjust call/method * Add votes correctly to yay/nay * [next] Local Testnet * Don't link block 0 * [next] FF Warning message (#374) * FF Warning message * Bump deps, massage message a bit * Bump deps * i18next upgrade changes * Bump yarn to 1.10.1 in engines, travis (#379) * [next] submitAndWatchExtrinsic for transactions (#377) * WIP: Replace submitExtrinsic with submitAndWatchExtrinsic TODO: * don't `complete` when calling send, rather update as update messages come in from API * adjust queue statuses in UI with new Status codec type from API. * update api wrapper for subscribeAndWatch * Update index.tsx * subscribe to updates * remove unneeded subscribe * display result type * Wrap up submitAndWatch status display * Status background colours * Revert indent * Queue status icons (#380) * [next] Bump dependencies (#383) * Bump dependencies * Update mock creation * Don't mangle classes via uglify (#384) * [next] Update status overlay styling (#385) * Update status overlay styling * Adjust colours for status messages * Slight padding adjustments * [next] refactor: Create export index files in ui-react-rx/src/{with/util} for single line destructuring imports (#388) * refactor: Create ui-react-rx/src/with index of exports. Import single line destructuring * refactor: Create ui-react-rx/src/util index of exports. Import single line destructuring * refactor: Use ui-react-rx/src/ index of exports. Import single line destructuring * refactor: Refactor to use exported index * refactor: Refactor to use another exported index * fix: Add missing license headers. Avoid import from index in same location * [next] Support latest substrate master (#390) * Update deps (api, compact support) * Bump deps * Update deps * Compact<BlockNumber> for Header * Handle Compact<*> rendering * Cleanup warnings * Update deps * Not perfect, but warn on (invalid) hashes for blocks * [next] keyring classify (#393) * refactor: reorder imports and props alphabetically * fix: Make class methods private * fix: Restrict user restoring account to select only .json. Add missing withLabel * refactor: Replace onBack with onCreateAccount and onRestoreAccount * fix: Show console.log of error in try/catch of Backup/Restore * fix: accountAll is array of objects * refactor: Move Backup keyring logic into ui-keyring * refactor: Move restoreAccount logic into ui-keyring * refactor: Move validatePass to ui-keyring as isPassValid with MAX_PASSWORD_LEN * refactor: Issue #138 convert closure to separate function declare, call, export * refactor: Issue #138 convert function to ES6 class object * refactor: Move addPair, create, createMnemonic, restore, save into Keyring class * refactor: Move backup/encrypt/forget account, get accounts, and save account meta functions into Keyring class * refactor: Move get address/addresses, forget/save address, and save recent functions into Keyring class * refactor: Move isPassValid, isAvailable functions into Keyring class * refactor: Move loadAll into Keyring class * refactor: Move much of ui-keyring/options into Keyring class * refactor: Move private methods to top of class * fix: fix: Prevent creating multiple instances of Keyring class * Prevent creating multiple instances of Keyring class. i.e. the following does not create the second instance: ``` const keyringInstance = new Keyring(); const keyringInstance2 = new Keyring(); ``` * References: * https://codepen.io/JoeCoulam/pen/mRqbzz * https://medium.com/@dmnsgn/singleton-pattern-in-es6-d2d021d150ae * https://stackoverflow.com/questions/26205565/converting-singleton-js-objects-to-use-es6-classes/26227662#26227662 * fix: Prevent calling initOptions of Keyring singleton multiple times * the following calls to initOptions are prevented since initOptions called when instance created with by loadAll() function: ``` const keyringInstance = new Keyring(); keyringInstance.initOptions(); keyringInstance.initOptions(); ``` * test: Add test for Keyring singeton instance check and so initOptions only callable once * feat: Move Keyring options back. Remove singleton check. Move initOptions check. Only export Keyring instance * Move keyring options back into options folder * Remove checking if Keyring is singleton * Move checking if initOptions called multiple times and associated tests out of Keyring and into options folder file * Add type to pair to fix linting * Remove exporting Keyring class, only Keyring instance is exported * refactor: Class-ify the Keyring options directory into a class named * fix: Store state outside of Keyring instance * refactor: Move keyring state into Keyring class. Add getters and setters * Move observable accounts and addresses into Keyring class. * Rename KeyringInstance interface to KeyringStruct (similar to app-settings) * Add getter for keyring, accounts, and addresses to Keyring * Add setter for keyring * Add AccountSubject type * Fix State type to use AccountSubject instead of AddressSubject * Small private member tweaks * Rework (overzealous private members) * Fix rename in test * [next] Block explorer event display (#392) * Update README.md * Re-lock account only after save * trying to get mapping of nominators correct (#346) * trying to get mapping of nominators correct * changed double quote to single * Fix for disabled chain state button bug (#351) * merge prev and next params on Selection key change * build error * Updated required Node version in README (#367) The minimum Node version is 10.1.0 as specified in the package.json 'engines'. The installation fails if the node version is below that (eg. v10.0.0 ), that's why I changed it in the README * Simple (unformatted) event display * section, method + types * Display events on explorer * Styling & overflow fixes * Fix linting issues * Node 10.13.0 LTS * Revert message on block, reduce flicker * [next] Update nvmrc version. Add missing packages to Readme. Indicate LTS required (#395) * docs: Fix typo in Readme * fix: Update nvmrc to version in package.json * docs: Add missing packages to Readme. Indicate that LTS is required * Render logs in expanded block display (#396) * [next] Cleanup staking list balance displays (#397) * Cleanup staking list balance displays * Don't naked map balances (params passed) * Cleanup block display with cleaner formatting (#398) * Only filter dev accounts when in dev (#401) * [next] Move BIP generation to worker (UI responsiveness) (#400) * Move BIP generation to worker (responsive) * Test & cleanup via local prod build * [next] Fix length encoding for uploaded Bytes (#405) * Fix length encoding for uploaded Bytes * Remove addressed FIXME * Cleanup linting, adjust encoding via helpers * [next] Handle null nonce in extrinsics (in addition to undefined) (#407) * Handle null nonce (in addition to undefined) * Adjust types for partials * Helper for submit RPC * [next] Highlight validators (#402) * Add isHiglight to IdentityIcon * Display validator highlight in Address{Row,Summary} * Highlight validators in AddressMini * Highlight validators in AddressInput * Display zero balalnce as 0 instead of 0.000f (#408) * Cleanup explorer header display (#410) * [next] Align article headers (all h3, no extra classes) (#411) * Align article headers (all h3, no extra classes) * Adjust overflowing columns in explorer * Adjust app contemnt to cover screen (#412) * [next] Retrieve hash instead of calculating (slower) (#415) * Retrieve hash instead of calculating (slower) * Cleanups * Allow raw-key queries via the storage app (#416) [next] Allow raw-key queries via the storage app * [next] Remove IdentityIcon bond dependencies (#419) * Remove IdentityIcon bond dependencies * Cleanup tests * Update README * Update header * Update headers * Catch & display observable status errors (#422) * [next] refactor: Move backup/restore functionality to Keyring. See details (#386) * refactor: reorder imports and props alphabetically * fix: Make class methods private * fix: Restrict user restoring account to select only .json. Add missing withLabel * refactor: Replace onBack with onCreateAccount and onRestoreAccount * fix: Show console.log of error in try/catch of Backup/Restore * fix: accountAll is array of objects * refactor: Move Backup keyring logic into ui-keyring * refactor: Move restoreAccount logic into ui-keyring * refactor: Move validatePass to ui-keyring as isPassValid with MAX_PASSWORD_LEN * fix: Change allAccounts type to SubjectInfo * refactor: Example with clearer usage of for React Dropzone * [next] refactor: Issue #138. Convert closure into ES6 class object. Move methods into class (#387) * refactor: Issue #138 convert closure to separate function declare, call, export * refactor: Issue #138 convert function to ES6 class object * refactor: Move addPair, create, createMnemonic, restore, save into Keyring class * refactor: Move backup/encrypt/forget account, get accounts, and save account meta functions into Keyring class * refactor: Move get address/addresses, forget/save address, and save recent functions into Keyring class * refactor: Move isPassValid, isAvailable functions into Keyring class * refactor: Move loadAll into Keyring class * refactor: Move much of ui-keyring/options into Keyring class * refactor: Move private methods to top of class * fix: fix: Prevent creating multiple instances of Keyring class * Prevent creating multiple instances of Keyring class. i.e. the following does not create the second instance: ``` const keyringInstance = new Keyring(); const keyringInstance2 = new Keyring(); ``` * References: * https://codepen.io/JoeCoulam/pen/mRqbzz * https://medium.com/@dmnsgn/singleton-pattern-in-es6-d2d021d150ae * https://stackoverflow.com/questions/26205565/converting-singleton-js-objects-to-use-es6-classes/26227662#26227662 * fix: Prevent calling initOptions of Keyring singleton multiple times * the following calls to initOptions are prevented since initOptions called when instance created with by loadAll() function: ``` const keyringInstance = new Keyring(); keyringInstance.initOptions(); keyringInstance.initOptions(); ``` * test: Add test for Keyring singeton instance check and so initOptions only callable once * feat: Move Keyring options back. Remove singleton check. Move initOptions check. Only export Keyring instance * Move keyring options back into options folder * Remove checking if Keyring is singleton * Move checking if initOptions called multiple times and associated tests out of Keyring and into options folder file * Add type to pair to fix linting * Remove exporting Keyring class, only Keyring instance is exported * refactor: Class-ify the Keyring options directory into a class named * fix: Store state outside of Keyring instance * refactor: Move keyring state into Keyring class. Add getters and setters * Move observable accounts and addresses into Keyring class. * Rename KeyringInstance interface to KeyringStruct (similar to app-settings) * Add getter for keyring, accounts, and addresses to Keyring * Add setter for keyring * Add AccountSubject type * Fix State type to use AccountSubject instead of AddressSubject * Small private member tweaks * Rework (overzealous private members) * Fix rename in test * merge latest from next. fix merge conflicts * fix linting error * fix: Remove unncessary code * Bump API version (bugfixes) (#424) * [next] Apply fee color classes correctly (#426) * Apply fee color classes correctly * Class ordering * Adjust menu & IdentityIcon styling (#427) * Cleanup proposal & referendum display (#429) * [next] Cleanup Referendums & voting process (with Vec<KV>) (#431) * Cleanup Referendums & voting process (with Vec<KV>) * Remove FIXME (addressed) * [next] Cleanup styling (#428) * Adjust backgrounds to be slightly darker * Cleanup validator/intentions lists * update readme reflect removal of ui-react (#434) * moved shared function to parent (#404) * moved shared function to parent * lint * remove balance array dance * lint * Bump deps, metadata parsing (#436) * article styling updates (#437) * [next] Merge master, param change update (#438) * Marge master, param change update * Tie params to section.method * [next] autoFocus app fields (#439) * autoFocus app fields * Toolbox autoFocus * Cleanup warnings in staking nominate * Align borders * Remove unused var * [next] Revert menu border override (#440) * Revert menu border override * Revert article single border * Menu background * Align grays * Lighten content background * [next] Support dynamic Tuple & Array inputs (#441) * Allow Tuple value entry * Fire Param events * Remove extra debug log * Allow entry of Array<*> * Bump deps * Bump deps (API d.ts fixed) * [next] Display intention/validator name in staking list #303 (#448) * Added getAccount() method to ui-keyring package * Added getDisplayName function for staking accounts/ addresses * removed deprecated argument from earlier approach * formatting (added empty line) * Removed unnecessary typecheck & encoding from getAccount(), * Added getAccount to types.d.ts * removed space * changed type of `address` to string (failing build fix) * [next] Backup warning modal on account creation #394 (#447) * Added address summary and auto-download of backup file to 'create'-modal * Removed deprecated code after falsy merge * Fixed typo Plesae -> Please * Move check for whenCreated property from saveAccount to separate method * removed unnecessary return statement * grammar fix 'was' -> 'is' * Added Highlight to Modal class, styling adjustments * removed surrounding <p> in modal content * Changed Modal.Highlight to built in MUI Modal.Description * renamed translation key of Modal.Description * Moved timestamp creation back to save Account * [next] Explicit Identityicon prefix (#446) * set IdentityIcon default prefix * Update with import from keyring * Rework encoding/decoding of addresses * Update keyring deps * [next] Bump deps (#449) * Bumpo deps, work around i18next definitions being wonky (again) * Cleanup yarn.lock * [next] add user notifications in App-Accounts (#391) * add toaster for app-accounts status changes * status notifs * linter * lint * refactor with addressmini * remove debugger statement * fixintl, status obj creation pattern * lint * Track events globally, alert use (notification pop-up) (#413) * move Status component to ui-app * move status stuff up the component tree some more generalizations with action types * global status currently works in app-accounts and ui-signer * I18n and linting * lintlint * style * add notifs to app-address * status notifs with backup, changepass * addresses unnecessary translates * lint * Fix merge * Vector should not render add/remove in isDisabled mode (#452) * [next] Bump API version (#455) * Bump API version * Bump deps * Update README and LICENSE * Bump dependencies * [next] Track extrinsics, don't allow until accountIndex is updated (#406) * dont allow queueing until accountindex increments * WIP: deny txn submit before account nonce increments * readding blocked extrinsics to the queue. Still need to properly set the accountNonce though * queue unclog * remove unnecessary _this=this scoping dance * Moving the need for `?:` to a separate issue * update types to match codec, account for different accountid with same nonce * Fix toString for undefined (#456) [next] Fix toString for undefined * [next] Cleanup translate HOC definitions (#457) * Cleanup translate HOC definitions * Alignment * [next] Bump API for Grandpa compat (#461) * Bump API for Grandpa compat * Update types for new API * [next] Handle byte display consistently (#463) * Handle byte display consistently * Chack blocked status against completed status * Bump * Democracy countdown (lauch & voting) (#464) * Bump API to handle StorageData -> Bytes with prefix (#466) * Bump dependencies, align with stricter TS checks (#467) * Only remove local files, not nested (#468) * Bump api deps (#469) * Display nonce via toString(), cleanup blocked checks (#470) * [next] Bump deps, update with linting rules (#472) * Bump deps, update with linting rules * Update root package config * Revert testing ruleset config * Update tslint config pulling in dev-react * Bump deps with UI packages, remove now unused eslint config (#474) * Move types.d.ts -> types.ts (#475) * [next] Bump dependencies (#481) * Bump deps * Bump deps * Cleanup lintin issues with 3.2.1 * Bump @polkadot/api with Tuple map support * Format JSON results from RPC app * [next] Make settings accessible from non-running node (#484) * Add onCopy to IdentityIcon * Allow settings to be accessible when no node * Proper license naming for identicon (#488) * [next] Split ui-{identicon,keyring,settings} into ui repo (#491) * Split ui-{identicon,keyring,settings} into ui repo * Correct settings import from ui-app * Use @polkadot/ui-* split from npm * Update with latest @polkadot/ui * Migrate to travis-ci.com, bump deps * Change non-local imports to direct * #459 Add spread and copy buttons for substrate.code query (#465) * #459 Add spread and copy buttons for substrate.code query * fix code style checks * render spread© buttons for all queries which produce byte code * Type and name refinement * #459 A first revision where spread functionality for Byte queries is implemented * remove state property * Review fixes * Review fixes * break query output for overflowing content * call valueToText with -1 * Fix linter issue * [next] Global shared status queue and consumer (#490) * Global shared status queue and consumer * Bump deps * Adjust styling * Remove copy (unimplemented), spread & concat * [next] Display received events (balalnces.Transfer atm) (#494) * Display received events (balalnces.Transfer atm) * Cleanup Status class * Keys for values in Vector * Extra information on address decode errors (#495) * [next] Cleanup React & API errors (#498) * Cleanup React & API errors * Revert value override, breaks input * InputNumber does not switch between controlled and uncontrolled * Status has key for entries * Adjust receive icon * Bump dependencies, cleanup Unknown types (#499) * Bump dependencies, cleanup Unknown types * Cleanup status styling, icon stretch * [next] fix: Fixes #493. Contain logs digest item within div (#497) * fix: Fixes #493. Contain logs digest item within div * refactor: Remove monospace and drop-down css. Add only wrapping and space between elements * fix: Remove AuthoritiesChange, forgotten how that got there, but not required * Allow onCopy Status for IdentityIcon (#501) * Allow onCopy Status for IdentityIcon * Clanup same-package imports * [CI Skip] Update .codeclimate.yml (#502) * [next] Bump dependencies (#503) * Bump dependencies * Bump dependencies * Downgrade react-dropzone (8.x has new context API) * Bump deps (API types fix) * Cater for check where key has no meta (#504) * Align number inputs to 0 defaults (#506) * fix InputAddress display (#509) * [next] Bump dependencies (#512) * Bump dependencies * Don't change status (flicker) when completed * Expand status timeout * Pull svg from ui-assets (#513) * [next] Read chain properties, inject (#514) * Read chain properties, inject * Linting * Bump deps (#520) * Bump deps * ... and include lockfile * [next] Support latest Polkadot types (#523) * Bump deps, latest Polkadot types * Rendered for ParaId * [next] Charred Cherry support (#522) * Charred Cherry support * Update deps to include CC * Update injection & new method interfaces * Naming, extrinsic vs method * Update ExtrinsicStatus results * Bump deps * [next] launguage -> language (#524) * [next] Bump deps, support latest metadata struct (#525) * Bump deps, support latest metadata * Bumpdeps * Bump dev * Bump local deps * Display target period * 2 (#526) * Alexanber support (#528) * Bump API * Bump deps * Fix referendums, chain id for Alexander * Bump deps
202 lines
10 KiB
Plaintext
202 lines
10 KiB
Plaintext
Apache License
|
|
Version 2.0, January 2004
|
|
http://www.apache.org/licenses/
|
|
|
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
|
|
1. Definitions.
|
|
|
|
"License" shall mean the terms and conditions for use, reproduction,
|
|
and distribution as defined by Sections 1 through 9 of this document.
|
|
|
|
"Licensor" shall mean the copyright owner or entity authorized by
|
|
the copyright owner that is granting the License.
|
|
|
|
"Legal Entity" shall mean the union of the acting entity and all
|
|
other entities that control, are controlled by, or are under common
|
|
control with that entity. For the purposes of this definition,
|
|
"control" means (i) the power, direct or indirect, to cause the
|
|
direction or management of such entity, whether by contract or
|
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
|
|
"You" (or "Your") shall mean an individual or Legal Entity
|
|
exercising permissions granted by this License.
|
|
|
|
"Source" form shall mean the preferred form for making modifications,
|
|
including but not limited to software source code, documentation
|
|
source, and configuration files.
|
|
|
|
"Object" form shall mean any form resulting from mechanical
|
|
transformation or translation of a Source form, including but
|
|
not limited to compiled object code, generated documentation,
|
|
and conversions to other media types.
|
|
|
|
"Work" shall mean the work of authorship, whether in Source or
|
|
Object form, made available under the License, as indicated by a
|
|
copyright notice that is included in or attached to the work
|
|
(an example is provided in the Appendix below).
|
|
|
|
"Derivative Works" shall mean any work, whether in Source or Object
|
|
form, that is based on (or derived from) the Work and for which the
|
|
editorial revisions, annotations, elaborations, or other modifications
|
|
represent, as a whole, an original work of authorship. For the purposes
|
|
of this License, Derivative Works shall not include works that remain
|
|
separable from, or merely link (or bind by name) to the interfaces of,
|
|
the Work and Derivative Works thereof.
|
|
|
|
"Contribution" shall mean any work of authorship, including
|
|
the original version of the Work and any modifications or additions
|
|
to that Work or Derivative Works thereof, that is intentionally
|
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
or by an individual or Legal Entity authorized to submit on behalf of
|
|
the copyright owner. For the purposes of this definition, "submitted"
|
|
means any form of electronic, verbal, or written communication sent
|
|
to the Licensor or its representatives, including but not limited to
|
|
communication on electronic mailing lists, source code control systems,
|
|
and issue tracking systems that are managed by, or on behalf of, the
|
|
Licensor for the purpose of discussing and improving the Work, but
|
|
excluding communication that is conspicuously marked or otherwise
|
|
designated in writing by the copyright owner as "Not a Contribution."
|
|
|
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
on behalf of whom a Contribution has been received by Licensor and
|
|
subsequently incorporated within the Work.
|
|
|
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
this License, each Contributor hereby grants to You a perpetual,
|
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
copyright license to reproduce, prepare Derivative Works of,
|
|
publicly display, publicly perform, sublicense, and distribute the
|
|
Work and such Derivative Works in Source or Object form.
|
|
|
|
3. Grant of Patent License. Subject to the terms and conditions of
|
|
this License, each Contributor hereby grants to You a perpetual,
|
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
(except as stated in this section) patent license to make, have made,
|
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
where such license applies only to those patent claims licensable
|
|
by such Contributor that are necessarily infringed by their
|
|
Contribution(s) alone or by combination of their Contribution(s)
|
|
with the Work to which such Contribution(s) was submitted. If You
|
|
institute patent litigation against any entity (including a
|
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
or a Contribution incorporated within the Work constitutes direct
|
|
or contributory patent infringement, then any patent licenses
|
|
granted to You under this License for that Work shall terminate
|
|
as of the date such litigation is filed.
|
|
|
|
4. Redistribution. You may reproduce and distribute copies of the
|
|
Work or Derivative Works thereof in any medium, with or without
|
|
modifications, and in Source or Object form, provided that You
|
|
meet the following conditions:
|
|
|
|
(a) You must give any other recipients of the Work or
|
|
Derivative Works a copy of this License; and
|
|
|
|
(b) You must cause any modified files to carry prominent notices
|
|
stating that You changed the files; and
|
|
|
|
(c) You must retain, in the Source form of any Derivative Works
|
|
that You distribute, all copyright, patent, trademark, and
|
|
attribution notices from the Source form of the Work,
|
|
excluding those notices that do not pertain to any part of
|
|
the Derivative Works; and
|
|
|
|
(d) If the Work includes a "NOTICE" text file as part of its
|
|
distribution, then any Derivative Works that You distribute must
|
|
include a readable copy of the attribution notices contained
|
|
within such NOTICE file, excluding those notices that do not
|
|
pertain to any part of the Derivative Works, in at least one
|
|
of the following places: within a NOTICE text file distributed
|
|
as part of the Derivative Works; within the Source form or
|
|
documentation, if provided along with the Derivative Works; or,
|
|
within a display generated by the Derivative Works, if and
|
|
wherever such third-party notices normally appear. The contents
|
|
of the NOTICE file are for informational purposes only and
|
|
do not modify the License. You may add Your own attribution
|
|
notices within Derivative Works that You distribute, alongside
|
|
or as an addendum to the NOTICE text from the Work, provided
|
|
that such additional attribution notices cannot be construed
|
|
as modifying the License.
|
|
|
|
You may add Your own copyright statement to Your modifications and
|
|
may provide additional or different license terms and conditions
|
|
for use, reproduction, or distribution of Your modifications, or
|
|
for any such Derivative Works as a whole, provided Your use,
|
|
reproduction, and distribution of the Work otherwise complies with
|
|
the conditions stated in this License.
|
|
|
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
any Contribution intentionally submitted for inclusion in the Work
|
|
by You to the Licensor shall be under the terms and conditions of
|
|
this License, without any additional terms or conditions.
|
|
Notwithstanding the above, nothing herein shall supersede or modify
|
|
the terms of any separate license agreement you may have executed
|
|
with Licensor regarding such Contributions.
|
|
|
|
6. Trademarks. This License does not grant permission to use the trade
|
|
names, trademarks, service marks, or product names of the Licensor,
|
|
except as required for reasonable and customary use in describing the
|
|
origin of the Work and reproducing the content of the NOTICE file.
|
|
|
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
agreed to in writing, Licensor provides the Work (and each
|
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
implied, including, without limitation, any warranties or conditions
|
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
appropriateness of using or redistributing the Work and assume any
|
|
risks associated with Your exercise of permissions under this License.
|
|
|
|
8. Limitation of Liability. In no event and under no legal theory,
|
|
whether in tort (including negligence), contract, or otherwise,
|
|
unless required by applicable law (such as deliberate and grossly
|
|
negligent acts) or agreed to in writing, shall any Contributor be
|
|
liable to You for damages, including any direct, indirect, special,
|
|
incidental, or consequential damages of any character arising as a
|
|
result of this License or out of the use or inability to use the
|
|
Work (including but not limited to damages for loss of goodwill,
|
|
work stoppage, computer failure or malfunction, or any and all
|
|
other commercial damages or losses), even if such Contributor
|
|
has been advised of the possibility of such damages.
|
|
|
|
9. Accepting Warranty or Additional Liability. While redistributing
|
|
the Work or Derivative Works thereof, You may choose to offer,
|
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
or other liability obligations and/or rights consistent with this
|
|
License. However, in accepting such obligations, You may act only
|
|
on Your own behalf and on Your sole responsibility, not on behalf
|
|
of any other Contributor, and only if You agree to indemnify,
|
|
defend, and hold each Contributor harmless for any liability
|
|
incurred by, or claims asserted against, such Contributor by reason
|
|
of your accepting any such warranty or additional liability.
|
|
|
|
END OF TERMS AND CONDITIONS
|
|
|
|
APPENDIX: How to apply the Apache License to your work.
|
|
|
|
To apply the Apache License to your work, attach the following
|
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
replaced with your own identifying information. (Don't include
|
|
the brackets!) The text should be enclosed in the appropriate
|
|
comment syntax for the file format. We also recommend that a
|
|
file or class name and description of purpose be included on the
|
|
same "printed page" as the copyright notice for easier
|
|
identification within third-party archives.
|
|
|
|
Copyright [yyyy] [name of copyright owner]
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|