on master help sign in
574 files changed+81951−44280
since splitsnapshots
unifiedsplit
.env+2−2 .env.development+5−5 .prettierignore → .eslintignore .eslintrc+1−1 .github/ISSUE_TEMPLATE/bridge-bug-report.md+41 .github/ISSUE_TEMPLATE/l2-bug-report.md+41 .gitignore+2 .nvmrc+1 .vscode/settings.json+3 DEVELOPMENT.md+218 README.md+32−112 bridge-npm-audit.txt+697 contracts/Migrations.sol+18 contracts/Naive.sol+15 find-gas-usage.js+114 globals.d.ts+13 index.html+107 jsconfig.json−5 legal/privacy policy.md+11−11 migrations/1_migration.js+184 notes.md+1 package-lock.json+49917−15925 package.json+117−43 public/index.html−18 public/spritesheet_a.png src/Bridge.js−56 src/Bridge.tsx+128 src/_walletgen/Walletgen.js−107 src/_walletgen/components/Button.js−9 src/_walletgen/components/CheckBox.js−48 src/_walletgen/components/EulaText.js−512 src/_walletgen/components/Footer.js−42 src/_walletgen/components/Header.js−121 src/_walletgen/components/InputBox.js−31 src/_walletgen/components/ReactSVGComponents.js−79 src/_walletgen/components/UploadButton.js−32 src/_walletgen/lib/constants.js−58 src/_walletgen/lib/lib.js−69 src/_walletgen/style/base.css−12790 src/_walletgen/style/index.css−474 src/_walletgen/style/type.css−72 src/_walletgen/views/BrowserWarning.js−13 src/_walletgen/views/Custody.js−37 src/_walletgen/views/Done.js−79 src/_walletgen/views/Download.js−168 src/_walletgen/views/Eula.js−48 src/_walletgen/views/EulaView.js−35 src/_walletgen/views/Generate.js−473 src/_walletgen/views/NetworkWarning.js−14 src/_walletgen/views/PrivacyPolicy.js−367 src/_walletgen/views/Understand.js−66 src/_walletgen/views/Upload.js−273 src/_walletgen/views/Welcome.js−50 src/assets/back.svg+4 src/assets/blank-planet-sigil.svg+39 src/assets/copy.svg+3 src/assets/history.svg+6 src/assets/info.svg+3 src/assets/invite.svg+3 src/assets/keyfile.svg+5 src/assets/metamask.png src/assets/metamask.svg+9 src/assets/search.svg+3 src/assets/secret-hidden.svg+17 src/assets/secret-show.svg+4 src/assets/star.svg+3 src/assets/wallet-connect.png src/assets/wallet-connect.svg+3 src/assets/wallet.svg+3 src/azimuth-js.d.ts+2 src/components/Accordion.jsx+63 src/components/AddressButton.tsx+36 src/components/AlertBox.tsx+25 src/components/AspectRatio.jsx+22 src/components/BarGraph.jsx+29 src/components/Blinky.jsx+47 src/components/BrowserWarning.tsx+27 src/components/Buttons.js−6 src/components/Buttons.jsx+33 src/components/Chip.jsx+16 src/components/Crumbs.jsx+32 src/components/DownloadKeyfileButton.jsx+33 src/components/DownloadSigilButton.jsx+72 src/components/Footer.js−17 src/components/Footer.jsx+12 src/components/FooterButton.jsx+17 src/components/GlobalErrorBoundary.tsx+81 src/components/Greeting.jsx+109 src/components/Header.jsx+17 src/components/Highlighted.jsx+22 src/components/InlineEthereumTransaction.jsx+375 src/components/InlineEthereumTransaction.scss+27 src/components/InputSigil.js−40 src/components/InputSigil.jsx+46 src/components/Inputs.js−94 src/components/InviteSigilList.jsx+50 src/components/L2/Card.scss+46 src/components/L2/Card.tsx+43 src/components/L2/CreatingInvitesModal.tsx+85 src/components/L2/Dropdowns/AccountsDropdown.scss+137 src/components/L2/Dropdowns/AccountsDropdown.tsx+145 src/components/L2/Dropdowns/Dropdown.scss+65 src/components/L2/Dropdowns/Dropdown.tsx+37 src/components/L2/Dropdowns/FeeDropdown.scss+71 src/components/L2/Dropdowns/FeeDropdown.tsx+136 src/components/L2/Headers/AdvancedOptions.scss+54 src/components/L2/Headers/AdvancedOptions.tsx+71 src/components/L2/Headers/HeaderButton.scss+10 src/components/L2/Headers/HeaderButton.tsx+23 src/components/L2/Headers/L2BackHeader.scss+40 src/components/L2/Headers/L2BackHeader.tsx+77 src/components/L2/Headers/L2PointHeader.scss+90 src/components/L2/Headers/L2PointHeader.tsx+102 src/components/L2/InviteConverter.tsx+292 src/components/L2/LayerIndicator.scss+59 src/components/L2/LayerIndicator.tsx+26 src/components/L2/LoadingOverlay.scss+40 src/components/L2/LoadingOverlay.tsx+26 src/components/L2/Modal.scss+53 src/components/L2/Modal.tsx+41 src/components/L2/Paginator.scss+30 src/components/L2/Paginator.tsx+41 src/components/L2/PendingTransaction.scss+64 src/components/L2/PendingTransaction.tsx+46 src/components/L2/PermissionIndicator.scss+15 src/components/L2/PermissionIndicator.tsx+35 src/components/L2/PointList.tsx+65 src/components/L2/Points/IncomingPoint.scss+47 src/components/L2/Points/IncomingPoint.tsx+46 src/components/L2/Window/BodyPane.scss+89 src/components/L2/Window/BodyPane.tsx+28 src/components/L2/Window/HeaderPane.scss+54 src/components/L2/Window/HeaderPane.tsx+14 src/components/L2/Window/Window.scss+9 src/components/L2/Window/Window.tsx+14 src/components/LoadingBar.jsx+19 src/components/LoginButton.jsx+27 src/components/MaybeSigil.jsx+22 src/components/MiniBackButton.jsx+14 src/components/MiniBackButton.scss+10 src/components/NavHeader.jsx+12 src/components/NeedFundsNotice.jsx+27 src/components/NetworkKeys.jsx+98 src/components/NoticeBox.jsx+11 src/components/PaperBuilder.jsx+17 src/components/Passport.js−25 src/components/Passport.jsx+244 src/components/ProgressButton.jsx+30 src/components/ReactSVGComponents.js−87 src/components/Router.js−13 src/components/Router.jsx+9 src/components/Sigil.js−13 src/components/Sigil.jsx+13 src/components/SigilMini.scss+46 src/components/Steps.jsx+11 src/components/Tabs.jsx+53 src/components/UploadButton.jsx+21 src/components/View.js−33 src/components/View.tsx+132 src/components/ViewHeader.jsx+7 src/components/WarningBox.jsx+11 src/components/WithErrorBoundary.jsx+20 src/components/WithTooltip.tsx+56 src/components/alerts/L2VulnAlert.tsx+49 src/components/copiable/CopiableAddress.jsx+19 src/components/copiable/CopiableAddressWrap.jsx+10 src/components/copiable/CopiableWithTooltip.jsx+30 src/components/copiable/CopyButton.jsx+29 src/components/copiable/CopyButtonWide.tsx+28 src/components/form/TicketInputAccessory.scss+7 src/components/form/TicketInputAccessory.tsx+17 src/components/old/Anchor.js−28 src/components/old/Base.js−182 src/components/old/Blockie.js−17 src/components/old/Breadcrumb.js−9 src/components/old/BreadcrumbItem.js−9 src/components/old/Button.js−21 src/components/old/Checkbox.js−50 src/components/old/CheckboxButton.js−55 src/components/old/Code.js−34 src/components/old/Col.js−23 src/components/old/DropdownDivider.js−11 src/components/old/DropdownItem.js−35 src/components/old/FlexCol.js−23 src/components/old/FlexRow.js−17 src/components/old/Form.js−23 src/components/old/H1.js−25 src/components/old/H2.js−23 src/components/old/H3.js−23 src/components/old/H4.js−23 src/components/old/Header.js−66 src/components/old/HorizontalSelector.js−51 src/components/old/InnerLabel.js−25 src/components/old/InnerLabelDropdown.js−115 src/components/old/Input.js−67 src/components/old/InputCaption.js−25 src/components/old/Label.js−23 src/components/old/P.js−34 src/components/old/Passport.js−236 src/components/old/PointList.js−32 src/components/old/ProtoAnchor.js−27 src/components/old/ProtoButton.js−39 src/components/old/ProtoInput.js−66 src/components/old/ProtoTextarea.js−62 src/components/old/RenderedPoint.js−57 src/components/old/Row.js−23 src/components/old/RowCol.js−25 src/components/old/ShowBlockie.js−70 src/components/old/Spacing.js−25 src/components/old/StatelessTransaction.js−596 src/components/old/Textarea.js−67 src/components/old/UploadButton.js−31 src/components/old/ValidatedBlockie.js−64 src/components/old/ValidatedSigil.js−75 src/components/old/Warning.js−23 src/components/old/advancedInput.js−147 src/form/BridgeForm.tsx+70 src/form/ColorInput.jsx+50 src/form/Condition.js+11 src/form/EmailChipInput.jsx+122 src/form/FormError.jsx+34 src/form/Inputs.tsx+335 src/form/SubmitButton.jsx+71 src/form/UploadInput.jsx+51 src/form/ValidationPauser.js+27 src/form/ValuesHandler.js+18 src/form/formatters.test.ts+45 src/form/formatters.ts+127 src/form/helpers.js+5 src/form/validators.js+186 src/index.js → src/index.tsx+3−2 src/indigo-react/components/AccessoryIcon.jsx+32 src/indigo-react/components/Button.js−48 src/indigo-react/components/Button.jsx+85 src/indigo-react/components/CheckboxInput.jsx+54 src/indigo-react/components/Flex.d.ts+1 src/indigo-react/components/Flex.js → src/indigo-react/components/Flex.jsx+23−20 src/indigo-react/components/Grid.d.ts+1 src/indigo-react/components/Grid.js−61 src/indigo-react/components/Grid.jsx+78 src/indigo-react/components/IconButton.jsx+56 src/indigo-react/components/IndigoApp.js → src/indigo-react/components/IndigoApp.jsx+2−2 src/indigo-react/components/Input.js−214 src/indigo-react/components/Input.jsx+122 src/indigo-react/components/LinkButton.jsx+35 src/indigo-react/components/SelectInput.jsx+142 src/indigo-react/components/ToggleInput.jsx+70 src/indigo-react/components/Typography.jsx+22 src/indigo-react/index.js+9−1 src/indigo-react/indigo.css+186−78 src/indigo-react/lib/getComponent.js−1 src/indigo-react/lib/useOnClickOutside.js+23 src/lib/LocalRouter.ts+10 src/lib/MediaQuery.jsx+24 src/lib/SigilDownloader.js+50 src/lib/SolarisClient.js+103 src/lib/WalletConnect.ts+63 src/lib/authToken.ts+120 src/lib/capitalize.js+1 src/lib/card.js+190 src/lib/child.js+3−1 src/lib/constants.ts+287 src/lib/contracts.js+10−10 src/lib/convertToInt.js+17 src/lib/dateFormat.js+13 src/lib/error.js+16−13 src/lib/expiredPlanetsWithInviteCodes.json+1445 src/lib/explorer.js+33 src/lib/flags.js+13−1 src/lib/flowCommand.ts+113 src/lib/getSuggestedGasPrice.js+110 src/lib/hosting.js+26 src/lib/invite.js+20−315 src/lib/inviteMail.js+12−3 src/lib/isPromise.js+6 src/lib/keys.js+178−60 src/lib/ledger.js−24 src/lib/lib.js+47−3 src/lib/maybeGetResult.ts+12 src/lib/metamask.ts+79 src/lib/need.js+47−13 src/lib/nest.js+1−1 src/lib/network.js+41−9 src/lib/networkCode.js+55 src/lib/patp2dec.js+11 src/lib/pluralize.js+8 src/lib/point.js+13 src/lib/proxy.js+50−13 src/lib/reticket.js+286 src/lib/routeNames.js−33 src/lib/routeNames.ts+39 src/lib/router.js−143 src/lib/router.ts+62 src/lib/starRelease.js+166 src/lib/tank.js+93−66 src/lib/timeout.js+1 src/lib/transformers.js−17 src/lib/trezor.js−33 src/lib/txn.js−253 src/lib/txn.ts+284 src/lib/types/BridgeWallet.ts+6 src/lib/types/ITxData.ts+9 src/lib/types/Invite.ts+14 src/lib/types/Keypair.ts+7 src/lib/types/L1Point.ts+20 src/lib/types/L2Transaction.ts+85 src/lib/types/NetworkKeys.ts+11 src/lib/types/PendingL1Transaction.ts+24 src/lib/types/Point.ts+255 src/lib/types/PointLayer.ts+4 src/lib/types/ValueOf.ts+1 src/lib/types/WalletConnectWallet.ts+5 src/lib/useBlockWindowClose.js+33 src/lib/useBreakpoints.tsx+6 src/lib/useBrowser.ts+32 src/lib/useConstant.js+13 src/lib/useCopiable.ts+23 src/lib/useCurrentPermissions.js+17 src/lib/useCurrentPointName.js+12 src/lib/useDeepEqualReference.js+22 src/lib/useEthereumTransaction.js+368 src/lib/useGasPrice.js+60 src/lib/useHasDisclaimed.js+7 src/lib/useHasNetworkKeysSet.tsx+25 src/lib/useImpliedPoint.js+14 src/lib/useImpliedTicket.test.ts+77 src/lib/useImpliedTicket.ts+40 src/lib/useInterval.js+22 src/lib/useInvites.js−34 src/lib/useIsEclipticOwner.js+25 src/lib/useIsExpiredInvite.ts+23 src/lib/useKeyfileGenerator.ts+256 src/lib/useLifecycle.js+1 src/lib/useLocalHosting.js+51 src/lib/useLocalStorageState.js+43 src/lib/useLoginView.js+17 src/lib/useMailer.js+46 src/lib/useMedia.js+31 src/lib/useOnClickOutside.ts+34 src/lib/usePermissionsForPoint.js+107 src/lib/usePreviousValue.js+16 src/lib/useRejectedIncomingPointTransfers.js+19 src/lib/useRenderCount.js+7 src/lib/useReticketL2Spawn.ts+136 src/lib/useRoller.ts+857 src/lib/useRollerOptions.ts+59 src/lib/useRollerPoller.ts+44 src/lib/useRouter.tsx+184 src/lib/useSeenMissingKeys.js+7 src/lib/useSetState.js+16 src/lib/useSigilDownloader.js+58 src/lib/useSyncPoint.js−12 src/lib/useSyncPoints.js+32 src/lib/useWalletConnect.ts+360 src/lib/useWasGreeted.js+7 src/lib/utils/address.test.ts+19 src/lib/utils/address.ts+34 src/lib/utils/array.ts+2 src/lib/utils/date.ts+19 src/lib/utils/hex.ts+11 src/lib/utils/invite.ts+34 src/lib/utils/notifications.ts+5 src/lib/utils/point.ts+43 src/lib/utils/roller.ts+404 src/lib/utils/wallet.ts+7 src/lib/validators.js−141 src/lib/validators.ts+166 src/lib/wallet.js−151 src/lib/wallet.ts+47 src/lib/walletgen.ts+125 src/nockjs/TODO−42 src/nockjs/bits.js−333 src/nockjs/compiler.js−726 src/nockjs/hamt.js−137 src/nockjs/list.js−40 src/nockjs/noun.js−367 src/nockjs/serial.js−167 src/nockjs/test/ack.js−51 src/nockjs/test/add.js−40 src/nockjs/test/bits.js−15 src/nockjs/test/decrement.js−37 src/nockjs/test/hamt.js−16 src/nockjs/test/noun.js−88 src/nockjs/test/serial.js−22 src/react-app-env.d.ts+7 src/setupTests.ts+1 src/store/Provider.js+5−3 src/store/history.js−79 src/store/history.tsx+52 src/store/lib/useControlledPointsStore.js+136 src/store/lib/useDetailsStore.ts+74 src/store/lib/useEclipticOwnerStore.js+26 src/store/lib/usePointStore.js+47 src/store/lib/useRekeyDateStore.js+79 src/store/lib/useResidentsStore.ts+114 src/store/lib/useStarReleaseStore.js+70 src/store/network.js−119 src/store/network.jsx+162 src/store/online.js → src/store/online.jsx src/store/pointCache.js−64 src/store/pointCache.jsx+53 src/store/pointCursor.js → src/store/pointCursor.jsx+27−5 src/store/rollerStore.ts+106 src/store/starRelease.jsx+20 src/store/storage/roller.ts+57 src/store/timerStore.ts+16 src/store/txnConfirmations.js−44 src/store/txnCursor.js → src/store/txnCursor.jsx src/store/wallet.js−136 src/store/wallet.jsx+256 src/style/Inter-Medium.css+1 src/style/Inter-Regular.css+1 src/style/Inter-SemiBold.css+1 src/style/SourceCodePro-Medium.css+1 src/style/SourceCodePro-Regular.css+1 src/style/SourceCodePro-SemiBold.css+1 src/style/anim.css+458 src/style/bridge.scss+25−16 src/style/fadeable.scss+21 src/style/fonts.scss−6 src/style/fonts64.scss+6 src/style/fonts64/SourceCodePro-Bold.css−5 src/style/fonts64/SourceCodePro-Regular.css−5 src/style/fontstack/Inter-UI/Inter-UI-Regular.woff src/style/fontstack/Inter-UI/Inter-UI-Regular.woff2 src/style/fontstack/Inter-UI/Inter-UI-SemiBold.woff src/style/fontstack/Inter-UI/Inter-UI-SemiBold.woff2 src/style/fontstack/Inter-UI/inter-ui.css−15 src/style/form-reset.scss+107 src/style/index.scss+10−1 src/style/indigo-proposals.scss+34−5 src/style/master-key.scss+37 src/style/pulsating-circle-bg.scss+18 src/style/shared/variables.scss+16 src/urbit-key-generation.d.ts+125 src/urbit-ob.d.ts+1 src/views/AcceptLockup.jsx+156 src/views/AcceptTransfer.js−121 src/views/AcceptTransfer.tsx+206 src/views/Activate.jsx+50 src/views/Activate/ActivateButton.tsx+45 src/views/Activate/ActivateCode.tsx+100 src/views/Activate/ActivateCodeForm.tsx+249 src/views/Activate/ActivateHeader.tsx+29 src/views/Activate/ActivateMasterKey.tsx+38 src/views/Activate/ActivateParagraph.tsx+33 src/views/Activate/ActivateSteps.tsx+49 src/views/Activate/ActivateView.scss+34 src/views/Activate/ActivateView.tsx+82 src/views/Activate/CodeExpired.scss+3 src/views/Activate/CodeExpired.tsx+47 src/views/Activate/DangerBox.tsx+28 src/views/Activate/MasterKey.tsx+122 src/views/Activate/MasterKeyConfirm.scss+72 src/views/Activate/MasterKeyConfirm.tsx+189 src/views/Activate/MasterKeyCopy.tsx+37 src/views/Activate/MasterKeyDownload.tsx+161 src/views/Activate/MasterKeyPresenter.tsx+63 src/views/Activate/MasterKeyReveal.tsx+108 src/views/Activate/MasterKeyTransfer.tsx+153 src/views/Activate/PointPresenter.tsx+65 src/views/Activate/useActivateFlow.js+9 src/views/Activate/useActivateFlowState.js+73 src/views/Activate/useFadeIn.ts+16 src/views/Activate/withFadeable.tsx+28 src/views/Bitcoin/Bitcoin.scss+29 src/views/Bitcoin/Bitcoin.tsx+213 src/views/CancelTransfer.js−80 src/views/CancelTransfer.tsx+166 src/views/CreateGalaxy.js−198 src/views/CreateGalaxy.jsx+166 src/views/Disclaimer.jsx+143 src/views/GenKeyfile.js−142 src/views/Invite/CSVButton.tsx+54 src/views/Invite/Cohort.scss+236 src/views/Invite/Cohort.tsx+203 src/views/Invite/GenerateInvites.tsx+152 src/views/Invite/GeneratingModal.tsx+88 src/views/Invite/useInvites.ts+383 src/views/InviteTicket.js−435 src/views/InvitesManage.js−185 src/views/InvitesSend.js−501 src/views/IssueChild.js−254 src/views/Keystore.js−166 src/views/Landing.js−45 src/views/Ledger.js−220 src/views/Login.scss+3 src/views/Login.tsx+104 src/views/Login/LoginSelector.scss+120 src/views/Login/LoginSelector.tsx+333 src/views/Login/Metamask.jsx+128 src/views/Login/Mnemonic.tsx+153 src/views/Login/Other.tsx+77 src/views/Login/Ticket.tsx+292 src/views/Login/WalletConnect.tsx+123 src/views/Mnemonic.js−74 src/views/Network.js−62 src/views/Ops/Ops.scss+14 src/views/Ops/Ops.tsx+126 src/views/Ops/RequestRow.tsx+47 src/views/Ops/Requests.scss+91 src/views/Ops/Requests.tsx+96 src/views/Ops/ResidentRow.tsx+64 src/views/Ops/Residents.scss+123 src/views/Ops/Residents.tsx+82 src/views/Party/PartySetPoolSize.jsx+185 src/views/Point.js−62 src/views/Point/Actions.js−236 src/views/Point/IssueChild.scss+59 src/views/Point/IssueChild.tsx+349 src/views/Point/KeysAndMetadata.js−153 src/views/Point/MigrateL2.scss+192 src/views/Point/MigrateL2.tsx+378 src/views/Point/PatpBadge.tsx+28 src/views/Point/Point.scss+76 src/views/Point/Point.tsx+216 src/views/Point/Senate.jsx+40 src/views/Point/UrbitID.jsx+62 src/views/Point/UrbitOS.jsx+61 src/views/Points.js−245 src/views/Points.scss+28 src/views/Points.tsx+392 src/views/Points/StarReleaseButton.scss+27 src/views/Points/StarReleaseButton.tsx+31 src/views/PrivateKey.js−84 src/views/Release/StarRelease.scss+65 src/views/Release/StarRelease.tsx+61 src/views/Release/TransferForm.tsx+156 src/views/Release/WithdrawForm.tsx+137 src/views/Release/useTransferLockup.ts+24 src/views/Release/useWithdrawStars.ts+19 src/views/Senate/Documents.jsx+215 src/views/Senate/Upgrades.jsx+199 src/views/SentTransaction.js−183 src/views/SetKeys.js−210 src/views/SetProxy.js−181 src/views/Shards.js−212 src/views/Ticket.js−154 src/views/Transactions/AddressRow.tsx+18 src/views/Transactions/PatpRow.tsx+33 src/views/Transactions/TransactionHistory.scss+333 src/views/Transactions/TransactionHistory.tsx+186 src/views/Transactions/TransactionRow.tsx+116 src/views/Transfer.js−127 src/views/Trezor.js−146 src/views/UrbitID/DownloadKeys.jsx+82 src/views/UrbitID/Home.tsx+219 src/views/UrbitID/ResetKeys.jsx+70 src/views/UrbitID/ResetKeys/ResetConfirm.jsx+91 src/views/UrbitID/ResetKeys/ResetDownload.jsx+39 src/views/UrbitID/ResetKeys/ResetExecute.tsx+306 src/views/UrbitID/ResetKeys/ResetVerify.jsx+71 src/views/UrbitID/SetProxy.jsx+339 src/views/UrbitID/SetProxy.scss+9 src/views/UrbitID/SigilGenerator.jsx+131 src/views/UrbitID/Transfer.tsx+217 src/views/UrbitID/UrbitID.scss+21 src/views/UrbitOS/AccessCode.test.tsx+28 src/views/UrbitOS/AccessCode.tsx+24 src/views/UrbitOS/ChangeSponsor.tsx+273 src/views/UrbitOS/Home.tsx+162 src/views/UrbitOS/NetworkKeys.scss+56 src/views/UrbitOS/NetworkKeys.tsx+452 src/views/UrbitOS/UrbitOS.scss+15 src/views/ViewPoint.js−68 src/views/Wallet.js−101 src/worker/index.ts+7 src/worker/worker.ts+9 truffle-config.js+30 tsconfig.json+24 vite-env.d.ts+2 vite.config.ts+104 window.d.ts+9 xcode-select
.env+2−2
@@ -1,2 +1,2 @@
1−REACT_APP_INFURA_ENDPOINT='b7d2af9f01534031ba773374f766ef65'
2−
1+VITE_INFURA_ENDPOINT='2599df54929b47099bda360958d75aaf'
2+VITE_WALLET_CONNECT_PROJECT_ID=''
.env.development+5−5
@@ -1,5 +1,5 @@
1−REACT_APP_DEV_MNEMONIC='benefit crew supreme gesture quantum web media hazard theory mercy wing kitten'
2−REACT_APP_DEV_GALAXY_TICKET='~wacfus-dabpex-danted-mosfep-pasrud-lavmer-nodtex-taslus-pactyp-milpub-pildeg-fornev-ralmed-dinfeb-fopbyr-sanbet-sovmyl-dozsut-mogsyx-mapwyc-sorrup-ricnec-marnys-lignex'
3−REACT_APP_ROPSTEN_KEY='b7d2af9f01534031ba773374f766ef65'
4−REACT_APP_HD_PATH="m/44'/60'/0'/0/0"
5−REACT_APP_STUB_LOCAL='false'
1+VITE_DEV_MNEMONIC='benefit crew supreme gesture quantum web media hazard theory mercy wing kitten'
2+VITE_DEV_GALAXY_TICKET='~wacfus-dabpex-danted-mosfep-pasrud-lavmer-nodtex-taslus-pactyp-milpub-pildeg-fornev-ralmed-dinfeb-fopbyr-sanbet-sovmyl-dozsut-mogsyx-mapwyc-sorrup-ricnec-marnys-lignex'
3+VITE_GOERLI_KEY='b7d2af9f01534031ba773374f766ef65'
4+VITE_HD_PATH="m/44'/60'/0'/0/0"
5+VITE_STUB_LOCAL='false'
.prettierignore → .eslintignorerenamed

