@phala/pay 0.11.2 → 0.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -334,6 +334,7 @@ the theme (or map the colors) that suits its background.
334
334
  | `--pp-color-success` | `#15803d` | `#4ade80` | Credited icon |
335
335
  | `--pp-color-warning` | `#b45309` | `#fbbf24` | "Test mode" |
336
336
  | `--pp-color-danger` | `#dc2626` | `#f87171` | Failure icon, wallet errors |
337
+ | `--pp-color-icon-ring` | text color at 12% | same | Faint ring over a token or network logo's edge |
337
338
  | `--pp-font-family` | inherited | inherited | Font |
338
339
  | `--pp-font-family-mono` | `ui-monospace, …` | same | Addresses, amounts to copy, hashes |
339
340
  | `--pp-font-size` | `14px` | `14px` | Root text size; other text sizes are relative to it |
@@ -356,7 +357,10 @@ follow your page's text size. Keep `--pp-color-focus` distinct from `--pp-color-
356
357
  least 3:1 contrast to the background: it is how a keyboard user tells the focused choice from the
357
358
  selected one. Keep `--pp-color-input` at 3:1 or more against the background too, as WCAG 1.4.11
358
359
  asks of the edge that shows where a control is; `--pp-color-border` draws only dividers and may be
359
- fainter.
360
+ fainter. `--pp-color-icon-ring` is a 1px outline drawn inside each logo's edge, so that a logo
361
+ whose disc is the color of its background (PHA's black on a dark card, Ethereum's white on a light
362
+ one) stays round; it defaults to the surrounding text color at 12% opacity, so it follows the theme
363
+ and also applies to `AssetIcon` and `NetworkIcon` outside the components.
360
364
 
