{"version":3,"sources":["ic/canisters_generated/profile/profile.did.js","ic/canisters_generated/wall/wall.did.js","ic/canisters_generated/profile/index.js","ic/actor.ts","ic/canisters_generated/wall/index.js","ic/identity.ts","ic/context.tsx","eth/connectors.ts","utils/index.ts","hooks/useENSName.ts","components/header/EthAccount.tsx","svg/dfinity.svg","components/header/ICLogin.tsx","components/header/ICPrincipal.tsx","store/profile.ts","svg/user-solid.svg","svg/brick-wall.svg","components/header/Username.tsx","svg/metamask.svg","components/Header.tsx","eth/hooks.ts","components/Spinner.tsx","store/wall.ts","components/wall/post/PostMeta.tsx","components/wall/post/index.tsx","components/wall/index.tsx","components/wall/SetUsername.tsx","components/wall/UserInfo.tsx","svg/github.svg","components/wall/WelcomeToast.tsx","components/wall/WritePost.tsx","store/index.ts","pages/UserWall.tsx","pages/Wall.tsx","index.tsx"],"names":["idlFactory","IDL","Profile","Record","Text","Service","Func","Principal","Opt","Vec","canisterId","options","agent","HttpAgent","agentOptions","Actor","createActor","actorOptions","process","PROFILE_CANISTER_ID","Post","Int","WALL_CANISTER_ID","_createActors","profile","wall","Wall","createActors","identity","host","createAnonymousActors","generateEd25519KeyIdentity","signature","hash","keccak256","Error","array","replace","match","map","hexNoPrefix","BigNumber","from","toNumber","length","uint8Array","Uint8Array","Ed25519KeyIdentity","generate","saveIdentity","account","localStorage","setItem","JSON","stringify","toJSON","ICContextDefaults","undefined","actors","principal","loadIdentity","setIdentity","clearActiveIdentity","ICContext","createContext","useICContextValues","useWeb3React","useState","_setIdentity","_setActors","_setPrincipal","React","useEffect","getOwnPrincipal","then","isAnonymous","useCallback","getItem","keyString","fromJSON","err","loadSavedIdentity","useInternetComputer","useContext","injected","InjectedConnector","supportedChainIds","isConnected","connector","isAddress","value","getAddress","shortenAddress","address","chars","parsed","substring","useENSName","library","loading","ENSName","setENSName","validated","stale","lookupAddress","name","catch","EthAccount","to","toLowerCase","className","style","width","height","_path","_path2","_path3","_defs","_excluded","_extends","Object","assign","target","i","arguments","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgDfinity","_ref","svgRef","title","titleId","props","xmlns","viewBox","fill","ref","id","d","fillRule","clipRule","x1","y1","x2","y2","gradientUnits","offset","stopColor","ForwardRef","ICLogin","ethError","error","ethAccount","ethConnector","ethLibrary","icIdentity","icSetIdentity","buttonClass","loginToInternetComputer","a","secret","loginMessage","hashMessage","getSigner","signMessage","toast","success","duration","icSaveIdentity","loginMessageHash","utils","linkAddress","onClick","ICPrincipal","toString","ProfileByPrincipal","atomFamily","default","params","ProfileByPrincipalQuery","selectorFamily","get","getProfileByPrincipal","response","PrincipalByEthQuery","ethAddress","getProfileByEth","getPrincipalByEth","SvgUserSolid","focusable","role","_metadata","_g","Username","UsernameInner","profileResult","useRecoilValue","Suspense","fallback","SvgBrickWall","preserveAspectRatio","transform","stroke","_style","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_path24","_path25","_path26","_path27","_path28","_path29","_path30","_path31","_path32","_path33","_path34","_path35","_path36","_path37","_path38","_path39","_path40","_path41","_path42","_path43","_path44","_path45","_path46","_path47","_path48","_path49","_path50","_path51","_path52","_path53","_path54","_path55","_path56","_path57","_path58","_path59","_path60","_path61","_path62","_path63","_path64","_path65","_path66","_path67","_path68","_path69","SvgMetamask","Header","ethActivate","activate","triedEager","active","tried","setTried","isAuthorized","useEagerConnect","activatingConnector","setActivatingConnector","activating","connected","connectDisabled","suppress","ethereum","window","on","handleConnect","console","log","handleChainChanged","chainId","handleAccountsChanged","accounts","handleNetworkChanged","networkId","removeListener","useInactiveListener","ethButtonClass","disabled","alert","Spinner","cx","cy","r","strokeWidth","WallRefreshTimestamp","atom","Date","now","WallPageQuery","arr","pageNumber","p","posts","concat","filter","page","userId","user_id","PostMeta","data","PostMetaInner","fromText","timestamp","parseInt","substr","fromNow","formatDistance","memo","text","Loading","WallPosts","hasMorePosts","setHasMorePosts","setPageNumber","useBottomScrollListener","n","debounce","setWall","wallRefreshTimestamp","wallLoadable","useRecoilValueLoadable","state","wl","contents","w","post","EmptyWallMessage","SetUsername","setProfileByPrincipal","useSetRecoilState","setName","setSuccess","setLoading","finished","setFinished","onSubmit","event","preventDefault","finally","type","autoComplete","placeholder","onChange","currentTarget","SetUsernameIfNone","SetUsernameIfNoneInner","UserInfoInner","UserInfo","SvgGithub","Toast","href","rel","WritePost","setPost","setWallRefreshTimestamp","write","WritePostIfUsername","WritePostIfUsernameInner","WelcomeToastShown","ic","userEthAccount","useParams","urlEthAccount","userPrincipal","loadPause","setLoadPause","useRecoilState","welcomeToastShown","setWelcomeToastShown","t","setTimeout","clearTimeout","isMyPage","position","reverseOrder","ICCtx","icContextValues","Provider","children","ReactDOM","render","StrictMode","getLibrary","provider","Web3Provider","pollingInterval","exact","path","document","getElementById"],"mappings":"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","file":"static/js/main.538c2003.chunk.js","sourcesContent":["export const idlFactory = ({ IDL }) => {\n const Profile = IDL.Record({\n 'name' : IDL.Text,\n 'description' : IDL.Text,\n 'address' : IDL.Text,\n });\n return IDL.Service({\n 'getOwnPrincipal' : IDL.Func([], [IDL.Principal], ['query']),\n 'getOwnProfile' : IDL.Func([], [Profile], ['query']),\n 'getPrincipalByEth' : IDL.Func(\n [IDL.Text],\n [IDL.Opt(IDL.Principal)],\n ['query'],\n ),\n 'getProfileByEth' : IDL.Func([IDL.Text], [IDL.Opt(Profile)], ['query']),\n 'getProfileByName' : IDL.Func([IDL.Text], [IDL.Opt(Profile)], ['query']),\n 'getProfileByPrincipal' : IDL.Func(\n [IDL.Principal],\n [IDL.Opt(Profile)],\n ['query'],\n ),\n 'linkAddress' : IDL.Func([IDL.Text, IDL.Text], [Profile], []),\n 'list' : IDL.Func([], [IDL.Vec(Profile)], ['query']),\n 'search' : IDL.Func([IDL.Text], [IDL.Opt(Profile)], ['query']),\n 'setDescription' : IDL.Func([IDL.Text], [Profile], []),\n 'setName' : IDL.Func([IDL.Text], [Profile], []),\n });\n};\nexport const init = ({ IDL }) => { return []; };\n","export const idlFactory = ({ IDL }) => {\n const Post = IDL.Record({\n 'id' : IDL.Int,\n 'text' : IDL.Text,\n 'user_id' : IDL.Text,\n 'timestamp' : IDL.Int,\n });\n return IDL.Service({\n 'wall' : IDL.Func([IDL.Text], [IDL.Vec(Post)], ['query']),\n 'write' : IDL.Func([IDL.Text], [], []),\n });\n};\nexport const init = ({ IDL }) => { return []; };\n","import { Actor, HttpAgent } from \"@dfinity/agent\";\n\n// Imports and re-exports candid interface\nimport { idlFactory } from './profile.did.js';\nexport { idlFactory } from './profile.did.js';\n// CANISTER_ID is replaced by webpack based on node environment\nexport const canisterId = process.env.PROFILE_CANISTER_ID;\n\n/**\n * \n * @param {string | import(\"@dfinity/principal\").Principal} canisterId Canister ID of Agent\n * @param {{agentOptions?: import(\"@dfinity/agent\").HttpAgentOptions; actorOptions?: import(\"@dfinity/agent\").ActorConfig}} [options]\n * @return {import(\"@dfinity/agent\").ActorSubclass}\n */\n export const createActor = (canisterId, options) => {\n const agent = new HttpAgent({ ...options?.agentOptions });\n \n // Fetch root key for certificate validation during development\n if(process.env.NODE_ENV !== \"production\") {\n agent.fetchRootKey().catch(err=>{\n console.warn(\"Unable to fetch root key. Check to ensure that your local replica is running\");\n console.error(err);\n });\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...options?.actorOptions,\n });\n};\n \n/**\n * A ready-to-use agent for the profile canister\n * @type {import(\"@dfinity/agent\").ActorSubclass}\n */\n export const profile = createActor(canisterId);\n","import * as Profile from \"@/ic/canisters_generated/profile\";\nimport * as Wall from \"@/ic/canisters_generated/wall\";\nimport {\n Actor,\n ActorConfig,\n HttpAgent,\n HttpAgentOptions,\n Identity,\n} from \"@dfinity/agent\";\n\nexport const createActor = (\n canisterId: string,\n options: {\n agentOptions?: HttpAgentOptions | undefined;\n actorOptions?: ActorConfig | undefined;\n },\n idlFactory: any\n) => {\n const agent = new HttpAgent({ ...options?.agentOptions });\n // Fetch root key for certificate validation during development\n\n if (process.env.NODE_ENV !== \"production\") {\n agent.fetchRootKey().catch((err) => {\n console.warn(\n \"Unable to fetch root key. Check to ensure that your local replica is running\"\n );\n console.error(err);\n });\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...options?.actorOptions,\n });\n};\n\nfunction _createActors(options: {\n agentOptions?: HttpAgentOptions | undefined;\n actorOptions?: ActorConfig | undefined;\n}) {\n if (\n !process.env.REACT_APP_PROFILE_CANISTER_ID ||\n !process.env.REACT_APP_WALL_CANISTER_ID\n ) {\n console.error(\"Canister ID environment variables not set\");\n return null;\n }\n\n return {\n profile: createActor(\n process.env.REACT_APP_PROFILE_CANISTER_ID,\n options,\n Profile.idlFactory\n ),\n wall: createActor(\n process.env.REACT_APP_WALL_CANISTER_ID,\n options,\n Wall.idlFactory\n ),\n };\n}\n\nexport function createActors(identity: Identity) {\n return _createActors({\n agentOptions: {\n host: process.env.REACT_APP_IC_HOST,\n identity,\n },\n });\n}\n\nexport function createAnonymousActors() {\n if (!process.env.REACT_APP_IC_HOST) {\n console.error(\"Environment variable REACT_APP_IC_HOST not set\");\n return null;\n }\n\n return _createActors({\n agentOptions: {\n host: process.env.REACT_APP_IC_HOST,\n },\n });\n}\n","import { Actor, HttpAgent } from \"@dfinity/agent\";\n\n// Imports and re-exports candid interface\nimport { idlFactory } from './wall.did.js';\nexport { idlFactory } from './wall.did.js';\n// CANISTER_ID is replaced by webpack based on node environment\nexport const canisterId = process.env.WALL_CANISTER_ID;\n\n/**\n * \n * @param {string | import(\"@dfinity/principal\").Principal} canisterId Canister ID of Agent\n * @param {{agentOptions?: import(\"@dfinity/agent\").HttpAgentOptions; actorOptions?: import(\"@dfinity/agent\").ActorConfig}} [options]\n * @return {import(\"@dfinity/agent\").ActorSubclass}\n */\n export const createActor = (canisterId, options) => {\n const agent = new HttpAgent({ ...options?.agentOptions });\n \n // Fetch root key for certificate validation during development\n if(process.env.NODE_ENV !== \"production\") {\n agent.fetchRootKey().catch(err=>{\n console.warn(\"Unable to fetch root key. Check to ensure that your local replica is running\");\n console.error(err);\n });\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...options?.actorOptions,\n });\n};\n \n/**\n * A ready-to-use agent for the wall canister\n * @type {import(\"@dfinity/agent\").ActorSubclass}\n */\n export const wall = createActor(canisterId);\n","import { Ed25519KeyIdentity } from \"@dfinity/identity\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { hashMessage } from \"ethers/lib/utils\";\n\nexport function generateLoginMessage(\n account: string | undefined,\n secret: string\n): string {\n return (\n \"SIGN THIS MESSAGE TO LOGIN TO THE INTERNET COMPUTER.\\n\\n\" +\n `APP NAME:\\n${process.env.REACT_APP_IC_APP_NAME}\\n\\n` +\n `ADDRESS:\\n${account}\\n\\n` +\n `HASH SECRET:\\n${hashMessage(secret)}`\n );\n}\n\nexport function generateEd25519KeyIdentity(signature: any): Ed25519KeyIdentity {\n const hash = keccak256(signature);\n if (hash === null) {\n throw new Error(\n \"No account is provided. Please provide an account to this application.\"\n );\n }\n\n // The following line converts the hash in hex to an array of 32 integers.\n // @ts-ignore\n const array = hash\n .replace(\"0x\", \"\")\n .match(/.{2}/g)\n .map((hexNoPrefix) => BigNumber.from(\"0x\" + hexNoPrefix).toNumber());\n\n if (array.length !== 32) {\n throw new Error(\n \"Hash of signature is not the correct size! Something went wrong!\"\n );\n }\n const uint8Array = Uint8Array.from(array);\n const identity = Ed25519KeyIdentity.generate(uint8Array);\n\n return identity;\n}\n\nexport function saveIdentity(account: string, identity: Ed25519KeyIdentity) {\n localStorage.setItem(`ic_key_${account}`, JSON.stringify(identity.toJSON()));\n}\n\nexport function loadSavedIdentity(account: string): Ed25519KeyIdentity | null {\n localStorage.getItem(`ic_key_${account}`);\n let keyString = localStorage.getItem(`ic_key_${account}`);\n if (keyString) {\n try {\n let key = Ed25519KeyIdentity.fromJSON(keyString);\n return key;\n } catch (err) {\n return null;\n }\n }\n return null;\n}\n","import { Ed25519KeyIdentity } from \"@dfinity/identity\";\nimport type { Principal } from \"@dfinity/principal\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport React, { createContext, useCallback, useContext, useState } from \"react\";\nimport { createActors, createAnonymousActors } from \"./actor\";\nimport { loadSavedIdentity } from \"./identity\";\n\nexport interface IC {\n identity: Ed25519KeyIdentity | undefined;\n actors: any | undefined;\n principal: Principal | undefined;\n loadIdentity: (account: string) => void;\n setIdentity: (Identity: Ed25519KeyIdentity) => void;\n clearActiveIdentity: () => void;\n}\n\nexport const ICContextDefaults: IC = {\n identity: undefined,\n actors: undefined,\n principal: undefined,\n loadIdentity: () => null,\n setIdentity: () => null,\n clearActiveIdentity: () => null,\n};\n\nexport const ICContext = createContext(ICContextDefaults);\n\nexport function useICContextValues(): IC {\n const { account } = useWeb3React();\n\n const [identity, _setIdentity] = useState(\n undefined\n );\n const [actors, _setActors] = useState(undefined);\n const [principal, _setPrincipal] = useState(undefined);\n\n React.useEffect(() => {\n if (!identity) return;\n _setActors(createActors(identity));\n }, [identity]);\n\n React.useEffect(() => {\n if (!actors) return;\n actors.profile.getOwnPrincipal().then((principal: Principal) => {\n if (!principal?.isAnonymous()) {\n _setPrincipal(principal);\n }\n });\n }, [actors]);\n\n React.useEffect(() => {\n _setActors(createAnonymousActors());\n }, []);\n\n const setIdentity = useCallback(\n (identity: Ed25519KeyIdentity) => {\n _setIdentity(identity);\n },\n [_setIdentity]\n );\n\n const clearActiveIdentity = useCallback(() => {\n _setIdentity(undefined);\n _setActors(createAnonymousActors());\n _setPrincipal(undefined);\n }, [_setIdentity, _setActors, _setPrincipal]);\n\n const loadIdentity = useCallback(\n (account: string) => {\n const identity = loadSavedIdentity(account);\n if (!identity) {\n clearActiveIdentity();\n return;\n }\n setIdentity(identity);\n },\n [setIdentity, clearActiveIdentity]\n );\n\n React.useEffect(() => {\n if (account) {\n loadIdentity(account);\n }\n }, [account, loadIdentity]);\n\n return {\n identity,\n actors,\n principal,\n loadIdentity,\n setIdentity,\n clearActiveIdentity,\n };\n}\n\nexport function useInternetComputer() {\n return useContext(ICContext);\n}\n","import { AbstractConnector } from \"@web3-react/abstract-connector/dist\";\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\n\nexport const injected = new InjectedConnector({\n supportedChainIds: [1], // Mainnet only\n});\n\nexport function isConnected(connector: AbstractConnector | undefined): boolean {\n return injected === connector;\n}\n","import { getAddress } from \"@ethersproject/address\";\n\n// returns the checksummed address if the address is valid, otherwise returns false\nexport function isAddress(value: any): string | false {\n try {\n return getAddress(value);\n } catch {\n return false;\n }\n}\n\n// shorten the checksummed version of the input address to have 0x + 4 characters at start and end\nexport function shortenAddress(address: string, chars = 4): string {\n const parsed = isAddress(address);\n if (!parsed) {\n throw Error(`Invalid 'address' parameter '${address}'.`);\n }\n return `${parsed.substring(0, chars + 2)}...${parsed.substring(42 - chars)}`;\n}\n","import { useWeb3React } from \"@web3-react/core\";\nimport { useEffect, useState } from \"react\";\nimport { isAddress } from \"../utils\";\n\n/**\n * Does a reverse lookup for an address to find its ENS name.\n * Note this is not the same as looking up an ENS name to find an address.\n */\nexport default function useENSName(address?: string): {\n ENSName: string | null;\n loading: boolean;\n} {\n const { library } = useWeb3React();\n\n const [ENSName, setENSName] = useState<{\n ENSName: string | null;\n loading: boolean;\n }>({\n loading: false,\n ENSName: null,\n });\n\n useEffect(() => {\n const validated = isAddress(address);\n if (!library || !validated) {\n setENSName({ loading: false, ENSName: null });\n return;\n } else {\n let stale = false;\n setENSName({ loading: true, ENSName: null });\n library\n .lookupAddress(validated)\n .then((name: any) => {\n if (!stale) {\n if (name) {\n setENSName({ loading: false, ENSName: name });\n } else {\n setENSName({ loading: false, ENSName: null });\n }\n }\n })\n .catch(() => {\n if (!stale) {\n setENSName({ loading: false, ENSName: null });\n }\n });\n\n return () => {\n stale = true;\n };\n }\n }, [library, address]);\n\n return ENSName;\n}\n","import { isConnected } from \"@/eth/connectors\";\nimport useENSName from \"@/hooks/useENSName\";\nimport { shortenAddress } from \"@/utils/index\";\nimport { Jazzicon } from \"@ukstv/jazzicon-react\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport { Link } from \"react-router-dom\";\n\nexport default function EthAccount() {\n const { connector, account } = useWeb3React();\n const { ENSName } = useENSName(account ?? undefined);\n\n if (isConnected(connector) && account)\n return (\n \n
\n \n \n
\n {ENSName || shortenAddress(account)}\n \n \n );\n\n return null;\n}\n","var _path, _path2, _path3, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDfinity(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 105 51\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.3872 0C72.6166 0 66.322 3.07561 59.6776 9.13894C56.5303 11.9949 53.7764 15.0705 51.7656 17.531C51.7656 17.531 55.0003 21.1777 58.5411 25.0882C60.4644 22.7155 63.2184 19.5081 66.4094 16.6083C72.3106 11.204 76.1572 10.1056 78.3872 10.1056C86.6922 10.1056 93.4242 16.9158 93.4242 25.3518C93.4242 33.6999 86.6922 40.5101 78.3872 40.598C77.9932 40.598 77.5122 40.5541 76.9442 40.4223C79.3482 41.5207 81.9712 42.3116 84.4192 42.3116C99.6312 42.3116 102.603 32.0302 102.778 31.2833C103.215 29.394 103.478 27.4168 103.478 25.3957C103.434 11.3797 92.2002 0 78.3872 0Z\",\n fill: \"url(#paint0_linear)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.2748 50.6597C31.0449 50.6597 37.3395 47.5841 43.9839 41.5208C47.1312 38.6648 49.8851 35.5892 51.8959 33.1287C51.8959 33.1287 48.6611 29.482 45.1204 25.5715C43.197 27.9442 40.4431 31.1516 37.2521 34.0514C31.3509 39.4118 27.4604 40.5541 25.2748 40.5541C16.9693 40.5541 10.2375 33.7439 10.2375 25.3079C10.2375 16.9598 16.9693 10.1496 25.2748 10.0617C25.6682 10.0617 26.149 10.1056 26.7173 10.2374C24.3131 9.13901 21.6903 8.34814 19.2424 8.34814C4.0303 8.34814 1.05779 18.6295 0.882994 19.3764C0.445894 21.2657 0.183594 23.2429 0.183594 25.264C0.183594 39.28 11.4178 50.6597 25.2748 50.6597Z\",\n fill: \"url(#paint1_linear)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36.8395 16.828C35.1784 15.2462 27.0478 8.78745 19.2669 8.56776C5.40078 8.22679 1.32468 18.0982 0.973247 19.3714C3.62924 8.3019 13.5296 0.0438149 25.2993 0C34.8943 0 44.5905 9.21291 51.7544 17.5275C51.7662 17.5135 51.7775 17.4999 51.7884 17.4868C51.7884 17.4868 55.0231 21.1336 58.5639 25.044C58.5639 25.044 62.5854 29.7014 66.8693 33.7875C68.5304 35.3693 76.6169 41.7402 84.3979 41.9599C98.6489 42.3553 102.583 31.9422 102.801 31.1513C100.179 42.2674 90.2559 50.5715 78.4529 50.6155C68.855 50.6155 59.1556 41.3965 51.9613 33.0797C51.9471 33.0967 51.9334 33.113 51.9204 33.1287C51.9204 33.1287 48.6857 29.4819 45.1449 25.5715C45.1449 25.5715 41.1234 20.9141 36.8395 16.828ZM0.951172 19.4642C0.9551 19.4418 0.962399 19.4107 0.973247 19.3714C0.965832 19.4023 0.958474 19.4333 0.951172 19.4642Z\",\n fill: \"#29ABE2\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: 65.227,\n y1: 3.66876,\n x2: 99.9492,\n y2: 39.4412,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#F15A24\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.6841,\n stopColor: \"#FBB03B\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear\",\n x1: 38.4063,\n y1: 46.9721,\n x2: 3.6839,\n y2: 11.1997,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#ED1E79\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.8929,\n stopColor: \"#522785\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDfinity);\nexport default __webpack_public_path__ + \"static/media/dfinity.c8606e30.svg\";\nexport { ForwardRef as ReactComponent };","import { isConnected } from \"@/eth/connectors\";\nimport { createActors } from \"@/ic/actor\";\nimport { useInternetComputer } from \"@/ic/context\";\nimport {\n generateEd25519KeyIdentity,\n generateLoginMessage,\n saveIdentity as icSaveIdentity,\n} from \"@/ic/identity\";\nimport { ReactComponent as DfinityIcon } from \"@/svg/dfinity.svg\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport { utils } from \"ethers\";\nimport toast from \"react-hot-toast\";\n\nexport default function ICLogin() {\n const {\n error: ethError,\n account: ethAccount,\n connector: ethConnector,\n library: ethLibrary,\n } = useWeb3React();\n\n const { identity: icIdentity, setIdentity: icSetIdentity } =\n useInternetComputer();\n\n let buttonClass =\n \"inline-block px-3 py-2 text-base font-semibold text-green-200 uppercase rounded-lg focus:outline-none \" +\n (ethError\n ? \"bg-red-700 hover:bg-red-500 text-white\"\n : \"bg-gradient-to-r from-green-400 to-blue-500 hover:from-green-500 hover:to-blue-600 text-green-900\");\n\n const loginToInternetComputer = async () => {\n // 1. Generate a login message to sign\n // 🔐 Currently doesn't let the user set a personal secret/pasword\n // for added security.\n const loginMessage = generateLoginMessage(ethAccount!, \"MUCH SECRET!\");\n\n // 2. Sign the message using Metamask\n const signature: any = await ethLibrary\n .getSigner()\n .signMessage(loginMessage);\n\n // 3. Generate Ed25519KeyIdentity based on signature\n const identity = generateEd25519KeyIdentity(signature);\n toast.success(\"Internet Computer Identity generated\", { duration: 4000 });\n\n // 4. Use the new identity when communicating with IC\n icSetIdentity(identity);\n\n // 5. Save login key to local storage to be reused next time user visits.\n // 🔐 Comment out to increase security and force user to sign login message\n // on each visit.\n icSaveIdentity(ethAccount!, identity);\n\n // 6. Create actors to interact with IC\n const actors = createActors(identity);\n\n if (!actors) {\n toast.error(\"Unable to interact with Dfinity\", { duration: 4000 });\n } else {\n // 7. Link current eth address to identity. The login message hash and\n // signature is sent to IC where the address is recovered.\n const loginMessageHash = utils.hashMessage(loginMessage);\n actors.profile.linkAddress(loginMessageHash, signature);\n toast.success(\"Linked eth address to Identity\", { duration: 4000 });\n }\n };\n\n return (\n <>\n {isConnected(ethConnector) && !ethError && !icIdentity && (\n \n )}\n \n );\n}\n","import { isConnected } from \"@/eth/connectors\";\nimport { useInternetComputer } from \"@/ic/context\";\nimport { ReactComponent as DfinityIcon } from \"@/svg/dfinity.svg\";\nimport { useWeb3React } from \"@web3-react/core\";\n\nexport default function ICPrincipal() {\n const { connector, error } = useWeb3React();\n const { principal } = useInternetComputer();\n\n if (isConnected(connector) && !error && principal)\n return (\n
\n \n {principal.toString().substring(0, 12)}...{\" \"}\n
\n );\n\n return null;\n}\n","import { createAnonymousActors } from \"@/ic/actor\";\nimport { Profile } from \"@/ic/canisters_generated/profile/profile.did\";\nimport { Principal } from \"@dfinity/principal\";\nimport { atomFamily, selectorFamily } from \"recoil\";\n\nexport const ProfileByPrincipal = atomFamily({\n key: \"ElementPosition\",\n default: (params: any) => ProfileByPrincipalQuery(params),\n});\n\nexport const ProfileByPrincipalQuery = selectorFamily({\n key: \"ProfileByPricipal\",\n get:\n (params: any) =>\n async ({ get }) => {\n if (!params?.principal) return;\n\n const actors = createAnonymousActors();\n if (!actors) return;\n\n const response: Array =\n (await actors.profile.getProfileByPrincipal(\n params.principal\n )) as Array;\n\n return response[0];\n },\n});\n\nexport const ProfileByEthQuery = selectorFamily({\n key: \"ProfileByEthQuery\",\n get:\n (params: any) =>\n async ({ get }) => {\n if (!params?.ethAddress) return;\n\n const actors = createAnonymousActors();\n if (!actors) return;\n\n const response: Array = (await actors.profile.getProfileByEth(\n params.ethAddress\n )) as Array;\n\n return response[0];\n },\n});\n\nexport const PrincipalByEthQuery = selectorFamily({\n key: \"PrincipalByEthQuery\",\n get:\n (ethAddress) =>\n async ({ get }) => {\n if (!ethAddress) return;\n\n const actors = createAnonymousActors();\n if (!actors) return;\n\n const response: Array =\n (await actors.profile.getPrincipalByEth(\n ethAddress\n )) as Array;\n\n return response[0];\n },\n});\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUserSolid(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fas\",\n \"data-icon\": \"user\",\n className: \"svg-inline--fa fa-user fa-w-14\",\n role: \"img\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 448 512\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUserSolid);\nexport default __webpack_public_path__ + \"static/media/user-solid.93b18c33.svg\";\nexport { ForwardRef as ReactComponent };","var _metadata, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBrickWall(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"1280.000000pt\",\n height: \"810.000000pt\",\n viewBox: \"0 0 1280.000000 810.000000\",\n preserveAspectRatio: \"xMidYMid meet\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _metadata || (_metadata = /*#__PURE__*/React.createElement(\"metadata\", null, \"\\nCreated by potrace 1.15, written by Peter Selinger 2001-2017\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.000000,810.000000) scale(0.100000,-0.100000)\",\n fill: \"#ffffff\",\n stroke: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 7655 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2330 7655 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4660 7655 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6990 7655 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9320 7655 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1330 6645 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3660 6645 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5990 6645 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8320 6645 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10650 6645 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 5635 l0 -445 1065 0 c586 0 1068 0 1073 0 4 0 8 200 10 445 l2 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2330 5630 l0 -450 1075 0 1075 0 0 450 0 450 -1075 0 -1075 0 0 -450z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4660 5633 l0 -448 1072 2 1073 3 3 445 2 445 -1075 0 -1075 0 0 -447z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6992 5635 l3 -445 1070 0 1070 0 3 445 2 445 -1075 0 -1075 0 2 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9320 5633 l0 -448 1072 2 1073 3 3 445 2 445 -1075 0 -1075 0 0 -447z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3330 4620 l0 -450 1075 0 1075 0 -2 448 -3 447 -1072 3 -1073 2 0 -450z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1000 4615 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5660 4615 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7990 4615 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10320 4615 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97 3923 c-4 -3 -7 -204 -7 -445 l0 -438 1078 0 1077 0 -3 445 -2 445 -1069 0 c-587 0 -1071 -3 -1074 -7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2422 3483 l3 -448 1073 -3 1072 -2 0 450 0 450 -1075 0 -1075 0 2 -447z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4757 3923 c-4 -3 -7 -204 -7 -445 l0 -438 1078 0 1077 0 -2 442 -3 443 -1068 3 c-588 1 -1072 -1 -1075 -5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7088 3923 c-1 -5 -2 -205 -3 -445 l0 -438 1073 0 1072 0 0 445 0 445 -1070 0 c-588 0 -1071 -3 -1072 -7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9417 3923 c-4 -3 -7 -204 -7 -445 l0 -438 1078 0 1077 0 -2 442 -3 443 -1068 3 c-588 1 -1072 -1 -1075 -5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1094 2905 c-2 -5 -3 -206 -2 -445 l3 -435 1073 -3 1072 -2 0 447 0 448 -1071 0 c-705 0 -1073 -3 -1075 -10z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3420 2470 l0 -450 1075 0 1075 0 0 450 0 450 -1075 0 -1075 0 0 -450z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5754 2905 c-2 -5 -3 -206 -2 -445 l3 -435 1073 -3 1072 -2 0 447 0 448 -1071 0 c-705 0 -1073 -3 -1075 -10z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8084 2905 c-2 -5 -3 -206 -2 -445 l3 -435 1073 -3 1072 -2 0 447 0 448 -1071 0 c-705 0 -1073 -3 -1075 -10z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10414 2905 c-2 -5 -3 -206 -2 -445 l3 -435 1073 -3 1072 -2 0 447 0 448 -1071 0 c-705 0 -1073 -3 -1075 -10z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2090 1455 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4420 1455 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6750 1455 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9080 1455 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1090 445 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3420 445 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5750 445 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8080 445 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10410 445 l0 -445 1075 0 1075 0 0 445 0 445 -1075 0 -1075 0 0 -445z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBrickWall);\nexport default __webpack_public_path__ + \"static/media/brick-wall.4b6a7db9.svg\";\nexport { ForwardRef as ReactComponent };","import { isConnected } from \"@/eth/connectors\";\nimport { Profile } from \"@/ic/canisters_generated/profile/profile.did\";\nimport { useInternetComputer } from \"@/ic/context\";\nimport { ProfileByPrincipal } from \"@/store/profile\";\nimport { ReactComponent as UserIcon } from \"@/svg/user-solid.svg\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useRecoilValue } from \"recoil\";\n\nexport default function Username() {\n const { connector, error } = useWeb3React();\n const { principal } = useInternetComputer();\n\n const UsernameInner = () => {\n const profileResult = useRecoilValue(\n ProfileByPrincipal({ principal })\n ) as Profile;\n if (profileResult?.name.length > 0)\n return (\n \n
\n \n {profileResult.name}\n
\n \n );\n return null;\n };\n\n if (isConnected(connector) && !error && principal)\n return (\n \n \n \n );\n\n return null;\n}\n","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68, _path69;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMetamask(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 404 420.2\",\n width: 2404,\n height: 2500,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".st0{fill:#e4761b;stroke:#e4761b}.st1{fill:#f6851b;stroke:#f6851b}.st2{fill:#763d16;stroke:#763d16}.st3{fill:#e2761b;stroke:#e2761b}.st4{fill:#c0ad9e;stroke:#c0ad9e}.st5{fill:#cd6116;stroke:#cd6116}.st6{fill:#e4751f;stroke:#e4751f}.st7{fill:#233447;stroke:#233447}.st8{fill:#d7c1b3;stroke:#d7c1b3}.st9{fill:#161616;stroke:#161616}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M382.9 290.9l-24.4 82.5-47.9-13.1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M310.6 360.3l46.2-63.3 26.1-6.1z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M347 228.7l35.9 62.2-26.1 6.1zM347 228.7l23.1-16 12.8 78.2z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M317.6 181.7l66.4-27.2-3.3 14.9zM378.6 187.3l-61-5.6 63.1-12.3z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M378.6 187.3l-8.5 25.4-52.5-31zM391.9 160.8l-11.2 8.6 3.3-14.9zM378.6 187.3l2.1-17.9 8.9 7.4z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M259.1 340.2l16.6 5.3 34.9 14.8z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M370.1 212.7l8.5-25.4 7.3 5.6zM370.1 212.7L301.2 190l16.4-8.3z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M334 103.8l-16.4 77.9-16.4 8.3z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M384 154.5l-66.4 27.2 16.4-77.9z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M334 103.8l69.3-8-19.3 58.7z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M370.1 212.7l-23.1 16-45.8-38.7z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M400.3 39.7l3 56.1-69.3 8z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M400.3 39.7L261.8 140.4 260 72.1z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M157 63.9l103 8.2 1.8 68.3z\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M301.2 190l-39.4-49.6 72.2-36.6z\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M301.2 190l45.8 38.7-64.3 7.1z\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M282.7 235.8l-20.9-95.4 39.4 49.6z\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M334 103.8l-72.2 36.6L400.3 39.7z\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M157.9 358.7l32.7 34.1-44.5-40.5z\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M310.6 360.3l15.5-58.9 30.7-4.4z\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M25.3 194.6l56.6-59.5-49.3 52.4z\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M356.8 297l-30.7 4.4 20.9-72.7zM261.8 140.4l-55.1-1.8L157 63.9z\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M347 228.7l-20.9 72.7-1.7-35.5z\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M282.7 235.8l64.3-7.1-22.6 37.2z\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M206.7 138.6l55.1 1.8 20.9 95.4z\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M206.7 138.6L58 1l99 62.9zM156.9 379.6l-129.2 40-25.8-98.5z\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M44.5 219.2l48.8-38.3 40.9 9.5z\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M134.2 190.4l-40.9-9.5 21.9-90.4z\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M32.6 187.5l60.7-6.6-48.8 38.3z\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M324.4 265.9l-25.2-12.7-16.5-17.4z\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M32.6 187.5l-4.3-22.7 65 16.1z\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M294 281.8l5.2-28.6 25.2 12.7z\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M326.1 301.4L294 281.8l30.4-15.9z\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M93.3 180.9l-65-16.1-5.3-19.1zM115.2 90.5l-21.9 90.4L23 145.7zM115.2 90.5l91.5 48.1-72.5 51.8z\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M134.2 190.4l72.5-51.8 32.3 98.7zM239 237.3l-100.2-2.1-4.6-44.8z\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M44.5 219.2l89.7-28.8 4.6 44.8zM282.7 235.8l-43.7 1.5-32.3-98.7z\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M299.2 253.2l-5.2 28.6-11.3-46z\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M58 1l148.7 137.6-91.5-48.1z\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M1.9 321.1l125.4-5.2 29.6 63.7z\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M156.9 379.6l-29.6-63.7 61.6-3z\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M294 281.8l32.1 19.6 17.7 41.7zM138.8 235.2L1.9 321.1l42.6-101.9zM127.3 315.9L1.9 321.1l136.9-85.9zM282.7 235.8l8.2 29.8-39.6 2.3zM251.3 267.9L239 237.3l43.7-1.5z\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M190.6 392.8l-33.7-13.2 117.2 19.7z\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M44.5 219.2l-19.2-24.6 7.3-7.1z\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st8\",\n d: \"M287.4 384.7l-13.3 14.6-117.2-19.7z\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M293.7 348.9l-136.8 30.7 32-66.7z\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st8\",\n d: \"M156.9 379.6l136.8-30.7-6.3 35.8z\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M23 145.7l-4.5-76.9 96.7 21.7zM32.6 187.5L19.3 174l9-9.2z\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M216.6 257.1l22.4-19.8-3.2 48.4z\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M239 237.3l-22.4 19.8L184 274z\"\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M343.8 343.1l-6.1-4.5-43.7-56.8z\"\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st5\",\n d: \"M184 274l-45.2-38.8 100.2 2.1z\"\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M235.8 285.7l3.2-48.4 12.3 30.6z\"\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M14.9 153.3l8.1-7.6 5.3 19.1z\"\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st7\",\n d: \"M235.8 285.7L184 274l32.6-16.9z\"\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M115.2 90.5L18.5 68.8 58 1z\"\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M274.1 399.3l5.5 15-89-21.5z\"\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M188.9 312.9L184 274l51.8 11.7z\"\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M138.8 235.2L184 274l4.9 38.9z\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M251.3 267.9l39.6-2.3 46.8 73zM138.8 235.2l50.1 77.7-61.6 3z\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st6\",\n d: \"M251.3 267.9l49.2 74.9-64.7-57.1z\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M235.8 285.7l64.7 57.1-6.8 6.1z\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M293.7 348.9l-104.8-36 46.9-27.2zM337.7 338.6l-37.2 4.2-49.2-74.9z\"\n })), _path63 || (_path63 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M347.5 373.8l-16 32.1-51.9 8.4zM279.6 414.3l-5.5-15 13.3-14.6z\"\n })), _path64 || (_path64 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M287.4 384.7l9.8-3.9-17.6 33.5zM279.6 414.3l17.6-33.5 50.3-7z\"\n })), _path65 || (_path65 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st9\",\n d: \"M337.7 338.6l12.3 7.5-37.4 4.5z\"\n })), _path66 || (_path66 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st9\",\n d: \"M312.6 350.6l-12.1-7.8 37.2-4.2zM308.3 356.5l45.5-5.5-6.3 22.8z\"\n })), _path67 || (_path67 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st9\",\n d: \"M347.5 373.8l-50.3 7 11.1-24.3zM297.2 380.8l-9.8 3.9 6.3-35.8zM293.7 348.9l6.8-6.1 12.1 7.8zM350 346.1l3.8 4.9-45.5 5.5z\"\n })), _path68 || (_path68 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st9\",\n d: \"M308.3 356.5l4.3-5.9 37.4-4.5zM293.7 348.9l14.6 7.6-11.1 24.3z\"\n })), _path69 || (_path69 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st9\",\n d: \"M312.6 350.6l-4.3 5.9-14.6-7.6z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMetamask);\nexport default __webpack_public_path__ + \"static/media/metamask.4368e45a.svg\";\nexport { ForwardRef as ReactComponent };","import EthAccount from \"@/components/header/EthAccount\";\nimport ICLogin from \"@/components/header/ICLogin\";\nimport ICPrincipal from \"@/components/header/ICPrincipal\";\nimport UserName from \"@/components/header/Username\";\nimport { injected } from \"@/eth/connectors\";\nimport { useEagerConnect, useInactiveListener } from \"@/eth/hooks\";\nimport { ReactComponent as BrickwallIcon } from \"@/svg/brick-wall.svg\";\nimport { ReactComponent as MetamaskIcon } from \"@/svg/metamask.svg\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport default function Header() {\n const {\n error: ethError,\n connector: ethConnector,\n activate: ethActivate,\n } = useWeb3React();\n\n // Attempt to activate pre-existing connection\n const triedEager = useEagerConnect();\n\n // Marks which ethConnector is being activated\n const [activatingConnector, setActivatingConnector] = React.useState<\n InjectedConnector | undefined\n >(undefined);\n\n const activating = injected === activatingConnector;\n const connected = injected === ethConnector;\n const connectDisabled = !triedEager || activating || connected || !!ethError;\n\n // Listen to and react to network events\n useInactiveListener(!triedEager || !!activatingConnector);\n\n // handle logic to recognize the ethConnector currently being activated\n React.useEffect(() => {\n if (activatingConnector && activatingConnector === ethConnector) {\n setActivatingConnector(undefined);\n }\n }, [activatingConnector, ethConnector]);\n\n let ethButtonClass =\n \"inline-block px-3 py-2 text-base font-semibold uppercase rounded-lg focus:outline-none \" +\n (ethError\n ? \"bg-red-700 hover:bg-red-700 text-white\"\n : \"bg-gradient-to-r from-green-400 to-blue-500 hover:from-green-500 hover:to-blue-600 text-green-900\");\n\n return (\n \n );\n}\n","import { useWeb3React } from \"@web3-react/core\";\nimport { useEffect, useState } from \"react\";\nimport { injected } from \"./connectors\";\n\nexport function useEagerConnect() {\n const { activate, active } = useWeb3React();\n const [tried, setTried] = useState(false);\n\n useEffect(() => {\n injected.isAuthorized().then((isAuthorized: boolean) => {\n if (isAuthorized) {\n activate(injected, undefined, true).catch(() => {\n setTried(true);\n });\n } else {\n setTried(true);\n }\n });\n }, []); // intentionally only running on mount (make sure it's only mounted once :))\n\n // if the connection worked, wait until we get confirmation of that to flip the flag\n useEffect(() => {\n if (!tried && active) {\n setTried(true);\n }\n }, [tried, active]);\n\n return tried;\n}\n\nexport function useInactiveListener(suppress: boolean = false) {\n const { active, error, activate } = useWeb3React();\n\n useEffect((): any => {\n const { ethereum } = window as any;\n if (ethereum && ethereum.on && !active && !error && !suppress) {\n const handleConnect = () => {\n console.log(\"Handling 'connect' event\");\n activate(injected);\n };\n const handleChainChanged = (chainId: string | number) => {\n console.log(\"Handling 'chainChanged' event with payload\", chainId);\n activate(injected);\n };\n const handleAccountsChanged = (accounts: string[]) => {\n console.log(\"Handling 'accountsChanged' event with payload\", accounts);\n if (accounts.length > 0) {\n activate(injected);\n }\n };\n const handleNetworkChanged = (networkId: string | number) => {\n console.log(\"Handling 'networkChanged' event with payload\", networkId);\n activate(injected);\n };\n\n ethereum.on(\"connect\", handleConnect);\n ethereum.on(\"chainChanged\", handleChainChanged);\n ethereum.on(\"accountsChanged\", handleAccountsChanged);\n ethereum.on(\"networkChanged\", handleNetworkChanged);\n\n return () => {\n if (ethereum.removeListener) {\n ethereum.removeListener(\"connect\", handleConnect);\n ethereum.removeListener(\"chainChanged\", handleChainChanged);\n ethereum.removeListener(\"accountsChanged\", handleAccountsChanged);\n ethereum.removeListener(\"networkChanged\", handleNetworkChanged);\n }\n };\n }\n }, [active, error, suppress, activate]);\n}\n","export default function Spinner() {\n return (\n \n \n \n \n );\n}\n","import { createAnonymousActors } from \"@/ic/actor\";\nimport { Post as PostInterface } from \"@/ic/canisters_generated/wall/wall.did\";\nimport { atom, selectorFamily } from \"recoil\";\n\nconst PAGESIZE = 25;\n\nexport const WallCurrentShowing = atom({\n key: \"WallCurrentShowing\",\n default: [],\n});\n\nexport const WallRefreshTimestamp = atom({\n key: \"WallRefreshTimestamp\",\n default: Date.now(),\n});\n\nexport const WallTheWholeThing = selectorFamily({\n key: \"WallTheWholeThing\",\n get:\n (params: any) =>\n async ({ get }) => {\n let arr = [] as any;\n for (let i = 0; i < params.pageNumber; i++) {\n let p = { ...params, pageNumber: i + 1 };\n const posts = await get(WallPageQuery(p));\n arr = arr.concat(posts);\n }\n return arr;\n },\n});\n\nexport const WallNoMorePosts = selectorFamily({\n key: \"WallNoMorePosts\",\n get:\n (params: any) =>\n async ({ get }) => {\n const wall = await get(WallPageQuery(params));\n if (!wall) return true;\n return wall.length < PAGESIZE ? true : false;\n },\n});\n\nexport const WallPageQuery = selectorFamily({\n key: \"WallQuery\",\n get:\n (params: any) =>\n async ({ get }) => {\n if (!params) return;\n\n const actors = createAnonymousActors();\n if (!actors) return;\n\n let filter = { page: params.pageNumber } as any;\n if (params.userId) filter.user_id = params.userId.toString();\n try {\n const response: Array = (await actors.wall.wall(\n JSON.stringify(filter)\n )) as Array;\n return response;\n } catch (err) {\n console.error(err);\n return [];\n }\n },\n});\n","import useENSName from \"@/hooks/useENSName\";\nimport { Post } from \"@/ic/canisters_generated/wall/wall.did\";\nimport { ProfileByPrincipal } from \"@/store/profile\";\nimport { ReactComponent as UserIcon } from \"@/svg/user-solid.svg\";\nimport { shortenAddress } from \"@/utils/index\";\nimport { Principal } from \"@dfinity/principal\";\nimport { Jazzicon } from \"@ukstv/jazzicon-react\";\nimport formatDistance from \"date-fns/formatDistance\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useRecoilValue } from \"recoil\";\n\ninterface Props {\n data: Post;\n}\n\nexport const PostMeta = ({ data }: Props) => {\n const PostMetaInner = ({ data }: Props) => {\n const profile = useRecoilValue(\n ProfileByPrincipal({ principal: Principal.fromText(data.user_id) })\n );\n const { ENSName } = useENSName(profile?.address ?? undefined);\n\n if (profile) {\n const timestamp = parseInt(data.timestamp.toString().substr(0, 13));\n const fromNow = formatDistance(timestamp, Date.now());\n\n return (\n
\n \n {profile.name}\n
, {fromNow} ago
\n \n \n \n
\n {ENSName || shortenAddress(profile.address)}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n \n \n );\n};\n\nexport default PostMeta;\n","import { Post as PostInterface } from \"@/ic/canisters_generated/wall/wall.did\";\nimport Linkify from \"linkify-react\";\nimport { memo } from \"react\";\nimport PostMeta from \"./PostMeta\";\n\ninterface Props {\n data: PostInterface;\n}\n\nexport const Post = memo(({ data }: Props) => {\n return (\n
\n
\n \n {data.text}\n \n
\n \n
\n );\n});\n\nexport default Post;\n","import Spinner from \"@/components/Spinner\";\nimport { Post as PostInterface } from \"@/ic/canisters_generated/wall/wall.did\";\nimport { WallPageQuery, WallRefreshTimestamp } from \"@/store/wall\";\nimport { Principal } from \"@dfinity/principal\";\nimport React from \"react\";\nimport { useBottomScrollListener } from \"react-bottom-scroll-listener\";\nimport { useRecoilValue, useRecoilValueLoadable } from \"recoil\";\nimport Post from \"./post\";\n\ninterface Props {\n userId?: Principal;\n}\n\nconst Loading = () => {\n return (\n
\n \n
\n );\n};\n\nexport const WallPosts = ({ userId }: Props) => {\n const [hasMorePosts, setHasMorePosts] = React.useState(true);\n\n const [pageNumber, setPageNumber] = React.useState(1);\n const nextPage = () => {\n hasMorePosts && setPageNumber((n) => n + 1);\n };\n useBottomScrollListener(nextPage, { debounce: 2000 });\n\n const [wall, setWall] = React.useState>([]);\n const wallRefreshTimestamp = useRecoilValue(WallRefreshTimestamp);\n React.useEffect(() => {\n setWall([]);\n setPageNumber(1);\n setHasMorePosts(true);\n }, [wallRefreshTimestamp]);\n\n const wallLoadable = useRecoilValueLoadable(\n WallPageQuery({ pageNumber, userId, wallRefreshTimestamp })\n );\n\n React.useEffect(() => {\n if (wallLoadable.state === \"hasValue\") {\n const wl = wallLoadable.contents as Array;\n if (wl.length > 0) {\n setWall((w) => [...w, ...wl]);\n } else {\n setHasMorePosts(false);\n }\n }\n }, [wallLoadable]);\n\n return (\n <>\n {wall.map((post) => (\n \n ))}\n {wallLoadable.state === \"loading\" && }\n \n );\n};\n\nexport const EmptyWallMessage = ({ userId }: Props) => {\n const wallRefreshTimestamp = useRecoilValue(WallRefreshTimestamp);\n\n const wall = useRecoilValue(\n WallPageQuery({ pageNumber: 1, userId, wallRefreshTimestamp })\n ) as Array;\n if (wall && wall.length === 0)\n return (\n
\n The wall is empty, start filling it!\n
\n );\n return null;\n};\n","import Spinner from \"@/components/Spinner\";\nimport { isConnected } from \"@/eth/connectors\";\nimport { Profile } from \"@/ic/canisters_generated/profile/profile.did\";\nimport { useInternetComputer } from \"@/ic/context\";\nimport { ProfileByPrincipal } from \"@/store/profile\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport React from \"react\";\nimport { useRecoilValue, useSetRecoilState } from \"recoil\";\n\nexport function SetUsername() {\n const { actors, principal } = useInternetComputer();\n const setProfileByPrincipal = useSetRecoilState(\n ProfileByPrincipal({ principal })\n );\n const [name, setName] = React.useState(\"\");\n const [success, setSuccess] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [finished, setFinished] = React.useState(false);\n\n const handleNameChange = (event: React.FormEvent) => {\n if (event.currentTarget.value.length > 25) return;\n setName(event.currentTarget.value);\n };\n\n const handleSubmit = (event: React.FormEvent) => {\n event.preventDefault();\n if (finished) return;\n if (name.length === 0) return;\n setLoading(true);\n actors.profile\n .setName(name)\n .then((profile: Profile) => {\n setSuccess(true);\n setProfileByPrincipal(profile);\n })\n .catch((error: any) => {\n console.log(error);\n setSuccess(false);\n })\n .finally(() => {\n setLoading(false);\n setFinished(true);\n });\n };\n\n return (\n
\n
Set a username before writing on the wall.
\n
\n
\n \n \n {loading ? (\n <>\n \n Saving\n \n ) : finished ? (\n success ? (\n \"👍👍👍\"\n ) : (\n 🤖 Error\n )\n ) : (\n \"Save\"\n )}\n \n \n
\n
\n );\n}\n\nexport function SetUsernameIfNone() {\n const { connector, error } = useWeb3React();\n const { principal } = useInternetComputer();\n\n const SetUsernameIfNoneInner = () => {\n const profile = useRecoilValue(\n ProfileByPrincipal({ principal })\n ) as Profile;\n if (profile?.name.length === 0) return ;\n return null;\n };\n\n if (isConnected(connector) && !error && principal)\n return (\n \n \n \n );\n return null;\n}\n","import useENSName from \"@/hooks/useENSName\";\nimport { ProfileByPrincipal } from \"@/store/profile\";\nimport { ReactComponent as UserIcon } from \"@/svg/user-solid.svg\";\nimport { shortenAddress } from \"@/utils/index\";\nimport { Principal } from \"@dfinity/principal\";\nimport React from \"react\";\nimport { useRecoilValue } from \"recoil\";\n\ninterface Props {\n principal: Principal;\n}\n\nconst UserInfoInner = ({ principal }: Props) => {\n const profile = useRecoilValue(ProfileByPrincipal({ principal }));\n const { ENSName } = useENSName(profile?.address ?? undefined);\n\n if (profile?.name)\n return (\n
\n \n
{profile.name}
\n
\n ETH: {ENSName || shortenAddress(profile.address)}\n
\n
IC: {principal.toString()}
\n
\n );\n\n return null;\n};\n\nexport default function UserInfo({ principal }: Props) {\n return (\n \n \n \n );\n}\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGithub(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-4.466 19.59c-.405.078-.534-.171-.534-.384v-2.195c0-.747-.262-1.233-.55-1.481 1.782-.198 3.654-.875 3.654-3.947 0-.874-.312-1.588-.823-2.147.082-.202.356-1.016-.079-2.117 0 0-.671-.215-2.198.82-.64-.18-1.324-.267-2.004-.271-.68.003-1.364.091-2.003.269-1.528-1.035-2.2-.82-2.2-.82-.434 1.102-.16 1.915-.077 2.118-.512.56-.824 1.273-.824 2.147 0 3.064 1.867 3.751 3.645 3.954-.229.2-.436.552-.508 1.07-.457.204-1.614.557-2.328-.666 0 0-.423-.768-1.227-.825 0 0-.78-.01-.055.487 0 0 .525.246.889 1.17 0 0 .463 1.428 2.688.944v1.489c0 .211-.129.459-.528.385-3.18-1.057-5.472-4.056-5.472-7.59 0-4.419 3.582-8 8-8s8 3.581 8 8c0 3.533-2.289 6.531-5.466 7.59z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGithub);\nexport default __webpack_public_path__ + \"static/media/github.197212f0.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as GitHub } from \"@/svg/github.svg\";\n\nexport default function Toast() {\n return (\n
\n The Wall is a crossover Ethereum/Internet Computer demo app. Use\n Metamask to login to Internet Computer. Then, write on the wall!\n
\n \n\n \n kristoferlund/ic-wall\n \n
\n
\n );\n}\n","import Spinner from \"@/components/Spinner\";\nimport { isConnected } from \"@/eth/connectors\";\nimport { Profile } from \"@/ic/canisters_generated/profile/profile.did\";\nimport { useInternetComputer } from \"@/ic/context\";\nimport { ProfileByPrincipal } from \"@/store/profile\";\nimport { WallRefreshTimestamp } from \"@/store/wall\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport React from \"react\";\nimport { useRecoilValue, useSetRecoilState } from \"recoil\";\n\nexport function WritePost() {\n const { actors } = useInternetComputer();\n\n const [post, setPost] = React.useState(\"\");\n const [success, setSuccess] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [finished, setFinished] = React.useState(false);\n\n const setWallRefreshTimestamp = useSetRecoilState(WallRefreshTimestamp);\n\n const handlePostChange = (event: React.FormEvent) => {\n if (event.currentTarget.value.length > 255) return;\n setPost(event.currentTarget.value);\n };\n\n const resetForm = () => {\n setPost(\"\");\n setSuccess(false);\n setLoading(false);\n setFinished(false);\n };\n\n const handleSubmit = (event: React.FormEvent) => {\n event.preventDefault();\n if (finished) return;\n if (post.length === 0) return;\n setLoading(true);\n actors.wall\n .write(post)\n .then(() => {\n setWallRefreshTimestamp(Date.now());\n setSuccess(true);\n })\n .catch((error: any) => {\n console.error(error);\n setSuccess(false);\n })\n .finally(() => {\n resetForm();\n });\n };\n\n return (\n
\n
\n \n \n {loading ? (\n <>\n \n Writing\n \n ) : finished ? (\n success ? (\n \"👍👍👍\"\n ) : (\n 🤖 Error\n )\n ) : (\n \"Save\"\n )}\n \n \n
\n );\n}\n\nexport function WritePostIfUsername() {\n const { connector, error } = useWeb3React();\n const { principal } = useInternetComputer();\n\n const WritePostIfUsernameInner = () => {\n const profile = useRecoilValue(\n ProfileByPrincipal({ principal })\n ) as Profile;\n if (profile?.name.length > 0) return ;\n return null;\n };\n\n if (isConnected(connector) && !error && principal)\n return (\n \n \n \n );\n return null;\n}\n","import { atom } from \"recoil\";\n\nexport const WelcomeToastShown = atom({\n key: \"WelcomeToastShown\",\n default: false,\n});\n","import Spinner from \"@/components/Spinner\";\nimport { EmptyWallMessage, WallPosts } from \"@/components/wall\";\nimport { SetUsernameIfNone } from \"@/components/wall/SetUsername\";\nimport UserInfo from \"@/components/wall/UserInfo\";\nimport WelcomeToast from \"@/components/wall/WelcomeToast\";\nimport { WritePostIfUsername } from \"@/components/wall/WritePost\";\nimport { isConnected } from \"@/eth/connectors\";\nimport { useInternetComputer } from \"@/ic/context\";\nimport { WelcomeToastShown } from \"@/store/index\";\nimport { PrincipalByEthQuery } from \"@/store/profile\";\nimport { ReactComponent as DfinityIcon } from \"@/svg/dfinity.svg\";\nimport { ReactComponent as MetamaskIcon } from \"@/svg/metamask.svg\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport React from \"react\";\nimport toast, { Toaster } from \"react-hot-toast\";\nimport { useParams } from \"react-router-dom\";\nimport { useRecoilState, useRecoilValue } from \"recoil\";\n\nconst Loading = () => {\n return (\n
\n \n
\n );\n};\n\nexport default function Wall() {\n const ic = useInternetComputer();\n const { connector, account } = useWeb3React();\n\n const userEthAccount = (useParams() as any).urlEthAccount as string;\n const userPrincipal = useRecoilValue(PrincipalByEthQuery(userEthAccount));\n\n const [loadPause, setLoadPause] = React.useState(true);\n\n const [welcomeToastShown, setWelcomeToastShown] =\n useRecoilState(WelcomeToastShown);\n\n React.useEffect(() => {\n const t = setTimeout(() => {\n setLoadPause(false);\n }, 1000);\n return () => {\n clearTimeout(t);\n };\n }, []);\n\n React.useEffect(() => {\n if (!welcomeToastShown) {\n toast(, {\n duration: 20000,\n });\n setWelcomeToastShown(true);\n }\n }, [welcomeToastShown, setWelcomeToastShown]);\n\n const isMyPage = () =>\n account?.toLowerCase() === userEthAccount.toLowerCase();\n\n return (\n <>\n {\" \"}\n
\n
\n {!loadPause && (\n
\n {/* SET USERNAME */}\n {isMyPage() && }\n\n {/* CONNECT METAMASK */}\n {connector && ic.principal && !isConnected(connector) && (\n
\n Connect\n \n and login to\n \n to write on the wall!\n
\n )}\n\n {/* LOGIN TO DFINITY */}\n {connector && !ic.principal && isConnected(connector) && (\n
\n Login to\n \n to write on the wall!\n
\n )}\n\n {/* USERINFO */}\n {userPrincipal && }\n\n {/* WRITE A POST */}\n {isMyPage() && }\n\n {/* THE WALL! */}\n {userPrincipal && (\n }>\n \n \n )}\n\n {/* EMPTY WALL MESSAGE */}\n {userPrincipal && (\n \n \n \n )}\n
\n )}\n {/* LOADER */}\n {loadPause && }\n
\n
\n \n );\n}\n","import Spinner from \"@/components/Spinner\";\nimport { EmptyWallMessage, WallPosts } from \"@/components/wall\";\nimport { SetUsernameIfNone } from \"@/components/wall/SetUsername\";\nimport WelcomeToast from \"@/components/wall/WelcomeToast\";\nimport { WritePostIfUsername } from \"@/components/wall/WritePost\";\nimport { isConnected } from \"@/eth/connectors\";\nimport { useInternetComputer } from \"@/ic/context\";\nimport { WelcomeToastShown } from \"@/store/index\";\nimport { ReactComponent as DfinityIcon } from \"@/svg/dfinity.svg\";\nimport { ReactComponent as MetamaskIcon } from \"@/svg/metamask.svg\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport React from \"react\";\nimport toast, { Toaster } from \"react-hot-toast\";\nimport { useRecoilState } from \"recoil\";\n\nconst Loading = () => {\n return (\n
\n \n
\n );\n};\n\nexport default function Wall() {\n const ic = useInternetComputer();\n const { connector } = useWeb3React();\n\n const [loadPause, setLoadPause] = React.useState(true);\n\n const [welcomeToastShown, setWelcomeToastShown] =\n useRecoilState(WelcomeToastShown);\n\n React.useEffect(() => {\n const t = setTimeout(() => {\n setLoadPause(false);\n }, 1000);\n return () => {\n clearTimeout(t);\n };\n }, []);\n\n React.useEffect(() => {\n if (!welcomeToastShown) {\n toast(, {\n duration: 20000,\n });\n setWelcomeToastShown(true);\n }\n }, [welcomeToastShown, setWelcomeToastShown]);\n\n return (\n <>\n {\" \"}\n
\n
\n {!loadPause && (\n
\n {/* SET USERNAME */}\n \n\n {/* CONNECT METAMASK */}\n {connector && ic.principal && !isConnected(connector) && (\n
\n Connect\n \n and login to\n \n to write on the wall!\n
\n )}\n\n {/* LOGIN TO DFINITY */}\n {connector && !ic.principal && isConnected(connector) && (\n
\n Login to\n \n to write on the wall!\n
\n )}\n\n {/* WRITE A POST */}\n \n\n {/* THE WALL! */}\n }>\n \n \n\n {/* EMPTY WALL MESSAGE */}\n \n \n \n
\n )}\n {/* LOADER */}\n {loadPause && }\n
\n
\n \n );\n}\n","import { ICContext, useICContextValues } from \"@/ic/context\";\nimport { ExternalProvider, Web3Provider } from \"@ethersproject/providers\";\nimport { Web3ReactProvider } from \"@web3-react/core\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport { RecoilRoot } from \"recoil\";\nimport Header from \"./components/Header\";\nimport UserWall from \"./pages/UserWall\";\nimport Wall from \"./pages/Wall\";\nimport \"./styles/globals.css\";\n\nfunction getLibrary(provider: ExternalProvider) {\n const library = new Web3Provider(provider);\n library.pollingInterval = 12000;\n return library;\n}\n\nconst ICCtx = (props: any) => {\n const icContextValues = useICContextValues();\n return (\n \n {props.children}\n \n );\n};\n\nReactDOM.render(\n \n \n \n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
,\n\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}