Skip to content

Commit 80d0880

Browse files
committed
remove deprecated cloudnoun lib
1 parent 4e5baf2 commit 80d0880

File tree

4 files changed

+113
-66
lines changed

4 files changed

+113
-66
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
"@blockscout/tac-operation-lifecycle-types": "0.0.1-alpha.6",
5050
"@blockscout/visualizer-types": "0.2.0",
5151
"@chakra-ui/react": "3.15.0",
52-
"@cloudnouns/kit": "1.1.6",
5352
"@emotion/react": "11.14.0",
5453
"@growthbook/growthbook-react": "0.21.0",
5554
"@helia/verified-fetch": "2.6.12",
@@ -58,6 +57,8 @@
5857
"@metamask/providers": "^10.2.1",
5958
"@monaco-editor/react": "^4.7.0",
6059
"@next/bundle-analyzer": "15.5.2",
60+
"@nouns/assets": "^0.10.0",
61+
"@nouns/sdk": "^1.2.0",
6162
"@opentelemetry/api": "^1.4.1",
6263
"@opentelemetry/auto-instrumentations-node": "0.43.0",
6364
"@opentelemetry/exporter-jaeger": "1.27.0",

ui/shared/entities/address/AddressIdenticon.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,10 @@ const Icon = dynamic(
5858
}
5959

6060
case 'nouns': {
61-
const Noun = (await import('@cloudnouns/kit'));
61+
const NounsIdenticon = (await import('./NounsIdenticon')).default;
6262

6363
return (props: IconProps) => {
64-
const noun = Noun.NounFactory.createFromString(props.hash, { size: props.size });
65-
return <Image src={ noun.svg } alt={ `Identicon for ${ props.hash }}` }/>;
64+
return <NounsIdenticon hash={ props.hash } size={ props.size }/>;
6665
};
6766
}
6867

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { ImageData, getNounData, getNounSeedFromBlockHash } from '@nouns/assets';
2+
import { buildSVG } from '@nouns/sdk';
3+
import React from 'react';
4+
5+
import { Image } from 'toolkit/chakra/image';
6+
7+
const { palette } = ImageData;
8+
9+
interface NounsIdenticonProps {
10+
hash: string;
11+
size: number;
12+
}
13+
14+
const MAGIC_HASH = '0xAC1CA184579A254E4F289319E42FF4A67BF5698AD26C6E7C68769D0D21FAFCB1';
15+
16+
const getNumberFromString = (str: string) => {
17+
str = str.trim();
18+
let hash = 0;
19+
for (let i = 0; i < str.length; i++) {
20+
const char = str.charCodeAt(i);
21+
hash = ((hash << 5) - hash) + char;
22+
hash = hash & hash; // Convert to 32-bit integer
23+
}
24+
return Math.abs(hash) * str.length;
25+
};
26+
27+
const NounsIdenticon: React.FC<NounsIdenticonProps> = ({ hash, size }) => {
28+
const id = getNumberFromString(hash);
29+
const seed = getNounSeedFromBlockHash(id, MAGIC_HASH);
30+
31+
const { parts, background } = getNounData(seed);
32+
const svg = buildSVG(parts, palette, background);
33+
const svgData = btoa(svg);
34+
if (!svgData) {
35+
return null;
36+
}
37+
38+
return (
39+
<Image
40+
src={ `data:image/svg+xml;base64,${ svgData }` }
41+
alt={ `Nouns identicon for ${ hash }` }
42+
width={ `${ size }px` }
43+
height={ `${ size }px` }
44+
/>
45+
);
46+
};
47+
48+
export default React.memo(NounsIdenticon);

yarn.lock

Lines changed: 61 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1731,15 +1731,6 @@
17311731
picocolors "^1.0.0"
17321732
sisteransi "^1.0.5"
17331733