The content is the same.

.eslintrc+1−1
@@ -9,6 +9,6 @@
99 "react-hooks"
1010 ],
1111 "rules": {
12− "prettier/prettier": "error"
12+ "prettier/prettier": "warn"
1313 }
1414}
.github/ISSUE_TEMPLATE/bridge-bug-report.mdnew file+41
@@ -0,0 +1,41 @@
1+---
2+name: Bridge Bug report
3+about: 'Use this template to file a bug for Bridge'
4+title: ''
5+labels: bridge
6+assignees: ''
7+
8+---
9+
10+**Describe the bug**
11+A clear and concise description of what the bug is.
12+
13+**To Reproduce**
14+Steps to reproduce the behavior:
15+1. Go to '...'
16+2. Click on '....'
17+3. Scroll down to '....'
18+4. See error
19+
20+**Expected behavior**
21+A clear and concise description of what you expected to happen.
22+
23+**Screenshots**
24+If applicable, add screenshots to help explain your problem. If possible, please also screenshot your browser's dev console. Here are [Chrome's docs](https://developers.google.com/web/tools/chrome-devtools/open) for using this feature.
25+
26+**Desktop (please complete the following information):**
27+ - OS: [e.g. MacOS 10.15.3]
28+ - Browser [e.g. chrome, safari]
29+
30+**Smartphone (please complete the following information):**
31+ - Device: [e.g. iPhone6]
32+ - OS: [e.g. iOS8.1]
33+ - Browser [e.g. stock browser, safari]
34+
35+**Login method (please complete the following information):**
36+How you were logged into bridge when the error occured. e.g. Metamask, Mnemonic, Master Ticket etc.
37+What Ethereum address were you logged in with?
38+
39+
40+**Additional context**
41+Add any other context about the problem here.
.github/ISSUE_TEMPLATE/l2-bug-report.mdnew file+41
@@ -0,0 +1,41 @@
1+---
2+name: ~2021.12 L2 Bridge QA
3+about: 'Use this template to file a bug for Bridge with L2 functionality'
4+title: ''
5+labels: L2
6+assignees: ''
7+---
8+
9+**Describe the bug:**
10+A clear and concise description of what the bug is.
11+
12+**To reproduce:**
13+Steps to reproduce the behavior:
14+1. Go to '...'
15+2. Click on '....'
16+3. Scroll down to '....'
17+4. See error
18+
19+**Expected behavior:**
20+A clear and concise description of what you expected to happen.
21+
22+**Screenshot or console log:**
23+If applicable, add screenshots to help explain your problem. If possible, please also copy and paste any errors that appear in your browser's dev console. Here are [Chrome's docs](https://developers.google.com/web/tools/chrome-devtools/open) for using this feature.
24+
25+**Ethereum network:**
26+Were you testing on Goerli or mainnet?
27+
28+**Desktop (please complete the following information):**
29+ - OS: [e.g. MacOS 10.15.3]
30+ - Browser [e.g. chrome, safari]
31+
32+**Smartphone (please complete the following information):**
33+ - Device: [e.g. iPhone6]
34+ - OS: [e.g. iOS8.1]
35+ - Browser [e.g. stock browser, safari]
36+
37+**Login method (please complete the following information):**
38+How you were logged into Bridge when the error occured (e.g. Metamask, Mnemonic, Master Ticket etc.)? What Ethereum address were you logged in with?
39+
40+**Additional context:**
41+Add any other context about the problem here.
.gitignore+2
@@ -11,6 +11,7 @@
1111
1212# misc
1313.DS_Store
14+.env
1415.env.local
1516.env.development.local
1617.env.test.local
@@ -28,3 +29,4 @@ bridge*.tar.gz
2829checksums.txt
2930
3031*.pem
32+localhost+2*
.nvmrcnew file+1
@@ -0,0 +1 @@
1+16.18.0
.vscode/settings.jsonnew file+3
@@ -0,0 +1,3 @@
1+{
2+ "svg.preview.background": "white"
3+}
DEVELOPMENT.mdnew file+218
@@ -0,0 +1,218 @@
1+# Development notes
2+
3+## Install / Build
4+
5+Clone the repo, and use a simple `npm install`. You can then use a `npm run build` to create an optimised static build (serve it with e.g. [serve](http://npmjs.com/package/serve), or with python as described above).
6+
7+## General notes
8+
9+For development, use `npm run pilot` to get going after a `npm install`. This
10+will boot up a [Ganache](https://github.com/trufflesuite/ganache-cli) node in the background, deploy the Azimuth contracts to
11+it, and fire up a local webserver. Bridge will be served on `localhost:3000`.
12+
13+Note that one of our dependencies itself depends on a library called
14+`handle-thing` which breaks under the Ledger support requirements (see below)
15+on node 11.1.0, so make sure you're using some other node version.
16+
17+You can use [nvm](https://github.com/creationix/nvm), for example, and do:
18+
19+```
20+$ nvm install 14.17.0
21+$ nvm use v14.17.0
22+```
23+
24+before running `npm run pilot`.
25+
26+## Useful accounts
27+
28+The ecliptic owner is the only account that's able to create galaxies, so
29+it's a good place to get started. On the testnet, it's the address:
30+
31+```
32+0x6DEfFb0caFDB11D175F123F6891AA64F01c24F7d
33+```
34+
35+You can authenticate as it using the following mnemonic:
36+
37+```
38+benefit crew supreme gesture quantum web media hazard theory mercy wing kitten
39+```
40+
41+Under that mnemonic, Ganache will also auto-populate the following accounts
42+with 100 ETH:
43+
44+```
45+0x6deffb0cafdb11d175f123f6891aa64f01c24f7d
46+0xd53208cf45fc9bd7938b200bff8814a26146688f
47+0x7b2a2d51e4d8fac602e20a5f6907ff9fbd88e1fd
48+0xf48062ae8bafd6ef19cd6cb89db93a0d0ca6ce26
49+0xf84a77aeb351c49dfa87e805a659d2daddff7606
50+0x167e357cf8b845370d0d408f9b389b66185b7b5b
51+0xcbecf3abc9878f07afc851aead2d8f1c436cc71d
52+0x0afc0c3f4eeea500871f464ca71eef5e54a9af36
53+0x6d654ef2489674d21aed428e8a4ad8ca4820f125
54+0x218f6f87683db546ad47a5dc8b480e5a9b694866
55+```
56+
57+To play around with any of these, authenticate using the same mnemonic, but
58+use a custom HD path of `m/44'/60'/0'/0/1`, `m/44'/60'/0'/0/2`, and so on.
59+
60+## Initial development state
61+
62+You can also tweak a couple of things to change your development state
63+somewhat (say, for example, you want to start on the points list screen, instead
64+of having to re-authenticate whenever you make a change or refresh the page):
65+
66+- The `.env.development` file contains environment variables that you can
67+ provide to the application when it's running in development. You can access
68+ them via `import.meta.env.VITE_<whatever>`.
69+
70+- Set `VITE_STUB_LOCAL='true'` in `.env.development` to enabled stubbing of
71+ certain methods throughout the app.
72+
73+- The top of the Bridge component in `src/Bridge.js` can be tweaked for setting
74+ your initial state. You can provide a specific wallet,
75+ network type, and so on.
76+
77+- `npm run pilot` will check the `WITH_TEST_STATE` environment variable to setup
78+ the initial chain state. Possible values are `STAR_RELEASE` or `INVITES`.
79+ The state setup can be found in `migrations/1_migration.js`
80+
81+## HTTPS
82+
83+For development, Bridge will not run unless you access localhost via HTTPS. To do this, you will want to set up a self-signed cert using `mkcert`:
84+
85+1. Install `mkcert`:
86+```
87+# on MacOS using homebrew
88+brew install mkcert
89+
90+# on Linux using apt # TODO Confirm functionality
91+sudo apt install libnss3-tools
92+wget -O mkcert https://github.com/FiloSottile/mkcert/releases/latest/download/mkcert-v*-linux-amd64
93+chmod +x mkcert
94+sudo mv mkcert /usr/local/bin/
95+```
96+
97+2. Create certificate authority:
98+```
99+# install local cert authority
100+mkcert -install
101+```
102+
103+3. Generate localhost Cert:
104+```
105+# Navigate to your bridge project directory
106+cd /path/to/urbit/bridge
107+
108+# Generate certificate for localhost
109+mkcert localhost 127.0.0.1 ::1
110+```
111+
112+This creates two files:
113+- `localhost+2.pem` (certificate)
114+- `localhost+2-key.pem` (private key)
115+
116+
117+Note: as of 3.3.0, Bridge is deprecating explicit support for Firefox. Privacy focused users are recommended to use Brave Browser.
118+
119+## WalletConnect
120+
121+To get WalletConnect working you need to set the `VITE_WALLET_CONNECT_PROJECT_ID`
122+environment variable with a project id that you can get at https://cloud.walletconnect.com/sign-in
123+
124+## Testing
125+
126+Automated tests for critical user journeys are coming Soon™️. Until then, here are several manual test cases to consider when making changes. It's worth noting that what to test depends on what the changes are. These test cases have limited utility when you are making a small change on a single screen; however, they are certainly a good idea when touching critical pieces such as transaction sending or secrets derivation.
127+
128+### Mnemonic Login
129+
130+"As a user, I can log into Bridge using a BIP39 mnemonic phrase"
131+
132+1. Click the 'Mnemonic, Metamask, Hardware Wallet ...' Button, then click 'Mnemonic (BIP 39)'
133+2. Paste the mnemonic above (in 'Useful Accounts') into the text area, then click 'Login'
134+3. Confirm that you are able to view the Points list view. Since no points have been created yet, you should see the following message:
135+> No points to display. This wallet is not the owner or proxy for any points.
136+
137+### Planet Creation
138+
139+"As a user, I can create a new planet"
140+
141+1. Once a star has been created, click it in the points list
142+2. Click "Issue Point", enter one of the suggested planet names, and sign and send the transaction
143+3. Log out and back into Bridge, confirm that the newly created planet is rendered in the points list
144+
145+### Invite Issuance
146+
147+"As a user, I can create a new invite"
148+
149+First, in `Bridge.js`, set the `INITIAL_NETWORK_TYPE` to Goerli:
150+```js
151+const INITIAL_NETWORK_TYPE = NETWORK_TYPES.GOERLI;
152+```
153+
154+Then, in `tank.js`, set the port to `3011`:
155+```js
156+const baseUrl = 'https://gas-tank.urbit.org:3011';
157+```
158+
159+1. Ask one of the Collaborators of this project for an Invite code :)
160+
161+(If you're generating a code, don't forget to set `inviteMail.js` port to `:3012` for testnet)
162+
163+### Invite Acceptance
164+
165+"As a new Urbit user, I can set up a new ID with an activation code"
166+
167+1. On the Bridge landing page, click the small "Activate" link
168+2. Paste the Invite code from the previous test case, and click "Go"
169+3. Download the Passport file, then use the enclosed Master Ticket and ID to login to Bridge again
170+
171+### Known Issues
172+
173+When testing the invite acceptance and login flow on Goerli, some of the Azimuth API calls will fail (e.g., `getConditional`).
174+
175+## Releases
176+
177+To generate a release `bridge-$VERSION.zip` file, use a simple `npm run release`.
178+
179+This will pack the build directory together with the README, `bridge-https.py`
180+script, and also generate a set of checksums for the build directory. You can
181+verify the checksums on e.g. MacOS via `shasum -c checksums.txt`.
182+
183+## L2 Local Environment
184+
185+To work with the L2 aggregator locally, set up the local environment like so:
186+
187+```sh
188+# Start Bridge with local blockchain preloaded with L1 and L2 points, all owned by the address 0x6DEfFb0caFDB11D175F123F6891AA64F01c24F7d
189+
190+npm run pilot-l2
191+```
192+
193+Start a local fake ship from the master branch in the [urbit repo](https://github.com/urbit/urbit)
194+
195+```sh
196+/path/to/urbit -F zod -B ./bin/solid.pill -A ./pkg/arvo -c zod --http-port 8080
197+```
198+
199+```dojo
200+:: Run these in the dojo:
201+::
202+> |mount /=base=
203+> |nuke %azimuth
204+> |rein %base [%.y %azimuth]
205+> :azimuth|watch 'http://0.0.0.0:8545' %local
206+> :azimuth %resub
207+> :azimuth &azimuth-poke [%kick ~]
208+> |rein %base [& %roller] [& %roller-rpc] [& %azimuth-rpc]
209+> :roller|local
210+> :roller|setkey '58d62eb79797502bc0f66cd3e7a49d00287bff53a2734b799ef09cb746340ed0'
211+> :roller|quota 9.999
212+:: If you run into issues, also add 'https://localhost:3000' the the eyre CORS approvals
213+> |eyre/cors/approve 'https://127.0.0.1:3000'
214+::
215+:: Once L2 txs have been sent via Bridge, this will manually commit and batch them, avoiding waiting for the timer
216+::
217+> :roller|commit
218+```
README.md+32−112
@@ -6,147 +6,67 @@ An application for interacting with Azimuth.
66
77## Usage
88
9+**The latest version of Bridge is accessible online at [bridge.urbit.org](https://bridge.urbit.org). No setup needed.**
10+
11+If you would rather host Bridge on your own machine, read on.
12+
913### Requirements
1014
1115Python 3.7.2
1216
1317### Instructions
1418
15−#### Install
19+#### Download
1620
17−1. [Download a release](https://github.com/urbit/bridge/releases)
21+1. [Download a release](https://github.com/urbit/bridge/releases/latest)
18222. Unzip it (`bridge-$version.zip`)
19233. Open up your command line interface (Terminal on MacOS, Command Prompt on Windows)
20244. `cd` into the `bridge-$version` directory
2125
22−Follow the instructions below to run Bridge.
23−
24−#### Run Bridge
25−
26−If you plan to authenticate and sign transactions with a Master Ticket, BIP39 mnemonic, Ethereum private key, or keystore file:
26+#### Verify checksums
2727
28−1. `cd` into the `bridge-$version` directory
29−2. Run `python3 -m http.server 5000 --bind 127.0.0.1`
30−3. Navigate to http://localhost:5000 using a web browser to access Bridge (we recommend using Firefox or Chrome)
31−
32−#### Run Bridge with Ledger support
33−
34−If you plan to authenticate and sign transactions with a [Ledger](https://www.ledger.com/), Bridge must be serving over HTTPS on localhost. This requires self-signed certificates. To do this:
35−
36−1. Install [mkcert](https://github.com/FiloSottile/mkcert)
37−2. If you're using Firefox, additionally install [nss](https://github.com/nss-dev/nss)
38−3. Install a local certificate authority via `mkcert -install`
39−4. From the `bridge-$version` directory, run `mkcert localhost` to generate a certificate valid for localhost. This will produce two files: `localhost.pem`, the local certificate, and `localhost-key.pem`, its corresponding private key
40−5. Run `python bridge-https.py`
41−6. Navigate to https://localhost:4443 in a web browser to access Bridge
42−
43−### Verify checksums
44−
45−To validate your downloaded file's integrity, compare the lines in checksum.txt to SHA-256 hashes of the `bridge-$version` directory's contents.
28+Optionally, to validate your downloaded file's integrity, compare the lines in checksum.txt to SHA-256 hashes of the `bridge-$version` directory's contents.
4629
4730- On MacOS: `shasum -a 256 -c checksums.txt .`
4831- On Linux: `sha256sum -c checksums.txt .`
4932- On Windows: Go into the `build` directory and verify files individually with `CertUtil -hashFile [file_name] SHA256`
5033
51−## Development notes
52−
53−### Install / Build
54−
55−Clone the repo, and use a simple `npm install`. You can then use a `npm run build` to create an optimised static build (serve it with e.g. [serve][serv]).
56−
57−### General notes
58−
59−For development, use `npm run pilot` to get going after a `npm install`. This
60−will boot up a Ganache node in the background, deploy the Azimuth contracts to
61−it, and fire up a local webserver. Bridge will be served on `localhost:3000`.
62−
63−Note that one of our dependencies itself depends on a library called
64−`handle-thing` which breaks under the Ledger support requirements (see below)
65−on node 11.1.0, so make sure you're using some other node version.
66−
67−You can use [nvm](https://github.com/creationix/nvm), for example, and do:
68−
69−```
70−$ nvm install 11.0.0
71−$ nvm use v11.0.0
72−```
73−
74−before running `npm run pilot`.
75−
76−### Useful accounts
77−
78−The ecliptic owner is the only account that's able to create galaxies, so
79−it's a good place to get started. On the testnet, it's the address:
34+#### Run Bridge
8035
81−```
82−0x6DEfFb0caFDB11D175F123F6891AA64F01c24F7d
83−```
36+1. `cd` into the `bridge-$version` directory
37+2. Run `python3 -m http.server 5000 --bind 127.0.0.1`
38+3. Navigate to http://127.0.0.1:5000 using a web browser to access Bridge (we recommend using Firefox or Chrome)
8439
85−You can authenticate as it using the following mnemonic:
40+#### Ledger support
8641
87−```
88−benefit crew supreme gesture quantum web media hazard theory mercy wing kitten
89−```
42+If you plan to authenticate with a [Ledger](https://www.ledger.com/), Bridge must be serving over HTTPS on localhost. This requires self-signed certificates. To do this:
9043
91−Under that mnemonic, Ganache will also auto-populate the following accounts
92−with 100 ETH:
93−
94−```
95−0x6deffb0cafdb11d175f123f6891aa64f01c24f7d
96−0xd53208cf45fc9bd7938b200bff8814a26146688f
97−0x7b2a2d51e4d8fac602e20a5f6907ff9fbd88e1fd
98−0xf48062ae8bafd6ef19cd6cb89db93a0d0ca6ce26
99−0xf84a77aeb351c49dfa87e805a659d2daddff7606
100−0x167e357cf8b845370d0d408f9b389b66185b7b5b
101−0xcbecf3abc9878f07afc851aead2d8f1c436cc71d
102−0x0afc0c3f4eeea500871f464ca71eef5e54a9af36
103−0x6d654ef2489674d21aed428e8a4ad8ca4820f125
104−0x218f6f87683db546ad47a5dc8b480e5a9b694866
105−```
44+1. Install [mkcert](https://github.com/FiloSottile/mkcert)
45+2. Install a local certificate authority via `mkcert -install`
46+3. From the `bridge-$version` directory, run `mkcert localhost` to generate a certificate valid for localhost. This will produce two files: `localhost.pem`, the local certificate, and `localhost-key.pem`, its corresponding private key
47+4. Run `python bridge-https.py`
48+5. Navigate to https://localhost:4443 in a web browser to access Bridge
10649
107−To play around with any of these, authenticate using the same mnemonic, but
108−use a custom HD path of `m/44'/60'/0'/0/1`, `m/44'/60'/0'/0/2`, and so on.
50+## Bridge without internet access
10951
110−### Initial development state
52+A proper "offline mode" for the latest iteration of Bridge is still being worked on. In the mean time, if you need to use Bridge on an airgapped machine, use [Bridge v1.4.1](https://github.com/urbit/bridge/releases/tag/v1.4.1).
11153
112−You can also tweak a couple of things to change your development state
113−somewhat (say, for example, you want to start on the points list screen, instead
114−of having to re-authenticate whenever you make a change or refresh the page):
54+## Development
11555
116−- The `.env.development` file contains environment variables that you can
117− provide to the application when it's running in development. You can access
118− them via `process.env.REACT_APP_<whatever>`.
56+See [development.md](DEVELOPMENT.md).
11957
120−- Set `REACT_APP_STUB_LOCAL='true'` in `.env.development` to enabled stubbing of
121− certain methods throughout the app.
12258
123−- The top of the Bridge component in `src/Bridge.js` can be tweaked for setting
124− your initial state. You can provide a specific wallet,
125− network type, and so on.
59+## Configurable Roller Endpoint
12660
127−### HTTPS
61+By default, Bridge uses Tlon's L2 Roller, but can also be configured to use your own.
12862
129−For development, you can enable HTTPS on localhost without a certificate for
130−Chrome by pasting the following into the URL bar:
63+For example:
13164
65+```sh
66+VITE_ROLLER_HOST=my-personal-roller.net npm run pilot-mainnet
13267```
133−chrome://flags/#allow-insecure-localhost
134−```
135−
136−In Firefox, you may need to allow connecting to the unsecured local node
137−websocket. Do this by going to `about:config` and setting the
138−`network.websocket.allowInsecureFromHTTPS` flag to `true`.
139−
140−Additionally you need to run with the `HTTPS` environment variable set to
141−`true`. Note that `npm run pilot` will handle this automatically.
142−
143−### Releases
144−
145−To generate a release `bridge-$VERSION.zip` file, use a simple `npm run release`.
146−
147−This will pack the build directory together with the README, `bridge-https.py`
148−script, and also generate a set of checksums for the build directory. You can
149−verify the checksums on e.g. OS X via `shasum -c checksums.txt`.
15068
151−[rele]: https://github.com/urbit/bridge/releases/latest
152−[serv]: http://npmjs.com/package/serve
69+The following are configurable, and will otherwise fallback to the defaults in `constants`:
70+- `VITE_ROLLER_HOST` - host
71+- `VITE_ROLLER_PORT` - port
72+- `VITE_ROLLER_TRANSPORT_TYPE` - transport type (e.g., `http` or `https`)
bridge-npm-audit.txtnew file+697
@@ -0,0 +1,697 @@
1+# npm audit report
2+
3+@babel/helpers <7.26.10
4+Severity: moderate
5+Babel has inefficient RegExp complexity in generated code with .replace when transpiling named capturing groups - https://github.com/advisories/GHSA-968p-4wvh-cqc8
6+fix available via `npm audit fix`
7+node_modules/@babel/helpers
8+
9+@babel/runtime-corejs3 <7.26.10
10+Severity: moderate
11+Babel has inefficient RegExp complexity in generated code with .replace when transpiling named capturing groups - https://github.com/advisories/GHSA-968p-4wvh-cqc8
12+fix available via `npm audit fix`
13+node_modules/@babel/runtime-corejs3
14+
15+@babel/traverse <7.23.2
16+Severity: critical
17+Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code - https://github.com/advisories/GHSA-67hx-6x53-jw92
18+fix available via `npm audit fix`
19+node_modules/@babel/traverse
20+
21+ajv <6.12.3
22+Severity: moderate
23+Prototype Pollution in Ajv - https://github.com/advisories/GHSA-v88g-cgmw-v5xw
24+fix available via `npm audit fix --force`
25+Will install serve@14.2.5, which is a breaking change
26+node_modules/serve/node_modules/ajv
27+ serve 5.0.4 - 14.2.4
28+ Depends on vulnerable versions of ajv
29+ Depends on vulnerable versions of boxen
30+ Depends on vulnerable versions of clipboardy
31+ Depends on vulnerable versions of compression
32+ Depends on vulnerable versions of serve-handler
33+ node_modules/serve
34+
35+ansi-regex 3.0.0
36+Severity: high
37+Inefficient Regular Expression Complexity in chalk/ansi-regex - https://github.com/advisories/GHSA-93q8-gq69-wqmw
38+fix available via `npm audit fix`
39+node_modules/ansi-align/node_modules/ansi-regex
40+node_modules/boxen/node_modules/ansi-regex
41+node_modules/widest-line/node_modules/ansi-regex
42+
43+axios 1.0.0 - 1.11.0
44+Severity: high
45+Axios Cross-Site Request Forgery Vulnerability - https://github.com/advisories/GHSA-wf5p-g6vw-rhxx
46+Server-Side Request Forgery in axios - https://github.com/advisories/GHSA-8hc4-vh64-cxmj
47+axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL - https://github.com/advisories/GHSA-jr5f-v2jv-69x6
48+Axios is vulnerable to DoS attack through lack of data size check - https://github.com/advisories/GHSA-4hjh-wcwx-xvwj
49+fix available via `npm audit fix --force`
50+Will install truffle@5.5.7, which is a breaking change
51+node_modules/axios
52+ @truffle/dashboard-message-bus-client >=0.1.10
53+ Depends on vulnerable versions of axios
54+ node_modules/@truffle/dashboard-message-bus-client
55+ @truffle/events >=0.1.21
56+ Depends on vulnerable versions of @truffle/dashboard-message-bus-client
57+ node_modules/@truffle/events
58+ @truffle/config *
59+ Depends on vulnerable versions of @truffle/events
60+ Depends on vulnerable versions of @truffle/provider
61+ node_modules/@truffle/config
62+ @truffle/db >=2.0.13
63+ Depends on vulnerable versions of @truffle/config
64+ node_modules/@truffle/db
65+ @truffle/db-loader >=0.2.13
66+ Depends on vulnerable versions of @truffle/db
67+ node_modules/@truffle/db-loader
68+ truffle 5.1.9-nodeLTS.0 || 5.1.14-alphaTez.0 - 5.1.14-truffleLogger.0 || >=5.1.66
69+ Depends on vulnerable versions of @truffle/db
70+ Depends on vulnerable versions of @truffle/db-loader
71+ Depends on vulnerable versions of @truffle/debugger
72+ Depends on vulnerable versions of ganache
73+ Depends on vulnerable versions of mocha
74+ node_modules/truffle
75+
76+babel-traverse *
77+Severity: critical
78+Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code - https://github.com/advisories/GHSA-67hx-6x53-jw92
79+fix available via `npm audit fix --force`
80+Will install azimuth-js@0.15.0, which is a breaking change
81+node_modules/babel-traverse
82+ babel-core 5.8.20 - 7.0.0-beta.3
83+ Depends on vulnerable versions of babel-helpers
84+ Depends on vulnerable versions of babel-register
85+ Depends on vulnerable versions of babel-template
86+ Depends on vulnerable versions of babel-traverse
87+ Depends on vulnerable versions of json5
88+ node_modules/babel-core
89+ babel-register *
90+ Depends on vulnerable versions of babel-core
91+ node_modules/babel-register
92+ azimuth-solidity *
93+ Depends on vulnerable versions of babel-register
94+ node_modules/azimuth-solidity
95+ azimuth-js *
96+ Depends on vulnerable versions of azimuth-solidity
97+ Depends on vulnerable versions of web3
98+ node_modules/azimuth-js
99+ babel-template *
100+ Depends on vulnerable versions of babel-traverse
101+ node_modules/babel-template
102+ babel-helpers *
103+ Depends on vulnerable versions of babel-template
104+ node_modules/babel-helpers
105+
106+base-x <=3.0.10
107+Severity: high
108+Homograph attack allows Unicode lookalike characters to bypass validation. - https://github.com/advisories/GHSA-xq7p-g2vc-g82p
109+fix available via `npm audit fix`
110+node_modules/base-x
111+
112+brace-expansion 1.0.0 - 1.1.11
113+brace-expansion Regular Expression Denial of Service vulnerability - https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
114+fix available via `npm audit fix`
115+node_modules/brace-expansion
116+node_modules/ganache/node_modules/brace-expansion
117+node_modules/truffle/node_modules/ganache/node_modules/brace-expansion
118+
119+braces <3.0.3
120+Severity: high
121+Uncontrolled resource consumption in braces - https://github.com/advisories/GHSA-grv7-fg5c-xmjg
122+fix available via `npm audit fix`
123+node_modules/braces
124+node_modules/ganache/node_modules/braces
125+node_modules/truffle/node_modules/ganache/node_modules/braces
126+
127+browserify-sign 2.6.0 - 4.2.1
128+Severity: high
129+browserify-sign upper bound check issue in `dsaVerify` leads to a signature forgery attack - https://github.com/advisories/GHSA-x9w5-v3q2-3rhw
130+fix available via `npm audit fix`
131+node_modules/browserify-sign
132+node_modules/ganache/node_modules/browserify-sign
133+node_modules/truffle/node_modules/ganache/node_modules/browserify-sign
134+
135+cipher-base <=1.0.4
136+Severity: critical
137+cipher-base is missing type checks, leading to hash rewind and passing on crafted data - https://github.com/advisories/GHSA-cpq7-6gpm-g9rc
138+fix available via `npm audit fix`
139+node_modules/cipher-base
140+node_modules/ganache/node_modules/cipher-base
141+node_modules/truffle/node_modules/ganache/node_modules/cipher-base
142+
143+cross-spawn <6.0.6 || >=7.0.0 <7.0.5
144+Severity: high
145+Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
146+Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
147+fix available via `npm audit fix --force`
148+Will install serve@14.2.5, which is a breaking change
149+node_modules/clipboardy/node_modules/cross-spawn
150+node_modules/cross-spawn
151+node_modules/eslint/node_modules/cross-spawn
152+node_modules/ganache/node_modules/cross-spawn
153+node_modules/term-size/node_modules/cross-spawn
154+node_modules/truffle/node_modules/ganache/node_modules/cross-spawn
155+ execa 0.5.0 - 0.9.0
156+ Depends on vulnerable versions of cross-spawn
157+ node_modules/clipboardy/node_modules/execa
158+ node_modules/term-size/node_modules/execa
159+ clipboardy <=1.2.3
160+ Depends on vulnerable versions of execa
161+ node_modules/clipboardy
162+ term-size 1.0.0 - 1.2.0
163+ Depends on vulnerable versions of execa
164+ node_modules/term-size
165+ boxen 1.2.0 - 3.2.0
166+ Depends on vulnerable versions of term-size
167+ node_modules/boxen
168+
169+crypto-js <4.2.0
170+Severity: critical
171+crypto-js PBKDF2 1,000 times weaker than specified in 1993 and 1.3M times weaker than current standard - https://github.com/advisories/GHSA-xwcq-pm8m-c4vf
172+fix available via `npm audit fix --force`
173+Will install secure-ls@2.0.0, which is a breaking change
174+node_modules/crypto-js
175+ secure-ls <=1.2.6
176+ Depends on vulnerable versions of crypto-js
177+ node_modules/secure-ls
178+
179+ejs <=3.1.9
180+Severity: critical
181+ejs template injection vulnerability - https://github.com/advisories/GHSA-phwq-j96m-2c2q
182+ejs lacks certain pollution protection - https://github.com/advisories/GHSA-ghr5-ch3p-vcr6
183+fix available via `npm audit fix`
184+node_modules/source-map-explorer/node_modules/ejs
185+
186+elliptic <=6.6.0
187+Severity: critical
188+Elliptic's verify function omits uniqueness validation - https://github.com/advisories/GHSA-434g-2637-qmqr
189+Elliptic's private key extraction in ECDSA upon signing a malformed input (e.g. a string) - https://github.com/advisories/GHSA-vjh7-7g9h-fjfh
190+Valid ECDSA signatures erroneously rejected in Elliptic - https://github.com/advisories/GHSA-fc9h-whq2-v747
191+Elliptic's EDDSA missing signature length check - https://github.com/advisories/GHSA-f7q4-pwc6-w24p
192+Elliptic's ECDSA missing check for whether leading bit of r and s is zero - https://github.com/advisories/GHSA-977x-g7h5-7qgw
193+Elliptic allows BER-encoded signatures - https://github.com/advisories/GHSA-49q7-c7j4-3p7m
194+fix available via `npm audit fix --force`
195+Will install truffle@5.5.7, which is a breaking change
196+node_modules/elliptic
197+node_modules/ganache/node_modules/elliptic
198+node_modules/truffle/node_modules/ganache/node_modules/elliptic
199+ ethers 3.0.0 - 4.0.49
200+ Depends on vulnerable versions of elliptic
201+ node_modules/@truffle/interface-adapter/node_modules/ethers
202+ @truffle/interface-adapter *
203+ Depends on vulnerable versions of ethers
204+ Depends on vulnerable versions of web3
205+ node_modules/@truffle/interface-adapter
206+ @truffle/provider *
207+ Depends on vulnerable versions of @truffle/interface-adapter
208+ Depends on vulnerable versions of web3
209+ node_modules/@truffle/provider
210+
211+esbuild <=0.24.2
212+Severity: moderate
213+esbuild enables any website to send any requests to the development server and read the response - https://github.com/advisories/GHSA-67mh-4wv8-2f99
214+fix available via `npm audit fix --force`
215+Will install vite@3.2.11, which is outside the stated dependency range
216+node_modules/esbuild
217+ vite <=6.1.6
218+ Depends on vulnerable versions of esbuild
219+ Depends on vulnerable versions of rollup
220+ node_modules/vite
221+
222+fast-redact *
223+fast-redact vulnerable to prototype pollution - https://github.com/advisories/GHSA-ffrw-9mx8-89p8
224+fix available via `npm audit fix`
225+node_modules/fast-redact
226+ pino 5.0.0-rc.1 - 9.11.0
227+ Depends on vulnerable versions of fast-redact
228+ node_modules/pino
229+ @walletconnect/logger <=2.1.3
230+ Depends on vulnerable versions of pino
231+ node_modules/@walletconnect/logger
232+ @walletconnect/core 2.0.0-2.0.0-beta.102 - 2.22.2
233+ Depends on vulnerable versions of @walletconnect/logger
234+ Depends on vulnerable versions of @walletconnect/types
235+ Depends on vulnerable versions of @walletconnect/utils
236+ node_modules/@walletconnect/sign-client/node_modules/@walletconnect/core
237+ @walletconnect/sign-client <=2.22.2
238+ Depends on vulnerable versions of @walletconnect/core
239+ Depends on vulnerable versions of @walletconnect/logger
240+ Depends on vulnerable versions of @walletconnect/types
241+ Depends on vulnerable versions of @walletconnect/utils
242+ node_modules/@walletconnect/sign-client
243+ @walletconnect/types 2.1.2-eaa4818c - 2.22.2
244+ Depends on vulnerable versions of @walletconnect/logger
245+ node_modules/@walletconnect/types
246+ @walletconnect/utils 2.1.2-eaa4818c - 2.22.2
247+ Depends on vulnerable versions of @walletconnect/types
248+ node_modules/@walletconnect/sign-client/node_modules/@walletconnect/utils
249+
250+form-data <2.5.4
251+Severity: critical
252+form-data uses unsafe random function in form-data for choosing boundary - https://github.com/advisories/GHSA-fjxv-7rqg-78g4
253+fix available via `npm audit fix`
254+node_modules/form-data
255+ request *
256+ Depends on vulnerable versions of form-data
257+ Depends on vulnerable versions of tough-cookie
258+ node_modules/request
259+ jsdom 0.1.20 || 0.2.0 - 16.5.3
260+ Depends on vulnerable versions of request
261+ Depends on vulnerable versions of tough-cookie
262+ node_modules/jsdom
263+ servify *
264+ Depends on vulnerable versions of request
265+ node_modules/servify
266+ eth-lib <=0.1.29
267+ Depends on vulnerable versions of servify
268+ Depends on vulnerable versions of ws
269+ node_modules/eth-lib
270+ swarm-js >=0.1.36
271+ Depends on vulnerable versions of eth-lib
272+ Depends on vulnerable versions of tar
273+ node_modules/swarm-js
274+ web3-bzz *
275+ Depends on vulnerable versions of swarm-js
276+ node_modules/@truffle/debugger/node_modules/web3-bzz
277+ node_modules/@truffle/interface-adapter/node_modules/web3-bzz
278+ node_modules/@truffle/provider/node_modules/web3-bzz
279+ node_modules/web3-bzz
280+
281+get-func-name <2.0.1
282+Severity: high
283+Chaijs/get-func-name vulnerable to ReDoS - https://github.com/advisories/GHSA-4q6p-r6v2-jvc5
284+fix available via `npm audit fix`
285+node_modules/get-func-name
286+
287+js-yaml <3.14.2 || >=4.0.0 <4.1.1
288+Severity: moderate
289+js-yaml has prototype pollution in merge (<<) - https://github.com/advisories/GHSA-mh29-5h37-fv8m
290+js-yaml has prototype pollution in merge (<<) - https://github.com/advisories/GHSA-mh29-5h37-fv8m
291+fix available via `npm audit fix --force`
292+Will install truffle@5.5.7, which is a breaking change
293+node_modules/@eslint/eslintrc/node_modules/js-yaml
294+node_modules/eslint/node_modules/js-yaml
295+node_modules/ganache/node_modules/js-yaml
296+node_modules/js-yaml
297+node_modules/mocha/node_modules/js-yaml
298+node_modules/truffle/node_modules/ganache/node_modules/js-yaml
299+ mocha 5.1.0 - 10.5.2
300+ Depends on vulnerable versions of js-yaml
301+ Depends on vulnerable versions of minimatch
302+ Depends on vulnerable versions of nanoid
303+ Depends on vulnerable versions of serialize-javascript
304+ node_modules/ganache/node_modules/mocha
305+ node_modules/mocha
306+ node_modules/truffle/node_modules/ganache/node_modules/mocha
307+
308+json-schema <0.4.0
309+Severity: critical
310+json-schema is vulnerable to Prototype Pollution - https://github.com/advisories/GHSA-896r-f27r-55mw
311+fix available via `npm audit fix`
312+node_modules/json-schema
313+ jsprim 0.3.0 - 1.4.1 || 2.0.0 - 2.0.1
314+ Depends on vulnerable versions of json-schema
315+ node_modules/jsprim
316+
317+json5 <1.0.2 || >=2.0.0 <2.2.2
318+Severity: high
319+Prototype Pollution in JSON5 via Parse Method - https://github.com/advisories/GHSA-9c47-m6qq-7p4h
320+Prototype Pollution in JSON5 via Parse Method - https://github.com/advisories/GHSA-9c47-m6qq-7p4h
321+fix available via `npm audit fix --force`
322+Will install azimuth-js@0.15.0, which is a breaking change
323+node_modules/@babel/core/node_modules/json5
324+node_modules/ganache/node_modules/json5
325+node_modules/json5
326+node_modules/truffle/node_modules/ganache/node_modules/json5
327+node_modules/vite-plugin-comlink/node_modules/json5
328+ vite-plugin-comlink 3.0.3 - 3.0.5
329+ Depends on vulnerable versions of json5
330+ node_modules/vite-plugin-comlink
331+
332+jszip <3.8.0
333+Severity: moderate
334+JSZip contains Path Traversal via loadAsync - https://github.com/advisories/GHSA-36fh-84j7-cv5h
335+fix available via `npm audit fix`
336+node_modules/jszip
337+
338+markdown-to-jsx <7.4.0
339+Severity: moderate
340+Cross site scripting in markdown-to-jsx - https://github.com/advisories/GHSA-4wx3-54gh-9fr9
341+fix available via `npm audit fix`
342+node_modules/markdown-to-jsx
343+
344+micromatch <4.0.8
345+Severity: moderate
346+Regular Expression Denial of Service (ReDoS) in micromatch - https://github.com/advisories/GHSA-952p-6rrq-rcjv
347+fix available via `npm audit fix`
348+node_modules/ganache/node_modules/micromatch
349+node_modules/micromatch
350+node_modules/truffle/node_modules/ganache/node_modules/micromatch
351+
352+minimatch <3.0.5
353+Severity: high
354+minimatch ReDoS vulnerability - https://github.com/advisories/GHSA-f8q6-p94x-37v3
355+fix available via `npm audit fix --force`
356+Will install truffle@5.5.7, which is a breaking change
357+node_modules/ganache/node_modules/minimatch
358+node_modules/minimatch
359+node_modules/truffle/node_modules/ganache/node_modules/minimatch
360+ serve-handler <=6.1.5
361+ Depends on vulnerable versions of minimatch
362+ Depends on vulnerable versions of path-to-regexp
363+ node_modules/serve-handler
364+
365+nanoid <=3.3.7
366+Severity: moderate
367+Predictable results in nanoid generation when given non-integer values - https://github.com/advisories/GHSA-mwcw-c2x4-8c55
368+Exposure of Sensitive Information to an Unauthorized Actor in nanoid - https://github.com/advisories/GHSA-qrpm-p2h7-hrv2
369+fix available via `npm audit fix --force`
370+Will install truffle@5.5.7, which is a breaking change
371+node_modules/ganache/node_modules/nanoid
372+node_modules/nanoid
373+node_modules/truffle/node_modules/ganache/node_modules/nanoid
374+node_modules/vite/node_modules/nanoid
375+
376+on-headers <1.1.0
377+on-headers is vulnerable to http response header manipulation - https://github.com/advisories/GHSA-76c9-3jph-rj3q
378+fix available via `npm audit fix --force`
379+Will install serve@14.2.5, which is a breaking change
380+node_modules/on-headers
381+ compression 1.0.3 - 1.8.0
382+ Depends on vulnerable versions of on-headers
383+ node_modules/serve/node_modules/compression
384+
385+path-to-regexp 2.0.0 - 3.2.0
386+Severity: high
387+path-to-regexp outputs backtracking regular expressions - https://github.com/advisories/GHSA-9wv6-86v2-598j
388+fix available via `npm audit fix --force`
389+Will install serve@14.2.5, which is a breaking change
390+node_modules/serve-handler/node_modules/path-to-regexp
391+
392+pbkdf2 <=3.1.2
393+Severity: critical
394+pbkdf2 silently disregards Uint8Array input, returning static keys - https://github.com/advisories/GHSA-v62p-rq8g-8h59
395+pbkdf2 returns predictable uninitialized/zero-filled memory for non-normalized or unimplemented algos - https://github.com/advisories/GHSA-h7cp-r72f-jxh6
396+fix available via `npm audit fix`
397+node_modules/ganache/node_modules/pbkdf2
398+node_modules/pbkdf2
399+node_modules/truffle/node_modules/ganache/node_modules/pbkdf2
400+
401+postcss <8.4.31
402+Severity: moderate
403+PostCSS line return parsing error - https://github.com/advisories/GHSA-7fh5-64p2-3v2j
404+fix available via `npm audit fix`
405+node_modules/vite/node_modules/postcss
406+
407+qs 6.5.0 - 6.5.2
408+Severity: high
409+qs vulnerable to Prototype Pollution - https://github.com/advisories/GHSA-hrpp-h998-j3pp
410+fix available via `npm audit fix`
411+node_modules/request/node_modules/qs
412+
413+
414+rollup <2.79.2
415+Severity: high
416+DOM Clobbering Gadget found in rollup bundled scripts that leads to XSS - https://github.com/advisories/GHSA-gcx4-mw62-g8wm
417+fix available via `npm audit fix --force`
418+Will install vite@3.2.11, which is outside the stated dependency range
419+node_modules/vite/node_modules/rollup
420+
421+secp256k1 <=3.8.0 || 4.0.0 - 4.0.3
422+Severity: high
423+secp256k1-node allows private key extraction over ECDH - https://github.com/advisories/GHSA-584q-6j8j-r5pm
424+secp256k1-node allows private key extraction over ECDH - https://github.com/advisories/GHSA-584q-6j8j-r5pm
425+fix available via `npm audit fix --force`
426+Will install ganache@6.4.5, which is a breaking change
427+node_modules/ganache/node_modules/secp256k1
428+node_modules/secp256k1
429+node_modules/truffle/node_modules/ganache/node_modules/secp256k1
430+node_modules/urbit-key-generation/node_modules/secp256k1
431+ ganache <=3.0.0-internal.16 || >=7.0.0-alpha.0
432+ Depends on vulnerable versions of @trufflesuite/uws-js-unofficial
433+ Depends on vulnerable versions of secp256k1
434+ node_modules/ganache
435+ node_modules/truffle/node_modules/ganache
436+ keythereum 1.2.0
437+ Depends on vulnerable versions of secp256k1
438+ node_modules/keythereum
439+
440+semver <=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1
441+Severity: high
442+semver vulnerable to Regular Expression Denial of Service - https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
443+semver vulnerable to Regular Expression Denial of Service - https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
444+semver vulnerable to Regular Expression Denial of Service - https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
445+fix available via `npm audit fix`
446+node_modules/@babel/core/node_modules/semver
447+node_modules/cross-spawn/node_modules/semver
448+node_modules/ganache/node_modules/semver
449+node_modules/normalize-package-data/node_modules/semver
450+node_modules/truffle/node_modules/ganache/node_modules/semver
451+ @microsoft/api-extractor 7.9.1 - 7.36.2
452+ Depends on vulnerable versions of @microsoft/api-extractor-model
453+ Depends on vulnerable versions of @rushstack/node-core-library
454+ Depends on vulnerable versions of semver
455+ node_modules/ganache/node_modules/@microsoft/api-extractor
456+ node_modules/truffle/node_modules/ganache/node_modules/@microsoft/api-extractor
457+ @rushstack/node-core-library 3.25.0 - 3.59.5
458+ Depends on vulnerable versions of semver
459+ node_modules/ganache/node_modules/@rushstack/node-core-library
460+ node_modules/truffle/node_modules/ganache/node_modules/@rushstack/node-core-library
461+ @microsoft/api-extractor-model 7.8.12 - 7.27.4
462+ Depends on vulnerable versions of @rushstack/node-core-library
463+ node_modules/ganache/node_modules/@microsoft/api-extractor-model
464+ node_modules/truffle/node_modules/ganache/node_modules/@microsoft/api-extractor-model
465+
466+serialize-javascript 6.0.0 - 6.0.1
467+Severity: moderate
468+Cross-site Scripting (XSS) in serialize-javascript - https://github.com/advisories/GHSA-76p7-773f-r4q5
469+fix available via `npm audit fix --force`
470+Will install truffle@5.5.7, which is a breaking change
471+node_modules/ganache/node_modules/serialize-javascript
472+node_modules/serialize-javascript
473+node_modules/truffle/node_modules/ganache/node_modules/serialize-javascript
474+
475+sha.js <=2.4.11
476+Severity: critical
477+sha.js is missing type checks leading to hash rewind and passing on crafted data - https://github.com/advisories/GHSA-95m3-7q98-8xr5
478+fix available via `npm audit fix`
479+node_modules/ganache/node_modules/sha.js
480+node_modules/sha.js
481+node_modules/truffle/node_modules/ganache/node_modules/sha.js
482+
483+shell-quote 1.6.3 - 1.7.2
484+Severity: critical
485+Improper Neutralization of Special Elements used in a Command in Shell-quote - https://github.com/advisories/GHSA-g4rg-993r-mgx7
486+fix available via `npm audit fix`
487+node_modules/shell-quote
488+
489+tar <6.2.1
490+Severity: moderate
491+Denial of service while parsing a tar file due to lack of folders count validation - https://github.com/advisories/GHSA-f5x3-32g6-xq36
492+fix available via `npm audit fix`
493+node_modules/tar
494+
495+tiny-secp256k1 <=1.1.6
496+Severity: high
497+tiny-secp256k1 allows for verify() bypass when running in bundled environment - https://github.com/advisories/GHSA-5vhg-9xg4-cv9m
498+tiny-secp256k1 vulnerable to private key extraction when signing a malicious JSON-stringifyable message in bundled environment - https://github.com/advisories/GHSA-7mc2-6phr-23xc
499+fix available via `npm audit fix`
500+node_modules/tiny-secp256k1
501+
502+tough-cookie <4.1.3
503+Severity: moderate
504+tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
505+fix available via `npm audit fix`
506+node_modules/tough-cookie
507+
508+validator <13.15.20
509+Severity: moderate
510+validator.js has a URL validation bypass vulnerability in its isURL function - https://github.com/advisories/GHSA-9965-vmph-33xx
511+fix available via `npm audit fix`
512+node_modules/ganache/node_modules/validator
513+node_modules/truffle/node_modules/ganache/node_modules/validator
514+
515+
516+web3-core-method <=2.0.0-alpha.1
517+web3-core-method is vulnerable to prototype pollution - https://github.com/advisories/GHSA-2j4c-9qqq-896r
518+Depends on vulnerable versions of web3-core-subscriptions
519+fix available via `npm audit fix --force`
520+Will install web3-core@4.7.1, which is a breaking change
521+node_modules/@truffle/debugger/node_modules/web3-core-method
522+node_modules/@truffle/interface-adapter/node_modules/web3-core-method
523+node_modules/@truffle/provider/node_modules/web3-core-method
524+node_modules/web3-core-method
525+ web3-core <=2.0.0-alpha.1
526+ Depends on vulnerable versions of web3-core-method
527+ Depends on vulnerable versions of web3-core-method
528+ node_modules/@truffle/debugger/node_modules/web3-core
529+ node_modules/@truffle/interface-adapter/node_modules/web3-core
530+ node_modules/@truffle/provider/node_modules/web3-core
531+ node_modules/web3-core
532+ web3-eth-ens <=2.0.0-alpha.1
533+ Depends on vulnerable versions of web3-core
534+ Depends on vulnerable versions of web3-core
535+ Depends on vulnerable versions of web3-eth-contract
536+ Depends on vulnerable versions of web3-eth-contract
537+ node_modules/@truffle/debugger/node_modules/web3-eth-ens
538+ node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens
539+ node_modules/@truffle/provider/node_modules/web3-eth-ens
540+ node_modules/web3-eth-ens
541+ web3-eth-personal <=2.0.0-alpha.1 || 4.0.9-dev.408125.0
542+ Depends on vulnerable versions of web3-core
543+ Depends on vulnerable versions of web3-core
544+ Depends on vulnerable versions of web3-core-method
545+ Depends on vulnerable versions of web3-core-method
546+ Depends on vulnerable versions of web3-net
547+ Depends on vulnerable versions of web3-net
548+ node_modules/@truffle/debugger/node_modules/web3-eth-personal
549+ node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal
550+ node_modules/@truffle/provider/node_modules/web3-eth-personal
551+ node_modules/web3-eth-personal
552+ web3-net 1.2.0 - 2.0.0-alpha.1 || 4.0.8-dev.408125.0
553+ Depends on vulnerable versions of web3-core
554+ Depends on vulnerable versions of web3-core
555+ Depends on vulnerable versions of web3-core-method
556+ Depends on vulnerable versions of web3-core-method
557+ node_modules/@truffle/debugger/node_modules/web3-net
558+ node_modules/@truffle/interface-adapter/node_modules/web3-net
559+ node_modules/@truffle/provider/node_modules/web3-net
560+ node_modules/web3-net
561+ web3 1.0.0-beta.1 - 3.0.0-rc.0
562+ Depends on vulnerable versions of web3-bzz
563+ Depends on vulnerable versions of web3-core
564+ Depends on vulnerable versions of web3-core
565+ Depends on vulnerable versions of web3-eth
566+ Depends on vulnerable versions of web3-eth
567+ Depends on vulnerable versions of web3-eth-personal
568+ Depends on vulnerable versions of web3-eth-personal
569+ Depends on vulnerable versions of web3-net
570+ Depends on vulnerable versions of web3-net
571+ Depends on vulnerable versions of web3-shh
572+ Depends on vulnerable versions of web3-shh
573+ node_modules/@truffle/debugger/node_modules/web3
574+ node_modules/@truffle/interface-adapter/node_modules/web3
575+ node_modules/@truffle/provider/node_modules/web3
576+ node_modules/web3
577+ @truffle/debugger *
578+ Depends on vulnerable versions of @ensdomains/ensjs
579+ Depends on vulnerable versions of web3
580+ node_modules/@truffle/debugger
581+ web3-eth <=2.0.0-alpha.1
582+ Depends on vulnerable versions of web3-core
583+ Depends on vulnerable versions of web3-core
584+ Depends on vulnerable versions of web3-core-method
585+ Depends on vulnerable versions of web3-core-method
586+ Depends on vulnerable versions of web3-core-subscriptions
587+ Depends on vulnerable versions of web3-eth-accounts
588+ Depends on vulnerable versions of web3-eth-accounts
589+ Depends on vulnerable versions of web3-eth-contract
590+ Depends on vulnerable versions of web3-eth-contract
591+ Depends on vulnerable versions of web3-eth-ens
592+ Depends on vulnerable versions of web3-eth-ens
593+ Depends on vulnerable versions of web3-eth-personal
594+ Depends on vulnerable versions of web3-eth-personal
595+ Depends on vulnerable versions of web3-net
596+ Depends on vulnerable versions of web3-net
597+ node_modules/@truffle/debugger/node_modules/web3-eth
598+ node_modules/@truffle/interface-adapter/node_modules/web3-eth
599+ node_modules/@truffle/provider/node_modules/web3-eth
600+ node_modules/web3-eth
601+ web3-shh *
602+ Depends on vulnerable versions of web3-core
603+ Depends on vulnerable versions of web3-core
604+ Depends on vulnerable versions of web3-core-method
605+ Depends on vulnerable versions of web3-core-method
606+ Depends on vulnerable versions of web3-core-subscriptions
607+ Depends on vulnerable versions of web3-net
608+ Depends on vulnerable versions of web3-net
609+ node_modules/@truffle/debugger/node_modules/web3-shh
610+ node_modules/@truffle/interface-adapter/node_modules/web3-shh
611+ node_modules/@truffle/provider/node_modules/web3-shh
612+ node_modules/web3-shh
613+ web3-eth-accounts <=2.0.0-alpha.1
614+ Depends on vulnerable versions of web3-core
615+ Depends on vulnerable versions of web3-core
616+ Depends on vulnerable versions of web3-core-method
617+ Depends on vulnerable versions of web3-core-method
618+ node_modules/@truffle/debugger/node_modules/web3-eth-accounts
619+ node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts
620+ node_modules/@truffle/provider/node_modules/web3-eth-accounts
621+ node_modules/web3-eth-accounts
622+ web3-eth-contract <=2.0.0-alpha.1
623+ Depends on vulnerable versions of web3-core
624+ Depends on vulnerable versions of web3-core
625+ Depends on vulnerable versions of web3-core-method
626+ Depends on vulnerable versions of web3-core-method
627+ Depends on vulnerable versions of web3-core-subscriptions
628+ node_modules/@truffle/debugger/node_modules/web3-eth-contract
629+ node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract
630+ node_modules/@truffle/provider/node_modules/web3-eth-contract
631+ node_modules/web3-eth-contract
632+
633+web3-core-subscriptions <=2.0.0-alpha.1
634+web3-core-subscriptions has a Prototype Pollution vulnerability - https://github.com/advisories/GHSA-hhf6-3xpg-pggx
635+fix available via `npm audit fix --force`
636+Will install web3-core@4.7.1, which is a breaking change
637+node_modules/@truffle/debugger/node_modules/web3-core-subscriptions
638+node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions
639+node_modules/@truffle/provider/node_modules/web3-core-subscriptions
640+node_modules/web3-core-subscriptions
641+
642+webpack 5.0.0-alpha.0 - 5.93.0
643+Severity: critical
644+Cross-realm object access in Webpack 5 - https://github.com/advisories/GHSA-hc6q-2mpp-qw7j
645+Webpack's AutoPublicPathRuntimeModule has a DOM Clobbering Gadget that leads to XSS - https://github.com/advisories/GHSA-4vvj-4cpr-p986
646+fix available via `npm audit fix`
647+node_modules/ganache/node_modules/webpack
648+node_modules/truffle/node_modules/ganache/node_modules/webpack
649+
650+word-wrap <1.2.4
651+Severity: moderate
652+word-wrap vulnerable to Regular Expression Denial of Service - https://github.com/advisories/GHSA-j8xg-fqg3-53r7
653+fix available via `npm audit fix`
654+node_modules/word-wrap
655+
656+ws 2.1.0 - 5.2.3 || 7.0.0 - 7.5.9 || 8.0.0 - 8.17.0
657+Severity: high
658+ws affected by a DoS when handling a request with many HTTP headers - https://github.com/advisories/GHSA-3h5v-q93c-6h6q
659+ws affected by a DoS when handling a request with many HTTP headers - https://github.com/advisories/GHSA-3h5v-q93c-6h6q
660+ws affected by a DoS when handling a request with many HTTP headers - https://github.com/advisories/GHSA-3h5v-q93c-6h6q
661+fix available via `npm audit fix --force`
662+Will install ganache@6.4.5, which is a breaking change
663+node_modules/eth-lib/node_modules/ws
664+node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial/node_modules/ws
665+node_modules/truffle/node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial/node_modules/ws
666+node_modules/ws
667+ @trufflesuite/uws-js-unofficial *
668+ Depends on vulnerable versions of ws
669+ node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial
670+ node_modules/truffle/node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial
671+
672+yargs-parser <=5.0.0
673+Severity: moderate
674+yargs-parser Vulnerable to Prototype Pollution - https://github.com/advisories/GHSA-p9pc-299p-vxgp
675+fix available via `npm audit fix --force`
676+Will install truffle@5.5.7, which is a breaking change
677+node_modules/solc/node_modules/yargs-parser
678+ yargs 4.0.0-alpha1 - 7.0.0-alpha.3 || 7.1.1
679+ Depends on vulnerable versions of yargs-parser
680+ node_modules/solc/node_modules/yargs
681+ solc 0.3.6 - 0.4.26
682+ Depends on vulnerable versions of yargs
683+ node_modules/solc
684+ @ensdomains/ens *
685+ Depends on vulnerable versions of solc
686+ node_modules/@ensdomains/ens
687+ @ensdomains/ensjs <=2.1.0
688+ Depends on vulnerable versions of @ensdomains/ens
689+ node_modules/@ensdomains/ensjs
690+
691+108 vulnerabilities (23 low, 25 moderate, 42 high, 18 critical)
692+
693+To address issues that do not require attention, run:
694+ npm audit fix
695+
696+To address all issues (including breaking changes), run:
697+ npm audit fix --force
contracts/Migrations.solnew file+18
@@ -0,0 +1,18 @@
1+pragma solidity >=0.4.21 <0.7.0;
2+
3+contract Migrations {
4+ address public owner;
5+ uint public last_completed_migration;
6+
7+ constructor() public {
8+ owner = msg.sender;
9+ }
10+
11+ modifier restricted() {
12+ if (msg.sender == owner) _;
13+ }
14+
15+ function setCompleted(uint completed) public restricted {
16+ last_completed_migration = completed;
17+ }
18+}
contracts/Naive.solnew file+15
@@ -0,0 +1,15 @@
1+pragma solidity 0.4.24;
2+
3+contract Naive {
4+ event Batch();
5+
6+ // This function is called for all messages sent to
7+ // this contract (there is no other function).
8+ // Sending Ether to this contract will cause an exception,
9+ // because the fallback function does not have the `payable`
10+ // modifier.
11+ //
12+ function() external {
13+ emit Batch();
14+ }
15+}
find-gas-usage.jsnew file+114
@@ -0,0 +1,114 @@
1+// usage: tweak constants at head of file, then run "node find-gas-usage.js"
2+// for very common events/calls, you may need to use a smaller TO-FROM
3+// range to keep web3 from yelling at you
4+
5+const ORIGIN = 6784800; // launch ceremony begins
6+const PUBLIC = 7033765; // azimuth becomes public
7+const LATEST = 'latest';
8+const AZIMUTH_ADDRESS = '0x223c067f8cf28ae173ee5cafea60ca44c335fecb';
9+const ENDPOINT =
10+ 'https://mainnet.infura.io/v3/196a7f37c7d54211b4a07904ec73ad87';
11+
12+const FROM = ORIGIN;
13+const TO = LATEST;
14+
15+const VENT = 'ChangedKeys';
16+const FUNC = '0x4447e48c'; // configureKeys
17+const ARGS = 5;
18+
19+// const VENT = 'Spawned';
20+// const FUNC = '0xa0d3253f'; // spawn
21+// const ARGS = 2;
22+
23+// const VENT = 'OwnerChanged';
24+// const FUNC = '0x1e79a85b'; // transferPoint
25+// const ARGS = 3;
26+
27+// const VENT = 'ChangedSpawnProxy';
28+// const FUNC = '0xae326221'; // setSpawnProxy
29+// const ARGS = 2;
30+
31+// const VENT = 'ChangedManagementProxy';
32+// const FUNC = '0x8866bb2c'; // setManagementProxy
33+// const ARGS = 2;
34+
35+// const VENT = 'ChangedTransferProxy';
36+// const FUNC = '0x2c7ba564'; // setTransferProxy
37+// const ARGS = 2;
38+
39+// const VENT = 'ChangedVotingProxy';
40+// const FUNC = '0xa60e8bd6'; // setVotingProxy
41+// const ARGS = 2;
42+
43+// const VENT = 'EscapeRequested';
44+// const FUNC = '0xbf5772b9'; // escape
45+// const ARGS = 2;
46+
47+// const VENT = 'EscapeCanceled';
48+// const FUNC = '0xc6d761d4'; // cancelEscape
49+// const ARGS = 1;
50+
51+// const VENT = 'EscapeAccepted';
52+// const FUNC = '0xc1b9d98b'; // adopt
53+// const ARGS = 1;
54+
55+// const VENT = 'EscapeCanceled';
56+// const FUNC = '0xbbe21ca5'; // reject
57+// const ARGS = 1;
58+
59+// const VENT = 'LostSponsor';
60+// const FUNC = '0x073a7804'; // detach
61+// const ARGS = 1;
62+
63+const LENT = 64 * ARGS + FUNC.length;
64+
65+const Web3 = require('web3');
66+const azimuth = require('azimuth-js');
67+
68+(async () => {
69+ const web3 = new Web3(new Web3.providers.HttpProvider(ENDPOINT));
70+ const contracts = await azimuth.initContractsPartial(web3, AZIMUTH_ADDRESS);
71+
72+ const keyEvents = await contracts.azimuth.getPastEvents(VENT, {
73+ fromBlock: FROM,
74+ toBlock: TO,
75+ });
76+
77+ const txsBatch = new web3.BatchRequest();
78+ keyEvents.map(vent => {
79+ txsBatch.add(
80+ web3.eth.getTransaction.request(vent.transactionHash, (err, res) => {})
81+ );
82+ });
83+ const txs = await txsBatch.execute();
84+ const keyTxs = txs.response.filter(tx => {
85+ const head = tx.input.slice(0, 10) === FUNC;
86+ const size = tx.input.length === LENT;
87+ if (head && !size) {
88+ console.log('weird inputs', tx.hash);
89+ }
90+ return head && size;
91+ });
92+
93+ const receiptsBatch = new web3.BatchRequest();
94+ keyTxs.map(tx => {
95+ receiptsBatch.add(
96+ web3.eth.getTransactionReceipt.request(tx.hash, (err, res) => {})
97+ );
98+ });
99+ const recs = await receiptsBatch.execute();
100+
101+ let usage = {};
102+ recs.response.map(rec => {
103+ if (rec.status !== true) {
104+ console.log('rejecting', rec.gasUsed);
105+ return;
106+ }
107+ if (rec.gasUsed in usage) {
108+ usage[rec.gasUsed]++;
109+ } else {
110+ usage[rec.gasUsed] = 1;
111+ }
112+ });
113+ console.log(usage);
114+})();
globals.d.tsnew file+13
@@ -0,0 +1,13 @@
1+declare module "\*.svg" {
2+ import React = require("react");
3+ export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>;
4+ const src: string;
5+ export default src;
6+}
7+
8+declare module "\*.png" {
9+ import React = require("react");
10+ export const ReactComponent: React.FC<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>>>;
11+ const src: string;
12+ export default src;
13+}
index.htmlnew file+107
@@ -0,0 +1,107 @@
1+<!DOCTYPE html>
2+<html lang="en">
3+ <head>
4+ <meta charset="utf-8" />
5+ <meta
6+ name="viewport"
7+ content="width=device-width, initial-scale=1, shrink-to-fit=no"
8+ />
9+ <meta name="theme-color" content="#fff" />
10+ <link rel="manifest" href="/manifest.json" />
11+ <link rel="shortcut icon" href="/favicon.ico" />
12+
13+ <meta
14+ name="description"
15+ content="Bridge is Urbit ID's identity management interface, wallet navigator, and governance portal."
16+ />
17+ <meta property="og:title" content="Bridge" />
18+ <meta property="og:type" content="website" />
19+ <meta property="og:url" content="https://bridge.urbit.org/" />
20+ <meta
21+ property="og:description"
22+ content="Bridge is Urbit ID's identity management interface, wallet navigator, and governance portal."
23+ />
24+ <meta
25+ property="og:image"
26+ content="https://media.urbit.org/logo/urbit-logo-card.png"
27+ />
28+ <meta name="twitter:site" content="@urbit" key="twitter-site" />
29+ <meta name="twitter:creator" content="@urbit" key="twitter-creator" />
30+ <meta
31+ name="twitter:card"
32+ content="summary_large_image"
33+ key="twitter-card"
34+ />
35+ <meta
36+ name="twitter:image"
37+ content="https://media.urbit.org/logo/urbit-logo-card.png"
38+ key="image"
39+ />
40+
41+ <title>Bridge</title>
42+ <style type="text/css">
43+ .font-hidden {
44+ position: absolute;
45+ overflow: hidden;
46+ clip: rect(0 0 0 0);
47+ height: 1px;
48+ width: 1px;
49+ margin: -1px;
50+ padding: 0;
51+ border: 0;
52+ }
53+ </style>
54+ <script type="module">
55+ import { Buffer } from "buffer";
56+ window.global = window;
57+ window.Buffer = Buffer;
58+ </script>
59+ </head>
60+ <body>
61+ <div id="root"></div>
62+ <script type="module" src="/src/index.tsx"></script>
63+ <!-- Force load all fonts -->
64+ <div
65+ aria-visibility="hidden"
66+ class="font-hidden"
67+ style="font-family:Inter; font-weight:400"
68+ >
69+ &nbsp;
70+ </div>
71+ <div
72+ aria-visibility="hidden"
73+ class="font-hidden"
74+ style="font-family:Inter; font-weight:500"
75+ >
76+ &nbsp;
77+ </div>
78+ <div
79+ aria-visibility="hidden"
80+ class="font-hidden"
81+ style="font-family:Inter; font-weight:600"
82+ >
83+ &nbsp;
84+ </div>
85+ <div
86+ aria-visibility="hidden"
87+ class="font-hidden"
88+ style="font-family:Source Code Pro; font-weight:400"
89+ >
90+ &nbsp;
91+ </div>
92+ <div
93+ aria-visibility="hidden"
94+ class="font-hidden"
95+ style="font-family:Source Code Pro; font-weight:500"
96+ >
97+ &nbsp;
98+ </div>
99+ <div
100+ aria-visibility="hidden"
101+ class="font-hidden"
102+ style="font-family:Source Code Pro; font-weight:600"
103+ >
104+ &nbsp;
105+ </div>
106+ </body>
107+</html>
jsconfig.jsondeleted−5
@@ -1,5 +0,0 @@
1−{
2− "compilerOptions": {
3− "baseUrl": "src"
4− }
5−}
legal/privacy policy.md+11−11
@@ -1,7 +1,7 @@
11
2−Effective date: June 01, 2018
2+Effective date: December 11, 2025
33
4−Tlon Corporation ("us", "we", or "our") operates the website and the Urbit mobile application (the "Service").
4+The Urbit Foundation in cooperation with Tlon Corporation, ("us", "we", or "our") operate the bridge.urbit.org website (the "Service").
55
66This page informs you of our policies regarding the collection, use, and disclosure of personal data when you use our Service and the choices you have associated with that data.
77
@@ -11,7 +11,7 @@ We use your data to provide and improve the Service. By using the Service, you a
1111
1212**Service**
1313
14−Service means the website and the Urbit mobile application operated by Tlon Corporation
14+Service means the bridge.urbit.org website.
1515
1616**Personal Data**
1717
@@ -81,7 +81,7 @@ Security Cookies. We use Security Cookies for security purposes.
8181
8282**Use of Data**
8383
84−Tlon Corporation uses the collected data for various purposes:
84+We use the collected data for various purposes:
8585
8686- To provide and maintain our Service
8787
@@ -99,13 +99,13 @@ Tlon Corporation uses the collected data for various purposes:
9999
100100- Legal Basis for Processing Personal Data Under General Data Protection Regulation (GDPR)
101101
102−If you are from the European Economic Area (EEA), Tlon Corporation legal basis for collecting and using the personal information described in this Privacy Policy depends on the Personal Data we collect and the specific context in which we collect it.
102+If you are from the European Economic Area (EEA), our legal basis for collecting and using the personal information described in this Privacy Policy depends on the Personal Data we collect and the specific context in which we collect it.
103103
104−**Tlon Corporation may process your Personal Data because:**
104+**Tlon Corporation and The Urbit Foundation may process your Personal Data because:**
105105
106106- We need to perform a contract with you
107107
108−- You have given us permission to do so
108+- You have given us permission to do so as a part of using The Service,
109109
110110- The processing is in our legitimate interests and it's not overridden by your rights
111111
@@ -113,9 +113,9 @@ If you are from the European Economic Area (EEA), Tlon Corporation legal basis f
113113
114114- Retention of Data
115115
116−Tlon Corporation will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.
116+We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.
117117
118−Tlon Corporation will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.
118+We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.
119119
120120**Transfer of Data**
121121
@@ -131,7 +131,7 @@ Tlon Corporation will take all steps reasonably necessary to ensure that your da
131131
132132Legal Requirements
133133
134−Tlon Corporation may disclose your Personal Data in the good faith belief that such action is necessary to:
134+We may disclose your Personal Data in the good faith belief that such action is necessary to:
135135
136136- To comply with a legal obligation
137137
@@ -207,4 +207,4 @@ You are advised to review this Privacy Policy periodically for any changes. Chan
207207
208208If you have any questions about this Privacy Policy, please contact us:
209209
210−By email: support@urbit.org
210+By email: support@urbit.org & support@tlon.io
migrations/1_migration.jsnew file+184
@@ -0,0 +1,184 @@
1+var Azimuth = artifacts.require('azimuth-solidity/Azimuth');
2+var Polls = artifacts.require('azimuth-solidity/Polls');
3+var Claims = artifacts.require('azimuth-solidity/Claims');
4+var Censures = artifacts.require('azimuth-solidity/Censures');
5+var Ecliptic = artifacts.require('azimuth-solidity/Ecliptic');
6+var DelegatedSending = artifacts.require('azimuth-solidity/DelegatedSending');
7+var LSR = artifacts.require('azimuth-solidity/LinearStarRelease');
8+var CSR = artifacts.require('azimuth-solidity/ConditionalStarRelease');
9+// TODO: replace when https://github.com/urbit/azimuth/pull/43 is merged
10+var Naive = artifacts.require('Naive');
11+
12+const user1 = '0xD53208cf45fC9bd7938B200BFf8814A26146688f';
13+const rateUnit = 50;
14+
15+const conditions = [
16+ '0x00000000000000000000000000000000000000000000000000000000000000a0',
17+ '0x00000000000000000000000000000000000000000000000000000000000001e0',
18+ '0x0000000000000000000000000000000000000000000000000000000000000260',
19+ '0x00000000000000000000000000000000000000000000000000000000621f23c4',
20+ '0x0000000000000000000000000000000000000000000000000000000000000003',
21+ '0x0000000000000000000000000000000000000000000000000000000000000060',
22+ '0x00000000000000000000000000000000000000000000000000000000000000a0',
23+];
24+const minute = 60;
25+const getLivelines = start => [
26+ start - 5 * minute,
27+ start + 10 * minute,
28+ start + 15 * minute,
29+ start + 20 * minute,
30+ start + 25 * minute,
31+ start + 30 * minute,
32+ start + 35 * minute,
33+];
34+
35+const getDeadlines = start => [
36+ start + 10 * minute,
37+ start + 15 * minute,
38+ start + 20 * minute,
39+ start + 25 * minute,
40+ start + 30 * minute,
41+ start + 35 * minute,
42+ start + 40 * minute,
43+];
44+
45+async function getChainTime() {
46+ const block = await web3.eth.getBlock('latest');
47+
48+ return web3.utils.toDecimal(block.timestamp);
49+}
50+
51+module.exports = async function(deployer) {
52+ await deployer;
53+
54+ // setup contracts
55+ const azimuth = await deployer.deploy(Azimuth);
56+ const polls = await deployer.deploy(Polls, 1209600, 604800);
57+ const claims = await deployer.deploy(Claims, azimuth.address);
58+ const censures = await deployer.deploy(Censures, azimuth.address);
59+
60+ //NOTE for real deployment, use a real ENS registry
61+ const ecliptic = await deployer.deploy(
62+ Ecliptic,
63+ '0x0000000000000000000000000000000000000000',
64+ azimuth.address,
65+ polls.address,
66+ claims.address,
67+ '0x0000000000000000000000000000000000000000' // treasury
68+ );
69+
70+ // configure contract ownership
71+ await azimuth.transferOwnership(ecliptic.address);
72+ await polls.transferOwnership(ecliptic.address);
73+
74+ // deploy secondary contracts
75+ const sending = await deployer.deploy(DelegatedSending, azimuth.address);
76+ const time = await getChainTime();
77+ const livelines = getLivelines(time);
78+ const deadlines = getDeadlines(time);
79+
80+ const escapeHatchDate = time + 200 * minute;
81+
82+ const csr = await deployer.deploy(
83+ CSR,
84+ azimuth.address,
85+ conditions,
86+ livelines,
87+ deadlines,
88+ escapeHatchDate
89+ );
90+
91+ const lsr = await deployer.deploy(LSR, azimuth.address);
92+
93+ // deploy naive contract
94+ const naive = await deployer.deploy(Naive);
95+
96+ const own = await ecliptic.owner();
97+ switch (process.env.WITH_TEST_STATE) {
98+ case 'STAR_RELEASE':
99+ await ecliptic.createGalaxy(0, own);
100+ await ecliptic.createGalaxy(1, own);
101+
102+ await ecliptic.configureKeys(0, '0x123', '0x456', 1, false);
103+ await ecliptic.configureKeys(1, '0x123', '0x456', 1, false);
104+ await ecliptic.spawn(256, own);
105+
106+ lsr.startReleasing();
107+ await ecliptic.setSpawnProxy(0, lsr.address);
108+ await ecliptic.setSpawnProxy(1, csr.address);
109+ await ecliptic.setTransferProxy(256, lsr.address);
110+ // Release 2 stars every 5 minutes, starting 2 minutes from now
111+ // for a maximum of 8 stars
112+ await lsr.register(user1, 2 * minute, 21, 2, 5 * minute);
113+ // Release 1 star per minute for each completed batch
114+ // 3 in each batch
115+ await csr.register(user1, [3, 3, 3, 3, 3, 3, 3], 1, rateUnit);
116+
117+ for (let i = 2; i < 23; i++) {
118+ const offset = 256 * i;
119+ await lsr.deposit(user1, offset);
120+ await csr.deposit(user1, offset + 1);
121+ }
122+ break;
123+ case 'INVITES':
124+ await ecliptic.createGalaxy(0, own);
125+ await ecliptic.configureKeys(0, '0x123', '0x456', 1, false);
126+ await ecliptic.spawn(256, own);
127+ await ecliptic.configureKeys(256, '0x456', '0x789', 1, false);
128+ // set transfer proxy to delegated sending, very brittle
129+ await ecliptic.setSpawnProxy(256, sending.address);
130+ await ecliptic.spawn(65792, own);
131+ await ecliptic.spawn(131328, own);
132+ await ecliptic.spawn(512, own);
133+ await sending.setPoolSize(256, 65792, 1000);
134+ break;
135+ case 'RESIDENTS':
136+ await ecliptic.createGalaxy(0, own);
137+ await ecliptic.configureKeys(0, '0x123', '0x456', 1, false);
138+ await ecliptic.spawn(256, own);
139+ await ecliptic.configureKeys(256, '0x456', '0x789', 1, false);
140+ for (let i = 2; i < 30; i++) {
141+ // await ecliptic.spawn(256 * i, user1);
142+ const offset = 65536 * i;
143+ await ecliptic.spawn(offset + 256, own);
144+ await ecliptic.transferPoint(offset + 256, user1, false);
145+ }
146+ break;
147+ case 'L2':
148+ // all ships will have as owner:
149+ // 0x6deffb0cafdb11d175f123f6891aa64f01c24f7d
150+ //
151+ // ~zod -> L1
152+ await ecliptic.createGalaxy(0, own);
153+ await ecliptic.configureKeys(0, '0xffff', '0xffff', 1, false);
154+ // ~marzod -> L1
155+ await ecliptic.spawn(256, own);
156+ await ecliptic.configureKeys(256, '0xffff', '0xffff', 1, false);
157+ // ~wanzod -> L1
158+ await ecliptic.spawn(768, own);
159+ await ecliptic.configureKeys(768, '0xffff', '0xffff', 1, false);
160+ // ~wanzod sets spawn-proxy to L2
161+ await ecliptic.setSpawnProxy(
162+ 768,
163+ '0x1111111111111111111111111111111111111111'
164+ );
165+ // ~wicdev-wisryt -> L1
166+ await ecliptic.spawn(65792, own);
167+ // ~panret-tocsel -> L1
168+ await ecliptic.spawn(131328, own);
169+ // ~binzod -> L1
170+ await ecliptic.spawn(512, own);
171+ // ~norsyr-torryn -> L1
172+ await ecliptic.spawn(99549440, own);
173+ // ~norsyr-torryn -> L2
174+ await ecliptic.transferPoint(
175+ 99549440,
176+ '0x1111111111111111111111111111111111111111',
177+ true
178+ );
179+ break;
180+
181+ default:
182+ return;
183+ }
184+};
notes.mdnew file+1
@@ -0,0 +1 @@
1+WIP notes
package-lock.json+49917−15925

This diff is too big to show here.

package.json+117−43

This diff is too big to show here.

public/index.htmldeleted−18

This diff is too big to show here.

public/spritesheet_a.pngnew file

Binary file not shown.

src/Bridge.jsdeleted−56

This diff is too big to show here.

src/Bridge.tsxnew file+128

This diff is too big to show here.

src/_walletgen/Walletgen.jsdeleted−107

This diff is too big to show here.

src/_walletgen/components/Button.jsdeleted−9

This diff is too big to show here.

src/_walletgen/components/CheckBox.jsdeleted−48

This diff is too big to show here.

src/_walletgen/components/EulaText.jsdeleted−512

This diff is too big to show here.

src/_walletgen/components/Footer.jsdeleted−42

This diff is too big to show here.

src/_walletgen/components/Header.jsdeleted−121

This diff is too big to show here.

src/_walletgen/components/InputBox.jsdeleted−31

This diff is too big to show here.

src/_walletgen/components/ReactSVGComponents.jsdeleted−79

This diff is too big to show here.

src/_walletgen/components/UploadButton.jsdeleted−32

This diff is too big to show here.

src/_walletgen/lib/constants.jsdeleted−58

This diff is too big to show here.

src/_walletgen/lib/lib.jsdeleted−69

This diff is too big to show here.

src/_walletgen/style/base.cssdeleted−12790

This diff is too big to show here.

src/_walletgen/style/index.cssdeleted−474

This diff is too big to show here.

src/_walletgen/style/type.cssdeleted−72

This diff is too big to show here.

src/_walletgen/views/BrowserWarning.jsdeleted−13

This diff is too big to show here.

src/_walletgen/views/Custody.jsdeleted−37

This diff is too big to show here.

src/_walletgen/views/Done.jsdeleted−79

This diff is too big to show here.

src/_walletgen/views/Download.jsdeleted−168

This diff is too big to show here.

src/_walletgen/views/Eula.jsdeleted−48

This diff is too big to show here.

src/_walletgen/views/EulaView.jsdeleted−35

This diff is too big to show here.

src/_walletgen/views/Generate.jsdeleted−473

This diff is too big to show here.

src/_walletgen/views/NetworkWarning.jsdeleted−14

This diff is too big to show here.

src/_walletgen/views/PrivacyPolicy.jsdeleted−367

This diff is too big to show here.

src/_walletgen/views/Understand.jsdeleted−66

This diff is too big to show here.

src/_walletgen/views/Upload.jsdeleted−273

This diff is too big to show here.

src/_walletgen/views/Welcome.jsdeleted−50

This diff is too big to show here.

src/assets/back.svgnew file+4

This diff is too big to show here.

src/assets/blank-planet-sigil.svgnew file+39

This diff is too big to show here.

src/assets/copy.svgnew file+3

This diff is too big to show here.

src/assets/history.svgnew file+6

This diff is too big to show here.

src/assets/info.svgnew file+3

This diff is too big to show here.

src/assets/invite.svgnew file+3

This diff is too big to show here.

src/assets/keyfile.svgnew file+5

This diff is too big to show here.

src/assets/metamask.pngnew file

Binary file not shown.

src/assets/metamask.svgnew file+9

This diff is too big to show here.

src/assets/search.svgnew file+3

This diff is too big to show here.

src/assets/secret-hidden.svgnew file+17

This diff is too big to show here.

src/assets/secret-show.svgnew file+4

This diff is too big to show here.

src/assets/star.svgnew file+3

This diff is too big to show here.

src/assets/wallet-connect.pngnew file

Binary file not shown.

src/assets/wallet-connect.svgnew file+3

This diff is too big to show here.

src/assets/wallet.svgnew file+3

This diff is too big to show here.

src/azimuth-js.d.tsnew file+2

This diff is too big to show here.

src/components/Accordion.jsxnew file+63

This diff is too big to show here.

src/components/AddressButton.tsxnew file+36

This diff is too big to show here.

src/components/AlertBox.tsxnew file+25

This diff is too big to show here.

src/components/AspectRatio.jsxnew file+22

This diff is too big to show here.

src/components/BarGraph.jsxnew file+29

This diff is too big to show here.

src/components/Blinky.jsxnew file+47

This diff is too big to show here.

src/components/BrowserWarning.tsxnew file+27

This diff is too big to show here.

src/components/Buttons.jsdeleted−6

This diff is too big to show here.

src/components/Buttons.jsxnew file+33

This diff is too big to show here.

src/components/Chip.jsxnew file+16

This diff is too big to show here.

src/components/Crumbs.jsxnew file+32

This diff is too big to show here.

src/components/DownloadKeyfileButton.jsxnew file+33

This diff is too big to show here.

src/components/DownloadSigilButton.jsxnew file+72

This diff is too big to show here.

src/components/Footer.jsdeleted−17

This diff is too big to show here.

src/components/Footer.jsxnew file+12

This diff is too big to show here.

src/components/FooterButton.jsxnew file+17

This diff is too big to show here.

src/components/GlobalErrorBoundary.tsxnew file+81

This diff is too big to show here.

src/components/Greeting.jsxnew file+109

This diff is too big to show here.

src/components/Header.jsxnew file+17

This diff is too big to show here.

src/components/Highlighted.jsxnew file+22

This diff is too big to show here.

src/components/InlineEthereumTransaction.jsxnew file+375

This diff is too big to show here.

src/components/InlineEthereumTransaction.scssnew file+27

This diff is too big to show here.

src/components/InputSigil.jsdeleted−40

This diff is too big to show here.

src/components/InputSigil.jsxnew file+46

This diff is too big to show here.

src/components/Inputs.jsdeleted−94

This diff is too big to show here.

src/components/InviteSigilList.jsxnew file+50

This diff is too big to show here.

src/components/L2/Card.scssnew file+46

This diff is too big to show here.

src/components/L2/Card.tsxnew file+43

This diff is too big to show here.

src/components/L2/CreatingInvitesModal.tsxnew file+85

This diff is too big to show here.

src/components/L2/Dropdowns/AccountsDropdown.scssnew file+137

This diff is too big to show here.

src/components/L2/Dropdowns/AccountsDropdown.tsxnew file+145

This diff is too big to show here.

src/components/L2/Dropdowns/Dropdown.scssnew file+65

This diff is too big to show here.

src/components/L2/Dropdowns/Dropdown.tsxnew file+37

This diff is too big to show here.

src/components/L2/Dropdowns/FeeDropdown.scssnew file+71

This diff is too big to show here.

src/components/L2/Dropdowns/FeeDropdown.tsxnew file+136

This diff is too big to show here.

src/components/L2/Headers/AdvancedOptions.scssnew file+54

This diff is too big to show here.

src/components/L2/Headers/AdvancedOptions.tsxnew file+71

This diff is too big to show here.

src/components/L2/Headers/HeaderButton.scssnew file+10

This diff is too big to show here.

src/components/L2/Headers/HeaderButton.tsxnew file+23

This diff is too big to show here.

src/components/L2/Headers/L2BackHeader.scssnew file+40

This diff is too big to show here.

src/components/L2/Headers/L2BackHeader.tsxnew file+77

This diff is too big to show here.

src/components/L2/Headers/L2PointHeader.scssnew file+90

This diff is too big to show here.

src/components/L2/Headers/L2PointHeader.tsxnew file+102

This diff is too big to show here.

src/components/L2/InviteConverter.tsxnew file+292

This diff is too big to show here.

src/components/L2/LayerIndicator.scssnew file+59

This diff is too big to show here.

src/components/L2/LayerIndicator.tsxnew file+26

This diff is too big to show here.

src/components/L2/LoadingOverlay.scssnew file+40

This diff is too big to show here.

src/components/L2/LoadingOverlay.tsxnew file+26

This diff is too big to show here.

src/components/L2/Modal.scssnew file+53

This diff is too big to show here.

src/components/L2/Modal.tsxnew file+41

This diff is too big to show here.

src/components/L2/Paginator.scssnew file+30

This diff is too big to show here.

src/components/L2/Paginator.tsxnew file+41

This diff is too big to show here.

src/components/L2/PendingTransaction.scssnew file+64

This diff is too big to show here.

src/components/L2/PendingTransaction.tsxnew file+46

This diff is too big to show here.

src/components/L2/PermissionIndicator.scssnew file+15

This diff is too big to show here.

src/components/L2/PermissionIndicator.tsxnew file+35

This diff is too big to show here.

src/components/L2/PointList.tsxnew file+65

This diff is too big to show here.

src/components/L2/Points/IncomingPoint.scssnew file+47

This diff is too big to show here.

src/components/L2/Points/IncomingPoint.tsxnew file+46

This diff is too big to show here.

src/components/L2/Window/BodyPane.scssnew file+89

This diff is too big to show here.

src/components/L2/Window/BodyPane.tsxnew file+28

This diff is too big to show here.

src/components/L2/Window/HeaderPane.scssnew file+54

This diff is too big to show here.

src/components/L2/Window/HeaderPane.tsxnew file+14

This diff is too big to show here.

src/components/L2/Window/Window.scssnew file+9

This diff is too big to show here.

src/components/L2/Window/Window.tsxnew file+14

This diff is too big to show here.

src/components/LoadingBar.jsxnew file+19

This diff is too big to show here.

src/components/LoginButton.jsxnew file+27

This diff is too big to show here.

src/components/MaybeSigil.jsxnew file+22

This diff is too big to show here.

src/components/MiniBackButton.jsxnew file+14

This diff is too big to show here.

src/components/MiniBackButton.scssnew file+10

This diff is too big to show here.

src/components/NavHeader.jsxnew file+12

This diff is too big to show here.

src/components/NeedFundsNotice.jsxnew file+27

This diff is too big to show here.

src/components/NetworkKeys.jsxnew file+98

This diff is too big to show here.

src/components/NoticeBox.jsxnew file+11

This diff is too big to show here.

src/components/PaperBuilder.jsxnew file+17

This diff is too big to show here.

src/components/Passport.jsdeleted−25

This diff is too big to show here.

src/components/Passport.jsxnew file+244

This diff is too big to show here.

src/components/ProgressButton.jsxnew file+30

This diff is too big to show here.

src/components/ReactSVGComponents.jsdeleted−87

This diff is too big to show here.

src/components/Router.jsdeleted−13

This diff is too big to show here.

src/components/Router.jsxnew file+9

This diff is too big to show here.

src/components/Sigil.jsdeleted−13

This diff is too big to show here.

src/components/Sigil.jsxnew file+13

This diff is too big to show here.

src/components/SigilMini.scssnew file+46

This diff is too big to show here.

src/components/Steps.jsxnew file+11

This diff is too big to show here.

src/components/Tabs.jsxnew file+53

This diff is too big to show here.

src/components/UploadButton.jsxnew file+21

This diff is too big to show here.

src/components/View.jsdeleted−33

This diff is too big to show here.

src/components/View.tsxnew file+132

This diff is too big to show here.

src/components/ViewHeader.jsxnew file+7

This diff is too big to show here.

src/components/WarningBox.jsxnew file+11

This diff is too big to show here.

src/components/WithErrorBoundary.jsxnew file+20

This diff is too big to show here.

src/components/WithTooltip.tsxnew file+56

This diff is too big to show here.

src/components/alerts/L2VulnAlert.tsxnew file+49

This diff is too big to show here.

src/components/copiable/CopiableAddress.jsxnew file+19

This diff is too big to show here.

src/components/copiable/CopiableAddressWrap.jsxnew file+10

This diff is too big to show here.

src/components/copiable/CopiableWithTooltip.jsxnew file+30

This diff is too big to show here.

src/components/copiable/CopyButton.jsxnew file+29

This diff is too big to show here.

src/components/copiable/CopyButtonWide.tsxnew file+28

This diff is too big to show here.

src/components/form/TicketInputAccessory.scssnew file+7

This diff is too big to show here.

src/components/form/TicketInputAccessory.tsxnew file+17

This diff is too big to show here.

src/components/old/Anchor.jsdeleted−28

This diff is too big to show here.

src/components/old/Base.jsdeleted−182

This diff is too big to show here.

src/components/old/Blockie.jsdeleted−17

This diff is too big to show here.

src/components/old/Breadcrumb.jsdeleted−9

This diff is too big to show here.

src/components/old/BreadcrumbItem.jsdeleted−9

This diff is too big to show here.

src/components/old/Button.jsdeleted−21

This diff is too big to show here.

src/components/old/Checkbox.jsdeleted−50

This diff is too big to show here.

src/components/old/CheckboxButton.jsdeleted−55

This diff is too big to show here.

src/components/old/Code.jsdeleted−34

This diff is too big to show here.

src/components/old/Col.jsdeleted−23

This diff is too big to show here.

src/components/old/DropdownDivider.jsdeleted−11

This diff is too big to show here.

src/components/old/DropdownItem.jsdeleted−35

This diff is too big to show here.

src/components/old/FlexCol.jsdeleted−23

This diff is too big to show here.

src/components/old/FlexRow.jsdeleted−17

This diff is too big to show here.

src/components/old/Form.jsdeleted−23

This diff is too big to show here.

src/components/old/H1.jsdeleted−25

This diff is too big to show here.

src/components/old/H2.jsdeleted−23

This diff is too big to show here.

src/components/old/H3.jsdeleted−23

This diff is too big to show here.

src/components/old/H4.jsdeleted−23

This diff is too big to show here.

src/components/old/Header.jsdeleted−66

This diff is too big to show here.

src/components/old/HorizontalSelector.jsdeleted−51

This diff is too big to show here.

src/components/old/InnerLabel.jsdeleted−25

This diff is too big to show here.

src/components/old/InnerLabelDropdown.jsdeleted−115

This diff is too big to show here.

src/components/old/Input.jsdeleted−67

This diff is too big to show here.

src/components/old/InputCaption.jsdeleted−25

This diff is too big to show here.

src/components/old/Label.jsdeleted−23

This diff is too big to show here.

src/components/old/P.jsdeleted−34

This diff is too big to show here.

src/components/old/Passport.jsdeleted−236

This diff is too big to show here.

src/components/old/PointList.jsdeleted−32

This diff is too big to show here.

src/components/old/ProtoAnchor.jsdeleted−27

This diff is too big to show here.

src/components/old/ProtoButton.jsdeleted−39

This diff is too big to show here.

src/components/old/ProtoInput.jsdeleted−66

This diff is too big to show here.

src/components/old/ProtoTextarea.jsdeleted−62

This diff is too big to show here.

src/components/old/RenderedPoint.jsdeleted−57

This diff is too big to show here.

src/components/old/Row.jsdeleted−23

This diff is too big to show here.

src/components/old/RowCol.jsdeleted−25

This diff is too big to show here.

src/components/old/ShowBlockie.jsdeleted−70

This diff is too big to show here.

src/components/old/Spacing.jsdeleted−25

This diff is too big to show here.

src/components/old/StatelessTransaction.jsdeleted−596

This diff is too big to show here.

src/components/old/Textarea.jsdeleted−67

This diff is too big to show here.

src/components/old/UploadButton.jsdeleted−31

This diff is too big to show here.

src/components/old/ValidatedBlockie.jsdeleted−64

This diff is too big to show here.

src/components/old/ValidatedSigil.jsdeleted−75

This diff is too big to show here.

src/components/old/Warning.jsdeleted−23

This diff is too big to show here.

src/components/old/advancedInput.jsdeleted−147

This diff is too big to show here.

src/form/BridgeForm.tsxnew file+70

This diff is too big to show here.

src/form/ColorInput.jsxnew file+50

This diff is too big to show here.

src/form/Condition.jsnew file+11

This diff is too big to show here.

src/form/EmailChipInput.jsxnew file+122

This diff is too big to show here.

src/form/FormError.jsxnew file+34

This diff is too big to show here.

src/form/Inputs.tsxnew file+335

This diff is too big to show here.

src/form/SubmitButton.jsxnew file+71

This diff is too big to show here.

src/form/UploadInput.jsxnew file+51

This diff is too big to show here.

src/form/ValidationPauser.jsnew file+27

This diff is too big to show here.

src/form/ValuesHandler.jsnew file+18

This diff is too big to show here.

src/form/formatters.test.tsnew file+45

This diff is too big to show here.

src/form/formatters.tsnew file+127

This diff is too big to show here.

src/form/helpers.jsnew file+5

This diff is too big to show here.

src/form/validators.jsnew file+186

This diff is too big to show here.

src/index.js → src/index.tsxrenamed+3−2

This diff is too big to show here.

src/indigo-react/components/AccessoryIcon.jsxnew file+32

This diff is too big to show here.

src/indigo-react/components/Button.jsdeleted−48

This diff is too big to show here.

src/indigo-react/components/Button.jsxnew file+85

This diff is too big to show here.

src/indigo-react/components/CheckboxInput.jsxnew file+54

This diff is too big to show here.

src/indigo-react/components/Flex.d.tsnew file+1

This diff is too big to show here.

src/indigo-react/components/Flex.js → src/indigo-react/components/Flex.jsxrenamed+23−20

This diff is too big to show here.

src/indigo-react/components/Grid.d.tsnew file+1

This diff is too big to show here.

src/indigo-react/components/Grid.jsdeleted−61

This diff is too big to show here.

src/indigo-react/components/Grid.jsxnew file+78

This diff is too big to show here.

src/indigo-react/components/IconButton.jsxnew file+56

This diff is too big to show here.

src/indigo-react/components/IndigoApp.js → src/indigo-react/components/IndigoApp.jsxrenamed+2−2

This diff is too big to show here.

src/indigo-react/components/Input.jsdeleted−214

This diff is too big to show here.

src/indigo-react/components/Input.jsxnew file+122

This diff is too big to show here.

src/indigo-react/components/LinkButton.jsxnew file+35

This diff is too big to show here.

src/indigo-react/components/SelectInput.jsxnew file+142

This diff is too big to show here.

src/indigo-react/components/ToggleInput.jsxnew file+70

This diff is too big to show here.

src/indigo-react/components/Typography.jsxnew file+22

This diff is too big to show here.

src/indigo-react/index.js+9−1

This diff is too big to show here.

src/indigo-react/indigo.css+186−78

This diff is too big to show here.

src/indigo-react/lib/getComponent.jsdeleted−1

This diff is too big to show here.

src/indigo-react/lib/useOnClickOutside.jsnew file+23

This diff is too big to show here.

src/lib/LocalRouter.tsnew file+10

This diff is too big to show here.

src/lib/MediaQuery.jsxnew file+24

This diff is too big to show here.

src/lib/SigilDownloader.jsnew file+50

This diff is too big to show here.

src/lib/SolarisClient.jsnew file+103

This diff is too big to show here.

src/lib/WalletConnect.tsnew file+63

This diff is too big to show here.

src/lib/authToken.tsnew file+120

This diff is too big to show here.

src/lib/capitalize.jsnew file+1

This diff is too big to show here.

src/lib/card.jsnew file+190

This diff is too big to show here.

src/lib/child.js+3−1

This diff is too big to show here.

src/lib/constants.tsnew file+287

This diff is too big to show here.

src/lib/contracts.js+10−10

This diff is too big to show here.

src/lib/convertToInt.jsnew file+17

This diff is too big to show here.

src/lib/dateFormat.jsnew file+13

This diff is too big to show here.

src/lib/error.js+16−13

This diff is too big to show here.

src/lib/expiredPlanetsWithInviteCodes.jsonnew file+1445

This diff is too big to show here.

src/lib/explorer.jsnew file+33

This diff is too big to show here.

src/lib/flags.js+13−1

This diff is too big to show here.

src/lib/flowCommand.tsnew file+113

This diff is too big to show here.

src/lib/getSuggestedGasPrice.jsnew file+110

This diff is too big to show here.

src/lib/hosting.jsnew file+26

This diff is too big to show here.

src/lib/invite.js+20−315

This diff is too big to show here.

src/lib/inviteMail.js+12−3

This diff is too big to show here.

src/lib/isPromise.jsnew file+6

This diff is too big to show here.

src/lib/keys.js+178−60

This diff is too big to show here.

src/lib/ledger.jsdeleted−24

This diff is too big to show here.

src/lib/lib.js+47−3

This diff is too big to show here.

src/lib/maybeGetResult.tsnew file+12

This diff is too big to show here.

src/lib/metamask.tsnew file+79

This diff is too big to show here.

src/lib/need.js+47−13

This diff is too big to show here.

src/lib/nest.js+1−1

This diff is too big to show here.

src/lib/network.js+41−9

This diff is too big to show here.

src/lib/networkCode.jsnew file+55

This diff is too big to show here.

src/lib/patp2dec.jsnew file+11

This diff is too big to show here.

src/lib/pluralize.jsnew file+8

This diff is too big to show here.

src/lib/point.jsnew file+13

This diff is too big to show here.

src/lib/proxy.js+50−13

This diff is too big to show here.

src/lib/reticket.jsnew file+286

This diff is too big to show here.

src/lib/routeNames.jsdeleted−33

This diff is too big to show here.

src/lib/routeNames.tsnew file+39

This diff is too big to show here.

src/lib/router.jsdeleted−143

This diff is too big to show here.

src/lib/router.tsnew file+62

This diff is too big to show here.

src/lib/starRelease.jsnew file+166

This diff is too big to show here.

src/lib/tank.js+93−66

This diff is too big to show here.

src/lib/timeout.jsnew file+1

This diff is too big to show here.

src/lib/transformers.jsdeleted−17

This diff is too big to show here.

src/lib/trezor.jsdeleted−33

This diff is too big to show here.

src/lib/txn.jsdeleted−253

This diff is too big to show here.

src/lib/txn.tsnew file+284

This diff is too big to show here.

src/lib/types/BridgeWallet.tsnew file+6

This diff is too big to show here.

src/lib/types/ITxData.tsnew file+9

This diff is too big to show here.

src/lib/types/Invite.tsnew file+14

This diff is too big to show here.

src/lib/types/Keypair.tsnew file+7

This diff is too big to show here.

src/lib/types/L1Point.tsnew file+20

This diff is too big to show here.

src/lib/types/L2Transaction.tsnew file+85

This diff is too big to show here.

src/lib/types/NetworkKeys.tsnew file+11

This diff is too big to show here.

src/lib/types/PendingL1Transaction.tsnew file+24

This diff is too big to show here.

src/lib/types/Point.tsnew file+255

This diff is too big to show here.

src/lib/types/PointLayer.tsnew file+4

This diff is too big to show here.

src/lib/types/ValueOf.tsnew file+1

This diff is too big to show here.

src/lib/types/WalletConnectWallet.tsnew file+5

This diff is too big to show here.

src/lib/useBlockWindowClose.jsnew file+33

This diff is too big to show here.

src/lib/useBreakpoints.tsxnew file+6

This diff is too big to show here.

src/lib/useBrowser.tsnew file+32

This diff is too big to show here.

src/lib/useConstant.jsnew file+13

This diff is too big to show here.

src/lib/useCopiable.tsnew file+23

This diff is too big to show here.

src/lib/useCurrentPermissions.jsnew file+17

This diff is too big to show here.

src/lib/useCurrentPointName.jsnew file+12

This diff is too big to show here.

src/lib/useDeepEqualReference.jsnew file+22

This diff is too big to show here.

src/lib/useEthereumTransaction.jsnew file+368

This diff is too big to show here.

src/lib/useGasPrice.jsnew file+60

This diff is too big to show here.

src/lib/useHasDisclaimed.jsnew file+7

This diff is too big to show here.

src/lib/useHasNetworkKeysSet.tsxnew file+25

This diff is too big to show here.

src/lib/useImpliedPoint.jsnew file+14

This diff is too big to show here.

src/lib/useImpliedTicket.test.tsnew file+77

This diff is too big to show here.

src/lib/useImpliedTicket.tsnew file+40

This diff is too big to show here.

src/lib/useInterval.jsnew file+22

This diff is too big to show here.

src/lib/useInvites.jsdeleted−34

This diff is too big to show here.

src/lib/useIsEclipticOwner.jsnew file+25

This diff is too big to show here.

src/lib/useIsExpiredInvite.tsnew file+23

This diff is too big to show here.

src/lib/useKeyfileGenerator.tsnew file+256

This diff is too big to show here.

src/lib/useLifecycle.js+1

This diff is too big to show here.

src/lib/useLocalHosting.jsnew file+51

This diff is too big to show here.

src/lib/useLocalStorageState.jsnew file+43

This diff is too big to show here.

src/lib/useLoginView.jsnew file+17

This diff is too big to show here.

src/lib/useMailer.jsnew file+46

This diff is too big to show here.

src/lib/useMedia.jsnew file+31

This diff is too big to show here.

src/lib/useOnClickOutside.tsnew file+34

This diff is too big to show here.

src/lib/usePermissionsForPoint.jsnew file+107

This diff is too big to show here.

src/lib/usePreviousValue.jsnew file+16

This diff is too big to show here.

src/lib/useRejectedIncomingPointTransfers.jsnew file+19

This diff is too big to show here.

src/lib/useRenderCount.jsnew file+7

This diff is too big to show here.

src/lib/useReticketL2Spawn.tsnew file+136

This diff is too big to show here.

src/lib/useRoller.tsnew file+857

This diff is too big to show here.

src/lib/useRollerOptions.tsnew file+59

This diff is too big to show here.

src/lib/useRollerPoller.tsnew file+44

This diff is too big to show here.

src/lib/useRouter.tsxnew file+184

This diff is too big to show here.

src/lib/useSeenMissingKeys.jsnew file+7

This diff is too big to show here.

src/lib/useSetState.jsnew file+16

This diff is too big to show here.

src/lib/useSigilDownloader.jsnew file+58

This diff is too big to show here.

src/lib/useSyncPoint.jsdeleted−12

This diff is too big to show here.

src/lib/useSyncPoints.jsnew file+32

This diff is too big to show here.

src/lib/useWalletConnect.tsnew file+360

This diff is too big to show here.

src/lib/useWasGreeted.jsnew file+7

This diff is too big to show here.

src/lib/utils/address.test.tsnew file+19

This diff is too big to show here.

src/lib/utils/address.tsnew file+34

This diff is too big to show here.

src/lib/utils/array.tsnew file+2

This diff is too big to show here.

src/lib/utils/date.tsnew file+19

This diff is too big to show here.

src/lib/utils/hex.tsnew file+11

This diff is too big to show here.

src/lib/utils/invite.tsnew file+34

This diff is too big to show here.

src/lib/utils/notifications.tsnew file+5

This diff is too big to show here.

src/lib/utils/point.tsnew file+43

This diff is too big to show here.

src/lib/utils/roller.tsnew file+404

This diff is too big to show here.

src/lib/utils/wallet.tsnew file+7

This diff is too big to show here.

src/lib/validators.jsdeleted−141

This diff is too big to show here.

src/lib/validators.tsnew file+166

This diff is too big to show here.

src/lib/wallet.jsdeleted−151

This diff is too big to show here.

src/lib/wallet.tsnew file+47

This diff is too big to show here.

src/lib/walletgen.tsnew file+125

This diff is too big to show here.

src/nockjs/TODOdeleted−42

This diff is too big to show here.

src/nockjs/bits.jsdeleted−333

This diff is too big to show here.

src/nockjs/compiler.jsdeleted−726

This diff is too big to show here.

src/nockjs/hamt.jsdeleted−137

This diff is too big to show here.

src/nockjs/list.jsdeleted−40

This diff is too big to show here.

src/nockjs/noun.jsdeleted−367

This diff is too big to show here.

src/nockjs/serial.jsdeleted−167

This diff is too big to show here.

src/nockjs/test/ack.jsdeleted−51

This diff is too big to show here.

src/nockjs/test/add.jsdeleted−40

This diff is too big to show here.

src/nockjs/test/bits.jsdeleted−15

This diff is too big to show here.

src/nockjs/test/decrement.jsdeleted−37

This diff is too big to show here.

src/nockjs/test/hamt.jsdeleted−16

This diff is too big to show here.

src/nockjs/test/noun.jsdeleted−88

This diff is too big to show here.

src/nockjs/test/serial.jsdeleted−22

This diff is too big to show here.

src/react-app-env.d.tsnew file+7

This diff is too big to show here.

src/setupTests.tsnew file+1

This diff is too big to show here.

src/store/Provider.js+5−3

This diff is too big to show here.

src/store/history.jsdeleted−79

This diff is too big to show here.

src/store/history.tsxnew file+52

This diff is too big to show here.

src/store/lib/useControlledPointsStore.jsnew file+136

This diff is too big to show here.

src/store/lib/useDetailsStore.tsnew file+74

This diff is too big to show here.

src/store/lib/useEclipticOwnerStore.jsnew file+26

This diff is too big to show here.

src/store/lib/usePointStore.jsnew file+47

This diff is too big to show here.

src/store/lib/useRekeyDateStore.jsnew file+79

This diff is too big to show here.

src/store/lib/useResidentsStore.tsnew file+114

This diff is too big to show here.

src/store/lib/useStarReleaseStore.jsnew file+70

This diff is too big to show here.

src/store/network.jsdeleted−119

This diff is too big to show here.

src/store/network.jsxnew file+162

This diff is too big to show here.

src/store/online.js → src/store/online.jsxrenamed

The content is the same.

src/store/pointCache.jsdeleted−64

This diff is too big to show here.

src/store/pointCache.jsxnew file+53

This diff is too big to show here.

src/store/pointCursor.js → src/store/pointCursor.jsxrenamed+27−5

This diff is too big to show here.

src/store/rollerStore.tsnew file+106

This diff is too big to show here.

src/store/starRelease.jsxnew file+20

This diff is too big to show here.

src/store/storage/roller.tsnew file+57

This diff is too big to show here.

src/store/timerStore.tsnew file+16

This diff is too big to show here.

src/store/txnConfirmations.jsdeleted−44

This diff is too big to show here.

src/store/txnCursor.js → src/store/txnCursor.jsxrenamed

The content is the same.

src/store/wallet.jsdeleted−136

This diff is too big to show here.

src/store/wallet.jsxnew file+256

This diff is too big to show here.

src/style/Inter-Medium.cssnew file+1

This diff is too big to show here.

src/style/Inter-Regular.cssnew file+1

This diff is too big to show here.

src/style/Inter-SemiBold.cssnew file+1

This diff is too big to show here.

src/style/SourceCodePro-Medium.cssnew file+1

This diff is too big to show here.

src/style/SourceCodePro-Regular.cssnew file+1

This diff is too big to show here.

src/style/SourceCodePro-SemiBold.cssnew file+1

This diff is too big to show here.

src/style/anim.cssnew file+458

This diff is too big to show here.

src/style/bridge.scss+25−16

This diff is too big to show here.

src/style/fadeable.scssnew file+21

This diff is too big to show here.

src/style/fonts.scssdeleted−6

This diff is too big to show here.

src/style/fonts64.scssnew file+6

This diff is too big to show here.

src/style/fonts64/SourceCodePro-Bold.cssdeleted−5

This diff is too big to show here.

src/style/fonts64/SourceCodePro-Regular.cssdeleted−5

This diff is too big to show here.

src/style/fontstack/Inter-UI/Inter-UI-Regular.woffdeleted

Binary file not shown.

src/style/fontstack/Inter-UI/Inter-UI-Regular.woff2deleted

Binary file not shown.

src/style/fontstack/Inter-UI/Inter-UI-SemiBold.woffdeleted

Binary file not shown.

src/style/fontstack/Inter-UI/Inter-UI-SemiBold.woff2deleted

Binary file not shown.

src/style/fontstack/Inter-UI/inter-ui.cssdeleted−15

This diff is too big to show here.

src/style/form-reset.scssnew file+107

This diff is too big to show here.

src/style/index.scss+10−1

This diff is too big to show here.

src/style/indigo-proposals.scss+34−5

This diff is too big to show here.

src/style/master-key.scssnew file+37

This diff is too big to show here.

src/style/pulsating-circle-bg.scssnew file+18

This diff is too big to show here.

src/style/shared/variables.scssnew file+16

This diff is too big to show here.

src/urbit-key-generation.d.tsnew file+125

This diff is too big to show here.

src/urbit-ob.d.tsnew file+1

This diff is too big to show here.

src/views/AcceptLockup.jsxnew file+156

This diff is too big to show here.

src/views/AcceptTransfer.jsdeleted−121

This diff is too big to show here.

src/views/AcceptTransfer.tsxnew file+206

This diff is too big to show here.

src/views/Activate.jsxnew file+50

This diff is too big to show here.

src/views/Activate/ActivateButton.tsxnew file+45

This diff is too big to show here.

src/views/Activate/ActivateCode.tsxnew file+100

This diff is too big to show here.

src/views/Activate/ActivateCodeForm.tsxnew file+249

This diff is too big to show here.

src/views/Activate/ActivateHeader.tsxnew file+29

This diff is too big to show here.

src/views/Activate/ActivateMasterKey.tsxnew file+38

This diff is too big to show here.

src/views/Activate/ActivateParagraph.tsxnew file+33

This diff is too big to show here.

src/views/Activate/ActivateSteps.tsxnew file+49

This diff is too big to show here.

src/views/Activate/ActivateView.scssnew file+34

This diff is too big to show here.

src/views/Activate/ActivateView.tsxnew file+82

This diff is too big to show here.

src/views/Activate/CodeExpired.scssnew file+3

This diff is too big to show here.

src/views/Activate/CodeExpired.tsxnew file+47

This diff is too big to show here.

src/views/Activate/DangerBox.tsxnew file+28

This diff is too big to show here.

src/views/Activate/MasterKey.tsxnew file+122

This diff is too big to show here.

src/views/Activate/MasterKeyConfirm.scssnew file+72

This diff is too big to show here.

src/views/Activate/MasterKeyConfirm.tsxnew file+189

This diff is too big to show here.

src/views/Activate/MasterKeyCopy.tsxnew file+37

This diff is too big to show here.

src/views/Activate/MasterKeyDownload.tsxnew file+161

This diff is too big to show here.

src/views/Activate/MasterKeyPresenter.tsxnew file+63

This diff is too big to show here.

src/views/Activate/MasterKeyReveal.tsxnew file+108

This diff is too big to show here.

src/views/Activate/MasterKeyTransfer.tsxnew file+153

This diff is too big to show here.

src/views/Activate/PointPresenter.tsxnew file+65

This diff is too big to show here.

src/views/Activate/useActivateFlow.jsnew file+9

This diff is too big to show here.

src/views/Activate/useActivateFlowState.jsnew file+73

This diff is too big to show here.

src/views/Activate/useFadeIn.tsnew file+16

This diff is too big to show here.

src/views/Activate/withFadeable.tsxnew file+28

This diff is too big to show here.

src/views/Bitcoin/Bitcoin.scssnew file+29

This diff is too big to show here.

src/views/Bitcoin/Bitcoin.tsxnew file+213

This diff is too big to show here.

src/views/CancelTransfer.jsdeleted−80

This diff is too big to show here.

src/views/CancelTransfer.tsxnew file+166

This diff is too big to show here.

src/views/CreateGalaxy.jsdeleted−198

This diff is too big to show here.

src/views/CreateGalaxy.jsxnew file+166

This diff is too big to show here.

src/views/Disclaimer.jsxnew file+143

This diff is too big to show here.

src/views/GenKeyfile.jsdeleted−142

This diff is too big to show here.

src/views/Invite/CSVButton.tsxnew file+54

This diff is too big to show here.

src/views/Invite/Cohort.scssnew file+236

This diff is too big to show here.

src/views/Invite/Cohort.tsxnew file+203

This diff is too big to show here.

src/views/Invite/GenerateInvites.tsxnew file+152

This diff is too big to show here.

src/views/Invite/GeneratingModal.tsxnew file+88

This diff is too big to show here.

src/views/Invite/useInvites.tsnew file+383

This diff is too big to show here.

src/views/InviteTicket.jsdeleted−435

This diff is too big to show here.

src/views/InvitesManage.jsdeleted−185

This diff is too big to show here.

src/views/InvitesSend.jsdeleted−501

This diff is too big to show here.

src/views/IssueChild.jsdeleted−254

This diff is too big to show here.

src/views/Keystore.jsdeleted−166

This diff is too big to show here.

src/views/Landing.jsdeleted−45

This diff is too big to show here.

src/views/Ledger.jsdeleted−220

This diff is too big to show here.

src/views/Login.scssnew file+3

This diff is too big to show here.

src/views/Login.tsxnew file+104

This diff is too big to show here.

src/views/Login/LoginSelector.scssnew file+120

This diff is too big to show here.

src/views/Login/LoginSelector.tsxnew file+333

This diff is too big to show here.

src/views/Login/Metamask.jsxnew file+128

This diff is too big to show here.

src/views/Login/Mnemonic.tsxnew file+153

This diff is too big to show here.

src/views/Login/Other.tsxnew file+77

This diff is too big to show here.

src/views/Login/Ticket.tsxnew file+292

This diff is too big to show here.

src/views/Login/WalletConnect.tsxnew file+123

This diff is too big to show here.

src/views/Mnemonic.jsdeleted−74

This diff is too big to show here.

src/views/Network.jsdeleted−62

This diff is too big to show here.

src/views/Ops/Ops.scssnew file+14

This diff is too big to show here.

src/views/Ops/Ops.tsxnew file+126

This diff is too big to show here.

src/views/Ops/RequestRow.tsxnew file+47

This diff is too big to show here.

src/views/Ops/Requests.scssnew file+91

This diff is too big to show here.

src/views/Ops/Requests.tsxnew file+96

This diff is too big to show here.

src/views/Ops/ResidentRow.tsxnew file+64

This diff is too big to show here.

src/views/Ops/Residents.scssnew file+123

This diff is too big to show here.

src/views/Ops/Residents.tsxnew file+82

This diff is too big to show here.

src/views/Party/PartySetPoolSize.jsxnew file+185

This diff is too big to show here.

src/views/Point.jsdeleted−62

This diff is too big to show here.

src/views/Point/Actions.jsdeleted−236

This diff is too big to show here.

src/views/Point/IssueChild.scssnew file+59

This diff is too big to show here.

src/views/Point/IssueChild.tsxnew file+349

This diff is too big to show here.

src/views/Point/KeysAndMetadata.jsdeleted−153

This diff is too big to show here.

src/views/Point/MigrateL2.scssnew file+192

This diff is too big to show here.

src/views/Point/MigrateL2.tsxnew file+378

This diff is too big to show here.

src/views/Point/PatpBadge.tsxnew file+28

This diff is too big to show here.

src/views/Point/Point.scssnew file+76

This diff is too big to show here.

src/views/Point/Point.tsxnew file+216

This diff is too big to show here.

src/views/Point/Senate.jsxnew file+40

This diff is too big to show here.

src/views/Point/UrbitID.jsxnew file+62

This diff is too big to show here.

src/views/Point/UrbitOS.jsxnew file+61

This diff is too big to show here.

src/views/Points.jsdeleted−245

This diff is too big to show here.

src/views/Points.scssnew file+28

This diff is too big to show here.

src/views/Points.tsxnew file+392

This diff is too big to show here.

src/views/Points/StarReleaseButton.scssnew file+27

This diff is too big to show here.

src/views/Points/StarReleaseButton.tsxnew file+31

This diff is too big to show here.

src/views/PrivateKey.jsdeleted−84

This diff is too big to show here.

src/views/Release/StarRelease.scssnew file+65

This diff is too big to show here.

src/views/Release/StarRelease.tsxnew file+61

This diff is too big to show here.

src/views/Release/TransferForm.tsxnew file+156

This diff is too big to show here.

src/views/Release/WithdrawForm.tsxnew file+137

This diff is too big to show here.

src/views/Release/useTransferLockup.tsnew file+24

This diff is too big to show here.

src/views/Release/useWithdrawStars.tsnew file+19

This diff is too big to show here.

src/views/Senate/Documents.jsxnew file+215

This diff is too big to show here.

src/views/Senate/Upgrades.jsxnew file+199

This diff is too big to show here.

src/views/SentTransaction.jsdeleted−183

This diff is too big to show here.

src/views/SetKeys.jsdeleted−210

This diff is too big to show here.

src/views/SetProxy.jsdeleted−181

This diff is too big to show here.

src/views/Shards.jsdeleted−212

This diff is too big to show here.

src/views/Ticket.jsdeleted−154

This diff is too big to show here.

src/views/Transactions/AddressRow.tsxnew file+18

This diff is too big to show here.

src/views/Transactions/PatpRow.tsxnew file+33

This diff is too big to show here.

src/views/Transactions/TransactionHistory.scssnew file+333

This diff is too big to show here.

src/views/Transactions/TransactionHistory.tsxnew file+186

This diff is too big to show here.

src/views/Transactions/TransactionRow.tsxnew file+116

This diff is too big to show here.

src/views/Transfer.jsdeleted−127

This diff is too big to show here.

src/views/Trezor.jsdeleted−146

This diff is too big to show here.

src/views/UrbitID/DownloadKeys.jsxnew file+82

This diff is too big to show here.

src/views/UrbitID/Home.tsxnew file+219

This diff is too big to show here.

src/views/UrbitID/ResetKeys.jsxnew file+70

This diff is too big to show here.

src/views/UrbitID/ResetKeys/ResetConfirm.jsxnew file+91

This diff is too big to show here.

src/views/UrbitID/ResetKeys/ResetDownload.jsxnew file+39

This diff is too big to show here.

src/views/UrbitID/ResetKeys/ResetExecute.tsxnew file+306

This diff is too big to show here.

src/views/UrbitID/ResetKeys/ResetVerify.jsxnew file+71

This diff is too big to show here.

src/views/UrbitID/SetProxy.jsxnew file+339

This diff is too big to show here.

src/views/UrbitID/SetProxy.scssnew file+9

This diff is too big to show here.

src/views/UrbitID/SigilGenerator.jsxnew file+131

This diff is too big to show here.

src/views/UrbitID/Transfer.tsxnew file+217

This diff is too big to show here.

src/views/UrbitID/UrbitID.scssnew file+21

This diff is too big to show here.

src/views/UrbitOS/AccessCode.test.tsxnew file+28

This diff is too big to show here.

src/views/UrbitOS/AccessCode.tsxnew file+24

This diff is too big to show here.

src/views/UrbitOS/ChangeSponsor.tsxnew file+273

This diff is too big to show here.

src/views/UrbitOS/Home.tsxnew file+162

This diff is too big to show here.

src/views/UrbitOS/NetworkKeys.scssnew file+56

This diff is too big to show here.

src/views/UrbitOS/NetworkKeys.tsxnew file+452

This diff is too big to show here.

src/views/UrbitOS/UrbitOS.scssnew file+15

This diff is too big to show here.

src/views/ViewPoint.jsdeleted−68

This diff is too big to show here.

src/views/Wallet.jsdeleted−101

This diff is too big to show here.

src/worker/index.tsnew file+7

This diff is too big to show here.

src/worker/worker.tsnew file+9

This diff is too big to show here.

truffle-config.jsnew file+30

This diff is too big to show here.

tsconfig.jsonnew file+24

This diff is too big to show here.

vite-env.d.tsnew file+2

This diff is too big to show here.

vite.config.tsnew file+104

This diff is too big to show here.

window.d.tsnew file+9

This diff is too big to show here.

xcode-selectnew file

No changes to the content.