Compare commits

...

71 Commits

Author SHA1 Message Date
github-actions[bot]
96b0470ee7 [CI Skip] release/stable 2.9.1
skip-checks: true
2022-07-21 07:17:27 +00:00
Jaco
0a5bea1d4a 2.9.1 (#669) 2022-07-21 10:14:49 +03:00
github-actions[bot]
573f92f00d [CI Skip] bump/beta 2.8.3-2-x
skip-checks: true
2022-07-12 13:40:18 +00:00
Jaco
d0bac4cfb1 Bump deps (#667) 2022-07-12 16:37:53 +03:00
github-actions[bot]
e00e1b8d6d [CI Skip] bump/beta 2.8.3-1-x
skip-checks: true
2022-07-12 04:58:50 +00:00
Jaco
9705f1de4a Bump deps (#666) 2022-07-12 07:56:03 +03:00
github-actions[bot]
bd849e317a [CI Skip] bump/beta 2.8.3-0-x
skip-checks: true
2022-07-11 05:15:58 +00:00
Jaco
69754474f2 Bump dev (#665) 2022-07-11 08:13:04 +03:00
github-actions[bot]
994fdeed5d [CI Skip] release/stable 2.8.2
skip-checks: true
2022-07-10 09:07:57 +00:00
Jaco
e1b7f8cdcd 2.8.2 (#664)
* 2.8.2

* Bump dev
2022-07-10 12:05:27 +03:00
github-actions[bot]
0b2e8e1bbe [CI Skip] release/stable 2.8.1
skip-checks: true
2022-07-09 07:28:32 +00:00
Jaco
951a745d0f 2.8.1 (#663)
* 2.8.1

* trigger
2022-07-09 10:26:03 +03:00
github-actions[bot]
c9afdacb89 [CI Skip] bump/beta 2.7.3-0-x
skip-checks: true
2022-07-06 11:05:03 +00:00
Jaco
f909cf9bbf Adjust issue template (#662)
* Adjust issue template

* isolated export
2022-07-06 14:02:23 +03:00
github-actions[bot]
a1ea61688e [CI Skip] release/stable 2.7.2
skip-checks: true
2022-07-04 06:43:00 +00:00
Jaco
a3b0e3607f 2.7.2 (#660) 2022-07-04 09:40:43 +03:00
github-actions[bot]
c802f71617 [CI Skip] release/stable 2.7.1
skip-checks: true
2022-07-01 17:51:56 +00:00
Jaco
525ace3f52 2.7.1 (#659) 2022-07-01 20:49:24 +03:00
Derek Colley
42f1b3a6c3 Remove redundant div wrappers in vue-identicon (#643)
* Remove redundant `div` wrappers in vue-identicon

* Delete console.debug statememt

* remove redundant declarations

* fix lint errors

* refactor for codeclimate
2022-07-01 18:06:15 +03:00
github-actions[bot]
5ce56670d1 [CI Skip] release/stable 2.6.2
skip-checks: true
2022-06-25 06:02:24 +00:00
Jaco
414392e69b 2.6.2 (#657)
* 2.6.2

* CHANGELOG
2022-06-25 08:59:36 +03:00
github-actions[bot]
ae5b64a75f [CI Skip] bump/beta 2.6.2-0-x
skip-checks: true
2022-06-23 14:27:01 +00:00
Jaco
f2077dcab2 Bump dev deps (#656) 2022-06-23 17:24:01 +03:00
github-actions[bot]
75d03bb15a [CI Skip] release/stable 2.6.1
skip-checks: true
2022-06-23 09:01:27 +00:00
Jaco
269ec7adb7 2.6.1 (#655) 2022-06-23 11:58:22 +03:00
github-actions[bot]
03e6974c25 [CI Skip] release/beta 2.5.2-0
skip-checks: true
2022-06-21 04:49:38 +00:00
Jaco
a31c524878 Bump TS to 4.7.4 (#654) 2022-06-21 07:47:19 +03:00
github-actions[bot]
a057f0c279 [CI Skip] release/stable 2.5.1
skip-checks: true
2022-06-19 05:37:35 +00:00
Jaco
06dcc3bc5b 2.5.1 (#653) 2022-06-19 08:35:18 +03:00
github-actions[bot]
fc3df455ef [CI Skip] release/beta 2.4.2-2
skip-checks: true
2022-06-12 08:14:09 +00:00
Jaco
121715231d Update issue template (#651) 2022-06-12 11:11:47 +03:00
github-actions[bot]
a35c1f98e8 [CI Skip] release/beta 2.4.2-1
skip-checks: true
2022-06-11 05:44:34 +00:00
Jaco
fbaf440766 Bump deps (& issue template) (#650) 2022-06-11 08:42:20 +03:00
github-actions[bot]
813c589752 [CI Skip] release/beta 2.4.2-0
skip-checks: true
2022-06-05 06:18:23 +00:00
Jaco
806ae4fe42 Bump deps (#649) 2022-06-05 09:16:01 +03:00
github-actions[bot]
75507c5fa7 [CI Skip] release/stable 2.4.1
skip-checks: true
2022-06-04 06:28:48 +00:00
Jaco
d1c265130e 2.4.1 (#648) 2022-06-04 09:26:22 +03:00
github-actions[bot]
0eb4663442 [CI Skip] release/beta 2.3.2-1
skip-checks: true
2022-06-04 04:49:49 +00:00
Jaco
9e134ff95e Bump deps (#647) 2022-06-04 07:47:13 +03:00
github-actions[bot]
c09d58bba1 [CI Skip] release/beta 2.3.2-0
skip-checks: true
2022-05-30 07:27:38 +00:00
Jaco
fdc2b5011b Bump TS (#645) 2022-05-30 10:24:01 +03:00
github-actions[bot]
420ad06a7e [CI Skip] release/stable 2.3.1
skip-checks: true
2022-05-30 06:16:17 +00:00
Jaco
28988479c5 2.3.1 (#644) 2022-05-30 09:13:48 +03:00
github-actions[bot]
700b04e2ec [CI Skip] release/stable 2.2.1
skip-checks: true
2022-05-14 05:13:26 +00:00
Jaco
b092fe8c6d 2.2.1 (#641) 2022-05-14 08:10:34 +03:00
github-actions[bot]
b25f6e46d8 [CI Skip] release/stable 2.1.1
skip-checks: true
2022-04-30 05:52:47 +00:00
Jaco
62e934dba7 2.1.1 (#638) 2022-04-30 08:49:49 +03:00
github-actions[bot]
cb073d755d [CI Skip] release/beta 2.0.2-2
skip-checks: true
2022-04-29 11:36:13 +00:00
Jaco
c9cd6898fe Bump TS (#637) 2022-04-29 14:33:40 +03:00
github-actions[bot]
106f2aac72 [CI Skip] release/beta 2.0.2-1
skip-checks: true
2022-04-27 07:41:11 +00:00
Jaco
16dbecf0d2 Bump @polkadot/dev (#636)
* Bump @polkadot/dev

* Rebump dev

* Add crypto polyfill

* Adjust expectations
2022-04-27 10:38:13 +03:00
github-actions[bot]
dc023fe2c6 [CI Skip] release/beta 2.0.2-0
skip-checks: true
2022-04-23 07:00:05 +00:00
Jaco
6c2d03a6c5 Remove jsx-runtime alias for React 18 (#635)
* Remove jsx-runtime alias for React 18

* Adjust override

* s/cb/fn/
2022-04-23 09:57:36 +03:00
github-actions[bot]
e4787f1b25 [CI Skip] release/stable 2.0.1
skip-checks: true
2022-04-09 08:00:12 +00:00
Jaco
779fedd4ae 2.0.1 (#633) 2022-04-09 10:57:41 +03:00
github-actions[bot]
08d71f0675 [CI Skip] release/beta 1.4.2-2
skip-checks: true
2022-04-06 13:03:58 +00:00
Jaco
e598c7bb42 Make icon generation more robust (#632)
* Make icon generation more robust

* Update packages/ui-shared/src/icons/polkadot.ts
2022-04-06 16:00:26 +03:00
github-actions[bot]
fb360420e5 [CI Skip] release/beta 1.4.2-1
skip-checks: true
2022-04-06 12:51:35 +00:00
Jaco
2184bb5adc Bump deps (#631) 2022-04-06 15:48:56 +03:00
github-actions[bot]
854e812ef3 [CI Skip] release/beta 1.4.2-0
skip-checks: true
2022-04-05 06:34:05 +00:00
Jaco
cc17aa3fc3 Bump @polkadot/dev (#630) 2022-04-05 09:31:31 +03:00
github-actions[bot]
d57a700d40 [CI Skip] release/stable 1.4.1
skip-checks: true
2022-03-27 08:52:24 +00:00
Jaco
37c398b1a7 1.4.1 (#629) 2022-03-27 11:49:56 +03:00
github-actions[bot]
2f27f2bac9 [CI Skip] release/beta 1.3.2-1
skip-checks: true
2022-03-27 06:27:47 +00:00
Jaco
090218d0b9 Bump TypeScript (#628) 2022-03-27 09:24:50 +03:00
github-actions[bot]
4799a69823 [CI Skip] release/beta 1.3.2-0
skip-checks: true
2022-03-23 05:55:21 +00:00
Jaco
6548982bb5 Bump dev (#627) 2022-03-23 07:52:25 +02:00
github-actions[bot]
d1fe833d0f [CI Skip] release/stable 1.3.1
skip-checks: true
2022-03-19 09:38:09 +00:00
Jaco
60c6168307 1.3.1 (#626) 2022-03-19 11:35:11 +02:00
github-actions[bot]
d0b418f4c8 [CI Skip] release/beta 1.2.2-0
skip-checks: true
2022-03-17 05:38:29 +00:00
Jaco
bce751eea1 Bump dev deps (#625) 2022-03-17 07:36:01 +02:00
48 changed files with 3286 additions and 3067 deletions

View File

@@ -1,27 +0,0 @@
2
0.57.20.57.3
0.66.2
0.66.3
0.71.2
0.71.3
0.84.2
0.84.3
0.85.2
0.85.3
0.85.4
0.85.5
0.86.2
0.86.3
0.86.4
0.86.5
0.86.6
0.86.7
0.87.2
0.87.3
0.87.4
0.87.5
0.87.6
0.87.7
0.89.2
0.89.3

View File

@@ -7,6 +7,7 @@ module.exports = {
...base,
ignorePatterns: [
...base.ignorePatterns,
'jest/**/*',
'**/*.d.ts'
],
parserOptions: {

86
.github/issue_template.md vendored Normal file
View File

@@ -0,0 +1,86 @@
<!--
For general support, howto, coding and bundling questions, please
use the Substrate & Polkadot StackExchange at
https://substrate.stackexchange.com/
and get other ecosystem developers involved. This issues in this
repository are meant for the tracking of feature requests and bug
reports.
While all issues are looked at non-bug and non-features would take
quite a bit longer to get to and may yield less than satisfactory
responses in this format.
Additionally, please ensure you have done a search on the existing
and closed issues before logging a new request. This saves time on
all sides.
-->
* **I'm submitting a ...**
<!---
REQUIRED:
Classify the type of report your are submitting
-->
- [ ] Bug report
- [ ] Feature request
- [ ] Support request
- [ ] Other
* **What is the current behavior and expected behavior?**
<!---
REQUIRED:
If you're describing a bug, tell us what should happen. If you're
suggesting a change/improvement, tell us how it should work.
-->
* **What is the motivation for changing the behavior?**
<!---
OPTIONAL:
Suggest a motivation for the request or ideas how to implement the
addition or change
-->
* **Please tell us about your environment:**
<!---
REQUIRED:
Include as many relevant details about the environment in which you
experienced the issue. Also ensure that you have tested against the
latest stable releases if you believe this to be a bug
-->
- Version:
- Environment:
- [ ] Node.js
- [ ] Browser
- [ ] Other (limited support for other environments)
- Language:
- [ ] JavaScript
- [ ] TypeScript (include tsc --version)
- [ ] Other

2
.gitignore vendored
View File

@@ -1,5 +1,5 @@
build/
build-docs/
build-*/
coverage/
node_modules/
tmp/

View File

@@ -1,5 +1,122 @@
# CHANGELOG
## 2.9.1 Jul 21, 2022
Changes:
- Bump to `@polkadot/util` 10.1.1
## 2.8.2 Jul 10, 2022
Changes:
- Bump to `@polkadot/util` 10.0.2
## 2.8.1 Jul 9, 2022
Changes:
- Bump to `@polkadot/util` 10.0.1
## 2.7.2 Jul 4, 2022
Changes:
- Bump to `@polkadot/util-crypto` 9.7.2 (w/ `@polkadot/wasm-crypto` 6.2.2)
## 2.7.1 Jul 1, 2022
Contributed:
- Remove extra div wrappers in `vue-identicon` (Thanks to https://github.com/dcolley)
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.7.1
## 2.6.2 Jun 25, 2022
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.6.2
## 2.6.1 Jun 23, 2022
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.6.1
- Upgrade libs to latest stable versions
## 2.5.1 Jun 19, 2022
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.5.1
- Upgrade libs to latest stable versions
## 2.4.1 Jun 4, 2022
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.4.1
## 2.3.1 May 30, 2022
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.3.1
## 2.2.1 May 14, 2022
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.2.1
## 2.1.1 Apr 30, 2022
Changes:
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.1.1
- Adjust Jest test init for latest `@polkadot/dev`
## 2.0.1 Apr 9, 2022
- **Breaking change** In this major version the commonjs outputs are moved to a sub-folder. Since the export map and main field in package.json does reflect this change, there should be no usage changes. However the packages here will all need to be on the same version for internal linkage.
Changes:
- Adjust Polkadot icon generation with lazy init
- Output commonjs files under the `cjs/**` root
- Upgrade to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 9.0.1
## 1.4.1 Mar 27, 2022
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 8.7.1
## 1.3.1 Mar 19, 2022
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 8.6.1
- Additional workaround for Vite bundling
## 1.2.1 Mar 12, 2022
Changes:

View File

@@ -1,4 +1,4 @@
597 Jaco 1.2.1 (#624)
632 Jaco 2.9.1 (#669)
7 YJ fix #224: decrease frame size to 1024, set multipart bool (#225)
4 Antoine Estienne Refactor logic to better use prefix (#491)
4 kwingram25 fix ff api url issue (#289)
@@ -18,6 +18,7 @@
1 Axel Chalon Simplify KeyringAddress interface (#144)
1 Cameron Franz react-native example app port (#223)
1 carumusan Add kulupu (#342)
1 Derek Colley Remove redundant `div` wrappers in vue-identicon (#643)
1 Harry Liu Update README.md (#166)
1 Jake Naviasky Add Edgeware chain prefix to settings. (#317)
1 Logan Saether Propose W3F node (#188)

View File

@@ -12,5 +12,6 @@ module.exports = {
'\\.(css|less)$': 'empty/object',
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': 'empty/object'
},
setupFilesAfterEnv: ['<rootDir>/jest/setupEnv.js'],
testEnvironment: 'jsdom'
};

10
jest/setupEnv.js Normal file
View File

@@ -0,0 +1,10 @@
// Copyright 2017-2022 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
const nodeCrypto = require('crypto');
window.crypto = {
getRandomValues: function (buffer) {
return nodeCrypto.randomFillSync(buffer);
}
};

View File

@@ -10,7 +10,12 @@
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": false,
"version": "1.2.1",
"type": "module",
"version": "2.9.1",
"versions": {
"git": "2.9.1",
"npm": "2.9.1"
},
"workspaces": [
"packages/*"
],
@@ -27,26 +32,26 @@
"test:one": "polkadot-dev-run-test"
},
"devDependencies": {
"@babel/core": "^7.17.5",
"@babel/runtime": "^7.17.2",
"@polkadot/dev": "^0.65.87",
"@polkadot/x-bundle": "^8.5.1",
"@types/jest": "^27.4.1",
"babel-loader": "^8.2.3",
"@babel/core": "^7.18.9",
"@babel/runtime": "^7.18.9",
"@polkadot/dev": "^0.67.84",
"@polkadot/x-bundle": "^10.1.1",
"@types/jest": "^28.1.6",
"babel-loader": "^8.2.5",
"babel-plugin-transform-vue-template": "^0.4.2",
"empty": "^0.10.1",
"process": "^0.11.10",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-is": "^17.0.2",
"react-native": "^0.67.3",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-is": "^18.2.0",
"react-native": "^0.69.2",
"stream-browserify": "^3.0.0",
"vue-template-compiler": "^2.6.14",
"webpack": "^5.70.0",
"webpack-cli": "^4.9.2",
"vue-template-compiler": "^2.7.7",
"webpack": "^5.73.0",
"webpack-cli": "^4.10.0",
"webpack-serve": "^4.0.0"
},
"resolutions": {
"typescript": "^4.6.2"
"typescript": "^4.7.4"
}
}

View File

@@ -14,9 +14,9 @@
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": false,
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2"
"@babel/runtime": "^7.18.9"
}
}

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/example-react', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/example-react', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -43,8 +43,7 @@ module.exports = {
'@polkadot/react-identicon': path.resolve(__dirname, '../react-identicon/build'),
'@polkadot/ui-keyring': path.resolve(__dirname, '../ui-keyring/build'),
'@polkadot/ui-settings': path.resolve(__dirname, '../ui-settings/build'),
'@polkadot/ui-shared': path.resolve(__dirname, '../ui-shared/build'),
'react/jsx-runtime': require.resolve('react/jsx-runtime')
'@polkadot/ui-shared': path.resolve(__dirname, '../ui-shared/build')
},
extensions: ['.js', '.ts', '.tsx'],
fallback: {}

View File

@@ -14,9 +14,9 @@
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": false,
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2"
"@babel/runtime": "^7.18.9"
}
}

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/example-vue', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/example-vue', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -17,26 +17,26 @@
"./detectPackage.cjs"
],
"type": "module",
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@polkadot/keyring": "^8.5.1",
"@polkadot/ui-settings": "1.2.1",
"@polkadot/ui-shared": "1.2.1",
"@polkadot/util": "^8.5.1",
"@polkadot/util-crypto": "^8.5.1",
"@babel/runtime": "^7.18.9",
"@polkadot/keyring": "^10.1.1",
"@polkadot/ui-settings": "2.9.1",
"@polkadot/ui-shared": "2.9.1",
"@polkadot/util": "^10.1.1",
"@polkadot/util-crypto": "^10.1.1",
"color": "^3.2.1",
"ethereum-blockies-base64": "^1.0.2",
"jdenticon": "3.1.1",
"react-copy-to-clipboard": "^5.0.4",
"styled-components": "^5.3.3"
"react-copy-to-clipboard": "^5.1.0",
"styled-components": "^5.3.5"
},
"devDependencies": {
"@types/react-copy-to-clipboard": "^5.0.2",
"@types/react-dom": "^17.0.13",
"@types/styled-components": "^5.1.24",
"styled-components": "^5.3.3",
"@types/react-dom": "^18.0.6",
"@types/styled-components": "^5.1.25",
"styled-components": "^5.3.5",
"xmlserializer": "^0.6.1"
},
"peerDependencies": {

View File

@@ -4,15 +4,18 @@
import type { Props } from '../types';
import * as jdenticon from 'jdenticon';
import React from 'react';
import React, { useMemo } from 'react';
function Identicon ({ className = '', publicKey, size, style }: Props): React.ReactElement<Props> {
const html = useMemo(
() => ({ __html: jdenticon.toSvg(publicKey.substr(2), size) }),
[publicKey, size]
);
return (
<div
className={className}
dangerouslySetInnerHTML={{
__html: jdenticon.toSvg(publicKey.substr(2), size)
}}
dangerouslySetInnerHTML={html}
style={style}
/>
);

View File

@@ -19,7 +19,7 @@
import type { Circle } from '@polkadot/ui-shared/icons/types';
import type { Props } from '../types';
import React from 'react';
import React, { useMemo } from 'react';
import { polkadotIcon } from '@polkadot/ui-shared';
@@ -36,6 +36,11 @@ function renderCircle ({ cx, cy, fill, r }: Circle, key: number): React.ReactNod
}
function Identicon ({ address, className = '', isAlternative = false, size, style }: Props): React.ReactElement<Props> {
const circles = useMemo(
() => polkadotIcon(address, { isAlternative }),
[address, isAlternative]
);
return (
<svg
className={className}
@@ -46,7 +51,7 @@ function Identicon ({ address, className = '', isAlternative = false, size, styl
viewBox='0 0 64 64'
width={size}
>
{polkadotIcon(address, { isAlternative }).map(renderCircle)}
{circles.map(renderCircle)}
</svg>
);
}

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/react-identicon', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/react-identicon', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -17,20 +17,20 @@
"./detectPackage.cjs"
],
"type": "module",
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@polkadot/ui-settings": "1.2.1",
"@polkadot/util": "^8.5.1",
"@polkadot/util-crypto": "^8.5.1",
"@babel/runtime": "^7.18.9",
"@polkadot/ui-settings": "2.9.1",
"@polkadot/util": "^10.1.1",
"@polkadot/util-crypto": "^10.1.1",
"qrcode-generator": "^1.4.4",
"react-qr-reader": "^2.2.1",
"styled-components": "^5.3.3"
"styled-components": "^5.3.5"
},
"devDependencies": {
"@types/react-qr-reader": "^2.1.4",
"@types/styled-components": "^5.1.24"
"@types/styled-components": "^5.1.25"
},
"peerDependencies": {
"@polkadot/util": "*",

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/react-qr', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/react-qr', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -17,17 +17,17 @@
"./detectPackage.cjs"
],
"type": "module",
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@polkadot/ui-shared": "1.2.1",
"@polkadot/util": "^8.5.1",
"@polkadot/util-crypto": "^8.5.1",
"react-native-svg": "^12.3.0"
"@babel/runtime": "^7.18.9",
"@polkadot/ui-shared": "2.9.1",
"@polkadot/util": "^10.1.1",
"@polkadot/util-crypto": "^10.1.1",
"react-native-svg": "^12.4.0"
},
"devDependencies": {
"@types/react-native": "^0.67.2"
"@types/react-native": "^0.69.3"
},
"peerDependencies": {
"@polkadot/util": "*",

View File

@@ -4,7 +4,7 @@
import type { Circle as CircleType } from '@polkadot/ui-shared/icons/types';
import type { Props } from '../types';
import React from 'react';
import React, { useMemo } from 'react';
import { View } from 'react-native';
import Svg, { Circle as SvgCircle } from 'react-native-svg';
@@ -23,6 +23,11 @@ function renderCircle ({ cx, cy, fill, r }: CircleType, key: number): React.Reac
}
export default function Identicon ({ address, isAlternative = false, size }: Props): React.ReactElement<Props> {
const circles = useMemo(
() => polkadotIcon(address, { isAlternative }),
[address, isAlternative]
);
return (
<View>
<Svg
@@ -31,7 +36,7 @@ export default function Identicon ({ address, isAlternative = false, size }: Pro
viewBox='0 0 64 64'
width={size}
>
{polkadotIcon(address, { isAlternative }).map(renderCircle)}
{circles.map(renderCircle)}
</Svg>
</View>
);

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/reactnative-identicon', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/reactnative-identicon', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -13,10 +13,10 @@
"url": "https://github.com/polkadot-js/ui.git"
},
"sideEffects": false,
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@polkadot/util": "^8.5.1"
"@babel/runtime": "^7.18.9",
"@polkadot/util": "^10.1.1"
}
}

View File

@@ -1,4 +1,4 @@
// Copyright 2017-2022 @polkadot/ui-assets authors & contributors
// SPDX-License-Identifier: Apache-2.0
// empty
export {};

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/ui-assets', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/ui-assets', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -16,16 +16,16 @@
"./detectPackage.cjs"
],
"type": "module",
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@polkadot/keyring": "^8.5.1",
"@polkadot/ui-settings": "1.2.1",
"@polkadot/util": "^8.5.1",
"@polkadot/util-crypto": "^8.5.1",
"@babel/runtime": "^7.18.9",
"@polkadot/keyring": "^10.1.1",
"@polkadot/ui-settings": "2.9.1",
"@polkadot/util": "^10.1.1",
"@polkadot/util-crypto": "^10.1.1",
"mkdirp": "^1.0.4",
"rxjs": "^7.5.5",
"rxjs": "^7.5.6",
"store": "^2.0.12"
},
"devDependencies": {

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/ui-keyring', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/ui-keyring', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -6,24 +6,23 @@ import type { KeyringJson, KeyringStore } from '../types';
import store from 'store';
export class BrowserStore implements KeyringStore {
public all (cb: (key: string, value: KeyringJson) => void): void {
public all (fn: (key: string, value: KeyringJson) => void): void {
store.each((value: KeyringJson, key: string): void => {
cb(key, value);
fn(key, value);
});
}
public get (key: string, cb: (value: KeyringJson) => void): void {
// eslint-disable-next-line node/no-callback-literal
cb(store.get(key) as KeyringJson);
public get (key: string, fn: (value: KeyringJson) => void): void {
fn(store.get(key) as KeyringJson);
}
public remove (key: string, cb?: () => void): void {
public remove (key: string, fn?: () => void): void {
store.remove(key);
cb && cb();
fn && fn();
}
public set (key: string, value: KeyringJson, cb?: () => void): void {
public set (key: string, value: KeyringJson, fn?: () => void): void {
store.set(key, value);
cb && cb();
fn && fn();
}
}

View File

@@ -21,33 +21,33 @@ export class FileStore implements KeyringStore {
this.#path = path;
}
public all (cb: (key: string, value: KeyringJson) => void): void {
public all (fn: (key: string, value: KeyringJson) => void): void {
fs
.readdirSync(this.#path)
.filter((key): boolean => !['.', '..', '.DS_Store'].includes(key))
.forEach((key): void => {
const value = this._readKey(key);
value?.address && cb(key, value);
value?.address && fn(key, value);
});
}
public get (key: string, cb: (value: KeyringJson) => void): void {
public get (key: string, fn: (value: KeyringJson) => void): void {
const value = this._readKey(key);
assert(value?.address, `Invalid JSON found for ${key}`);
cb(value);
fn(value);
}
public remove (key: string, cb?: () => void): void {
public remove (key: string, fn?: () => void): void {
fs.unlinkSync(this._getPath(key));
cb && cb();
fn && fn();
}
public set (key: string, value: KeyringJson, cb?: () => void): void {
public set (key: string, value: KeyringJson, fn?: () => void): void {
fs.writeFileSync(this._getPath(key), Buffer.from(JSON.stringify(value), 'utf-8'));
cb && cb();
fn && fn();
}
private _getPath (key: string): string {

View File

@@ -17,12 +17,12 @@
"./detectPackage.cjs"
],
"type": "module",
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@polkadot/networks": "^8.5.1",
"@polkadot/util": "^8.5.1",
"@babel/runtime": "^7.18.9",
"@polkadot/networks": "^10.1.1",
"@polkadot/util": "^10.1.1",
"eventemitter3": "^4.0.7",
"store": "^2.0.12"
},

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/ui-settings', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/ui-settings', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -17,17 +17,17 @@
"./detectPackage.cjs"
],
"type": "module",
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@babel/runtime": "^7.18.9",
"color": "^3.2.1"
},
"devDependencies": {
"@polkadot/util": "^8.5.1",
"@polkadot/util-crypto": "^8.5.1",
"@polkadot/util": "^10.1.1",
"@polkadot/util-crypto": "^10.1.1",
"@types/color": "^3.0.3",
"@types/xmlserializer": "^0.6.2",
"@types/xmlserializer": "^0.6.3",
"xmlserializer": "^0.6.1"
},
"peerDependencies": {

View File

@@ -9,7 +9,8 @@ describe('identicon', (): void => {
it('generates a basic [0,..,0] identicon', (): void => {
expect(
xmlserializer.serializeToString(
beachballIcon(new Uint8Array(32), { isAlternative: false, size: 256 })
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any
beachballIcon(new Uint8Array(32), { isAlternative: false, size: 256 }) as any
)
).toEqual(
'<div xmlns="http://www.w3.org/1999/xhtml" class="" style="background: white; border-radius: 128px; display: inline-block; height: 256px; margin: 0px; overflow: hidden; padding: 0px; width: 256px;"><div class="" style="background: rgb(20, 20, 20); border-radius: 128px; display: inline-block; height: 256px; margin: 0px; overflow: hidden; padding: 0px; width: 256px;"><svg xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="256" height="256"><circle cx="128" cy="140.8" r="128" fill="hsl(212.10000000000002, 65.6%, 55.5%)"/><circle cx="128" cy="153.6" r="102.4" fill="hsl(9.800000000000011, 90.7%, 57.6%)"/><circle cx="128" cy="166.4" r="76.8" fill="hsl(345, 85.7%, 86.3%)"/><circle cx="128" cy="179.2" r="51.2" fill="hsl(261.9, 100%, 87.3%)"/><circle cx="128" cy="192" r="25.6" fill="hsl(345, 100%, 25.1%)"/></svg></div></div>'
@@ -19,7 +20,8 @@ describe('identicon', (): void => {
it('allows overrides', (): void => {
expect(
xmlserializer.serializeToString(
beachballIcon(new Uint8Array(32), { isAlternative: false, size: 100 }, 'testClass', { display: 'block' })
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any
beachballIcon(new Uint8Array(32), { isAlternative: false, size: 100 }, 'testClass', { display: 'block' }) as any
)
).toEqual(
'<div xmlns="http://www.w3.org/1999/xhtml" class="testClass" style="background: white; border-radius: 50px; display: block; height: 100px; margin: 0px; overflow: hidden; padding: 0px; width: 100px;"><div class="" style="background: rgb(20, 20, 20); border-radius: 50px; display: inline-block; height: 100px; margin: 0px; overflow: hidden; padding: 0px; width: 100px;"><svg xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="100" height="100"><circle cx="50" cy="55" r="50" fill="hsl(212.10000000000002, 65.6%, 55.5%)"/><circle cx="50" cy="60" r="40" fill="hsl(9.800000000000011, 90.7%, 57.6%)"/><circle cx="50" cy="65" r="30" fill="hsl(345, 85.7%, 86.3%)"/><circle cx="50" cy="70" r="20" fill="hsl(261.9, 100%, 87.3%)"/><circle cx="50" cy="75" r="10" fill="hsl(345, 100%, 25.1%)"/></svg></div></div>'

View File

@@ -10,7 +10,8 @@ describe('circle', (): void => {
it('creates a circle shape', (): void => {
expect(
xmlserializer.serializeToString(
circle(seeder(), 'blue', 50, 2)
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any
circle(seeder(), 'blue', 50, 2) as any
)
).toEqual('<circle xmlns="http://www.w3.org/2000/svg" cx="25" cy="32.5" r="15" fill="blue"/>');
});

View File

@@ -9,7 +9,8 @@ describe('circle', (): void => {
it('creates a basic SVG circle element', (): void => {
expect(
serializeToString(
circle(123, 12, 34)
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any
circle(123, 12, 34) as any
)
).toEqual('<circle xmlns="http://www.w3.org/2000/svg" cx="12" cy="34" r="123"/>');
});

View File

@@ -9,7 +9,8 @@ describe('element', (): void => {
it('creates a basic SVG element', (): void => {
expect(
serializeToString(
element(123)
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any
element(123) as any
)
).toEqual('<svg xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="123" height="123"/>');
});

View File

@@ -9,7 +9,8 @@ describe('rect', (): void => {
it('creates a basic SVG rect element', (): void => {
expect(
serializeToString(
rect(123)
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any
rect(123) as any
)
).toEqual('<rect xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="123" height="123" rx="7.6875" ry="7.6875"/>');
});

View File

@@ -9,7 +9,8 @@ describe('svg', (): void => {
it('creates a basic SVG element', (): void => {
expect(
serializeToString(
svg('rect')
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any
svg('rect') as any
)
).toEqual('<rect xmlns="http://www.w3.org/2000/svg"/>');
});

View File

@@ -22,7 +22,6 @@ const blake2 = (value: Uint8Array): Uint8Array =>
const S = 64;
const C = S / 2;
const Z = S / 64 * 5;
const ZERO = blake2(new Uint8Array(32));
/* eslint-disable sort-keys */
const SCHEMA: { [index: string]: Scheme } = {
@@ -43,6 +42,8 @@ const OUTER_CIRCLE: Circle = {
r: C
};
let zeroHash: Uint8Array = new Uint8Array();
function getRotation (isSixPoint: boolean): { r: number; ro2: number; r3o4: number; ro4: number; rroot3o2: number; rroot3o4: number } {
const r = isSixPoint
? (C / 8 * 5)
@@ -98,7 +99,11 @@ function findScheme (d: number): Scheme {
}
function addressToId (address: string): Uint8Array {
return blake2(decodeAddress(address)).map((x, i): number => (x + 256 - ZERO[i]) % 256);
if (!zeroHash.length) {
zeroHash = blake2(new Uint8Array(32));
}
return blake2(decodeAddress(address)).map((x, i) => (x + 256 - zeroHash[i]) % 256);
}
function getColors (address: string): string[] {
@@ -132,10 +137,19 @@ function getColors (address: string): string[] {
* @description Generate a array of the circles that make up an identicon
*/
export function polkadotIcon (address: string, { isAlternative }: Options): Circle[] {
const colors = getColors(address);
const xy = getCircleXY(isAlternative);
let colors: string[];
try {
// in some cases, e.g. RN where crypto may not be initialized, chaos can
// happen when hashing, in these cases we just fill with a placeholder
colors = getColors(address);
} catch {
colors = new Array<string>(xy.length).fill('#ddd');
}
return [OUTER_CIRCLE].concat(
getCircleXY(isAlternative).map(([cx, cy], index): Circle => ({
xy.map(([cx, cy], index): Circle => ({
cx, cy, fill: colors[index], r: Z
}))
);

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/ui-shared', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/ui-shared', path: 'auto', type: 'auto', version: '2.9.1' };

View File

@@ -17,17 +17,17 @@
"./detectPackage.cjs"
],
"type": "module",
"version": "1.2.1",
"version": "2.9.1",
"main": "index.js",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@polkadot/ui-shared": "1.2.1",
"@polkadot/util": "^8.5.1",
"@polkadot/util-crypto": "^8.5.1",
"@babel/runtime": "^7.18.9",
"@polkadot/ui-shared": "2.9.1",
"@polkadot/util": "^10.1.1",
"@polkadot/util-crypto": "^10.1.1",
"jdenticon": "3.1.1"
},
"devDependencies": {
"vue": "^2.6.14"
"vue": "^2.7.7"
},
"peerDependencies": {
"@polkadot/util": "*",

View File

@@ -3,7 +3,7 @@
import type { Prefix } from '@polkadot/util-crypto/address/types';
import Vue from 'vue';
import Vue, { VNode } from 'vue';
import { isHex, isU8a, u8aToHex } from '@polkadot/util';
import { decodeAddress, encodeAddress } from '@polkadot/util-crypto';
@@ -18,6 +18,7 @@ interface Account {
interface Data {
address: string;
iconSize: number;
isAlternative: boolean;
publicKey: string;
type: 'beachball' | 'empty' | 'jdenticon' | 'polkadot' | 'substrate';
}
@@ -59,6 +60,7 @@ export const Identicon = Vue.extend({
return {
address: '',
iconSize: DEFAULT_SIZE,
isAlternative: false,
publicKey: '0x',
type: 'empty'
};
@@ -78,22 +80,21 @@ export const Identicon = Vue.extend({
}
},
props: ['prefix', 'isAlternative', 'size', 'theme', 'value'],
// FIXME These nested divs are not correct, would like a different way
// here so we don't create a div wrapped for the div wrapper of the icon
template: `
<div v-if="type === 'empty' || address === ''">
<Empty :key="address" :size="iconSize" />
</div>
<div v-else-if="type === 'beachball'">
<Beachball :key="address" :address="address" :size="iconSize" />
</div>
<div v-else-if="type === 'polkadot'">
<Polkadot :key="address" :address="address" :isAlternative="isAlternative" :size="iconSize" />
</div>
<div v-else>
<Jdenticon :key="address" :publicKey="publicKey" :size="iconSize" />
</div>
`,
render (h): VNode {
const { address, iconSize, isAlternative, publicKey, type } = this.$data as Data;
if (type === 'empty') {
return h('Empty', { attrs: { key: address, size: iconSize } }, []);
} else if (type === 'jdenticon') {
return h('Jdenticon', { attrs: { key: address, publicKey, size: iconSize } }, []);
} else {
// handles: beachball and polkadot
// TODO: substrate
const cmp = type.charAt(0).toUpperCase() + type.slice(1);
return h(cmp, { attrs: { address, isAlternative, key: address, size: iconSize } }, []);
}
},
watch: {
value: function (): void {
this.recodeAddress();

View File

@@ -1,14 +1,14 @@
// Copyright 2017-2022 @polkadot/vue-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Options } from '@polkadot/ui-shared/icons/types';
import Vue from 'vue';
import Vue, { VNode } from 'vue';
import { beachballIcon } from '@polkadot/ui-shared';
interface Data {
html: string;
type propsType = {
address: string;
size: number;
isAlternative: boolean;
}
/**
@@ -16,21 +16,12 @@ interface Data {
* @description The Beachball identicon
*/
export const Beachball = Vue.extend({
created: function (): void {
this.createHtml();
},
data: function (): Data {
return {
// eslint-disable-next-line quotes
html: `<div />`
};
},
methods: {
createHtml: function (): void {
this.html = beachballIcon(this.address as string, this.size as Options).outerHTML;
}
},
props: ['address', 'size'],
props: ['address', 'size', 'isAlternative'],
// eslint-disable-next-line quotes
template: `<div v-html="html" />`
render (h): VNode {
const { address, isAlternative, size } = this.$props as propsType;
const bb = beachballIcon(address, { isAlternative, size });
return h(Vue.component('VCBeachball', { template: bb.outerHTML }));
}
});

View File

@@ -2,10 +2,11 @@
// SPDX-License-Identifier: Apache-2.0
import * as jdenticon from 'jdenticon';
import Vue from 'vue';
import Vue, { VNode } from 'vue';
interface Data {
svgHtml: string;
type propsType = {
publicKey: string,
size: number
}
/**
@@ -13,21 +14,12 @@ interface Data {
* @description The substrate default via Jdenticon
*/
export const Jdenticon = Vue.extend({
created: function (): void {
this.createSvgHtml();
},
data: function (): Data {
return {
// eslint-disable-next-line quotes
svgHtml: `<svg viewBox="0 0 64 64" />`
};
},
methods: {
createSvgHtml: function (): void {
this.svgHtml = jdenticon.toSvg((this.publicKey as string).substr(2), this.size as number);
}
},
props: ['publicKey', 'size'],
// eslint-disable-next-line quotes
template: `<div v-html="svgHtml" />`
render (h): VNode {
const { publicKey, size } = this.$props as propsType;
const cmp = Vue.component('CJdenticon', { template: jdenticon.toSvg(publicKey.substring(2), size) });
return h(cmp);
}
});

View File

@@ -1,17 +1,14 @@
// Copyright 2017-2022 @polkadot/vue-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import Vue from 'vue';
import Vue, { VNode } from 'vue';
import { polkadotIcon } from '@polkadot/ui-shared';
interface Data {
svgHtml: string;
}
interface This {
type propsType = {
address: string;
isAlternative?: boolean;
isAlternative: boolean;
size: number;
}
/**
@@ -19,25 +16,20 @@ interface This {
* @description The Polkadot default identicon
*/
export const Polkadot = Vue.extend({
created: function (): void {
this.createSvgHtml();
},
data: function (): Data {
return {
// eslint-disable-next-line quotes
svgHtml: `<svg viewBox="0 0 64 64" />`
};
},
methods: {
createSvgHtml: function (): void {
const circles = polkadotIcon(this.address as string, { isAlternative: (this as This).isAlternative || false }).map(({ cx, cy, fill, r }) =>
`<circle cx=${cx} cy=${cy} fill="${fill}" r=${r} />`
).join('');
this.svgHtml = `<svg height=${this.size as number} viewBox='0 0 64 64' width=${this.size as number}>${circles}</svg>`;
}
},
props: ['address', 'isAlternative', 'size'],
// eslint-disable-next-line quotes
template: `<div v-html="svgHtml" />`
render (h): VNode {
const { address, isAlternative, size } = this.$props as propsType;
const circles = polkadotIcon(address, {
isAlternative: isAlternative || false
}).map(({ cx,
cy,
fill,
r }) => {
return h('circle', { attrs: { cx, cy, fill, r } }, []);
}
);
return h('svg', { attrs: { height: size, viewBox: '0 0 64 64', width: size } }, circles);
}
});

View File

@@ -3,4 +3,4 @@
// Do not edit, auto-generated by @polkadot/dev
export const packageInfo = { name: '@polkadot/vue-identicon', path: 'auto', type: 'auto', version: '1.2.1' };
export const packageInfo = { name: '@polkadot/vue-identicon', path: 'auto', type: 'auto', version: '2.9.1' };

5691
yarn.lock

File diff suppressed because it is too large Load Diff