1734-
"@cloudnouns/[email protected]":
1735-
version "1.1.6"
1736-
resolved "https://registry.yarnpkg.com/@cloudnouns/kit/-/kit-1.1.6.tgz#1d6f6f86f7b9729b816f1404fd050171a1e5a743"
1737-
integrity sha512-4Burtt19tpoJ4dpNdE2UjQA3BjbizUzyidgM89JqEo+JO10E/5fvkQUrfNiNUQloyAXys2Iakq4N4p/+/9O+tw==
1738-
dependencies:
1739-
"@ethersproject/bignumber" "^5.7.0"
1740-
"@ethersproject/solidity" "^5.7.0"
1741-
jshashes "^1.0.8"
1742-
17431734
"@coinbase/[email protected]":
17441735
version "4.3.0"
17451736
resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.3.0.tgz#03b8fce92ac2b3b7cf132f64d6008ac081569b4e"
@@ -2312,71 +2303,71 @@
23122303
ethereum-cryptography "^2.0.0"
23132304
micro-ftch "^0.3.1"
23142305

2315-
"@ethersproject/bignumber@^5.7.0":
2316-
version "5.7.0"
2317-
resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2"
2318-
integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==
2306+
"@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.8.0":
2307+
version "5.8.0"
2308+
resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.8.0.tgz#c381d178f9eeb370923d389284efa19f69efa5d7"
2309+
integrity sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==
23192310
dependencies:
2320-
"@ethersproject/bytes" "^5.7.0"
2321-
"@ethersproject/logger" "^5.7.0"
2311+
"@ethersproject/bytes" "^5.8.0"
2312+
"@ethersproject/logger" "^5.8.0"
23222313
bn.js "^5.2.1"
23232314

2324-
"@ethersproject/bytes@^5.7.0":
2325-
version "5.7.0"
2326-
resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d"
2327-
integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==
2315+
"@ethersproject/bytes@^5.8.0":
2316+
version "5.8.0"
2317+
resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.8.0.tgz#9074820e1cac7507a34372cadeb035461463be34"
2318+
integrity sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==
23282319
dependencies:
2329-
"@ethersproject/logger" "^5.7.0"
2320+
"@ethersproject/logger" "^5.8.0"
23302321

2331-
"@ethersproject/constants@^5.7.0":
2332-
version "5.7.0"
2333-
resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e"
2334-
integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==
2322+
"@ethersproject/constants@^5.8.0":
2323+
version "5.8.0"
2324+
resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.8.0.tgz#12f31c2f4317b113a4c19de94e50933648c90704"
2325+
integrity sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==
23352326
dependencies:
2336-
"@ethersproject/bignumber" "^5.7.0"
2327+
"@ethersproject/bignumber" "^5.8.0"
23372328

2338-
"@ethersproject/keccak256@^5.7.0":
2339-
version "5.7.0"
2340-
resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a"
2341-
integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==
2329+
"@ethersproject/keccak256@^5.8.0":
2330+
version "5.8.0"
2331+
resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.8.0.tgz#d2123a379567faf2d75d2aaea074ffd4df349e6a"
2332+
integrity sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==
23422333
dependencies:
2343-
"@ethersproject/bytes" "^5.7.0"
2334+
"@ethersproject/bytes" "^5.8.0"
23442335
js-sha3 "0.8.0"
23452336

2346-
"@ethersproject/logger@^5.7.0":
2347-
version "5.7.0"
2348-
resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892"
2349-
integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==
2337+
"@ethersproject/logger@^5.8.0":
2338+
version "5.8.0"
2339+
resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.8.0.tgz#f0232968a4f87d29623a0481690a2732662713d6"
2340+
integrity sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==
23502341

2351-
"@ethersproject/sha2@^5.7.0":
2352-
version "5.7.0"
2353-
resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb"
2354-
integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==
2342+
"@ethersproject/sha2@^5.8.0":
2343+
version "5.8.0"
2344+
resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.8.0.tgz#8954a613bb78dac9b46829c0a95de561ef74e5e1"
2345+
integrity sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==
23552346
dependencies:
2356-
"@ethersproject/bytes" "^5.7.0"
2357-
"@ethersproject/logger" "^5.7.0"
2347+
"@ethersproject/bytes" "^5.8.0"
2348+
"@ethersproject/logger" "^5.8.0"
23582349
hash.js "1.1.7"
23592350