361
365
  ```css
362
366
  .pp-root[data-theme] {
@@ -386,8 +390,8 @@ group by group with what their wallet shows; selecting and copying it gives the
386
390
  spaces. The QR code keeps the standard quiet zone of four modules inside 8px of white, so it scans
387
391
  on a dark page too. The status row's text stays the body color on a neutral surface; its icon
388
392
  carries the tone. Transitions and the loading placeholder's pulse stop under
389
- `prefers-reduced-motion: reduce`, and the selected tab and a listbox's active option keep a system
390
- color in forced-colors mode.
393
+ `prefers-reduced-motion: reduce`, and the selected tab, a listbox's active option, and a logo's ring keep
394
+ a system color in forced-colors mode.
391
395
 
392
396
  ### Content Security Policy
393
397
 
@@ -395,8 +399,9 @@ The components inject no style elements or style attributes in their markup. Ser
395
399
  CSS from your own origin with `style-src 'self'`; no `unsafe-inline` style permission is needed.
396
400
  An open token or network listbox is placed beside its field through the CSSOM
397
401
  (`element.style.setProperty`), which that policy allows. Allow the
398
- payment service origin in `connect-src` for public status reads and `img-src data:` for browser
399
- wallet icons. Configure script and font sources for your application's own bundles.
402
+ payment service origin in `connect-src` for public status reads and `img-src data:` for the
403
+ token and network logos and browser wallet icons, which are `data:` images. Configure script and
404
+ font sources for your application's own bundles.
400
405
 
401
406
  Public SDK reads accept `signal` and `requestTimeout` (milliseconds, default 10000). Each request
402
407
  combines caller cancellation with `AbortSignal.timeout` through `AbortSignal.any`, including the
@@ -1,25 +1,6 @@
1
- web3icons (@web3icons/core@4.0.58)
2
- https://github.com/0xa3k5/web3icons
3
- Vendored branded token and network SVGs.
1
+ Token and network logos
4
2
 
5
- MIT License
6
-
7
- Copyright (c) 2024 0xa3k5
8
-
9
- Permission is hereby granted, free of charge, to any person obtaining a copy
10
- of this software and associated documentation files (the "Software"), to deal
11
- in the Software without restriction, including without limitation the rights
12
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
- copies of the Software, and to permit persons to whom the Software is
14
- furnished to do so, subject to the following conditions:
15
-
16
- The above copyright notice and this permission notice shall be included in all
17
- copies or substantial portions of the Software.
18
-
19
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
- SOFTWARE.
3
+ The USDC, USDT, PHA, ETH, Ethereum, and Base logos embedded in this package are CoinMarketCap's
4
+ images (https://coinmarketcap.com), vendored by sdk/js/scripts/generate-icons.mjs. They are
5
+ trademarks of their respective owners, used only to identify each token and network; their use
6
+ implies no endorsement. They are not covered by this package's Apache-2.0 license.
@@ -0,0 +1,5 @@
1
+ /** Generated from CoinMarketCap's 64x64 logos by scripts/generate-icons.mjs. Do not edit.
2
+ * The logos are trademarks of their owners; see THIRD_PARTY_NOTICES.
3
+ */
4
+ export declare const ICON_IMAGES: Record<"usdc" | "usdt" | "pha" | "eth" | "ethereum" | "base", string>;
5
+ //# sourceMappingURL=icon-images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-images.d.ts","sourceRoot":"","sources":["../src/icon-images.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,EAAE,MAAM,CAO7F,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** Generated from CoinMarketCap's 64x64 logos by scripts/generate-icons.mjs. Do not edit.
2
+ * The logos are trademarks of their owners; see THIRD_PARTY_NOTICES.
3
+ */
4
+ export const ICON_IMAGES = {
5
+ usdc: "data:image/png;base64,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",
6
+ usdt: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACaUlEQVR4Xu2aPW7CMBiGOQJH6BE4AkfoEThCj8ANIiWwsCAmNnoBJCQ2JtiYUBc2Bla2Vl9Vq+R1En/+xQY/0rMQ298PdpSU9nqZTCaTyfCpqu+onU4HmLI7iqIvBYxRb2CgeL1i6vZU1aYhULw6BwOkoDNw4XQcYin6TCZfDQunozW4YIoagwt1GBqM32lRvGFpaqpqLC3UYWgwvlJtcAGFocH4SsuywBLbwckMQ4PxWbKg84ITGYYG4zNlPCHKk1gOVyuW+8sFa6mB49vE+Gw70bzxmbg5n7HmGjjei63gQA/G2wAc5MkoGkDWMLzxdUnnVFUsB1rD6sy3WZaj/wbgRQP7sxnm7o23xUKKb+Rf8RvpgoaUzKOw3hn0oid9qGkTtG0Hy6U0llQdCxxPUpM/Tycc+ov1bpA+0FQwWq+la02aNAClb15gvQtc3QO4umjAvVYNqIEXmRJ0A8TPVbp4siNM59aLF+AghvfQYy5edy0+Shs1oBMcrFAFbfmP7VZ7l9A9RXVcCJynVAk9IOAkhZRsaMa7nZQHw3cstxmDJgiLwwFzdcb8eJTisdX+yYwm4CIW0lmlb+16u2FdNWiM0bnuUrt4geMmkKpzjeOtNS7+HlzUwqANcAoubmiwBngBgxgYpAFewWCaem+Adyz/ScJrA4KCwZl6a8BDwCQYemnAQ8FkFNIfSvBN0OqtMAowqVBGBSbnV8ZPXI9ATtSHkRYvkBN2axJg0q5MCkze1iTBIkxNGixG16egqvZSYSonkzkukzZUEBbZ5tMVL+A04WmLF2DB6EuARb9U8YKXLj6TyWQycfADMiVWaB1DBnAAAAAASUVORK5CYII=",
7
+ pha: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABTUlEQVR4Xu3QsRFCMQwEUddG7TREBZDvJprx+Qecg5dsIMlea61vOYU2Cm0U2ii0UWij0EahjUIbhTYKbRTaKLRRaKPQRmHs/Xk9hruDFMZ45EncHaQwxiNP4u4ghTEeeRJ3BymM8ciTuDtIYYxHnsTdQQpjPPIk7g5SGOORJw/m/OAuhTEeEjxKOD+4S2GMhwSPEs4P7lIY4yHBo4Tzg7sUxnhI8Cjh/OAuhTEeEjxKOD+4S2GMhwSPEs4P7lIY4yHBo4Tzg7sUxnhI8Cjh/OAuhTEeEjxKOD+4SyGCR+7i/CCFCD5gF+cHKUTwAbs4P0ghgg/YxflBChF8wC7OD1KI4AN2cX6QQgQfsIvzgxTGeORDB6cpjPHR9wPuB9wPuB9wP+B+wP2A+wE1H/AnFNootFFoo9BGoY1CG4U2Cm0U2ii0UWij0EahjUKVH6yAFDpfo2VCAAAAAElFTkSuQmCC",
8
+ eth: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcWx7bP///+zv8Ovu7+vu7////////+vu7////+zv8L+/v+vu7+rt7urt7uzv8Ozv7/L19u3v8Ovt7u3w8eru7uvu7+zw8e3w8aFk/+7y9Ozv8Ozu8O/y8uzv8PL19sCqquns7PD09e7u7uvv7+ft7fDy9O7y8uvu7uzu7+ru78zMzOvr7+/z8+rs7u7x8+zv8evu8O3w8e7w8uzu7+jo6+Xn5/L19vH19vL19uvu7/Dz9e7y9Ovu7+/y8/Hz9e/z9PH19vDz9Ozs7Ovw8Ovy8u3w8n////D09fH09e7x8e3w8e3w8evv7+vv8Ozv8O3x8evv7+vw8PL19e7x9Ovt7uzw8evv8O7x8u7y8+3w8uzv8C8wMIKDhBMTEzQ1NTU2Nuvu7+rt7oSFhjEyMu/y8/X4+RERES0uLoOEhfb5+jIzM/Dz9O7x8nx9fens7TAxMfP29/L19v3//+3w8fL19/z//xUVFXt8fYGCg/j8/Dc4OPT4+CQlJRQUFP7//4WGh3x9ficoKP////r9/3+AgYeJifr9/i4vLzM0NCssLPf6++nr7PT3+Hp7fCkqKiIjI35/gH1+fyorKzY3N9bY2dfa2xcXF+Xo6fn8/fv//4mKi4CBgsfJyufp6vj7/fT4+QwNDAQEBPDz9LO1tT0+PtHT1CEhIR8fH6utriMkJF1eXiYnJ0NEREVGRvX5+ra4uY+QkcHDxN7h4oyPj6WnqFNVVQcHB/Dz9WxtbpWWl8zOz77AwaGjpEtMTBsbG3d4eZyen3R2duPm53h5eujq6+Hk5ZiZmsTHyNve3rCys6msrdPV1oKEhWRlZert7xgZGZucnfj7/N3g4VpcXJKUlWZoaKChosjLzLq9vqyur/H19s3Q0TU1Nvb6+25wcGlra8rNzkFCQicnJ9nb3ODi4/L291FSU2BiYkdJSbu+vz9BQSMjI8HExezw8VdZWe/y9Kiqq7CysqSmp0xNTjo7O5aYmc3P0E5OTvT29/H09VZXWHFzc56goGJjY7i6u4a+3GEAAABbdFJOUwABAvz9+wQB/gP4BPr8/v269Nb7+hiOKe0BjuteqGLnA2H8FocVd46Q+NgFKEE/ralr74/qLiy/wv3EbW3H/oaG6+oceCh3AtPSXffQkNHOrahr9V3Pztb+/oaqvdwxAAAHE0lEQVRYw41Xd1wTZxj+wAt3AVEcQKm0bhFXW0W7696r2z8uMckll5DkIlmFpGkgCWUTCCNSFFw/91bcow7c1Vaptq6qHXbv3XR+dwG9+y5gvz8gv7t7n3vXPe/zAiA6KTHwT/TkGfcndM+IJeyxGd0T0l5MxuHFGBzc++BSAKTDR82K1bYYLLSdJO20xdCinfly2vA4eOeeENB84qDpWpvBhGFYV4KEh+gKf5oMNu20QYncAx2caBwkjh1v83eRYJwtPCoV94/AJF202RPG9gd4dEevj3qyt42WYOSdo6JpVdtvTMJk934qCsS1H/2YR7MZCUHy7EPB4LU7CCQBIR4b3U4mcBw82K1FYE6SlHbbLS3Fu0BI6rs9yD4bwR4f9TodTwrtrR8eK11Xn8W/Fk8XpaWIEaLwuAfyMeHrYQmXbKvQbFpiUvEvEp3yH4jDo5D3p/R5KK8zYk5S/jPeatcaj9AFkuyc95BU6AMuxR/OixfZhxY2qL21xZmNyyjhnfi8h3FBJmNAUr7o/bCEF7yeBUrzxg0hFXKrc/5gEMOvf99FPUX2lGW7Q69eoMw0fn0QDYLsuajv3absA5Jf6NdF/P7mxQ1yFsBcuupdBvGhS79uw0B0WwKkT78aL3bg07ccag5AZgwcbkFdiK9/Iro1DVLwfLZEnADr6iq9PAwgM1ceMCB5JCXZj4SDwPGBvR7vSorPvuo7ABrfZ3b0NsH06s/VUgoGRHCA8l+pUMvbAGAQ++rLkUd62AawLuBg4H0MIc5gk8cpvwtgzlQGrUgQxDMjE8FUWM1JtggZCB10qHkAMuP6veIs2KawzTB0iB8Tt8CHbAJ4ADLNxpVoJTr5hwyFSRihFdmT9vJtBShA5RfHTchjmHYETGJSnkScwZVcBvkAspLAYrQfJbYkWISXDJgoAZ/I247e0QYAz36/MA3YljkxIDnWhNZAxRzxhgNwygsLatvMje7PLe8I62BKHwZSt2CiDJ7iKuB06gvlezev/disaUVYvxMJAtOmgsFLEQCV6Y3FDXpori4seHuTJjNXd95drDGzzVDz1W1a8FFhS2eDBDQFlOWqQ+10egorLq6SaWqNOTqdrm5NKYQoNgYWCEuJGRJAdwuBZPBslVPu8Rzd5So2KpVKTY5u/nydLndtDRtJzTdCjrbOAxmiPt5XtVi9902FrESpVCjCAPDo5h/yyUp8uwS9QNAZINaODIIDDXIYukwBrRU8ANaN826j+8IifhD2dIB+RKcLNsDQlWFzAQALURdQXLfy80gAAu3BErfC1WaOAMzPydm9/P0yQTeBdGEIqu8vv1dTfBeBD5Bbt3z376eu8R2wx4IMWuiD3W/98Xef0SUGqNOt0Oy0GmgBK2WAeVYBgOkExRiOX/rFp6wVAuTkrjikX3JjWdZCXh0IS3e0keimH4Ihuix4tLiUi6MVgA3+n7NLQ2WNfwV5DM820mxhK1P+xuozzcw17faLlWYIwQHA4Fd89G+Z1dB0buMPRRS/lQeDVIRPKO2Zozu2k7Tf9NNmX4mLBcjRrfCdpLUW8u+Pcs5lZwm+51QwLF30OZ90eH9dzdBlJwo/qHSV1OXuzj18uyXkv7LLHfiTtKv4n3NsMoiZg3zPKua0Wl9VtbMpxJRdv1Vaunz3rsstIcPZmz6fpuQ3v8ABw1zI60koKbND1aN3eLYeZ6x/bP259uoyy7LmHYr1ZkXgoHA4SPIgpUUgVVVop0Otd1ZsazTRZc3NZa8wb20OZBpL1t9EmJ0jVRzSeieUUpbsgKSsLvAeCYYYq/bUBneN0ayp3NyM0AmkdVZbTBENFsq6uoAlVL23YV3z6YpSt9HM8tGBG1kIKU+C5lNB4shnCBGvb+V4XS93FG5aw3Gicc2OonJkut43EE5GdrjaeohGi+mCl5sMnmPs21lK3rCHVCHznRuucLz378WImb2p0MlSu7q6lhuupS50uHZ9vNfAsFSTgkfE852yNHKzoXUyadzrWsrbERhQ4kQ/US/WeNZ17HQIAxgDx9DJGl//tLRN6UWDyd3EIsuedQlqnLBG8v1cLlSrrMhKhuqsI5lHhYLOsAfm4uJGbVYHMo9thsH5EYTul606MXASqSAUmkl8odmO1FUx7zugUtW43/OrUKn7nFDqwlpKxWKblZpOr6ty1buI1O2c92yfKDyC3O9EoLXcX1Dt2rhVWAECiyD3WR9S0opEC4dl5eHKc0WihSMq8soCV556ZOUhmcLvvhWQULsrD7d0jX4MWbooa3C1heKZ78l+dEz762ccu/ZBCP7axzDU3bWPtnW09oUXz/7jJmRrIy+er9nGj0vscPEMr76Jg6ZFXn2nD5p4r9W3dfmOGz577kzh8h07a9Rw6f9ZvlkItkfx5BlpCfMy0kkiPWNeQlrqMNbxmBTx0/8BsP8D5OWd4s8AAAAASUVORK5CYII=",
9
+ ethereum: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcWx7bP///+zv8Ovu7+vu7////////+vu7////+zv8L+/v+vu7+rt7urt7uzv8Ozv7/L19u3v8Ovt7u3w8eru7uvu7+zw8e3w8aFk/+7y9Ozv8Ozu8O/y8uzv8PL19sCqquns7PD09e7u7uvv7+ft7fDy9O7y8uvu7uzu7+ru78zMzOvr7+/z8+rs7u7x8+zv8evu8O3w8e7w8uzu7+jo6+Xn5/L19vH19vL19uvu7/Dz9e7y9Ovu7+/y8/Hz9e/z9PH19vDz9Ozs7Ovw8Ovy8u3w8n////D09fH09e7x8e3w8e3w8evv7+vv8Ozv8O3x8evv7+vw8PL19e7x9Ovt7uzw8evv8O7x8u7y8+3w8uzv8C8wMIKDhBMTEzQ1NTU2Nuvu7+rt7oSFhjEyMu/y8/X4+RERES0uLoOEhfb5+jIzM/Dz9O7x8nx9fens7TAxMfP29/L19v3//+3w8fL19/z//xUVFXt8fYGCg/j8/Dc4OPT4+CQlJRQUFP7//4WGh3x9ficoKP////r9/3+AgYeJifr9/i4vLzM0NCssLPf6++nr7PT3+Hp7fCkqKiIjI35/gH1+fyorKzY3N9bY2dfa2xcXF+Xo6fn8/fv//4mKi4CBgsfJyufp6vj7/fT4+QwNDAQEBPDz9LO1tT0+PtHT1CEhIR8fH6utriMkJF1eXiYnJ0NEREVGRvX5+ra4uY+QkcHDxN7h4oyPj6WnqFNVVQcHB/Dz9WxtbpWWl8zOz77AwaGjpEtMTBsbG3d4eZyen3R2duPm53h5eujq6+Hk5ZiZmsTHyNve3rCys6msrdPV1oKEhWRlZert7xgZGZucnfj7/N3g4VpcXJKUlWZoaKChosjLzLq9vqyur/H19s3Q0TU1Nvb6+25wcGlra8rNzkFCQicnJ9nb3ODi4/L291FSU2BiYkdJSbu+vz9BQSMjI8HExezw8VdZWe/y9Kiqq7CysqSmp0xNTjo7O5aYmc3P0E5OTvT29/H09VZXWHFzc56goGJjY7i6u4a+3GEAAABbdFJOUwABAvz9+wQB/gP4BPr8/v269Nb7+hiOKe0BjuteqGLnA2H8FocVd46Q+NgFKEE/ralr74/qLiy/wv3EbW3H/oaG6+oceCh3AtPSXffQkNHOrahr9V3Pztb+/oaqvdwxAAAHE0lEQVRYw41Xd1wTZxj+wAt3AVEcQKm0bhFXW0W7696r2z8uMckll5DkIlmFpGkgCWUTCCNSFFw/91bcow7c1Vaptq6qHXbv3XR+dwG9+y5gvz8gv7t7n3vXPe/zAiA6KTHwT/TkGfcndM+IJeyxGd0T0l5MxuHFGBzc++BSAKTDR82K1bYYLLSdJO20xdCinfly2vA4eOeeENB84qDpWpvBhGFYV4KEh+gKf5oMNu20QYncAx2caBwkjh1v83eRYJwtPCoV94/AJF202RPG9gd4dEevj3qyt42WYOSdo6JpVdtvTMJk934qCsS1H/2YR7MZCUHy7EPB4LU7CCQBIR4b3U4mcBw82K1FYE6SlHbbLS3Fu0BI6rs9yD4bwR4f9TodTwrtrR8eK11Xn8W/Fk8XpaWIEaLwuAfyMeHrYQmXbKvQbFpiUvEvEp3yH4jDo5D3p/R5KK8zYk5S/jPeatcaj9AFkuyc95BU6AMuxR/OixfZhxY2qL21xZmNyyjhnfi8h3FBJmNAUr7o/bCEF7yeBUrzxg0hFXKrc/5gEMOvf99FPUX2lGW7Q69eoMw0fn0QDYLsuajv3absA5Jf6NdF/P7mxQ1yFsBcuupdBvGhS79uw0B0WwKkT78aL3bg07ccag5AZgwcbkFdiK9/Iro1DVLwfLZEnADr6iq9PAwgM1ceMCB5JCXZj4SDwPGBvR7vSorPvuo7ABrfZ3b0NsH06s/VUgoGRHCA8l+pUMvbAGAQ++rLkUd62AawLuBg4H0MIc5gk8cpvwtgzlQGrUgQxDMjE8FUWM1JtggZCB10qHkAMuP6veIs2KawzTB0iB8Tt8CHbAJ4ADLNxpVoJTr5hwyFSRihFdmT9vJtBShA5RfHTchjmHYETGJSnkScwZVcBvkAspLAYrQfJbYkWISXDJgoAZ/I247e0QYAz36/MA3YljkxIDnWhNZAxRzxhgNwygsLatvMje7PLe8I62BKHwZSt2CiDJ7iKuB06gvlezev/disaUVYvxMJAtOmgsFLEQCV6Y3FDXpori4seHuTJjNXd95drDGzzVDz1W1a8FFhS2eDBDQFlOWqQ+10egorLq6SaWqNOTqdrm5NKYQoNgYWCEuJGRJAdwuBZPBslVPu8Rzd5So2KpVKTY5u/nydLndtDRtJzTdCjrbOAxmiPt5XtVi9902FrESpVCjCAPDo5h/yyUp8uwS9QNAZINaODIIDDXIYukwBrRU8ANaN826j+8IifhD2dIB+RKcLNsDQlWFzAQALURdQXLfy80gAAu3BErfC1WaOAMzPydm9/P0yQTeBdGEIqu8vv1dTfBeBD5Bbt3z376eu8R2wx4IMWuiD3W/98Xef0SUGqNOt0Oy0GmgBK2WAeVYBgOkExRiOX/rFp6wVAuTkrjikX3JjWdZCXh0IS3e0keimH4Ihuix4tLiUi6MVgA3+n7NLQ2WNfwV5DM820mxhK1P+xuozzcw17faLlWYIwQHA4Fd89G+Z1dB0buMPRRS/lQeDVIRPKO2Zozu2k7Tf9NNmX4mLBcjRrfCdpLUW8u+Pcs5lZwm+51QwLF30OZ90eH9dzdBlJwo/qHSV1OXuzj18uyXkv7LLHfiTtKv4n3NsMoiZg3zPKua0Wl9VtbMpxJRdv1Vaunz3rsstIcPZmz6fpuQ3v8ABw1zI60koKbND1aN3eLYeZ6x/bP259uoyy7LmHYr1ZkXgoHA4SPIgpUUgVVVop0Otd1ZsazTRZc3NZa8wb20OZBpL1t9EmJ0jVRzSeieUUpbsgKSsLvAeCYYYq/bUBneN0ayp3NyM0AmkdVZbTBENFsq6uoAlVL23YV3z6YpSt9HM8tGBG1kIKU+C5lNB4shnCBGvb+V4XS93FG5aw3Gicc2OonJkut43EE5GdrjaeohGi+mCl5sMnmPs21lK3rCHVCHznRuucLz378WImb2p0MlSu7q6lhuupS50uHZ9vNfAsFSTgkfE852yNHKzoXUyadzrWsrbERhQ4kQ/US/WeNZ17HQIAxgDx9DJGl//tLRN6UWDyd3EIsuedQlqnLBG8v1cLlSrrMhKhuqsI5lHhYLOsAfm4uJGbVYHMo9thsH5EYTul606MXASqSAUmkl8odmO1FUx7zugUtW43/OrUKn7nFDqwlpKxWKblZpOr6ty1buI1O2c92yfKDyC3O9EoLXcX1Dt2rhVWAECiyD3WR9S0opEC4dl5eHKc0WihSMq8soCV556ZOUhmcLvvhWQULsrD7d0jX4MWbooa3C1heKZ78l+dEz762ccu/ZBCP7axzDU3bWPtnW09oUXz/7jJmRrIy+er9nGj0vscPEMr76Jg6ZFXn2nD5p4r9W3dfmOGz577kzh8h07a9Rw6f9ZvlkItkfx5BlpCfMy0kkiPWNeQlrqMNbxmBTx0/8BsP8D5OWd4s8AAAAASUVORK5CYII=",
10
+ base: "data:image/png;base64,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",
11
+ };
12
+ //# sourceMappingURL=icon-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-images.js","sourceRoot":"","sources":["../src/icon-images.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,WAAW,GAA0E;IAChG,IAAI,EAAE,gmGAAgmG;IACtmG,IAAI,EAAE,45BAA45B;IACl6B,GAAG,EAAE,giBAAgiB;IACriB,GAAG,EAAE,opHAAopH;IACzpH,QAAQ,EAAE,opHAAopH;IAC9pH,IAAI,EAAE,wmPAAwmP;CAC/mP,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { ICON_SVG } from "./icon-svg.js";
2
- export type IconName = keyof typeof ICON_SVG;
1
+ import type { ICON_IMAGES } from "./icon-images.js";
2
+ export type IconName = keyof typeof ICON_IMAGES;
3
3
  /** Case-insensitive token symbol; unrecognized symbols use a neutral monogram. */
4
4
  export declare function assetIconName(asset: string): IconName | undefined;
5
5
  /** The token's symbol as payers read it, for example `USDC` for `usdc`. */
@@ -1 +1 @@
1
- {"version":3,"file":"icon-names.d.ts","sourceRoot":"","sources":["../src/icon-names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAe7C,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEjE;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,kGAAkG;AAClG,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"icon-names.d.ts","sourceRoot":"","sources":["../src/icon-names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,WAAW,CAAC;AAehD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEjE;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,kGAAkG;AAClG,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAkBA,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAuBA,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C"}
package/dist/icons.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { networkName, networkIconName } from "./chains.js";
2
- import { ICON_SVG } from "./icon-svg.js";
2
+ import { ICON_IMAGES } from "./icon-images.js";
3
3
  import { assetIconName, iconMonogram } from "./icon-names.js";
4
4
  function fallback(label) {
5
5
  const letter = iconMonogram(label).replace(/[&<>"']/g, (character) => {
@@ -13,15 +13,18 @@ function fallback(label) {
13
13
  });
14
14
  return `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="11" fill="currentColor" opacity="0.12"/><text x="12" y="16" text-anchor="middle" font-family="sans-serif" font-size="12" fill="currentColor">${letter}</text></svg>`;
15
15
  }
16
+ /** CoinMarketCap's logo as a `data:` image, which needs `img-src data:` in a CSP. */
17
+ function logo(name) {
18
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" aria-hidden="true"><image href="${ICON_IMAGES[name]}" width="24" height="24"/></svg>`;
19
+ }
16
20
  /** Decorative inline SVG markup; testnets reuse their mainnet family artwork. */
