{"version":3,"sources":["components/DescriptionBox.tsx","utils/document-loader.ts","components/json-form/input.tsx","components/Spinner.tsx","components/json-form/add-option.tsx","components/json-form/remove-option.tsx","components/json-form/text.tsx","components/SDCredentialCreator.tsx","components/json-form/array.tsx","components/json-form/object.tsx","components/add-to-extension-btn.tsx","components/SDCredentialVerifier.tsx","components/OffChainDIDCreator.tsx","components/OffchainDIDUpdater.tsx","components/OffchainDIDRevoker.tsx","components/form/index.tsx","components/json-form/index.tsx","components/TextFieldWithCopy.tsx","components/Title.tsx","redux/issueSlice.ts","redux/verifySlice.ts","redux/offUpdaterSlice.ts","redux/offCreatorSlice.ts","redux/appSlice.ts","images/did_siop_logo.png","components/Home.tsx","components/DrawerItems.tsx","redux/normalDIDSlice.ts","components/NormalDID.tsx","redux/hdDIDSlice.ts","components/HDDID.tsx","redux/resolveDIDSlice.ts","components/ResolveDID.tsx","redux/presentSlice.ts","components/Masker.tsx","components/MaskingComponent.tsx","components/SDCredentialMasker.tsx","redux/offResolverSlice.ts","components/OffChainDIDResolver.tsx","App.tsx","app/store.ts","serviceWorker.ts","index.tsx","redux/offRevokerSlice.ts"],"names":["useStyles","makeStyles","theme","createStyles","box","color","textJustify","DescriptionBox","props","classes","data-testid","className","description","documentLoader","iri","a","url","split","startsWith","process","fetchDoc","doc","didDocument","document","documentUrl","Error","Promise","resolve","axios","get","result","console","log","status","data","InputItem","type","data_type","backdrop","zIndex","drawer","Spinner","open","AddOption","onClick","title","RemoveOption","disabled","TextItem","name","useField","field","meta","config","placeholder","touched","error","helperText","size","variant","autoComplete","root","width","marginTop","spacing","btn","marginRight","SDCredentialCreator","holderPublicKey","useSelector","_holderPublicKey","signerPrivateKey","_signerPrivateKey","publicKeyEncoding","_publicKeyEncoding","jsonValue","_signerPublicKey","_jsonValue","jsonEditorValue","_jsonEditorValue","vc","_vc","dispatch","useDispatch","React","useState","text","snackBarState","setState","credential","_","cloneDeep","publicKey","Buffer","from","base58","decode","toString","verifiable","create","issuerPrivateKey","issuanceDate","Date","toISOString","setVC","btoa","JSON","stringify","container","item","xs","initialValues","onSubmit","values","setJsonValue","setJsonEditorValue","severity","component","row","aria-label","value","onChange","e","encoding","target","setPublicKeyEncoding","control","label","setHolderPublicKey","multiline","fullWidth","privateKey","setSignerPrivateKey","window","isSecureContext","navigator","clipboard","writeText","Object","entries","length","onClose","TransitionComponent","Fade","message","autoHideDuration","ArrayItem","data_options","helper","useRef","getValues","obj","str","eval","map","join","onAdd","Array","isArray","i","element","id","uniqueId","current","push","onRemove","index","remove","data-add","add","render","arrayHelpers","form","errors","child_props","ObjectItem","data-flex","no_attribute","data-type","slice","AddToExtensionButton","addToExtensionBtnRef","content","setAlertOpen","useEffect","localStorage","setItem","data-active","ref","dataset","active","innerHTML","setTimeout","data-did-siop-vc","marginBottom","SDCredentialVerifier","presentation","_presentation","signerPublicKey","verified","_verified","signerPublicKeyEncoding","_signerPublicKeyEncoding","vp","parse","atob","issuerPublicKey","verify","setVerified","checkCredential","mask","credentials","claims","key","isObject","setPresentation","handlePresentationInput","setSignerPublicKeyEncoding","pubKey","setSignerPublicKey","JSONFormat","disclosedCredentials","getDisclosedCredentials","OCDIDCreator","did","_did","_privateKey","_publicKey","address","_address","ed","Ed25519","mnemonic","generateMnemonic","wallet","Wallet","Types","MNEMONIC","getMasterKeys","verificationKey","post","challengeResponse","jwt","challengeToken","challenge","cipherText","sign","toHex","response","setDID","setPrivateKey","setPublicKey","setAddress","callback","success","OCDIDUpdater","didDoc","_didDoc","isValidDID","setIsValidDID","setIsUpdated","isUpdating","setIsUpdating","patch","put","authentication","publicKeyBase58","then","res","setDIDDocument","newResolution","catch","err","finally","handleDidInput","handlePrivateKeyInput","handlePublicKeyInput","InputProps","readOnly","OCDIDRevoker","setIsRevoked","isRevoking","setIsRevoking","Form","children","innerRef","formProps","validationSchema","enableReinitialize","Yup","shape","of","JsonForm","filterJson","useCallback","attribute","temp","json","Button","src","displayDataTypes","displayObjectSize","TextWithCopy","endAdornment","position","fontSize","Title","initialState","issueSlice","createSlice","reducers","state","action","payload","actions","issue","verifySlice","offUpdaterSlice","offUpdater","offCreatorSlice","offCreator","appSlice","view","setView","_view","app","Home","style","textAlign","logo","alt","Typography","Link","href","display","minHeight","innerHeight","flexDirection","unselected","selected","DrawerItems","Toolbar","Divider","List","ListItem","button","ListItemText","primary","normalDidSlice","normalDID","NormalDID","memonic","Grid","Snackbar","hdDidSlice","strength","seed","masterPrivateKey","masterChainCode","masterPublicKey","derivationPath","childPrivateKey","childChainCode","childPublicKey","masterAddress","masterDid","validMnemonic","validDerPath","topMnemonics","setStrength","setSeed","setMnemonic","setMasterPrivateKey","setMasterChainCode","setMasterPublicKey","setMasterAddress","setMasterDID","setDerivationPath","setChildPrivateKey","setChildChainCode","setChildPublicKey","setMnemonicValidity","setDerPathValidity","setTopMnemonics","_strength","hdDid","_mnemonic","_seed","_masterPrivateKey","_masterChainCode","_masterPublicKey","_masterAddress","_masterDid","_derivationPath","_childPrivateKey","_childChainCode","_childPublicKey","_validMnemonic","_validDerPath","_topMnemonics","filter","createFilterOptions","HDDID","addMnemonics","newTopMnemonics","getItem","handleGenerateSeed","val","parseInt","getSeedFromMnemonic","createKeysAndUpdate","SEED","chainCode","derPath","getChildKeys","topMnemonicsStored","Alert","FormControl","RadioGroup","numBit","handleNumBitSelection","FormControlLabel","Radio","Autocomplete","event","newValue","inputValue","filterOptions","options","params","filtered","getOptionLabel","option","renderOption","freeSolo","renderInput","TextField","validateMnemonic","handleMnemonicInput","TextFieldWithCopy","inputProps","handleDerivationPathInput","resolveDidSlice","setDidDoc","resolveDID","ResolveDID","rej","fetch","didResolve","undefined","rowsMax","presentSlice","holderPrivateKey","masks","inputComponentList","setHolderPrivateKey","setCredentials","setMasks","setInputComponentList","setVP","_holderPrivateKey","present","_credentials","_masks","_inputComponentList","_vp","Masker","FormGroup","keys","Checkbox","checked","newMasks","handleCheckboxInput","labelPlacement","elements","marginLeft","secondaryWrapper","alignItems","MaskingComponent","newCredentialArray","handeleSignedCredntialInput","IconButton","newInputComponentList","newMaskArray","pop","splice","removeInput","SDCredentialMasker","cred","verifiableCredential","newCredentials","offResolverSlice","offResolve","OCDIDResolver","isResolving","setIsResolving","createMuiTheme","palette","main","secondary","contrastText","contrastThreshold","tonalOffset","appBar","flexShrink","drawerPaper","flexGrow","padding","menuButton","breakpoints","up","App","mobileOpen","setMobileOpen","handleDrawerToggle","currentView","ThemeProvider","AppBar","edge","Hidden","smUp","implementation","Drawer","anchor","direction","paper","ModalProps","keepMounted","xsDown","Container","maxWidth","store","configureStore","reducer","appReducer","issueReducer","presentReducer","verifyReducer","normalDidReducer","hdDidReducer","resolveDidReducer","offResolver","offRevoker","Boolean","location","hostname","match","ReactDOM","getElementById","serviceWorker","ready","registration","unregister","offRevokerSlice"],"mappings":"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","file":"static/js/main.d2cd55ca.chunk.js","sourcesContent":["import React from 'react';\nimport { Typography, Box, makeStyles, createStyles, Theme } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n box: {\n color: '#303030',\n textJustify: 'initial'\n }\n })\n);\n\nexport default function DescriptionBox(props: { description: string }) {\n const classes = useStyles();\n\n return (\n \n {props.description}\n \n );\n}\n","import axios from 'axios';\n\nconst documentLoader = async (iri: string): Promise => {\n let doc: any;\n let url = iri.split('#')[0];\n\n if (url.startsWith('did:')) {\n url = `${process.env.REACT_APP_BACKEND}/did/${url}`;\n\n doc = await fetchDoc(url);\n doc = doc?.didDocument;\n } else {\n doc = await fetchDoc(url);\n }\n\n if (doc) {\n // console.log('document ==>> ', JSON.stringify(doc, null, 4));\n return { document: doc, documentUrl: url };\n }\n\n throw new Error(`iri ${iri} not supported`);\n};\n\nconst fetchDoc = (url: string) => {\n return new Promise(async (resolve) => {\n var result: any;\n\n try {\n result = await axios.get(url);\n } catch (error) {\n console.log(error);\n }\n\n if (result?.status !== 200) return resolve(null);\n\n return resolve(result?.data);\n });\n};\n\nexport default documentLoader;\n","import React from 'react';\nimport ArrayItem from './array';\nimport TextItem from './text';\nimport ObjectItem from './object';\n\nexport default function InputItem({ type, ...props }: JsonFormInputItemProps) {\n if (!props.data_type) props.data_type = 'text';\n\n if (type === 'array' || type === 'object-array') {\n return ;\n }\n\n if (type === 'object') {\n return ;\n }\n\n return ;\n}\n","import { Backdrop, CircularProgress, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nconst useStyles = makeStyles((theme) => ({\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff'\n }\n}));\n\nexport default function Spinner() {\n const classes = useStyles();\n\n return (\n \n \n \n );\n}\n","import { IconButton, Tooltip } from '@material-ui/core';\nimport AddCircleOutlineOutlinedIcon from '@material-ui/icons/AddCircleOutlineOutlined';\nimport React from 'react';\n\nexport default function AddOption({ onClick }) {\n return (\n \n \n \n \n \n );\n}\n","import { IconButton, Tooltip } from '@material-ui/core';\nimport RemoveCircleOutlineOutlinedIcon from '@material-ui/icons/RemoveCircleOutlineOutlined';\nimport React from 'react';\n\nexport default function RemoveOption({ onClick, disabled = false }) {\n return (\n \n \n \n \n \n );\n}\n","import { TextField } from '@material-ui/core';\nimport { useField } from 'formik';\nimport React from 'react';\n\nexport default function TextItem({ name, className = '', ...props }) {\n const [field, meta] = useField(name);\n\n const config: any = {\n className: `text-item${className ? ` ${className}` : ''}`,\n placeholder: 'Enter Value',\n ...field,\n ...props\n };\n\n if (meta && meta.touched && meta.error) {\n config.error = true;\n config.helperText = meta.error;\n }\n\n return ;\n}\n","import React from 'react';\nimport {\n Button,\n Fade,\n FormControl,\n FormControlLabel,\n Grid,\n IconButton,\n List,\n Radio,\n RadioGroup,\n Snackbar,\n TextField,\n Theme,\n createStyles,\n makeStyles\n} from '@material-ui/core';\n\nimport Title from './Title';\nimport InputComponent from './InputComponent';\nimport { verifiable } from 'sd-vc-lib';\nimport documentLoader from '../utils/document-loader';\nimport { Alert } from '@material-ui/lab';\nimport base58 from 'base-58';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n setHolderPublicKey,\n setSignerPrivateKey,\n setSignerPublicKey,\n setPublicKeyEncoding,\n setVC,\n _holderPublicKey,\n _signerPrivateKey,\n _signerPublicKey,\n _vc,\n _publicKeyEncoding,\n _jsonValue,\n setJsonValue,\n _jsonEditorValue,\n setJsonEditorValue\n} from '../redux/issueSlice';\nimport JsonForm from './json-form';\nimport _ from 'lodash';\nimport AddToExtensionButton from './add-to-extension-btn';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2)\n }\n },\n btn: {\n marginRight: 10\n }\n })\n);\n\nexport default function SDCredentialCreator() {\n const holderPublicKey = useSelector(_holderPublicKey);\n const signerPrivateKey = useSelector(_signerPrivateKey);\n const publicKeyEncoding = useSelector(_publicKeyEncoding);\n const signerPublicKey = useSelector(_signerPublicKey);\n const jsonValue = useSelector(_jsonValue);\n const jsonEditorValue = useSelector(_jsonEditorValue);\n const vc = useSelector(_vc);\n const dispatch = useDispatch();\n const classes = useStyles();\n\n const [snackBarState, setState] = React.useState<{ open: boolean; text: string }>({\n open: false,\n text: ''\n });\n\n function handlePublicKeyInput(publicKey: string) {\n dispatch(setHolderPublicKey(publicKey));\n }\n\n function handlePrivateKeyInput(privateKey: string) {\n dispatch(setSignerPrivateKey(privateKey));\n }\n\n function handlePublicKeyEncoding(encoding: string) {\n dispatch(setPublicKeyEncoding(encoding));\n }\n\n async function sign() {\n const credential: any = _.cloneDeep(jsonValue);\n let publicKey = holderPublicKey;\n\n /* base58 to base64 */\n if (publicKeyEncoding === 'Base58')\n publicKey = Buffer.from(base58.decode(holderPublicKey)).toString('hex');\n\n try {\n const vc = await verifiable.credential.create({\n credential,\n holderPublicKey: publicKey,\n issuerPrivateKey: signerPrivateKey,\n issuanceDate: credential?.issuanceDate || new Date().toISOString(),\n documentLoader\n });\n\n dispatch(setVC(btoa(JSON.stringify(vc))));\n } catch (e) {\n console.log(e);\n dispatch(setVC('Error!'));\n }\n }\n\n function copyToClipboard(text: string) {\n if (text !== '') {\n if (window.isSecureContext) {\n navigator.clipboard.writeText(text);\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n }\n\n function handleClose() {\n setState({\n ...snackBarState,\n open: false\n });\n }\n\n const onJsonFormValues = (values, data) => {\n dispatch(setJsonValue(values?.data));\n dispatch(setJsonEditorValue(data));\n };\n\n return (\n
\n \n \n Create Selectively Disclosable Credentials\n \n\n \n \n \n\n \n
\n Select the public key encoding scheme\n
\n
\n\n \n \n handlePublicKeyEncoding(e.target.value)}>\n }\n label=\"Base58 String\"\n />\n }\n label=\"Base64 String\"\n />\n \n \n \n\n \n handlePublicKeyInput(e.target.value)}\n label=\"Holder's Public Key\"\n variant=\"outlined\"\n multiline\n fullWidth\n />\n \n\n \n handlePrivateKeyInput(e.target.value)}\n label=\"Signer's Private Key\"\n variant=\"outlined\"\n multiline\n fullWidth\n />\n \n\n \n \n Sign\n \n \n\n \n copyToClipboard(vc)}\n />\n \n\n \n \n \n
\n\n \n
\n );\n}\n","import React from 'react';\nimport { FieldArray } from 'formik';\nimport InputItem from './input';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { uniqueId } from 'lodash';\nimport AddOption from './add-option';\nimport RemoveOption from './remove-option';\n\nexport default function ArrayItem({\n name,\n data_options = { type: 'text' },\n ...props\n}: JsonFormItemProps) {\n const helper: any = React.useRef(null);\n\n const getValues = (obj, str) => {\n let split = str.split('.');\n\n return eval(`obj${split.map((_) => `['${_}']`).join('')}`);\n };\n\n const onAdd = () => {\n /* set a unique id to sample data */\n if (Array.isArray(data_options?.data)) {\n for (let i = 0; i < data_options.data.length; i++) {\n const element = data_options?.data[i];\n if (!element?.id) element.id = uniqueId();\n }\n }\n\n if (helper.current) helper.current.push({ id: uniqueId(), ...data_options });\n };\n\n const onRemove = (index: number) => {\n if (helper.current) helper.current.remove(index);\n };\n\n return (\n
\n {\n helper.current = arrayHelpers;\n\n const {\n form: { values, errors }\n } = arrayHelpers;\n\n const data = getValues(values, name) || [];\n\n return data?.length === 0 ? (\n No records yet\n ) : (\n data.map(({ id, ...child_props }: any, index: number) => {\n if (!child_props.type) child_props.type = 'text';\n\n return (\n
\n \n {child_props.remove && data.length > 1 && (\n onRemove(index)} />\n )}\n
\n );\n })\n );\n }}\n />\n\n {props.add && (\n
\n \n
\n )}\n
\n );\n}\n","import React from 'react';\nimport { FieldArray } from 'formik';\nimport InputItem from './input';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport _, { uniqueId } from 'lodash';\nimport AddOption from './add-option';\nimport RemoveOption from './remove-option';\nimport TextItem from './text';\n\nexport default function ObjectItem({\n name,\n data_options = { type: 'object' },\n ...props\n}: JsonFormItemProps) {\n const helper: any = React.useRef(null);\n\n const getValues = (obj, str) => {\n let split = str.split('.');\n\n return eval(`obj${split.map((_) => `['${_}']`).join('')}`);\n };\n\n const onAdd = () => {\n /* set a unique id to sample data */\n if (Array.isArray(data_options?.data)) {\n for (let i = 0; i < data_options.data.length; i++) {\n const element = data_options?.data[i];\n if (!element?.id) element.id = uniqueId();\n }\n }\n\n if (helper.current) helper.current.push({ id: uniqueId(), ...data_options });\n };\n\n const onRemove = (index: number) => {\n if (helper.current) helper.current.remove(index);\n };\n\n return (\n
\n
\n {!props.no_attribute && (\n \n )}\n
\n {\n helper.current = arrayHelpers;\n\n const {\n form: { values, errors }\n } = arrayHelpers;\n\n const data = getValues(values, name) || [];\n\n return data?.length === 0 ? (\n No records yet\n ) : (\n data.map(({ id, ...child_props }: any, index: number) => {\n if (!child_props.type) child_props.type = 'text';\n\n return (\n
\n \n {child_props.remove && data.length > 1 && (\n onRemove(index)} />\n )}\n
\n );\n })\n );\n }}\n />\n {props.add && (\n
\n \n
\n )}\n
\n
\n
\n );\n}\n","import { Button } from '@material-ui/core';\nimport React from 'react';\n\ninterface Props {\n data: object | null;\n className?: string;\n [x: symbol | string]: any;\n}\n\nexport default function AddToExtensionButton({ data, className, ...props }: Props) {\n const addToExtensionBtnRef = React.useRef(null);\n const [alertOpen, setAlertOpen] = React.useState({ open: false, title: '', content: '' });\n\n React.useEffect(() => {\n window.localStorage.setItem('new-content', 'true');\n }, []);\n\n const onAddToExtension = () => {\n if (addToExtensionBtnRef?.current) {\n if (addToExtensionBtnRef.current?.dataset?.active === 'false') {\n return setAlertOpen({\n open: true,\n title: 'Alert',\n content:\n 'Please make sure you have installed the DID SIOP Extension in your browser.'\n });\n }\n\n addToExtensionBtnRef.current.innerHTML = 'Added To Extension';\n addToExtensionBtnRef.current.disabled = true;\n\n setTimeout(() => {\n if (addToExtensionBtnRef?.current) {\n addToExtensionBtnRef.current.disabled = false;\n addToExtensionBtnRef.current.innerHTML = 'Add to Extension';\n }\n }, 1000);\n }\n };\n\n return (\n \n Add To Extension\n \n );\n}\n","import React from 'react';\nimport {\n Button,\n Fade,\n Grid,\n Snackbar,\n TextField,\n Theme,\n makeStyles,\n createStyles,\n FormControl,\n RadioGroup,\n FormControlLabel,\n Radio\n} from '@material-ui/core';\n//@ts-ignore\nimport JSONFormat from 'json-format';\nimport _ from 'lodash';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n setHolderPublicKey,\n setPresentation,\n setPublicKeyEncoding,\n setSignerPublicKey,\n setSignerPublicKeyEncoding,\n setVerified,\n _holderPublicKey,\n _presentation,\n _signerPublicKey,\n _verified,\n _publicKeyEncoding,\n _signerPublicKeyEncoding\n} from '../redux/verifySlice';\n\nimport Title from './Title';\nimport { verifiable } from 'sd-vc-lib';\nimport documentLoader from '../utils/document-loader';\nimport { Alert } from '@material-ui/lab';\nimport base58 from 'base-58';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2)\n }\n },\n btn: {\n marginBottom: 10\n }\n })\n);\n\nexport default function SDCredentialVerifier() {\n const presentation = useSelector(_presentation);\n const signerPublicKey = useSelector(_signerPublicKey);\n const holderPublicKey = useSelector(_holderPublicKey);\n const verified = useSelector(_verified);\n const publicKeyEncoding = useSelector(_publicKeyEncoding);\n const signerPublicKeyEncoding = useSelector(_signerPublicKeyEncoding);\n const classes = useStyles();\n\n const dispatch = useDispatch();\n\n const [snackBarState, setState] = React.useState<{\n open: boolean;\n }>({\n open: false\n });\n\n function handleHolderPublicKeyInput(publicKey: string) {\n dispatch(setHolderPublicKey(publicKey));\n }\n\n function handleSignererPublicKeyInput(pubKey: string) {\n dispatch(setSignerPublicKey(pubKey));\n }\n\n function handlePresentationInput(presentation: string) {\n dispatch(setVerified(''));\n dispatch(setPresentation(presentation));\n }\n\n function handlePublicKeyEncoding(encoding: string) {\n dispatch(setPublicKeyEncoding(encoding));\n }\n\n function handleSignerPublicKeyEncoding(encoding: string) {\n dispatch(setSignerPublicKeyEncoding(encoding));\n }\n\n async function verifyPresentation() {\n try {\n const vp = JSON.parse(atob(presentation));\n let publicKey = holderPublicKey;\n let issuerPublicKey = signerPublicKey;\n\n /* base58 to base64 */\n if (publicKeyEncoding === 'Base58')\n publicKey = Buffer.from(base58.decode(holderPublicKey)).toString('hex');\n if (signerPublicKeyEncoding === 'Base58')\n issuerPublicKey = Buffer.from(base58.decode(signerPublicKey)).toString('hex');\n\n const result = await verifiable.presentation.verify({\n vp,\n holderPublicKey: publicKey,\n issuerPublicKey,\n documentLoader\n });\n\n if (!result?.verified) throw new Error();\n\n dispatch(setVerified('Presentation Verified'));\n // dispatch(setPresentation(vp))\n } catch (e: any) {\n console.log(e);\n dispatch(setVerified(e?.message || 'Invalid inputs'));\n // dispatch(setPresentation(''))\n }\n }\n\n function handleClose() {\n setState({\n ...snackBarState,\n open: false\n });\n }\n\n function checkCredential(mask = {}, credentials = {}) {\n if (_.isArray(credentials)) {\n let claims: any = [];\n\n for (let key = 0; key < credentials.length; key++) {\n if (_.isObject(mask?.[key]) && _.isObject(credentials?.[key])) {\n claims.push(checkCredential(mask[key], credentials[key]));\n continue;\n }\n\n if (!mask?.[key]) {\n claims.push(credentials[key]);\n continue;\n }\n }\n\n return claims;\n }\n if (_.isObject(credentials)) {\n let claims: any = {};\n\n for (let key in credentials) {\n if (_.isObject(mask?.[key]) && _.isObject(credentials?.[key])) {\n claims[key] = checkCredential(mask[key], credentials[key]);\n continue;\n }\n\n if (!mask?.[key]) {\n claims[key] = credentials[key];\n continue;\n }\n }\n\n return claims;\n }\n }\n\n function getDisclosedCredentials(presentation: any) {\n const disclosedCredentials: any = [];\n\n for (const credential of presentation['verifiableCredential']) {\n const mask =\n credential['credentialSubject']?.['selectiveDisclosureMetaData']?.['mask'] || {};\n const credentials = credential['credentialSubject'] || {};\n const claims: any = checkCredential(mask, credentials);\n\n disclosedCredentials.push(claims);\n }\n\n return disclosedCredentials;\n }\n\n return (\n
\n \n \n Verify Presentation\n \n\n \n handlePresentationInput(e.target.value)}\n label=\"Verifiable presentation\"\n variant=\"outlined\"\n multiline\n fullWidth\n />\n \n\n \n
\n Select the public key encoding scheme\n
\n
\n\n \n \n handlePublicKeyEncoding(e.target.value)}>\n }\n label=\"Base58 String\"\n />\n }\n label=\"Base64 String\"\n />\n \n \n \n\n \n handleHolderPublicKeyInput(e.target.value)}\n label=\"Holder's Public Key\"\n variant=\"outlined\"\n multiline\n fullWidth\n />\n \n\n \n \n handleSignerPublicKeyEncoding(e.target.value)}>\n }\n label=\"Base58 String\"\n />\n }\n label=\"Base64 String\"\n />\n \n \n \n\n \n handleSignererPublicKeyInput(e.target.value)}\n label=\"Signer's Public Key\"\n variant=\"outlined\"\n multiline\n fullWidth\n />\n \n\n \n \n Verify\n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n
\n );\n}\n","import React from 'react';\nimport { Grid, Button, Snackbar, Fade } from '@material-ui/core';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\nimport Title from './Title';\nimport axios from 'axios';\nimport jwt from 'jsonwebtoken';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n setAddress,\n setDID,\n setPrivateKey,\n setPublicKey,\n _address,\n _did,\n _privateKey,\n _publicKey\n} from '../redux/offCreatorSlice';\nimport TextWithCopy from './TextFieldWithCopy';\nimport DescriptionBox from './DescriptionBox';\nimport Wallet, { generateMnemonic, Types } from 'did-hd-wallet';\nimport Ed25519 from 'sd-vc-lib/dist/utils/ed25519';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2)\n }\n },\n btn: {\n marginBottom: 10\n }\n })\n);\n\nexport default function OCDIDCreator() {\n const did = useSelector(_did);\n const privateKey = useSelector(_privateKey);\n const publicKey = useSelector(_publicKey);\n const address = useSelector(_address);\n const classes = useStyles();\n\n const [snackBarState, setState] = React.useState<{ open: boolean; text: string }>({\n open: false,\n text: ''\n });\n\n const dispatch = useDispatch();\n\n async function generateDID() {\n const ed = new Ed25519();\n const mnemonic = generateMnemonic(128);\n\n const wallet = new Wallet(Types.MNEMONIC, mnemonic);\n const { did, privateKey, publicKey, verificationKey, address } =\n await wallet.getMasterKeys();\n\n const challengeResponse = await axios.post(`${process.env.REACT_APP_BACKEND}/did/`, {\n did: did\n });\n const { challenge: challenge } = jwt.decode(challengeResponse.data.challengeToken) as any;\n\n const response = await axios.post(`${process.env.REACT_APP_BACKEND}/did/`, {\n did: did,\n verificationKey: verificationKey,\n challengeResponse: {\n publicKey: publicKey,\n cipherText: ed\n .sign(Buffer.from(challenge, 'hex'), Buffer.from(privateKey as string, 'hex'))\n .toHex(),\n jwt: challengeResponse.data.challengeToken\n }\n });\n\n if (!response?.data?.did && response?.data?.status !== 'success') {\n console.log(response);\n const error = 'Error. Please try again later';\n dispatch(setDID(error));\n dispatch(setPrivateKey(error));\n dispatch(setPublicKey(error));\n dispatch(setAddress(error));\n return;\n }\n\n dispatch(setDID(did));\n dispatch(setPrivateKey(privateKey as string));\n dispatch(setPublicKey(publicKey as string));\n dispatch(setAddress(address));\n }\n\n function handleClose() {\n setState({\n ...snackBarState,\n open: false\n });\n }\n\n function callback(success: boolean) {\n if (success) {\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n\n return (\n
\n \n \n Generate Offchain DID\n \n\n \n \n \n\n \n \n Generate DID\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","import React, { useState } from 'react';\nimport jwt from 'jsonwebtoken';\nimport { Grid, TextField, Button } from '@material-ui/core';\nimport Alert from '@material-ui/lab/Alert';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\nimport { ecdsaSign, publicKeyCreate } from 'secp256k1';\n\nimport Title from './Title';\nimport Spinner from './Spinner';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n _did,\n _didDoc,\n _privateKey,\n _publicKey,\n setDIDDocument,\n setDID,\n setPrivateKey,\n setPublicKey\n} from '../redux/offUpdaterSlice';\n\nimport axios from 'axios';\nimport { isAddress } from '../utils';\nimport Ed25519 from 'sd-vc-lib/dist/utils/ed25519';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2)\n }\n },\n btn: {\n marginBottom: 10\n }\n })\n);\n\nexport default function OCDIDUpdater() {\n const did = useSelector(_did);\n const privateKey = useSelector(_privateKey);\n const publicKey = useSelector(_publicKey);\n const didDoc = useSelector(_didDoc);\n const [isValidDID, setIsValidDID] = useState(true);\n const [isUpdated, setIsUpdated] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n\n const dispatch = useDispatch();\n\n const classes = useStyles();\n\n async function handleUpdateDID() {\n const ed = new Ed25519();\n setIsUpdating(true);\n\n const challengeResponse = await axios.patch(`${process.env.REACT_APP_BACKEND}/did/${did}`);\n const { challenge: challenge } = jwt.decode(challengeResponse.data.challengeToken) as any;\n\n axios\n .put(`${process.env.REACT_APP_BACKEND}/did/${did}`, {\n challengeResponse: {\n publicKey: publicKey,\n cipherText: ed\n .sign(\n Buffer.from(challenge, 'hex'),\n Buffer.from(privateKey as string, 'hex')\n )\n .toHex(),\n jwt: challengeResponse.data.challengeToken\n },\n authentication: {\n type: 'Ed25519VerificationKey2018',\n publicKeyBase58: publicKey\n }\n })\n .then((res) => {\n setIsValidDID(true);\n\n dispatch(\n setDIDDocument(JSON.stringify(res.data.newResolution.didDocument, null, 4))\n );\n setIsUpdated(true);\n })\n .catch((err) => {\n console.log('err', err.response.data.error);\n setIsUpdated(false);\n if (err.response && err.response.data.error) {\n dispatch(setDIDDocument(err.response.data.error));\n } else {\n dispatch(setDIDDocument('Error'));\n }\n })\n .finally(() => {\n setIsUpdating(false);\n });\n }\n\n function handleDidInput(did: string): void {\n dispatch(setDID(did));\n }\n\n function handlePrivateKeyInput(privateKey: string): void {\n dispatch(setPrivateKey(privateKey));\n }\n\n function handlePublicKeyInput(publicKey: string): void {\n dispatch(setPublicKey(publicKey));\n }\n\n return (\n \n \n {'Update Offchain DID'}\n \n\n \n handleDidInput(e.target.value)}\n error={!isValidDID}\n helperText={isValidDID ? '' : 'Invalid DID'}\n />\n \n\n \n
\n \n Your private key will never go outside this machine. Private key will only\n be used for verify the ownership.\n \n
\n handlePrivateKeyInput(e.target.value)}\n />\n
\n\n \n handlePublicKeyInput(e.target.value)}\n />\n \n\n \n \n Update DID\n \n \n\n \n \n \n {isUpdating && }\n
\n );\n}\n","import React, { useState } from 'react';\nimport jwt from 'jsonwebtoken';\nimport {\n Grid,\n TextField,\n Button,\n FormControl,\n RadioGroup,\n FormControlLabel,\n Radio,\n Divider\n} from '@material-ui/core';\nimport Alert from '@material-ui/lab/Alert';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n _privateKey,\n setPrivateKey,\n setDID,\n setDIDDocument,\n _did,\n _didDoc\n} from '../redux/offRevokerSlice';\n\nimport Title from './Title';\nimport Spinner from './Spinner';\n\nimport { isAddress } from '../utils';\nimport axios from 'axios';\nimport Ed25519 from 'sd-vc-lib/dist/utils/ed25519';\nimport Wallet, { Types } from 'did-hd-wallet';\nimport { _publicKey, setPublicKey } from '../redux/offUpdaterSlice';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2)\n }\n },\n btn: {\n marginBottom: 10\n }\n })\n);\n\nexport default function OCDIDRevoker() {\n const did = useSelector(_did);\n const privateKey = useSelector(_privateKey);\n const publicKey = useSelector(_publicKey);\n const didDoc = useSelector(_didDoc);\n const [isValidDID, setIsValidDID] = useState(true);\n const [isRevoked, setIsRevoked] = useState(false);\n const [isRevoking, setIsRevoking] = useState(false);\n\n const classes = useStyles();\n\n const dispatch = useDispatch();\n\n async function handleRevokeDID() {\n const ed = new Ed25519();\n setIsRevoking(true);\n setIsValidDID(true);\n\n try {\n const challengeResponse = await axios.patch(\n `${process.env.REACT_APP_BACKEND}/did/${did}`\n );\n const { challenge: challenge } = jwt.decode(\n challengeResponse.data.challengeToken\n ) as any;\n\n axios\n .patch(`${process.env.REACT_APP_BACKEND}/did/${did}`, {\n challengeResponse: {\n publicKey: publicKey,\n cipherText: ed\n .sign(\n Buffer.from(challenge, 'hex'),\n Buffer.from(privateKey as string, 'hex')\n )\n .toHex(),\n jwt: challengeResponse.data.challengeToken\n }\n })\n .then((res) => {\n dispatch(\n setDIDDocument(JSON.stringify(res.data.newResolution.didDocument, null, 4))\n );\n setIsRevoked(true);\n setIsRevoking(false);\n })\n .catch((err) => {\n if (err.response && err.response.data.error) {\n dispatch(setDIDDocument(err.response.data.error));\n } else if (err.error) {\n dispatch(setDIDDocument(err.error));\n } else {\n dispatch(setDIDDocument('Error'));\n }\n\n setIsRevoked(false);\n setIsRevoking(false);\n })\n .finally(() => {\n setIsRevoking(false);\n });\n } catch (err: any) {\n console.log(err);\n if (err.response && err.response.data.error) {\n dispatch(setDIDDocument(err.response.data.error));\n } else {\n dispatch(setDIDDocument('Error'));\n }\n setIsRevoked(false);\n setIsRevoking(false);\n }\n }\n\n function handlePrivateKeyInput(privateKey: string): void {\n dispatch(setPrivateKey(privateKey));\n }\n\n function handlePublicKeyInput(publicKey: string): void {\n dispatch(setPublicKey(publicKey));\n }\n\n function handleDidInput(did: string): void {\n dispatch(setDID(did));\n }\n\n return (\n \n \n {'Revoke Offchain DID'}\n \n\n \n handleDidInput(e.target.value)}\n error={!isValidDID}\n helperText={isValidDID ? '' : 'Invalid DID'}\n />\n \n\n \n
\n \n Your private key will never go outside this machine. Private key will only\n be used for verify the ownership.\n \n
\n handlePrivateKeyInput(e.target.value)}\n />\n
\n\n \n handlePublicKeyInput(e.target.value)}\n />\n \n\n \n \n Revoke DID\n \n \n\n \n \n \n {isRevoking && }\n
\n );\n}\n","import React from 'react';\nimport { Formik, Form as FormikForm } from 'formik';\n\ninterface Props {\n id?: string;\n className?: string;\n children?: React.ReactNode;\n formProps?: any;\n initialValues?: any;\n validationSchema?: any;\n onSubmit?: any;\n innerRef?: any;\n enableReinitialize?: boolean;\n [prop: string]: any;\n}\n\nexport default function Form({\n children,\n className,\n innerRef,\n formProps = {},\n initialValues = {},\n validationSchema = {},\n onSubmit,\n enableReinitialize = false,\n ...props\n}: Props) {\n return (\n \n \n {children}\n \n \n );\n}\n","import React from 'react';\nimport './styles/index.scss';\nimport Form from '../form';\nimport * as Yup from 'yup';\nimport { Button, TextField } from '@material-ui/core';\nimport InputItem from './input';\nimport _ from 'lodash';\nimport ReactJson from 'react-json-view';\n\ninterface Props {\n initialValues: object;\n jsonValue?: object;\n onSubmit(value?: any, editor?: any): void;\n}\n\nconst validationSchema = Yup.object().shape({\n data: Yup.array().of(Yup.object())\n});\n\nexport default function JsonForm({ initialValues = {}, jsonValue, onSubmit }: Props) {\n const filterJson = React.useCallback((obj) => {\n let data;\n\n if (obj?.type === 'object') {\n data = {};\n data[obj.attribute] = obj.data;\n\n if (obj.data_type === 'array') {\n data[obj.attribute] = [];\n\n for (let i = 0; i < obj.data.length; i++) {\n const element = obj.data[i];\n data[obj.attribute].push(filterJson(element));\n }\n } else if (obj.data_type === 'object') {\n let temp = {};\n\n for (let i = 0; i < obj.data.length; i++) {\n const element = obj.data[i];\n\n if (element.no_attribute) {\n temp = filterJson(element)?.[element.attribute];\n } else {\n temp[element.attribute] = filterJson(element)?.[element.attribute];\n }\n }\n\n if (obj.no_attribute) {\n data = temp;\n } else {\n data[obj.attribute] = temp;\n }\n } else {\n data[obj.attribute] = filterJson(obj.data?.[0]);\n }\n } else {\n data = obj?.data;\n }\n\n return data;\n }, []);\n\n const onSubmitForm = (values: any) => {\n const json = filterJson(values);\n onSubmit(json || {}, values);\n };\n\n return (\n
\n \n \n\n
\n \n Save Object\n \n
\n \n\n {/* */}\n\n {jsonValue && (\n \n )}\n
\n );\n}\n","import React, { useState } from 'react';\nimport {\n TextField,\n InputAdornment,\n ClickAwayListener,\n Tooltip,\n IconButton\n} from '@material-ui/core';\nimport FileCopyOutlinedIcon from '@material-ui/icons/FileCopyOutlined';\n\nexport default function TextWithCopy(props: {\n label: string;\n value: string;\n multiline?: boolean;\n error?: boolean;\n helperText?: string;\n callback?: any;\n}) {\n const copyToClipboard = () => {\n if (props.value !== '') {\n if (window.isSecureContext) {\n navigator.clipboard.writeText(props.value);\n if (props.callback) {\n props.callback(true);\n }\n } else {\n if (props.callback) {\n props.callback(false);\n }\n }\n }\n };\n\n return (\n \n {\n copyToClipboard();\n }}>\n \n \n \n )\n }}\n />\n );\n}\n","import React from 'react';\nimport { Typography, makeStyles, createStyles, Theme } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n title: {\n color: '#303030'\n }\n })\n);\n\ninterface Props {\n children?: any;\n}\n\nexport default function Title({ children }: Props) {\n const classes = useStyles();\n\n return (\n \n {children}\n \n );\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\nimport _ from 'lodash';\n\ninterface IssueState {\n holderPublicKey: string;\n signerPrivateKey: string;\n signerPublicKey: string;\n jsonValue: object;\n jsonEditorValue: object;\n vc: string;\n publicKeyEncoding: string;\n}\n\nconst initialState: IssueState = {\n holderPublicKey: 'c2196d230267c18d101e51cb34d318e375f2100c268f2ffd6e9baef1d905a058',\n signerPrivateKey: 'ed710c0f8812e360dafa4dd2888b7ff24d2401223daf961e7e78988a56fa24a4',\n signerPublicKey: '',\n jsonValue: {},\n jsonEditorValue: {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'object',\n attribute: 'data',\n data: [\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'array',\n data_options: { type: 'text', remove: true },\n attribute: '@context',\n add: true,\n data: [\n {\n id: _.uniqueId(),\n type: 'text',\n remove: true,\n data: 'https://www.w3.org/2018/credentials/v1'\n },\n {\n id: _.uniqueId(),\n type: 'text',\n remove: true,\n data: 'https://d202eicx1ap3m7.cloudfront.net/credentials/microrewards/v0-01/siop-tools-schema-v0-01.json'\n }\n ]\n },\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'text',\n attribute: 'id',\n data: [{ id: _.uniqueId(), type: 'text', data: 'http://localhost:8080/verify/1' }]\n },\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'text',\n attribute: 'issuanceDate',\n data: [{ id: _.uniqueId(), type: 'text', data: new Date().toISOString() }]\n },\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'array',\n attribute: 'type',\n data: [{ id: _.uniqueId(), type: 'text', data: 'VerifiableCredential' }]\n },\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'text',\n attribute: 'issuer',\n data: [\n {\n id: _.uniqueId(),\n type: 'text',\n data: 'did:key:z6Mkoqgh9AppS2s28onvE4Qy9jwDBJ8ZqRdBtoWLSsRL57Jj'\n }\n ]\n },\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'object',\n data_options: {\n type: 'object',\n data: [{ type: 'text', data: '' }],\n remove: true\n },\n attribute: 'credentialSubject',\n add: true,\n data: [\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'array',\n attribute: 'type',\n remove: true,\n data: [\n {\n id: _.uniqueId(),\n type: 'text',\n data: 'DemoCredential'\n }\n ]\n },\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'array',\n attribute: 'customAttribute',\n data_options: {\n type: 'object',\n data_type: 'object',\n remove: true,\n no_attribute: true,\n data: [\n {\n type: 'object',\n attribute: 'name',\n data: [{ type: 'text', data: '' }]\n },\n {\n type: 'object',\n attribute: 'value',\n data: [{ type: 'text', data: '' }]\n }\n ]\n },\n add: true,\n remove: true,\n data: [\n {\n id: _.uniqueId(),\n type: 'object',\n data_type: 'object',\n remove: true,\n no_attribute: true,\n attribute: '',\n data: [\n {\n type: 'object',\n attribute: 'name',\n data: [{ type: 'text', data: 'test name 1' }]\n },\n {\n type: 'object',\n attribute: 'value',\n data: [{ type: 'text', data: 'test value 1' }]\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n },\n vc: '',\n publicKeyEncoding: 'Base64'\n};\n\nexport const issueSlice = createSlice({\n name: 'issue',\n initialState,\n reducers: {\n setHolderPublicKey: (state, action: PayloadAction) => {\n state.holderPublicKey = action.payload;\n },\n setSignerPrivateKey: (state, action: PayloadAction) => {\n state.signerPrivateKey = action.payload;\n },\n setSignerPublicKey: (state, action: PayloadAction) => {\n state.signerPublicKey = action.payload;\n },\n setJsonValue: (state, action: PayloadAction) => {\n state.jsonValue = action.payload;\n },\n setJsonEditorValue: (state, action: PayloadAction) => {\n state.jsonEditorValue = action.payload;\n },\n setVC: (state, action: PayloadAction) => {\n state.vc = action.payload;\n },\n setPublicKeyEncoding: (state, action: PayloadAction) => {\n state.publicKeyEncoding = action.payload;\n }\n }\n});\n\nexport const {\n setHolderPublicKey,\n setSignerPrivateKey,\n setSignerPublicKey,\n setVC,\n setPublicKeyEncoding,\n setJsonValue,\n setJsonEditorValue\n} = issueSlice.actions;\n\nexport const _holderPublicKey = (state: RootState) => state.issue.holderPublicKey;\nexport const _signerPrivateKey = (state: RootState) => state.issue.signerPrivateKey;\nexport const _signerPublicKey = (state: RootState) => state.issue.signerPublicKey;\nexport const _jsonValue = (state: RootState) => state.issue.jsonValue;\nexport const _jsonEditorValue = (state: RootState) => state.issue.jsonEditorValue;\nexport const _vc = (state: RootState) => state.issue.vc;\nexport const _publicKeyEncoding = (state: RootState) => state.issue.publicKeyEncoding;\n\nexport default issueSlice.reducer;\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface VerifyState {\n holderPublicKey: string;\n signerPublicKey: string;\n presentation: string;\n verified: string;\n publicKeyEncoding: string;\n signerPublicKeyEncoding: string;\n}\n\nconst initialState: VerifyState = {\n holderPublicKey: '',\n signerPublicKey: '',\n presentation: '',\n verified: '',\n publicKeyEncoding: 'Base58',\n signerPublicKeyEncoding: 'Base58'\n};\n\nexport const verifySlice = createSlice({\n name: 'present',\n initialState,\n reducers: {\n setHolderPublicKey: (state, action: PayloadAction) => {\n state.holderPublicKey = action.payload;\n },\n setSignerPublicKey: (state, action: PayloadAction) => {\n state.signerPublicKey = action.payload;\n },\n setPresentation: (state, action: PayloadAction) => {\n state.presentation = action.payload;\n },\n setVerified: (state, action: PayloadAction) => {\n state.verified = action.payload;\n },\n setPublicKeyEncoding: (state, action: PayloadAction) => {\n state.publicKeyEncoding = action.payload;\n },\n setSignerPublicKeyEncoding: (state, action: PayloadAction) => {\n state.signerPublicKeyEncoding = action.payload;\n }\n }\n});\n\nexport const {\n setHolderPublicKey,\n setPresentation,\n setSignerPublicKey,\n setVerified,\n setPublicKeyEncoding,\n setSignerPublicKeyEncoding\n} = verifySlice.actions;\n\nexport const _holderPublicKey = (state: RootState) => state.verify.holderPublicKey;\nexport const _signerPublicKey = (state: RootState) => state.verify.signerPublicKey;\nexport const _presentation = (state: RootState) => state.verify.presentation;\nexport const _verified = (state: RootState) => state.verify.verified;\nexport const _publicKeyEncoding = (state: RootState) => state.verify.publicKeyEncoding;\nexport const _signerPublicKeyEncoding = (state: RootState) => state.verify.signerPublicKeyEncoding;\n\nexport default verifySlice.reducer;\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface offUpdaterState {\n did: string;\n privateKey: string;\n publicKey: string;\n didDoc: string;\n}\n\nconst initialState: offUpdaterState = {\n did: '',\n privateKey: '',\n publicKey: '',\n didDoc: ''\n};\n\nexport const offUpdaterSlice = createSlice({\n name: 'off-updater',\n initialState,\n reducers: {\n setDID: (state, action: PayloadAction) => {\n state.did = action.payload;\n },\n setPrivateKey: (state, action: PayloadAction) => {\n state.privateKey = action.payload;\n },\n setPublicKey: (state, action: PayloadAction) => {\n state.publicKey = action.payload;\n },\n setDIDDocument: (state, action: PayloadAction) => {\n state.didDoc = action.payload;\n }\n }\n});\n\nexport const { setDID, setDIDDocument, setPrivateKey, setPublicKey } = offUpdaterSlice.actions;\n\nexport const _did = (state: RootState) => state.offUpdater.did;\nexport const _didDoc = (state: RootState) => state.offUpdater.didDoc;\nexport const _privateKey = (state: RootState) => state.offUpdater.privateKey;\nexport const _publicKey = (state: RootState) => state.offUpdater.publicKey;\n\nexport default offUpdaterSlice.reducer;\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface OffCreatorState {\n address: string;\n did: string;\n privateKey: string;\n publicKey: string;\n}\n\nconst initialState: OffCreatorState = {\n address: '',\n did: '',\n privateKey: '',\n publicKey: ''\n};\n\nexport const offCreatorSlice = createSlice({\n name: 'offCreator',\n initialState,\n reducers: {\n setAddress: (state, action: PayloadAction) => {\n state.address = action.payload;\n },\n setDID: (state, action: PayloadAction) => {\n state.did = action.payload;\n },\n setPrivateKey: (state, action: PayloadAction) => {\n state.privateKey = action.payload;\n },\n setPublicKey: (state, action: PayloadAction) => {\n state.publicKey = action.payload;\n }\n }\n});\n\nexport const { setAddress, setDID, setPrivateKey, setPublicKey } = offCreatorSlice.actions;\n\nexport const _address = (state: RootState) => state.offCreator.address;\nexport const _did = (state: RootState) => state.offCreator.did;\nexport const _privateKey = (state: RootState) => state.offCreator.privateKey;\nexport const _publicKey = (state: RootState) => state.offCreator.publicKey;\n\nexport default offCreatorSlice.reducer;\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface AppState {\n view: number;\n}\n\nconst initialState: AppState = {\n view: 0\n};\n\nexport const appSlice = createSlice({\n name: 'app',\n initialState,\n reducers: {\n setView: (state, action: PayloadAction) => {\n state.view = action.payload;\n }\n }\n});\n\nexport const { setView } = appSlice.actions;\n\nexport const _view = (state: RootState) => state.app.view;\n\nexport default appSlice.reducer;\n","export default __webpack_public_path__ + \"static/media/did_siop_logo.e8ce5b98.png\";","import React from 'react';\nimport { Typography, Link } from '@material-ui/core';\nimport logo from '../images/did_siop_logo.png';\n\nexport default function Home() {\n return (\n
\n \"logo\"\n\n \n Essential tools to start using Self Issued OpenID Connect Provider with\n Decentralised Identities (SIOP DID).\n
\n Visit didsiop.org for more information and\n resources.\n
\n
\n\n \n Privacy Guaranteed\n
\n When you are on this website, none of the info you see or generate does not leave\n your browser, meaning it is perfectly secure and safe to use these services.\n
\n\n
\n\n \n GitHub\n
\n www.didsiop.org\n
\n \n );\n}\n","import React from 'react';\nimport {\n Toolbar,\n Divider,\n List,\n ListItem,\n ListItemText,\n makeStyles,\n createStyles,\n Theme\n} from '@material-ui/core';\n\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { setView, _view } from '../redux/appSlice';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unselected: {\n color: '#303030'\n },\n selected: {\n color: '#24C3B5'\n }\n })\n);\n\nexport default function DrawerItems() {\n const dispatch = useDispatch();\n const classes = useStyles();\n const view = useSelector(_view);\n // const ctyp = useTypedSelector(state => state.views.ctyp)\n\n return (\n
\n \n \n \n {\n dispatch(setView(0));\n }}>\n \n \n {\n dispatch(setView(1));\n }}>\n \n \n {\n dispatch(setView(2));\n }}>\n \n \n {\n dispatch(setView(3));\n }}>\n \n \n {\n dispatch(setView(4));\n }}>\n \n \n {\n dispatch(setView(5));\n }}>\n \n \n {\n dispatch(setView(6));\n }}>\n \n \n {\n dispatch(setView(7));\n }}>\n \n \n {\n dispatch(setView(8));\n }}>\n \n \n {\n dispatch(setView(9));\n }}>\n \n \n {\n dispatch(setView(10));\n }}>\n \n \n \n
\n );\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface NormalDidState {\n address: string;\n did: string;\n privateKey: string;\n}\n\nconst initialState: NormalDidState = {\n address: '',\n did: '',\n privateKey: ''\n};\n\nexport const normalDidSlice = createSlice({\n name: 'normalDID',\n initialState,\n reducers: {\n setAddress: (state, action: PayloadAction) => {\n state.address = action.payload;\n },\n setDID: (state, action: PayloadAction) => {\n state.did = action.payload;\n },\n setPrivateKey: (state, action: PayloadAction) => {\n state.privateKey = action.payload;\n }\n }\n});\n\nexport const { setAddress, setDID, setPrivateKey } = normalDidSlice.actions;\n\nexport const _address = (state: RootState) => state.normalDID.address;\nexport const _did = (state: RootState) => state.normalDID.did;\nexport const _privateKey = (state: RootState) => state.normalDID.privateKey;\n\nexport default normalDidSlice.reducer;\n","import React from 'react';\nimport { Button, Fade, Grid, Snackbar } from '@material-ui/core';\n\nimport TextWithCopy from './TextFieldWithCopy';\nimport DescriptionBox from './DescriptionBox';\nimport Title from './Title';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n setAddress,\n setDID,\n setPrivateKey,\n _address,\n _did,\n _privateKey\n} from '../redux/normalDIDSlice';\nimport Wallet, { Types, validateMnemonic, generateMnemonic } from 'did-hd-wallet';\n\nexport default function NormalDID() {\n const address = useSelector(_address);\n const did = useSelector(_did);\n const privateKey = useSelector(_privateKey);\n const dispatch = useDispatch();\n\n const [snackBarState, setState] = React.useState<{ open: boolean; text: string }>({\n open: false,\n text: ''\n });\n\n async function generateDID() {\n try {\n const memonic = generateMnemonic(128);\n const wallet = new Wallet(Types.MNEMONIC, memonic);\n const { did, privateKey, address } = await wallet.getMasterKeys();\n\n dispatch(setAddress(address));\n dispatch(setPrivateKey(privateKey as string));\n dispatch(setDID(did));\n } catch (error) {\n console.log('error', error);\n }\n }\n\n function handleClose() {\n setState({\n ...snackBarState,\n open: false\n });\n }\n\n function callback(success: boolean) {\n if (success) {\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n\n return (\n
\n \n \n Generate DID\n \n\n \n \n \n\n \n \n Generate DID\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n
\n );\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface HdDidState {\n strength: number;\n seed: string;\n mnemonic: string;\n masterPrivateKey: string;\n masterChainCode: string;\n masterPublicKey: string;\n masterAddress: string;\n masterDid: string;\n derivationPath: string;\n childPrivateKey: string;\n childChainCode: string;\n childPublicKey: string;\n address: string;\n did: string;\n validMnemonic: boolean;\n validDerPath: boolean;\n topMnemonics: string[];\n}\n\nconst initialState: HdDidState = {\n strength: 128,\n seed: '',\n mnemonic: '',\n masterPrivateKey: '',\n masterChainCode: '',\n masterPublicKey: '',\n derivationPath: '',\n childPrivateKey: '',\n childChainCode: '',\n childPublicKey: '',\n masterAddress: '',\n masterDid: '',\n address: '',\n did: '',\n validMnemonic: false,\n validDerPath: false,\n topMnemonics: []\n};\n\nexport const hdDidSlice = createSlice({\n name: 'hdDID',\n initialState,\n reducers: {\n setStrength: (state, action: PayloadAction) => {\n state.strength = action.payload;\n },\n setSeed: (state, action: PayloadAction) => {\n state.seed = action.payload;\n },\n setMnemonic: (state, action: PayloadAction) => {\n state.mnemonic = action.payload;\n },\n setMasterPrivateKey: (state, action: PayloadAction) => {\n state.masterPrivateKey = action.payload;\n },\n setMasterChainCode: (state, action: PayloadAction) => {\n state.masterChainCode = action.payload;\n },\n setMasterPublicKey: (state, action: PayloadAction) => {\n state.masterPublicKey = action.payload;\n },\n setMasterAddress: (state, action: PayloadAction) => {\n state.masterAddress = action.payload;\n },\n setMasterDID: (state, action: PayloadAction) => {\n state.masterDid = action.payload;\n },\n setDerivationPath: (state, action: PayloadAction) => {\n state.derivationPath = action.payload;\n },\n setChildPrivateKey: (state, action: PayloadAction) => {\n state.childPrivateKey = action.payload;\n },\n setChildChainCode: (state, action: PayloadAction) => {\n state.childChainCode = action.payload;\n },\n setChildPublicKey: (state, action: PayloadAction) => {\n state.childPublicKey = action.payload;\n },\n setAddress: (state, action: PayloadAction) => {\n state.address = action.payload;\n },\n setDID: (state, action: PayloadAction) => {\n state.did = action.payload;\n },\n setMnemonicValidity: (state, action: PayloadAction) => {\n state.validMnemonic = action.payload;\n },\n setDerPathValidity: (state, action: PayloadAction) => {\n state.validDerPath = action.payload;\n },\n setTopMnemonics: (state, action: PayloadAction) => {\n state.topMnemonics = action.payload;\n }\n }\n});\n\nexport const {\n setAddress,\n setDID,\n setChildChainCode,\n setChildPrivateKey,\n setChildPublicKey,\n setDerivationPath,\n setMasterChainCode,\n setMasterPrivateKey,\n setMasterPublicKey,\n setMasterAddress,\n setMasterDID,\n setMnemonic,\n setSeed,\n setStrength,\n setMnemonicValidity,\n setDerPathValidity,\n setTopMnemonics\n} = hdDidSlice.actions;\n\nexport const _strength = (state: RootState) => state.hdDid.strength;\nexport const _mnemonic = (state: RootState) => state.hdDid.mnemonic;\nexport const _seed = (state: RootState) => state.hdDid.seed;\nexport const _masterPrivateKey = (state: RootState) => state.hdDid.masterPrivateKey;\nexport const _masterChainCode = (state: RootState) => state.hdDid.masterChainCode;\nexport const _masterPublicKey = (state: RootState) => state.hdDid.masterPublicKey;\nexport const _masterAddress = (state: RootState) => state.hdDid.masterAddress;\nexport const _masterDid = (state: RootState) => state.hdDid.masterDid;\nexport const _derivationPath = (state: RootState) => state.hdDid.derivationPath;\nexport const _childPrivateKey = (state: RootState) => state.hdDid.childPrivateKey;\nexport const _childChainCode = (state: RootState) => state.hdDid.childChainCode;\nexport const _childPublicKey = (state: RootState) => state.hdDid.childPublicKey;\nexport const _address = (state: RootState) => state.hdDid.address;\nexport const _did = (state: RootState) => state.hdDid.did;\nexport const _validMnemonic = (state: RootState) => state.hdDid.validMnemonic;\nexport const _validDerPath = (state: RootState) => state.hdDid.validDerPath;\nexport const _topMnemonics = (state: RootState) => state.hdDid.topMnemonics;\n\nexport default hdDidSlice.reducer;\n","import React, { useEffect } from 'react';\nimport {\n Grid,\n TextField,\n Button,\n FormControl,\n RadioGroup,\n FormControlLabel,\n Radio,\n Divider,\n Snackbar,\n Fade\n} from '@material-ui/core';\nimport Alert from '@material-ui/lab/Alert';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\nimport TextFieldWithCopy from './TextFieldWithCopy';\nimport Title from './Title';\n\nimport Wallet, {\n generateMnemonic,\n getSeedFromMnemonic,\n Types,\n validateMnemonic\n} from 'did-hd-wallet';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n _address,\n _childChainCode,\n _childPrivateKey,\n _childPublicKey,\n _derivationPath,\n _did,\n _masterChainCode,\n _masterPrivateKey,\n _masterPublicKey,\n _masterAddress,\n _masterDid,\n _mnemonic,\n _seed,\n _strength,\n setStrength,\n setAddress,\n setChildChainCode,\n setChildPrivateKey,\n setChildPublicKey,\n setDID,\n setDerivationPath,\n setMasterChainCode,\n setMasterPrivateKey,\n setMasterPublicKey,\n setMasterAddress,\n setMasterDID,\n setMnemonic,\n setSeed,\n setMnemonicValidity,\n _validMnemonic,\n setTopMnemonics,\n _topMnemonics,\n _validDerPath,\n setDerPathValidity\n} from '../redux/hdDIDSlice';\nimport { Autocomplete, createFilterOptions } from '@material-ui/lab';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2)\n }\n },\n btn: {\n marginBottom: 10\n }\n })\n);\n\nconst filter = createFilterOptions();\n\n/**\n * HD wallet component\n * @return {React.ReactElement}\n */\nexport default function HDDID() {\n const strength = useSelector(_strength);\n const seed = useSelector(_seed);\n const mnemonic = useSelector(_mnemonic);\n const masterPrivateKey = useSelector(_masterPrivateKey);\n const masterChainCode = useSelector(_masterChainCode);\n const masterPublicKey = useSelector(_masterPublicKey);\n const masterAddress = useSelector(_masterAddress);\n const masterDid = useSelector(_masterDid);\n const derivationPath = useSelector(_derivationPath);\n const childPrivateKey = useSelector(_childPrivateKey);\n const childChainCode = useSelector(_childChainCode);\n const childPublicKey = useSelector(_childPublicKey);\n const did = useSelector(_did);\n const address = useSelector(_address);\n const validMnemonic = useSelector(_validMnemonic);\n const validDerPath = useSelector(_validDerPath);\n const topMnemonics = useSelector(_topMnemonics);\n const classes = useStyles();\n\n const [snackBarState, setState] = React.useState<{ open: boolean; text: string }>({\n open: false,\n text: ''\n });\n\n const dispatch = useDispatch();\n\n const handleNumBitSelection = (numBit: string) => {\n const val = parseInt(numBit);\n dispatch(setStrength(val));\n if (seed !== '') {\n handleGenerateSeed(val);\n }\n };\n\n React.useEffect(() => {\n const topMnemonicsStored = localStorage.getItem('topMnemonics');\n try {\n dispatch(setTopMnemonics(JSON.parse(topMnemonicsStored || '[]')));\n } catch (e) {\n dispatch(setTopMnemonics([]));\n }\n }, [dispatch]);\n\n function addMnemonics(mnemonic: string) {\n let topMnemonics = localStorage.getItem('topMnemonics');\n let newTopMnemonics;\n if (topMnemonics) {\n try {\n newTopMnemonics = JSON.parse(topMnemonics);\n } catch (e) {\n newTopMnemonics = [];\n }\n } else {\n newTopMnemonics = [];\n }\n newTopMnemonics.push(mnemonic);\n if (newTopMnemonics.length > 10) {\n newTopMnemonics = newTopMnemonics.slice(newTopMnemonics.length - 10);\n }\n dispatch(setTopMnemonics(newTopMnemonics));\n localStorage.setItem('topMnemonics', JSON.stringify(newTopMnemonics));\n }\n\n function handleGenerateSeed(val?: any): void {\n let length: number = val ? parseInt(val) : strength;\n const mnemonic = generateMnemonic(length);\n addMnemonics(mnemonic);\n const seed = getSeedFromMnemonic(mnemonic);\n\n dispatch(setMnemonic(mnemonic));\n createKeysAndUpdate(seed);\n dispatch(setMnemonicValidity(true));\n }\n\n async function createKeysAndUpdate(seed: string): Promise {\n dispatch(setSeed(seed));\n try {\n const wallet = new Wallet(Types.SEED, seed);\n const { privateKey, publicKey, chainCode, did, address } = await wallet.getMasterKeys();\n\n dispatch(setMasterAddress(address));\n dispatch(setMasterDID(did));\n dispatch(setMasterPrivateKey(privateKey as string));\n dispatch(setMasterChainCode(chainCode));\n dispatch(setMasterPublicKey(publicKey));\n } catch (error) {\n //\n }\n }\n\n async function handleDerivationPathInput(derPath: string): Promise {\n dispatch(setDerivationPath(derPath));\n\n try {\n const wallet = new Wallet(Types.SEED, seed);\n const { privateKey, publicKey, did, address, chainCode } = await wallet.getChildKeys(\n derPath\n );\n\n dispatch(setDerPathValidity(true));\n dispatch(setAddress(address));\n dispatch(setChildPrivateKey(privateKey as string));\n dispatch(setChildPublicKey(publicKey));\n dispatch(setChildChainCode(chainCode));\n dispatch(setDID(did));\n } catch {\n dispatch(setDerPathValidity(false));\n dispatch(setAddress(''));\n dispatch(setChildPrivateKey(''));\n dispatch(setChildPublicKey(''));\n dispatch(setChildChainCode(''));\n dispatch(setDID(''));\n }\n }\n\n function handleMnemonicInput(mnemonic: string): void {\n let success: boolean = true;\n\n if (validateMnemonic(mnemonic)) {\n addMnemonics(mnemonic);\n let seed: string = '';\n try {\n seed = getSeedFromMnemonic(mnemonic);\n success = true;\n createKeysAndUpdate(seed);\n } catch {\n success = false;\n dispatch(setSeed(''));\n dispatch(setMasterPrivateKey(''));\n dispatch(setMasterChainCode(''));\n dispatch(setMasterPublicKey(''));\n }\n } else {\n success = false;\n dispatch(setSeed(''));\n dispatch(setMasterPrivateKey(''));\n dispatch(setMasterChainCode(''));\n dispatch(setMasterPublicKey(''));\n }\n dispatch(setMnemonic(mnemonic));\n dispatch(setMnemonicValidity(success));\n }\n\n function handleMnemonicAutoComplete(event: any, newValue: any) {\n let mnemonic;\n if (typeof newValue === 'string') {\n mnemonic = newValue;\n } else if (newValue && newValue.inputValue) {\n mnemonic = newValue.inputValue;\n } else {\n mnemonic = newValue;\n }\n\n let success: boolean = true;\n\n if (mnemonic) {\n let seed = getSeedFromMnemonic(mnemonic);\n success = true;\n createKeysAndUpdate(seed);\n } else {\n success = false;\n dispatch(setSeed(''));\n dispatch(setMasterPrivateKey(''));\n dispatch(setMasterChainCode(''));\n dispatch(setMasterPublicKey(''));\n }\n dispatch(setMnemonic(mnemonic));\n dispatch(setMnemonicValidity(success));\n }\n\n function handleClose() {\n setState({\n ...snackBarState,\n open: false\n });\n }\n\n function callback(success: boolean) {\n if (success) {\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n\n return (\n
\n \n \n {'Generate HD DIDs'}\n \n\n \n
\n \n Enter mnemonic words or create new random seed\n \n
\n
\n\n \n \n handleNumBitSelection(e.target.value)}>\n } label=\"128 bit\" />\n } label=\"256 bit\" />\n \n \n \n\n \n \n Generate New Random Seed\n \n
\n \n Write down these words and kept in a secure place. This is the only way\n to recover your credentials in case you lost them.\n \n
\n
\n\n \n {\n const filtered = filter(options, params);\n\n // Suggest the creation of a new value\n if (params.inputValue !== '') {\n filtered.push(params.inputValue);\n }\n\n return filtered;\n }}\n options={topMnemonics}\n getOptionLabel={(option: any) => {\n // Value selected with enter, right from the input\n if (typeof option === 'string') {\n return option;\n }\n // Add \"xxx\" option created dynamically\n if (option.inputValue) {\n return option.inputValue;\n }\n // Regular option\n return option;\n }}\n renderOption={(option: any) => option}\n freeSolo\n renderInput={(params) => (\n handleMnemonicInput(e.target.value)}\n fullWidth\n multiline\n error={!validMnemonic && mnemonic !== ''}\n helperText={\n validMnemonic || mnemonic === '' ? '' : 'Invalid mnemonic'\n }\n />\n )}\n />\n \n
\n {validMnemonic && (\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 handleDerivationPathInput(e.target.value)}\n />\n \n \n )}\n {validMnemonic && validDerPath && (\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","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface ResolveDidState {\n did: string;\n didDoc: string;\n}\n\nconst initialState: ResolveDidState = {\n did: '',\n didDoc: ''\n};\n\nexport const resolveDidSlice = createSlice({\n name: 'resolveDID',\n initialState,\n reducers: {\n setDID: (state, action: PayloadAction) => {\n state.did = action.payload;\n },\n setDidDoc: (state, action: PayloadAction) => {\n state.didDoc = action.payload;\n }\n }\n});\n\nexport const { setDID, setDidDoc } = resolveDidSlice.actions;\n\nexport const _did = (state: RootState) => state.resolveDID.did;\nexport const _didDoc = (state: RootState) => state.resolveDID.didDoc;\n\nexport default resolveDidSlice.reducer;\n","import React from 'react';\nimport { Button, Grid, Snackbar, TextField, Fade } from '@material-ui/core';\n\nimport DescriptionBox from './DescriptionBox';\nimport Title from './Title';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setDID, setDidDoc, _did, _didDoc } from '../redux/resolveDIDSlice';\n\nexport default function ResolveDID() {\n const did = useSelector(_did);\n const didDoc = useSelector(_didDoc);\n const dispatch = useDispatch();\n\n const [snackBarState, setState] = React.useState<{ open: boolean; text: string }>({\n open: false,\n text: ''\n });\n\n function didResolve(did: string): Promise {\n return new Promise((res, rej) => {\n fetch(`https://dev.uniresolver.io/1.0/identifiers/${did}`)\n .then((res) => res.json())\n .then((doc) => {\n res(doc);\n })\n .catch((err: Error) => {\n rej({ status: 'error', message: 'Failed to retrieve DID Document' });\n });\n });\n }\n\n function onResolveDID() {\n if (did && did !== '') {\n didResolve(did)\n .then((doc) => {\n dispatch(setDidDoc(JSON.stringify(doc, undefined, 4)));\n })\n .catch((err) => {\n dispatch(setDidDoc(JSON.stringify(err)));\n });\n }\n }\n\n function copyToClipboard(text: string) {\n if (text !== '') {\n if (window.isSecureContext) {\n navigator.clipboard.writeText(text);\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n }\n\n function handleClose() {\n setState({\n ...snackBarState,\n open: false\n });\n }\n\n return (\n
\n \n \n Resolve DID\n \n\n \n \n \n\n \n dispatch(setDID(e.target.value))}\n />\n \n\n \n \n Resolve DID\n \n \n\n \n copyToClipboard(didDoc)}\n />\n \n \n \n
\n );\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface PresentState {\n holderPrivateKey: string;\n credentials: string[];\n masks: any[];\n inputComponentList: number[];\n vp: string;\n}\n\nconst initialState: PresentState = {\n holderPrivateKey: '',\n credentials: [''],\n masks: [{}],\n inputComponentList: [0],\n vp: ''\n};\n\nexport const presentSlice = createSlice({\n name: 'present',\n initialState,\n reducers: {\n setHolderPrivateKey: (state, action: PayloadAction) => {\n state.holderPrivateKey = action.payload;\n },\n setCredentials: (state, action: PayloadAction) => {\n state.credentials = action.payload;\n },\n setMasks: (state, action: PayloadAction) => {\n state.masks = action.payload;\n },\n setInputComponentList: (state, action: PayloadAction) => {\n state.inputComponentList = action.payload;\n },\n setVP: (state, action: PayloadAction) => {\n state.vp = action.payload;\n }\n }\n});\n\nexport const { setHolderPrivateKey, setCredentials, setInputComponentList, setVP, setMasks } =\n presentSlice.actions;\n\nexport const _holderPrivateKey = (state: RootState) => state.present.holderPrivateKey;\nexport const _credentials = (state: RootState) => state.present.credentials;\nexport const _masks = (state: RootState) => state.present.masks;\nexport const _inputComponentList = (state: RootState) => state.present.inputComponentList;\nexport const _vp = (state: RootState) => state.present.vp;\n\nexport default presentSlice.reducer;\n","import {\n Checkbox,\n FormControlLabel,\n FormGroup,\n List,\n ListItem,\n Typography\n} from '@material-ui/core';\nimport React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setMasks, _credentials, _masks } from '../redux/presentSlice';\n\nexport default function Masker(props: any) {\n const masks = useSelector(_masks);\n const credentials = useSelector(_credentials);\n const dispatch = useDispatch();\n let claims = {};\n\n try {\n claims = JSON.parse(btoa(credentials[props.index])).claims;\n } catch (error) {}\n\n const handleCheckboxInput = (checked: boolean, key: string) => {\n let newMasks: any = [...masks];\n if (newMasks[props.index]) {\n newMasks = [\n ...masks.slice(0, props.index),\n { ...masks[props.index], [key]: checked },\n ...masks.slice(props.index + 1)\n ];\n // newMasks[props.index][key] = checked\n } else {\n newMasks = [\n ...masks.slice(0, props.index),\n { [key]: checked },\n ...masks.slice(props.index + 1)\n ];\n // newMasks[props.index] = {[key]: checked}\n }\n\n dispatch(setMasks(newMasks));\n };\n\n return (\n
\n \n \n Select to mask claims\n {Object.keys(claims).map((key: string) => {\n return (\n \n \n handleCheckboxInput(e.target.checked, key)\n }\n name=\"checkedB\"\n color=\"primary\"\n />\n }\n label={`Claim \"${key}\" ${\n masks[props.index][key] ? 'Masked' : 'Exposed'\n }`}\n labelPlacement=\"start\"\n />\n \n );\n })}\n \n \n
\n );\n}\n","import { IconButton, makeStyles, TextField, Typography } from '@material-ui/core';\nimport MinimizeIcon from '@material-ui/icons/Minimize';\nimport React from 'react';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n setCredentials,\n _credentials,\n _inputComponentList,\n _masks,\n setInputComponentList\n} from '../redux/presentSlice';\n\nimport Masker from './Masker';\n\nconst useStyles = makeStyles({\n elements: {\n marginLeft: 3,\n marginRight: 3\n },\n secondaryWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch'\n }\n});\n\nexport default function MaskingComponent(props: { index: number }) {\n const masks = useSelector(_masks);\n const credentials = useSelector(_credentials);\n const inputComponentList = useSelector(_inputComponentList);\n const dispatch = useDispatch();\n\n const classes = useStyles();\n\n const handeleSignedCredntialInput = (credential: string, index: number) => {\n const newCredentialArray = [...credentials];\n newCredentialArray[index] = credential;\n dispatch(setCredentials(newCredentialArray));\n };\n\n const removeInput = (index: number) => {\n const newInputComponentList = [...inputComponentList];\n const newMaskArray = [...masks];\n const newCredentialArray = [...credentials];\n newInputComponentList.pop();\n newMaskArray.splice(index, 1);\n newCredentialArray.splice(index, 1);\n dispatch(setInputComponentList(newInputComponentList));\n dispatch(setCredentials(newCredentialArray));\n };\n\n return (\n
\n
\n handeleSignedCredntialInput(e.target.value, props.index)}\n label=\"Signed Credentials\"\n variant=\"outlined\"\n multiline\n fullWidth\n />\n removeInput(props.index)}\n disabled={inputComponentList.length < 2}>\n \n \n
\n \n
\n );\n}\n","import React from 'react';\nimport { Button, Fade, Grid, IconButton, List, Snackbar, TextField } from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport Title from './Title';\nimport { verifiable } from 'sd-vc-lib';\nimport MaskingComponent from './MaskingComponent';\nimport {\n setCredentials,\n setHolderPrivateKey,\n setInputComponentList,\n setMasks,\n setVP,\n _credentials,\n _holderPrivateKey,\n _inputComponentList,\n _masks,\n _vp\n} from '../redux/presentSlice';\nimport documentLoader from '../utils/document-loader';\n\nexport default function SDCredentialMasker() {\n const vp = useSelector(_vp);\n const inputComponentList = useSelector(_inputComponentList);\n const credentials = useSelector(_credentials);\n const masks = useSelector(_masks);\n const holderPrivateKey = useSelector(_holderPrivateKey);\n\n const dispatch = useDispatch();\n\n const [snackBarState, setState] = React.useState<{ open: boolean; text: string }>({\n open: false,\n text: ''\n });\n\n function handlePrivateKeyInput(privateKey: string) {\n dispatch(setHolderPrivateKey(privateKey));\n }\n\n async function mask() {\n const cred = credentials.map((cred: any) => {\n return JSON.parse(atob(cred));\n });\n\n try {\n const vp = await verifiable.presentation.create({\n documentLoader: documentLoader,\n masks: masks,\n holderPrivateKey,\n verifiableCredential: cred\n });\n dispatch(setVP(btoa(JSON.stringify(vp))));\n } catch (e: any) {\n dispatch(setVP(e.message));\n }\n }\n\n function copyToClipboard(text: string) {\n if (text !== '') {\n if (window.isSecureContext) {\n navigator.clipboard.writeText(text);\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n }\n\n function callback(success: boolean) {\n if (success) {\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n\n function handleClose() {\n setState({\n ...snackBarState,\n open: false\n });\n }\n\n function addNewInput() {\n const i = inputComponentList.length;\n const newInputComponentList = [...inputComponentList, i];\n const newMasks = [...masks, {}];\n const newCredentials = [...credentials, ''];\n // masks.push({})\n // credentials.push('')\n // newInputComponentList.push(i)\n dispatch(setMasks(newMasks));\n dispatch(setCredentials(newCredentials));\n dispatch(setInputComponentList(newInputComponentList));\n }\n\n return (\n
\n \n \n Mask and present credentials\n \n\n \n \n {inputComponentList.map((i: number) => {\n return ;\n })}\n \n \n\n \n \n Add more credentials\n \n \n\n \n handlePrivateKeyInput(e.target.value)}\n label=\"Holder's Private Key\"\n variant=\"outlined\"\n multiline\n fullWidth\n />\n \n\n \n \n Mask & Present\n \n \n\n \n copyToClipboard(vp)}\n />\n \n \n\n \n
\n );\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface offResolverState {\n did: string;\n didDoc: string;\n}\n\nconst initialState: offResolverState = {\n did: '',\n didDoc: ''\n};\n\nexport const offResolverSlice = createSlice({\n name: 'off-resolve',\n initialState,\n reducers: {\n setDID: (state, action: PayloadAction) => {\n state.did = action.payload;\n },\n setDIDDocument: (state, action: PayloadAction) => {\n state.didDoc = action.payload;\n }\n }\n});\n\nexport const { setDID, setDIDDocument } = offResolverSlice.actions;\n\nexport const _did = (state: RootState) => state.offResolve.did;\nexport const _didDoc = (state: RootState) => state.offResolve.didDoc;\n\nexport default offResolverSlice.reducer;\n","import React, { useState } from 'react';\nimport { Grid, TextField, Button } from '@material-ui/core';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\nimport Title from './Title';\nimport axios from 'axios';\nimport { isAddress } from '../utils';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setDID, setDIDDocument, _did, _didDoc } from '../redux/offResolverSlice';\nimport Spinner from './Spinner';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2)\n }\n },\n btn: {\n marginBottom: 10\n }\n })\n);\n\nexport default function OCDIDResolver() {\n const did = useSelector(_did);\n const didDoc = useSelector(_didDoc);\n const [isValidDID, setIsValidDID] = useState(true);\n const classes = useStyles();\n\n const [snackBarState, setState] = React.useState<{ open: boolean; text: string }>({\n open: false,\n text: ''\n });\n const [isResolving, setIsResolving] = useState(false);\n\n const dispatch = useDispatch();\n\n function getDID() {\n setIsResolving(true);\n axios\n .get(`${process.env.REACT_APP_BACKEND}/did/${did}`)\n .then((res: any) => {\n setIsValidDID(true);\n dispatch(setDIDDocument(JSON.stringify(res.data.didDocument, null, 4)));\n setIsResolving(false);\n })\n .catch((err) => {\n if (err.response && err.response.data.error) {\n dispatch(setDIDDocument(err.response.data.error));\n } else {\n dispatch(setDIDDocument('Error'));\n }\n setIsResolving(false);\n });\n }\n\n function handleDidInput(did: string): void {\n dispatch(setDID(did));\n }\n\n function copyToClipboard(text: string) {\n if (text !== '') {\n if (window.isSecureContext) {\n navigator.clipboard.writeText(text);\n setState({\n open: true,\n text: 'Copied to clipboard'\n });\n } else {\n setState({\n open: true,\n text: 'Clould not copied'\n });\n }\n }\n }\n\n return (\n \n \n {'Resolve Offchain DID'}\n \n\n \n handleDidInput(e.target.value)}\n error={!isValidDID}\n helperText={isValidDID ? '' : 'Invalid DID'}\n />\n \n\n \n \n Resolve DID\n \n \n\n \n {\n copyToClipboard(didDoc);\n }}\n />\n \n {isResolving && }\n \n );\n}\n","import React from 'react';\nimport { createStyles, Theme, makeStyles, createMuiTheme } from '@material-ui/core/styles';\nimport { ThemeProvider } from '@material-ui/styles';\nimport Container from '@material-ui/core/Container';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport Drawer from '@material-ui/core/Drawer';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport Hidden from '@material-ui/core/Hidden';\nimport IconButton from '@material-ui/core/IconButton';\nimport { _view } from './redux/appSlice';\nimport { useSelector } from 'react-redux';\n\nimport Home from './components/Home';\nimport DrawerItems from './components/DrawerItems';\nimport NormalDID from './components/NormalDID';\nimport HDDID from './components/HDDID';\nimport ResolveDID from './components/ResolveDID';\nimport SDCredentialCreator from './components/SDCredentialCreator';\nimport SDCredentialMasker from './components/SDCredentialMasker';\nimport SDCredentialVerifier from './components/SDCredentialVerifier';\nimport OCDIDCreator from './components/OffChainDIDCreator';\nimport OCDIDResolver from './components/OffChainDIDResolver';\nimport OCDIDUpdater from './components/OffchainDIDUpdater';\nimport OCDIDRevoker from './components/OffchainDIDRevoker';\n\nconst drawerWidth = 200;\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: '#24C3B5'\n },\n secondary: {\n main: '#24C3B5',\n contrastText: '#ffcc00'\n },\n text: {\n primary: '#5F6F81',\n secondary: '#303030'\n },\n contrastThreshold: 1,\n tonalOffset: 0.2\n }\n});\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n display: 'flex'\n },\n appBar: {\n zIndex: theme.zIndex.drawer + 1\n },\n drawer: {\n width: drawerWidth,\n flexShrink: 0\n },\n drawerPaper: {\n width: drawerWidth\n },\n content: {\n flexGrow: 1,\n padding: theme.spacing(3)\n },\n menuButton: {\n marginRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n display: 'none'\n }\n }\n })\n);\n\n/**\n * Main app component\n * @return {React.ReactElement}\n */\nfunction App() {\n const view = useSelector(_view);\n const [mobileOpen, setMobileOpen] = React.useState(false);\n const classes = useStyles();\n\n const handleDrawerToggle = () => {\n setMobileOpen(!mobileOpen);\n };\n\n let currentView =
;\n\n switch (view) {\n case 0:\n currentView = ;\n break;\n case 1:\n currentView = ;\n break;\n case 2:\n currentView = ;\n break;\n case 3:\n currentView = ;\n break;\n case 4:\n currentView = ;\n break;\n case 5:\n currentView = ;\n break;\n case 6:\n currentView = ;\n break;\n case 7:\n currentView = ;\n break;\n case 8:\n currentView = ;\n break;\n case 9:\n currentView = ;\n break;\n case 10:\n currentView = ;\n break;\n default:\n currentView = ;\n }\n\n return (\n \n
\n \n \n \n \n \n \n SIOP-DID Tools\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n \n \n {currentView}\n \n
\n
\n
\n );\n}\n\nexport default App;\n","import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit';\nimport appReducer from '../redux/appSlice';\nimport issueReducer from '../redux/issueSlice';\nimport presentReducer from '../redux/presentSlice';\nimport verifyReducer from '../redux/verifySlice';\nimport normalDidReducer from '../redux/normalDIDSlice';\nimport hdDidReducer from '../redux/hdDIDSlice';\nimport resolveDidReducer from '../redux/resolveDIDSlice';\nimport offResolver from '../redux/offResolverSlice';\nimport offUpdater from '../redux/offUpdaterSlice';\nimport offRevoker from '../redux/offRevokerSlice';\nimport offCreator from '../redux/offCreatorSlice';\n\nexport const store = configureStore({\n reducer: {\n app: appReducer,\n issue: issueReducer,\n present: presentReducer,\n verify: verifyReducer,\n normalDID: normalDidReducer,\n hdDid: hdDidReducer,\n resolveDID: resolveDidReducer,\n offCreator: offCreator,\n offResolve: offResolver,\n offUpdater: offUpdater,\n offRevoker: offRevoker\n }\n});\n\nexport type RootState = ReturnType;\nexport type AppThunk = ThunkAction<\n ReturnType,\n RootState,\n unknown,\n Action\n>;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.scss';\nimport App from './App';\nimport { store } from './app/store';\nimport { Provider } from 'react-redux';\nimport * as serviceWorker from './serviceWorker';\n\ndocument.title = 'SIOP-DID Tools';\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { RootState } from '../app/store';\n\ninterface offRevokerState {\n did: string;\n privateKey: string;\n didDoc: string;\n}\n\nconst initialState: offRevokerState = {\n did: '',\n privateKey: '',\n didDoc: ''\n};\n\nexport const offRevokerSlice = createSlice({\n name: 'off-revoke ',\n initialState,\n reducers: {\n setDID: (state, action: PayloadAction) => {\n state.did = action.payload;\n },\n setPrivateKey: (state, action: PayloadAction) => {\n state.privateKey = action.payload;\n },\n setDIDDocument: (state, action: PayloadAction) => {\n state.didDoc = action.payload;\n }\n }\n});\n\nexport const { setDID, setPrivateKey, setDIDDocument } = offRevokerSlice.actions;\n\nexport const _did = (state: RootState) => state.offRevoker.did;\nexport const _privateKey = (state: RootState) => state.offRevoker.privateKey;\nexport const _didDoc = (state: RootState) => state.offRevoker.didDoc;\n\nexport default offRevokerSlice.reducer;\n"],"sourceRoot":""}