2360-
"@ethersproject/solidity@^5.7.0":
2361-
version "5.7.0"
2362-
resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8"
2363-
integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==
2351+
"@ethersproject/solidity@^5.5.0":
2352+
version "5.8.0"
2353+
resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.8.0.tgz#429bb9fcf5521307a9448d7358c26b93695379b9"
2354+
integrity sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==
23642355
dependencies:
2365-
"@ethersproject/bignumber" "^5.7.0"
2366-
"@ethersproject/bytes" "^5.7.0"
2367-
"@ethersproject/keccak256" "^5.7.0"
2368-
"@ethersproject/logger" "^5.7.0"
2369-
"@ethersproject/sha2" "^5.7.0"
2370-
"@ethersproject/strings" "^5.7.0"
2356+
"@ethersproject/bignumber" "^5.8.0"
2357+
"@ethersproject/bytes" "^5.8.0"
2358+
"@ethersproject/keccak256" "^5.8.0"
2359+
"@ethersproject/logger" "^5.8.0"
2360+
"@ethersproject/sha2" "^5.8.0"
2361+
"@ethersproject/strings" "^5.8.0"
23712362

2372-
"@ethersproject/strings@^5.7.0":
2373-
version "5.7.0"
2374-
resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2"
2375-
integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==
2363+
"@ethersproject/strings@^5.8.0":
2364+
version "5.8.0"
2365+
resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.8.0.tgz#ad79fafbf0bd272d9765603215ac74fd7953908f"
2366+
integrity sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==
23762367
dependencies:
2377-
"@ethersproject/bytes" "^5.7.0"
2378-
"@ethersproject/constants" "^5.7.0"
2379-
"@ethersproject/logger" "^5.7.0"
2368+
"@ethersproject/bytes" "^5.8.0"
2369+
"@ethersproject/constants" "^5.8.0"
2370+
"@ethersproject/logger" "^5.8.0"
23802371

23812372
"@floating-ui/core@^1.0.5":
23822373
version "1.1.0"
@@ -4610,6 +4601,19 @@
46104601
"@nodelib/fs.scandir" "2.1.5"
46114602
fastq "^1.6.0"
46124603

4604+
"@nouns/assets@^0.10.0":
4605+
version "0.10.0"
4606+
resolved "https://registry.yarnpkg.com/@nouns/assets/-/assets-0.10.0.tgz#31680f84f245cbfd6b4727c9990f5df1fe6245a1"
4607+
integrity sha512-M4d8akHjr77qc/OE9Mhbp/wioiRQ2hYlYKZfRmVSex6OW+R8LbToUDYHIGPPp11mapzJbBob5FuZ+fCFBiY2Qg==
4608+
dependencies:
4609+
"@ethersproject/bignumber" "^5.5.0"
4610+
"@ethersproject/solidity" "^5.5.0"
4611+
4612+
"@nouns/sdk@^1.2.0":
4613+
version "1.2.0"
4614+
resolved "https://registry.yarnpkg.com/@nouns/sdk/-/sdk-1.2.0.tgz#c1f9954c712552b3514d054f519d6c703dcd5571"
4615+
integrity sha512-8NTd86aB3aQ0Alc1Bi7SrFtTvIRltsLNBOyHxF/1Z+iEt5/SXECm//0PWJ1cQkdQ2CtqEVljw9w1/CivTfSewA==
4616+
46134617
"@opentelemetry/[email protected]", "@opentelemetry/api-logs@^0.49.1":
46144618
version "0.49.1"
46154619
resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.49.1.tgz#51a66ed5eb5eeeafffbd36c1713aa91cbfdd5259"
@@ -15207,11 +15211,6 @@ jsesc@~0.5.0:
1520715211
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
1520815212
integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
1520915213

15210-
jshashes@^1.0.8:
15211-
version "1.0.8"
15212-
resolved "https://registry.yarnpkg.com/jshashes/-/jshashes-1.0.8.tgz#f60d837428383abf73ab022e1542e6614bd75514"
15213-
integrity sha512-btmQZ/w1rj8Lb6nEwvhjM7nBYoj54yaEFo2PWh3RkxZ8qNwuvOxvQYN/JxVuwoMmdIluL+XwYVJ+pEEZoSYybQ==
15214-
1521515214
json-bigint@^1.0.0:
1521615215
version "1.0.0"
1521715216
resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1"

0 commit comments

Comments
 (0)