17
21
  export function networkIcon(chainId) {
18
22
  const name = networkIconName(chainId);
19
- const svg = name === undefined ? fallback(networkName(chainId)) : ICON_SVG[name];
20
- return svg;
23
+ return name === undefined ? fallback(networkName(chainId)) : logo(name);
21
24
  }
22
25
  /** Decorative inline SVG markup; keep the asset name visible beside it. */
23
26
  export function assetIcon(asset) {
24
27
  const name = assetIconName(asset);
25
- return name === undefined ? fallback(asset) : ICON_SVG[name];
28
+ return name === undefined ? fallback(asset) : logo(name);
26
29
  }
27
30
  //# sourceMappingURL=icons.js.map
package/dist/icons.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE;QACnE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,GAAG,CAAC,CAAC,OAAO,OAAO,CAAC;YACzB,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC;YACxB,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC;YACxB,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC1B,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,iRAAiR,MAAM,eAAe,CAAC;AAChT,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAE7E,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE;QACnE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,GAAG,CAAC,CAAC,OAAO,OAAO,CAAC;YACzB,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC;YACxB,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC;YACxB,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC1B,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,iRAAiR,MAAM,eAAe,CAAC;AAChT,CAAC;AAED,qFAAqF;AACrF,SAAS,IAAI,CAAC,IAAc;IAC1B,OAAO,sHAAsH,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC;AACnL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phala/pay",
3
- "version": "0.11.2",
3
+ "version": "0.11.4",
4
4
  "description": "Phala Pay framework-free browser client",
5
5
  "keywords": [
6
6
  "crypto",
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "devDependencies": {
64
64
  "@eslint/js": "^10.0.1",
65
- "@playwright/test": "1.63.0",
65
+ "@playwright/test": "1.64.1",
66
66
  "@testing-library/dom": "^10.4.2",
67
67
  "@types/node": "^26.6.4",
68
68
  "axe-core": "^4.13.0",
@@ -0,0 +1,12 @@
1
+ /** Generated from CoinMarketCap's 64x64 logos by scripts/generate-icons.mjs. Do not edit.
2
+ * The logos are trademarks of their owners; see THIRD_PARTY_NOTICES.
3
+ */
4
+
5
+ export const ICON_IMAGES: Record<"usdc" | "usdt" | "pha" | "eth" | "ethereum" | "base", string> = {
6
+ usdc: "data:image/png;base64,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",
7
+ usdt: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACaUlEQVR4Xu2aPW7CMBiGOQJH6BE4AkfoEThCj8ANIiWwsCAmNnoBJCQ2JtiYUBc2Bla2Vl9Vq+R1En/+xQY/0rMQ298PdpSU9nqZTCaTyfCpqu+onU4HmLI7iqIvBYxRb2CgeL1i6vZU1aYhULw6BwOkoDNw4XQcYin6TCZfDQunozW4YIoagwt1GBqM32lRvGFpaqpqLC3UYWgwvlJtcAGFocH4SsuywBLbwckMQ4PxWbKg84ITGYYG4zNlPCHKk1gOVyuW+8sFa6mB49vE+Gw70bzxmbg5n7HmGjjei63gQA/G2wAc5MkoGkDWMLzxdUnnVFUsB1rD6sy3WZaj/wbgRQP7sxnm7o23xUKKb+Rf8RvpgoaUzKOw3hn0oid9qGkTtG0Hy6U0llQdCxxPUpM/Tycc+ov1bpA+0FQwWq+la02aNAClb15gvQtc3QO4umjAvVYNqIEXmRJ0A8TPVbp4siNM59aLF+AghvfQYy5edy0+Shs1oBMcrFAFbfmP7VZ7l9A9RXVcCJynVAk9IOAkhZRsaMa7nZQHw3cstxmDJgiLwwFzdcb8eJTisdX+yYwm4CIW0lmlb+16u2FdNWiM0bnuUrt4geMmkKpzjeOtNS7+HlzUwqANcAoubmiwBngBgxgYpAFewWCaem+Adyz/ScJrA4KCwZl6a8BDwCQYemnAQ8FkFNIfSvBN0OqtMAowqVBGBSbnV8ZPXI9ATtSHkRYvkBN2axJg0q5MCkze1iTBIkxNGixG16egqvZSYSonkzkukzZUEBbZ5tMVL+A04WmLF2DB6EuARb9U8YKXLj6TyWQycfADMiVWaB1DBnAAAAAASUVORK5CYII=",
8
+ pha: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABTUlEQVR4Xu3QsRFCMQwEUddG7TREBZDvJprx+Qecg5dsIMlea61vOYU2Cm0U2ii0UWij0EahjUIbhTYKbRTaKLRRaKPQRmHs/Xk9hruDFMZ45EncHaQwxiNP4u4ghTEeeRJ3BymM8ciTuDtIYYxHnsTdQQpjPPIk7g5SGOORJw/m/OAuhTEeEjxKOD+4S2GMhwSPEs4P7lIY4yHBo4Tzg7sUxnhI8Cjh/OAuhTEeEjxKOD+4S2GMhwSPEs4P7lIY4yHBo4Tzg7sUxnhI8Cjh/OAuhTEeEjxKOD+4SyGCR+7i/CCFCD5gF+cHKUTwAbs4P0ghgg/YxflBChF8wC7OD1KI4AN2cX6QQgQfsIvzgxTGeORDB6cpjPHR9wPuB9wPuB9wP+B+wP2A+wE1H/AnFNootFFoo9BGoY1CG4U2Cm0U2ii0UWij0EahjUKVH6yAFDpfo2VCAAAAAElFTkSuQmCC",
9
+ eth: "data:image/png;base64,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",
10
+ ethereum: "data:image/png;base64,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",
11
+ base: "data:image/png;base64,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",
12
+ };
package/src/icon-names.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { ICON_SVG } from "./icon-svg.js";
1
+ import type { ICON_IMAGES } from "./icon-images.js";
2
2
 
3
- export type IconName = keyof typeof ICON_SVG;
3
+ export type IconName = keyof typeof ICON_IMAGES;
4
4
 
5
5
  /** The tokens the SDK knows, by lowercase code: their icon and full name. */
6
6
  const ASSETS: Readonly<Record<string, { icon: IconName; name: string }>> = {
package/src/icons.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { networkName, networkIconName } from "./chains.js";
2
- import { ICON_SVG } from "./icon-svg.js";
2
+ import { ICON_IMAGES } from "./icon-images.js";
3
3
 
4
- import { assetIconName, iconMonogram } from "./icon-names.js";
4
+ import { assetIconName, iconMonogram, type IconName } from "./icon-names.js";
5
5
 
6
6
  function fallback(label: string): string {
7
7
  const letter = iconMonogram(label).replace(/[&<>"']/g, (character) => {
@@ -16,15 +16,19 @@ function fallback(label: string): string {
16
16
  return `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="11" fill="currentColor" opacity="0.12"/><text x="12" y="16" text-anchor="middle" font-family="sans-serif" font-size="12" fill="currentColor">${letter}</text></svg>`;
17
17
  }
18
18
 
19
+ /** CoinMarketCap's logo as a `data:` image, which needs `img-src data:` in a CSP. */
20
+ function logo(name: IconName): string {
21
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" aria-hidden="true"><image href="${ICON_IMAGES[name]}" width="24" height="24"/></svg>`;
22
+ }
23
+
19
24
  /** Decorative inline SVG markup; testnets reuse their mainnet family artwork. */
20
25
  export function networkIcon(chainId: number): string {
21
26
  const name = networkIconName(chainId);
22
- const svg = name === undefined ? fallback(networkName(chainId)) : ICON_SVG[name];
23
- return svg;
27
+ return name === undefined ? fallback(networkName(chainId)) : logo(name);
24
28
  }
25
29
 
26
30
  /** Decorative inline SVG markup; keep the asset name visible beside it. */
27
31
  export function assetIcon(asset: string): string {
28
32
  const name = assetIconName(asset);
29
- return name === undefined ? fallback(asset) : ICON_SVG[name];
33
+ return name === undefined ? fallback(asset) : logo(name);
30
34
  }
@@ -1,6 +0,0 @@
1
- /** Generated from @web3icons/core@4.0.58 by scripts/generate-icons.mjs.
2
- * SPDX-License-Identifier: MIT; Copyright (c) 2024 0xa3k5.
3
- * See THIRD_PARTY_NOTICES for the full license. Do not edit.
4
- */
5
- export declare const ICON_SVG: Record<"usdc" | "usdt" | "pha" | "eth" | "ethereum" | "base", string>;
6
- //# sourceMappingURL=icon-svg.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-svg.d.ts","sourceRoot":"","sources":["../src/icon-svg.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,EAAE,MAAM,CAO1F,CAAC"}
package/dist/icon-svg.js DELETED
@@ -1,13 +0,0 @@
1
- /** Generated from @web3icons/core@4.0.58 by scripts/generate-icons.mjs.
2
- * SPDX-License-Identifier: MIT; Copyright (c) 2024 0xa3k5.
3
- * See THIRD_PARTY_NOTICES for the full license. Do not edit.
4
- */
5
- export const ICON_SVG = {
6
- usdc: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#0B53BF\" d=\"M24 0H0v24h24z\"/><path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M12 20c4.435 0 8-3.565 8-8s-3.565-8-8-8-8 3.565-8 8 3.565 8 8 8m2.2-6.735c0-1.165-.7-1.565-2.1-1.73-1-.135-1.2-.4-1.2-.87 0-.465.335-.765 1-.765.6 0 .935.2 1.1.7.035.1.135.165.235.165h.53c.135 0 .235-.1.235-.23v-.036c-.135-.734-.735-1.434-1.5-1.5v-.734c0-.135-.1-.235-.265-.265h-.44c-.135 0-.26.1-.295.265V9c-1 .135-1.665.9-1.665 1.735 0 1.1.665 1.53 2.065 1.7.935.165 1.235.365 1.235.9 0 .53-.47.9-1.1.9-.87 0-1.17-.37-1.27-.87-.03-.13-.13-.2-.23-.2h-.57c-.13 0-.23.1-.23.235v.035c.13.83.665 1.4 1.765 1.565v.74c0 .135.1.224.265.26h.48c.13 0 .22-.09.255-.26V15c1-.165 1.7-.835 1.7-1.735m-5.566 2.49c.483.443 1.05.786 1.666 1.01.1.07.2.2.2.3v.47c0 .064 0 .1-.035.13-.03.134-.165.2-.3.134a6 6 0 0 1 0-11.435c.035-.03.1-.03.135-.03.135.03.2.13.2.265v.465c0 .17-.065.27-.2.335a4.93 4.93 0 0 0-2.965 2.965 4.965 4.965 0 0 0 1.299 5.391M13.535 6.5c.03-.135.165-.2.3-.135a6.05 6.05 0 0 1 3.9 3.935c1 3.165-.735 6.535-3.9 7.535-.035.03-.1.03-.135.03-.135-.03-.2-.13-.2-.265v-.465c0-.17.065-.27.2-.335a4.93 4.93 0 0 0 2.965-2.965 4.967 4.967 0 0 0-2.965-6.4c-.1-.07-.2-.2-.2-.335v-.465c0-.07 0-.1.035-.135\" clip-rule=\"evenodd\"/></svg>",
7
- usdt: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#009393\" d=\"M24 0H0v24h24z\"/><path fill=\"#fff\" d=\"m12 18.4-8-7.892L7.052 5.6h9.896L20 10.508zm.8-7.2v-.976c1.44.072 2.784.352 3.2.716-.484.424-2.216.732-4 .732s-3.516-.308-4-.732c.412-.364 1.76-.64 3.2-.72v.98zM8 10.936v.588c.412.364 1.756.64 3.2.72V14.4h1.6v-2.16c1.44-.072 2.788-.352 3.2-.716v-1.172c-.412-.364-1.76-.644-3.2-.72V8.8h2.4V7.6H8.8v1.2h2.4v.832c-1.444.076-2.788.356-3.2.72z\"/></svg>",
8
- pha: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#D1FF52\" d=\"M24 0H0v24h24z\"/><path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M4 4h12.571v3.429H20V12h-3.429V7.429H7.43V12H4zm3.429 11.429h9.142V12H7.43zm0 0V20H4v-4.571z\" clip-rule=\"evenodd\"/></svg>",
9
- eth: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#000\" d=\"M24 0H0v24h24z\"/><path fill=\"#8FFCF3\" d=\"M12 4v5.912l5 2.236z\"/><path fill=\"#CABCF8\" d=\"m12 4-5 8.148 5-2.236z\"/><path fill=\"#CBA7F5\" d=\"M12 15.98V20l5-6.92z\"/><path fill=\"#74A0F3\" d=\"M12 20v-4.02l-5-2.9z\"/><path fill=\"#CBA7F5\" d=\"m12 15.048 5-2.9-5-2.236z\"/><path fill=\"#74A0F3\" d=\"m7 12.148 5 2.9V9.912z\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 15.048-5-2.9L12 4l5 8.148zm-4.668-3.136 4.588-7.476v5.436zm-.068.204 4.656-2.068v4.768zm4.816-2.068v4.768l4.652-2.7zm0-.176 4.588 2.04-4.588-7.476z\" clip-rule=\"evenodd\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 15.916-5-2.84L12 20l5-6.924zm-4.44-2.34 4.36 2.48v3.56zm4.52 2.48v3.56l4.36-6.04z\" clip-rule=\"evenodd\"/></svg>",
10
- ethereum: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#8FFCF3\" d=\"M12 3v6.651l5.625 2.516z\"/><path fill=\"#CABCF8\" d=\"m12 3-5.625 9.166L12 9.653z\"/><path fill=\"#CBA7F5\" d=\"M12 16.478V21l5.625-7.784z\"/><path fill=\"#74A0F3\" d=\"M12 21v-4.522l-5.625-3.262z\"/><path fill=\"#CBA7F5\" d=\"m12 15.43 5.625-3.263L12 9.652z\"/><path fill=\"#74A0F3\" d=\"M6.375 12.167 12 15.43V9.652z\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 15.43-5.625-3.263L12 3l5.624 9.166zm-5.252-3.528 5.161-8.41v6.114zm-.077.229 5.238-2.327v5.364zm5.418-2.327v5.364l5.234-3.037zm0-.198 5.161 2.296-5.161-8.41z\" clip-rule=\"evenodd\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 16.406-5.625-3.195L12 21l5.624-7.79zm-4.995-2.633 4.904 2.79v4.005zm5.084 2.79v4.005l4.905-6.795z\" clip-rule=\"evenodd\"/></svg>",
11
- base: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#00F\" d=\"M3 4.706c0-.585 0-.877.11-1.101.106-.215.28-.39.496-.495C3.83 3 4.122 3 4.706 3h14.588c.585 0 .876 0 1.101.11.215.105.389.28.494.495.111.225.111.517.111 1.101v14.588c0 .585 0 .876-.11 1.101-.106.215-.28.389-.495.494-.225.111-.517.111-1.101.111H4.706c-.585 0-.876 0-1.101-.11a1.08 1.08 0 0 1-.494-.495C3 20.17 3 19.878 3 19.294z\"/></svg>",
12
- };
13
- //# sourceMappingURL=icon-svg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-svg.js","sourceRoot":"","sources":["../src/icon-svg.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAA0E;IAC7F,IAAI,EAAE,o0CAAo0C;IAC10C,IAAI,EAAE,iiBAAiiB;IACviB,GAAG,EAAE,uVAAuV;IAC5V,GAAG,EAAE,62BAA62B;IACl3B,QAAQ,EAAE,g4BAAg4B;IAC14B,IAAI,EAAE,yeAAye;CAChf,CAAC"}
package/src/icon-svg.ts DELETED
@@ -1,13 +0,0 @@
1
- /** Generated from @web3icons/core@4.0.58 by scripts/generate-icons.mjs.
2
- * SPDX-License-Identifier: MIT; Copyright (c) 2024 0xa3k5.
3
- * See THIRD_PARTY_NOTICES for the full license. Do not edit.
4
- */
5
-
6
- export const ICON_SVG: Record<"usdc" | "usdt" | "pha" | "eth" | "ethereum" | "base", string> = {
7
- usdc: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#0B53BF\" d=\"M24 0H0v24h24z\"/><path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M12 20c4.435 0 8-3.565 8-8s-3.565-8-8-8-8 3.565-8 8 3.565 8 8 8m2.2-6.735c0-1.165-.7-1.565-2.1-1.73-1-.135-1.2-.4-1.2-.87 0-.465.335-.765 1-.765.6 0 .935.2 1.1.7.035.1.135.165.235.165h.53c.135 0 .235-.1.235-.23v-.036c-.135-.734-.735-1.434-1.5-1.5v-.734c0-.135-.1-.235-.265-.265h-.44c-.135 0-.26.1-.295.265V9c-1 .135-1.665.9-1.665 1.735 0 1.1.665 1.53 2.065 1.7.935.165 1.235.365 1.235.9 0 .53-.47.9-1.1.9-.87 0-1.17-.37-1.27-.87-.03-.13-.13-.2-.23-.2h-.57c-.13 0-.23.1-.23.235v.035c.13.83.665 1.4 1.765 1.565v.74c0 .135.1.224.265.26h.48c.13 0 .22-.09.255-.26V15c1-.165 1.7-.835 1.7-1.735m-5.566 2.49c.483.443 1.05.786 1.666 1.01.1.07.2.2.2.3v.47c0 .064 0 .1-.035.13-.03.134-.165.2-.3.134a6 6 0 0 1 0-11.435c.035-.03.1-.03.135-.03.135.03.2.13.2.265v.465c0 .17-.065.27-.2.335a4.93 4.93 0 0 0-2.965 2.965 4.965 4.965 0 0 0 1.299 5.391M13.535 6.5c.03-.135.165-.2.3-.135a6.05 6.05 0 0 1 3.9 3.935c1 3.165-.735 6.535-3.9 7.535-.035.03-.1.03-.135.03-.135-.03-.2-.13-.2-.265v-.465c0-.17.065-.27.2-.335a4.93 4.93 0 0 0 2.965-2.965 4.967 4.967 0 0 0-2.965-6.4c-.1-.07-.2-.2-.2-.335v-.465c0-.07 0-.1.035-.135\" clip-rule=\"evenodd\"/></svg>",
8
- usdt: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#009393\" d=\"M24 0H0v24h24z\"/><path fill=\"#fff\" d=\"m12 18.4-8-7.892L7.052 5.6h9.896L20 10.508zm.8-7.2v-.976c1.44.072 2.784.352 3.2.716-.484.424-2.216.732-4 .732s-3.516-.308-4-.732c.412-.364 1.76-.64 3.2-.72v.98zM8 10.936v.588c.412.364 1.756.64 3.2.72V14.4h1.6v-2.16c1.44-.072 2.788-.352 3.2-.716v-1.172c-.412-.364-1.76-.644-3.2-.72V8.8h2.4V7.6H8.8v1.2h2.4v.832c-1.444.076-2.788.356-3.2.72z\"/></svg>",
9
- pha: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#D1FF52\" d=\"M24 0H0v24h24z\"/><path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M4 4h12.571v3.429H20V12h-3.429V7.429H7.43V12H4zm3.429 11.429h9.142V12H7.43zm0 0V20H4v-4.571z\" clip-rule=\"evenodd\"/></svg>",
10
- eth: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#000\" d=\"M24 0H0v24h24z\"/><path fill=\"#8FFCF3\" d=\"M12 4v5.912l5 2.236z\"/><path fill=\"#CABCF8\" d=\"m12 4-5 8.148 5-2.236z\"/><path fill=\"#CBA7F5\" d=\"M12 15.98V20l5-6.92z\"/><path fill=\"#74A0F3\" d=\"M12 20v-4.02l-5-2.9z\"/><path fill=\"#CBA7F5\" d=\"m12 15.048 5-2.9-5-2.236z\"/><path fill=\"#74A0F3\" d=\"m7 12.148 5 2.9V9.912z\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 15.048-5-2.9L12 4l5 8.148zm-4.668-3.136 4.588-7.476v5.436zm-.068.204 4.656-2.068v4.768zm4.816-2.068v4.768l4.652-2.7zm0-.176 4.588 2.04-4.588-7.476z\" clip-rule=\"evenodd\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 15.916-5-2.84L12 20l5-6.924zm-4.44-2.34 4.36 2.48v3.56zm4.52 2.48v3.56l4.36-6.04z\" clip-rule=\"evenodd\"/></svg>",
11
- ethereum: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#8FFCF3\" d=\"M12 3v6.651l5.625 2.516z\"/><path fill=\"#CABCF8\" d=\"m12 3-5.625 9.166L12 9.653z\"/><path fill=\"#CBA7F5\" d=\"M12 16.478V21l5.625-7.784z\"/><path fill=\"#74A0F3\" d=\"M12 21v-4.522l-5.625-3.262z\"/><path fill=\"#CBA7F5\" d=\"m12 15.43 5.625-3.263L12 9.652z\"/><path fill=\"#74A0F3\" d=\"M6.375 12.167 12 15.43V9.652z\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 15.43-5.625-3.263L12 3l5.624 9.166zm-5.252-3.528 5.161-8.41v6.114zm-.077.229 5.238-2.327v5.364zm5.418-2.327v5.364l5.234-3.037zm0-.198 5.161 2.296-5.161-8.41z\" clip-rule=\"evenodd\"/><path fill=\"#202699\" fill-rule=\"evenodd\" d=\"m12 16.406-5.625-3.195L12 21l5.624-7.79zm-4.995-2.633 4.904 2.79v4.005zm5.084 2.79v4.005l4.905-6.795z\" clip-rule=\"evenodd\"/></svg>",
12
- base: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#00F\" d=\"M3 4.706c0-.585 0-.877.11-1.101.106-.215.28-.39.496-.495C3.83 3 4.122 3 4.706 3h14.588c.585 0 .876 0 1.101.11.215.105.389.28.494.495.111.225.111.517.111 1.101v14.588c0 .585 0 .876-.11 1.101-.106.215-.28.389-.495.494-.225.111-.517.111-1.101.111H4.706c-.585 0-.876 0-1.101-.11a1.08 1.08 0 0 1-.494-.495C3 20.17 3 19.878 3 19.294z\"/></svg>",
13
- };