on master help sign in
559 files changed+89134−42611
since splitsnapshots
unifiedsplit
.env+2−2 .env.development+5−4 .eslintignore+1 .eslintrc+14 .github/ISSUE_TEMPLATE/bridge-bug-report.md+41 .github/ISSUE_TEMPLATE/l2-bug-report.md+41 .gitignore+2 .nvmrc+1 .prettierrc.json+7 .vscode/settings.json+3 CHANGELOG+60−53 DEVELOPMENT.md+218 LICENSE+22 README.md+42−92 bridge-https.py−1 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 legal/eula.md−86 legal/privacy policy.md+11−11 migrations/1_migration.js+184 notes.md+1 package-lock.json+49797−17228 package.json+145−47 public/index.html−19 public/spritesheet_a.png src/Bridge.js−247 src/Bridge.tsx+128 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/Anchor.js−33 src/components/AspectRatio.jsx+22 src/components/BarGraph.jsx+29 src/components/Base.js−203 src/components/Blinky.jsx+47 src/components/Blockie.js−12 src/components/Breadcrumb.js−12 src/components/BreadcrumbItem.js−12 src/components/BrowserWarning.tsx+27 src/components/Button.js−30 src/components/Buttons.jsx+33 src/components/Checkbox.js−47 src/components/CheckboxButton.js−60 src/components/Chip.jsx+16 src/components/Code.js−37 src/components/Col.js−29 src/components/Container.js−29 src/components/Crumbs.jsx+32 src/components/DownloadKeyfileButton.jsx+33 src/components/DownloadSigilButton.jsx+72 src/components/DropdownDivider.js−12 src/components/DropdownItem.js−38 src/components/FlexCol.js−29 src/components/FlexRow.js−26 src/components/Footer.js−27 src/components/Footer.jsx+12 src/components/FooterButton.jsx+17 src/components/Form.js−29 src/components/GlobalErrorBoundary.tsx+81 src/components/Greeting.jsx+109 src/components/H1.js−26 src/components/H2.js−26 src/components/H3.js−26 src/components/H4.js−26 src/components/Header.js−54 src/components/Header.jsx+17 src/components/Highlighted.jsx+22 src/components/InlineEthereumTransaction.jsx+375 src/components/InlineEthereumTransaction.scss+27 src/components/InnerLabel.js−26 src/components/InnerLabelDropdown.js−71 src/components/Input.js−73 src/components/InputCaption.js−26 src/components/InputSigil.jsx+46 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/Label.js−26 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/OldHeader.js−52 src/components/OldLink.js−127 src/components/OldTextArea.js−129 src/components/P.js−37 src/components/PaperBuilder.jsx+17 src/components/Passport.jsx+244 src/components/PointList.js−30 src/components/ProgressButton.jsx+30 src/components/ProtoAnchor.js−32 src/components/ProtoButton.js−40 src/components/ProtoInput.js−67 src/components/ProtoTextarea.js−64 src/components/ReactSVGComponents.js−63 src/components/RenderedPoint.js−46 src/components/Router.jsx+9 src/components/Row.js−28 src/components/RowCol.js−30 src/components/ShowBlockie.js−81 src/components/Sigil.jsx+13 src/components/SigilMini.scss+46 src/components/Spacing.js−32 src/components/StatelessTransaction.js−175 src/components/Steps.jsx+11 src/components/Tabs.jsx+53 src/components/Textarea.js−74 src/components/Transaction.js−191 src/components/Transaction/Signer.js−193 src/components/Transaction/StatelessSigner.js−194 src/components/UploadButton.jsx+21 src/components/ValidatedBlockie.js−66 src/components/ValidatedSigil.js−79 src/components/View.tsx+132 src/components/ViewHeader.jsx+7 src/components/Warning.js−28 src/components/WarningBox.jsx+11 src/components/WithErrorBoundary.jsx+20 src/components/WithTooltip.tsx+56 src/components/advancedInput.js−153 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/icons/Chevron.js−30 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−13 src/index.tsx+7 src/indigo-react/README.md+4 src/indigo-react/components/AccessoryIcon.jsx+32 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.jsx+64 src/indigo-react/components/Grid.d.ts+1 src/indigo-react/components/Grid.jsx+78 src/indigo-react/components/IconButton.jsx+56 src/indigo-react/components/IndigoApp.jsx+12 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+13 src/indigo-react/indigo.css+6845 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/base.js+5−8 src/lib/capitalize.js+1 src/lib/card.js+190 src/lib/child.js+13−13 src/lib/constants.ts+287 src/lib/contracts.js+13−14 src/lib/convertToInt.js+17 src/lib/dateFormat.js+13 src/lib/error.js+32−36 src/lib/expiredPlanetsWithInviteCodes.json+1445 src/lib/explorer.js+33 src/lib/flags.js+14 src/lib/flowCommand.ts+113 src/lib/getSuggestedGasPrice.js+110 src/lib/hosting.js+26 src/lib/invite.js+38 src/lib/inviteMail.js+46 src/lib/isPromise.js+6 src/lib/keys.js+218−120 src/lib/ledger.js−23 src/lib/lib.js+64−16 src/lib/maybeGetResult.ts+12 src/lib/metamask.ts+79 src/lib/need.js+66 src/lib/nest.js+7 src/lib/network.js+45−16 src/lib/networkCode.js+55 src/lib/patp2dec.js+11 src/lib/pluralize.js+8 src/lib/point.js+13 src/lib/proxy.js+49−17 src/lib/reticket.js+286 src/lib/routeNames.ts+39 src/lib/router.js−173 src/lib/router.ts+62 src/lib/starRelease.js+166 src/lib/state.js+5−17 src/lib/tank.js+154 src/lib/timeout.js+1 src/lib/transformers.js−18 src/lib/trezor.js−39 src/lib/txn.js−228 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/useIsEclipticOwner.js+25 src/lib/useIsExpiredInvite.ts+23 src/lib/useKeyfileGenerator.ts+256 src/lib/useLifecycle.js+7 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/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−190 src/lib/validators.ts+166 src/lib/wallet.js−109 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+24 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.jsx+162 src/store/online.jsx+66 src/store/pointCache.jsx+53 src/store/pointCursor.jsx+59 src/store/rollerStore.ts+106 src/store/starRelease.jsx+20 src/store/storage/roller.ts+57 src/store/timerStore.ts+16 src/store/txnCursor.jsx+35 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/anchor.css−30 src/style/anim.css+458 src/style/base.css−13100 src/style/bridge.scss+37 src/style/button.css−97 src/style/extend.css−437 src/style/fadeable.scss+21 src/style/fonts64.scss+6 src/style/fontstack/Inter UI (web hinted)/Inter-UI-Black.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-Black.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-BlackItalic.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-BlackItalic.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-Bold.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-Bold.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-BoldItalic.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-BoldItalic.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBold.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBold.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBoldItalic.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBoldItalic.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-Italic.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-Italic.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-Medium.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-Medium.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-MediumItalic.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-MediumItalic.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-Regular.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-Regular.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBold.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBold.woff2 src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBoldItalic.woff src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBoldItalic.woff2 src/style/fontstack/Inter UI (web hinted)/inter-ui.css−147 src/style/form-reset.scss+107 src/style/index.css−5 src/style/index.scss+18 src/style/indigo-proposals.scss+58 src/style/input.css−51 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−351 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−282 src/views/CancelTransfer.tsx+166 src/views/CreateGalaxy.js−290 src/views/CreateGalaxy.jsx+166 src/views/Disclaimer.jsx+143 src/views/GenKeyfile.js−169 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/IssueChild.js−509 src/views/Landing.js−53 src/views/Ledger.js−101 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−135 src/views/Network.js−202 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−379 src/views/Point/IssueChild.scss+59 src/views/Point/IssueChild.tsx+349 src/views/Point/KeysAndMetadata.js−181 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−244 src/views/Points.scss+28 src/views/Points.tsx+392 src/views/Points/StarReleaseButton.scss+27 src/views/Points/StarReleaseButton.tsx+31 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−95 src/views/SetKeys.js−379 src/views/SetProxy.js−372 src/views/Shards.js−205 src/views/Ticket.js−142 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−341 src/views/Trezor.js−73 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−90 src/views/Wallet.js−144 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_KEY='b7d2af9f01534031ba773374f766ef65'
2−
1+VITE_INFURA_ENDPOINT='2599df54929b47099bda360958d75aaf'
2+VITE_WALLET_CONNECT_PROJECT_ID=''
.env.development+5−4
@@ -1,4 +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"
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'
.eslintignorenew file+1
@@ -0,0 +1 @@
1+nockjs/
.eslintrcnew file+14
@@ -0,0 +1,14 @@
1+{
2+ "extends": [
3+ "react-app",
4+ "prettier",
5+ "prettier/react"
6+ ],
7+ "plugins": [
8+ "prettier",
9+ "react-hooks"
10+ ],
11+ "rules": {
12+ "prettier/prettier": "warn"
13+ }
14+}
.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
.prettierrc.jsonnew file+7
@@ -0,0 +1,7 @@
1+{
2+ "semi": true,
3+ "singleQuote": true,
4+ "trailingComma": "es5",
5+ "jsxBracketSameLine": true,
6+ "printWidth": 80
7+}
.vscode/settings.jsonnew file+3
@@ -0,0 +1,3 @@
1+{
2+ "svg.preview.background": "white"
3+}
CHANGELOG+60−53
@@ -1,56 +1,63 @@
1+
12# Changelog
23
3−- 0.5.0 (2019-01-14)
4− This release adds a bunch of additional features and last-mile polish,
5− and also makes a number of bugfixes.
6−
7− * Improved validation and style throughout.
8− * Improved error handling and presentation to the user.
9− * Enables mainnet!
10− * Adds Trezor support.
11− * Adds ability to generate Arvo keyfiles.
12− * Displays points for additional proxy rights in the 'Points' view.
13− * Allows authentication with sharded master tickets.
14− * Provides name suggestions when spawning children.
15− * And more!
16−
17−- 0.4.0 (2018-12-28)
18− This release largely focuses on UX:
19−
20− * Improved information rendering in Point details view. Actions now
21− better-respect permissions, and addresses/keys are only displayed if
22− set.
23− * Adds a point's spawned children to its details view.
24− * Supplements the Points view with a list of outgoing transfers, and adds
25− an action to the Point details view for cancelling such transfers.
26− * Misc bugfixes, style enhancements, and minor improvements.
27−
28−- 0.3.0 (2018-12-21)
29− Adds the following features:
30−
31− * Ledger support for authentication and transaction signing.
32− * Style overhaul from reactstrap to base.
33− * Final Azimuth contracts support.
34− * Custom HD path support when authenticating via BIP39.
35− * Offline mode, complete with offline transaction signing.
36− * Ability to lookup/view the details of an arbitrary point.
37− * Basic push/pull point transfer flow.
38− * Ropsten support.
39−
40−- 0.2.1 (2018-11-26)
41− * Use updated urbit-constitution-js dependency that fixes a webpack build
42− issue.
43−
44−- 0.2.0 (2018-11-20)
45− Initial release of the refactored Bridge series. A basic application that
46− supports:
47−
48− * A local testnet running Ganache.
49− * Authentication with both BIP39 mnemonics (i.e. UP8 seeds) and UP8 master
50− tickets.
51− * Setting of transfer/management/spawn proxies.
52− * Setting of Urbit network keys.
53− * Creation of galaxies (for the constitution owner).
54− * Transfer of ships.
55− * And probably some other stuff.
4+- 1.4.1 (2019-05-17)
5+ This release fixes two issues.
6+
7+ * After setting keys, always generate the corresponding keyfile (#138)
8+ * Ship with latest azimuth-js to support updates "Issue Child" page (#138)
9+
10+- 1.4.0 (2019-05-15)
11+ This release adds support for discontinuity flagging (aka "personal breach") and brings a couple quality of life improvements.
12+
13+ * Support flagging for discontinuity during key configuration (#130)
14+ * Autocomplete available ship names on the "Issue Child" page (#128)
15+ * Implement explicit "unset" action for proxy addresses (#127)
16+ * Make it easier to select Ledger accounts (#129)
17+ * Various smaller code improvements (#126, #131, #133, #134)
18+
19+- 1.3.1 (2019-04-23)
20+ This release fixes an issue with the script for serving Bridge over HTTPS.
21+
22+ * Stop `cd`ing into the new-removed `build` directory (#123)
23+
24+- 1.3.0 (2019-04-18)
25+ This release simplifies the flows surrounding networking keys and brings many other quality of life improvements.
26+
27+ * Simplify the network key generation & download flows (#85, #92)
28+ * Allow viewing points without logging in (#80)
29+ * Display transaction confirmation status after submission (#99)
30+ * Support the optional BIP39 mnemonic passphrase (#94)
31+ * Makes the browser back button work for navigating in Bridge (#86)
32+ * Various smaller UI improvements (#87, #100, #104, #106, #113, #116)
33+ * Various smaller code improvements (#82, #91, #95, #96, #108, #115)
34+
35+- 1.2.1 (2019-03-21)
36+ This release fixes an issue with the spawning of child points.
37+
38+ * Correctly enable the spawn recipient field based on child availability (#83)
39+
40+- 1.2.0 (2019-03-20)
41+ This release fixes a number of issues, makes various improvements to the user interface, and prepares the Bridge codebase for future work.
42+
43+ * Ensure compatibility with latest Trezor firmware (#76)
44+ * Don't wait for transactions to confirm before showing transaction hash (#62)
45+ * Prevent galaxies from spawning planets, as per the contracts (#22)
46+ * Remove set transfer proxy action (was redundant with transfer) (#69)
47+ * Various smaller UX improvements (#66, #70, #72, #78)
48+ * Various copy fixes (#39, #63)
49+ * Various code fixes and cleanup (#61, #66, #77)
50+
51+- 1.1.0 (2019-02-01)
52+ This release adds more authentication options and fixes bugs:
53+
54+ * Add options for authenticating with private keys, keystore files
55+ * Fix Ledger EIP-155 issue
56+ * Styling and small bug fixes
57+
58+- 1.0.1 (2019-01-18)
59+ This release makes a few bugfixes:
5660
61+ * Add option for setting Trezor and Ledger custom derivation path
62+ (instead of defaulting to 0 index address)
63+ * Fixes Trezor transaction signing bug
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+```
LICENSEnew file+22
@@ -0,0 +1,22 @@
1+MIT License
2+
3+Copyright (c) 2019 Tlon
4+
5+Permission is hereby granted, free of charge, to any person obtaining a copy
6+of this software and associated documentation files (the "Software"), to deal
7+in the Software without restriction, including without limitation the rights
8+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+copies of the Software, and to permit persons to whom the Software is
10+furnished to do so, subject to the following conditions:
11+
12+The above copyright notice and this permission notice shall be included in all
13+copies or substantial portions of the Software.
14+
15+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+SOFTWARE.
22+
README.md+42−92
@@ -1,122 +1,72 @@
1−# bridge
1+# Bridge
22
3−An application for interacting with Azimuth.
4−
5−## Install
6−
7−Clone the repo, and use a simple `npm install`.
3+[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
84
9−## Build
10−
11−You can use a `npm run build` to create an optimised static build.
5+An application for interacting with Azimuth.
126
137## Usage
148
15−The build directory needs to be served with a static server; you can use the
16−`bridge` script to start serving the site at localhost:5000.
9+**The latest version of Bridge is accessible online at [bridge.urbit.org](https://bridge.urbit.org). No setup needed.**
1710
18−### Ledger support
11+If you would rather host Bridge on your own machine, read on.
1912
20−To authenticate and sign transactions with a Ledger, Bridge must be serving
21−over HTTPS on localhost. This requires self-signed certificates. You can do
22−this via the following:
13+### Requirements
2314
24−* Install [mkcert](https://github.com/FiloSottile/mkcert)
25−* Install a local certificate authority via `mkcert -install`
26−* In your `bridge` directory, generate a certificate valid for localhost via
27− `mkcert localhost`. This will produce two files: `localhost.pem`, the local
28− certificate, and `localhost-key.pem`, its corresponding private key.
29−* Run `python bridge-https.py`
15+Python 3.7.2
3016
31−Bridge will serve to localhost over HTTPS on port 4443
17+### Instructions
3218
33−## Development
19+#### Download
3420
35−### General notes
21+1. [Download a release](https://github.com/urbit/bridge/releases/latest)
22+2. Unzip it (`bridge-$version.zip`)
23+3. Open up your command line interface (Terminal on MacOS, Command Prompt on Windows)
24+4. `cd` into the `bridge-$version` directory
3625
37−Use `npm run pilot` to get going. This will boot up a Ganache node in
38−the background, deploy the Azimuth contracts to it, and fire up a local
39−webserver. Bridge will be served on `localhost:3000`.
26+#### Verify checksums
4027
41−Note that one of our dependencies itself depends on a library called
42−`handle-thing` which breaks under the Ledger support requirements (see below)
43−on node 11.1.0, so make sure you're using some other node version.
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.
4429
45−You can use [nvm](https://github.com/creationix/nvm), for example, and do:
30+- On MacOS: `shasum -a 256 -c checksums.txt .`
31+- On Linux: `sha256sum -c checksums.txt .`
32+- On Windows: Go into the `build` directory and verify files individually with `CertUtil -hashFile [file_name] SHA256`
4633
47−```
48−$ nvm install 11.0.0
49−$ nvm use v11.0.0
50−```
34+#### Run Bridge
5135
52−before running `npm run pilot`.
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)
5339
54−### Useful Accounts
40+#### Ledger support
5541
56−The ecliptic owner is the only account that's able to create galaxies, so
57−it's a good place to get started. On the testnet, it's the address:
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:
5843
59−```
60−0x6DEfFb0caFDB11D175F123F6891AA64F01c24F7d
61−```
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
6249
63−You can authenticate as it using the following mnemonic:
50+## Bridge without internet access
6451
65−```
66−benefit crew supreme gesture quantum web media hazard theory mercy wing kitten
67−```
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).
6853
69−Under that mnemonic, Ganache will also auto-populate the following accounts
70−with 100 ETH:
71−
72−```
73−0x6deffb0cafdb11d175f123f6891aa64f01c24f7d
74−0xd53208cf45fc9bd7938b200bff8814a26146688f
75−0x7b2a2d51e4d8fac602e20a5f6907ff9fbd88e1fd
76−0xf48062ae8bafd6ef19cd6cb89db93a0d0ca6ce26
77−0xf84a77aeb351c49dfa87e805a659d2daddff7606
78−0x167e357cf8b845370d0d408f9b389b66185b7b5b
79−0xcbecf3abc9878f07afc851aead2d8f1c436cc71d
80−0x0afc0c3f4eeea500871f464ca71eef5e54a9af36
81−0x6d654ef2489674d21aed428e8a4ad8ca4820f125
82−0x218f6f87683db546ad47a5dc8b480e5a9b694866
83−```
84−
85−To play around with any of these, authenticate using the same mnemonic, but
86−use a custom HD path of `m/44'/60'/0'/0/1`, `m/44'/60'/0'/0/2`, and so on.
87−
88−### Initial Development State
54+## Development
8955
90−You can also tweak a couple of things to change your development state
91−somewhat (say, for example, you want to start on the points list screen, instead
92−of having to re-authenticate whenever you make a change or refresh the page):
56+See [development.md](DEVELOPMENT.md).
9357
94−* The `.env.development` file contains environment variables that you can
95− provide to the application when it's running in development. You can access
96− them via `process.env.REACT_APP_<whatever>`.
9758
98−* The `componentDidMount` method of the Bridge component in `src/Bridge.js`
99− can be tweaked for setting your initial state. You can provide a specific
100− wallet, network type, and so on.
59+## Configurable Roller Endpoint
10160
102−### HTTPS
61+By default, Bridge uses Tlon's L2 Roller, but can also be configured to use your own.
10362
104−For development, you can enable HTTPS on localhost without a certificate for
105−Chrome by pasting the following into the URL bar:
63+For example:
10664
65+```sh
66+VITE_ROLLER_HOST=my-personal-roller.net npm run pilot-mainnet
10767```
108−chrome://flags/#allow-insecure-localhost
109−```
110−
111−Additionally you need to run with the `HTTPS` environment variable set to
112−`true`. Note that `npm run pilot` will handle this automatically.
113−
114−### Releases
115−
116−To generate a release `.tar.gz` file, use a simple `npm run release`.
117−
118−This will pack the build directory together with the `bridge` and
119−`bridge-https.py` scripts, and also generate a set of checksums for the build
120−directory. You can verify the checksums on e.g. OS X via `shasum -c
121−checksums.txt`.
12268
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-https.py−1
@@ -4,5 +4,4 @@ import ssl
44
55httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
66httpd.socket = ssl.wrap_socket (httpd.socket, certfile='localhost.pem', keyfile='localhost-key.pem', server_side=True)
7−os.chdir('./build')
87httpd.serve_forever()
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>
legal/eula.mddeleted−86
@@ -1,86 +0,0 @@
1−## Bridge Terms of Use
2−
3−This agreement (these **“Terms”**) governs the terms under which you may access and use the Bridge software (the **“Software”**) made available to you by Tlon Corporation (“Tlon”, **“we”** or **“us”**). By clicking “I Accept,” or by downloading, installing, or otherwise accessing or using the Software, you agree that you have read and understood, and, as a condition to your use of the Software, you agree to be bound by, the following terms and conditions.
4−
5−**BY CLICKING “I ACCEPT,” OR BY DOWNLOADING, INSTALLING, OR OTHERWISE ACCESSING OR USING THE SOFTWARE**, YOU AGREE THAT YOU HAVE READ AND UNDERSTOOD, AND, AS A CONDITION TO YOUR USE OF THE SOFTWARE, YOU AGREE TO BE BOUND BY, THE FOLLOWING TERMS AND CONDITIONS (THESE “**TERMS**”). IF YOU ARE NOT ELIGIBLE, OR DO NOT AGREE TO THE TERMS, THEN YOU DO NOT HAVE OUR PERMISSION TO USE THE SOFTWARE. YOUR USE OF THE SOFTWARE, AND TLON’S PROVISION OF THE SOFTWARE TO YOU, CONSTITUTES AN AGREEMENT BY TLON AND BY YOU TO BE BOUND BY THESE TERMS.
6−
7−**<u>MATERIAL TERMS</u>: AS PROVIDED IN GREATER DETAIL IN THESE TERMS (AND WITHOUT LIMITING THE EXPRESS LANGUAGE OF THESE TERMS), YOU ACKNOWLEDGE THE FOLLOWING:**
8−
9−* **WE DO NOT HOLD, BACK-UP OTHERWISE HAVE ANY ACCESS TO YOUR KEYS (DEFINED IN SECTION 1), SO YOU ARE SOLELY RESPONSIBLE FOR ANY LOSS OF THE SAME, AND YOU ARE SOLELY RESPONSIBLE FOR MAINTAINING ALL INFORMATION NECESSARY TO ACCESS YOUR KEYS AND WALLET;**
10−
11−* **WE HAVE NO LIABILITY WHATSOEVER FOR ANY SECURITY PROBLEMS OR INCIDENTS THAT YOU MAY EXPERIENCE IN CONNECTION WITH ANY USE OF THE SOFTWARE, INCLUDING ANY LOSS OR THEFT OF YOUR KEYS OR ANY PROBLEMS THAT MAY ARISE IN CONNECTION WITH YOUR WALLET;**
12−
13−* **THE SOFTWARE IS PROVIDED “AS IS” WITHOUT WARRANTIES OF ANY KIND AND OUR LIABILITY TO YOU IN CONNECTION WITH THE SAME IS LIMITED; AND**
14−
15−* **ALL DISPUTES ARISING UNDER THESE TERMS WILL BE RESOLVED THROUGH BINDING ARBITRATION AND YOU AND TLON ARE EACH WAIVING THE RIGHT TO A TRIAL BY JURY OR TO PARTICIPATE IN A CLASS ACTION.**
16−
17−
18−
19−
20−1. **Software Overview.** The Software is an interface that you can use to 1) verify cryptographic ownership of Urbit addresses with an Ethereum Wallet and 2) send and receive Urbit address space in transactions with third parties. Doing so requires the use of private keys and public addresses, the “Keys”.
21−
22−2. **Eligibility.** You must be at least 18 years old to use the Software. By agreeing to these Terms, you represent and warrant to us that: (a) you are at least 18 years old; (b) your registration and your use of the Software is in compliance with any and all applicable laws and regulations; and (c) that all information you submit in connection with your download or use of the Software is truthful and accurate.
23−
24−3. **License.**
25−
26− 1. **Limited License.** Subject to your complete and ongoing compliance with these Terms, Tlon grants you, solely for your personal use, a limited, non-exclusive, non-transferable, non-sublicensable, revocable license to install and use one object code copy of the Software.
27−
28− 2. **License Restrictions.** Except and solely to the extent such a restriction is impermissible under applicable law, you may not: (a) reproduce, distribute, publicly display, or publicly perform the Software; (b) make modifications to the Software; or (c) interfere with or circumvent any feature of the Software, including any security or access control mechanism. If you are prohibited under applicable law from using the Software, you may not use it.
29−
30− 3. **Feedback.** If you choose to provide input and suggestions regarding problems with or proposed modifications or improvements to the Software (“**Feedback**”), then you hereby grant Tlon an unrestricted, perpetual, irrevocable, non-exclusive, fully-paid, royalty-free right to exploit the Feedback in any manner and for any purpose, including to improve the Software and create other products and services.
31−
32−4. **Ownership; Proprietary Rights.** The Software is owned and operated by Tlon. The visual interfaces, graphics, design, compilation, information, data, computer code (including source code or object code), products, software, services, and all other elements of the Software (“**Materials**”) provided by Tlon are protected by intellectual property and other laws. All Materials included in the Software are the property of Tlon or its third party licensors. Except as expressly authorized by Tlon, you may not make use of the Materials. Tlon reserves all rights to the Materials not granted expressly in these Terms.
33−
34−5. **Third Party Software.** The Software may include or incorporate third party software components that are generally available free of charge under licenses granting recipients broad rights to copy, modify, and distribute those components (“**Third Party Components**”). Although the Software is provided to you subject to these Terms, nothing in these Terms prevents, restricts, or is intended to prevent or restrict you from obtaining Third Party Components under the applicable third party licenses or to limit your use of Third Party Components under those third party licenses.
35−
36−6. **Prohibited Conduct.** BY USING THE SOFTWARE YOU AGREE NOT TO, AND AGREE NOT TO ATTEMPT TO OR PERMIT ANY OTHER PERSON TO:
37−
38− a. use the Software for any illegal purpose or in violation of any local, state, national, or international law;
39−
40− b. interfere with security-related features of the Software, including by: (i) disabling or circumventing features that prevent or limit use or copying of any content; or (ii) reverse engineering or otherwise attempting to discover the source code of any portion of the Software except to the extent that the activity is expressly permitted by applicable law, or except to the extent that Tlon has made such source code available to the public;
41−
42− c. perform any fraudulent activity including impersonating any person or entity, claiming a false affiliation, accessing any other Software account without permission; or
43−
44− d. sell or otherwise transfer the access granted under these Terms or any Materials (as defined in Section 4) or any right or ability to view, access, or use any Materials.
45−
46−7. **Term, Termination and Modification of the Software.** These Terms are effective beginning when you accept the Terms or first download, install, access, or use the Software, and ending when terminated as described in this Section. If you violate any provision of these Terms, your authorization to access the Software and these Terms automatically terminate. In addition, Tlon may, at its sole discretion, terminate these Terms or suspend or terminate your right to access to the Software, at any time for any reason or no reason, with or without notice. Tlon reserves the right to modify or discontinue the Software at any time (including by limiting or discontinuing certain features of the Software), temporarily or permanently, without notice to you. Tlon will have no liability for any change to the Software or any suspension or termination of your access to or use of the Software. Upon any termination of these Terms, you must permanently delete all copies of the Software within your possession or control, and Sections 3.3, 4, 8, 9, 10, 11, and 12 will survive.
47−
48−8. **Indemnity.** To the fullest extent permitted by law, you are responsible for your use of the Software, and you will defend and indemnify Tlon and its officers, directors, employees, consultants, affiliates, subsidiaries and agents (together, the “Tlon Entities”) from and against every claim brought by a third party, and any related liability, damage, loss, and expense, including reasonable attorneys’ fees and costs, arising out of or connected with: (a) your use of, or misuse of, the Software; and (b) your violation of any portion of these Terms, any representation, warranty, or any applicable law or regulation. We reserve the right, at our own expense, to assume the exclusive defense and control of any matter otherwise subject to indemnification by you (without limiting your indemnification obligations with respect to that matter), and in that case, you agree to cooperate with our defense of those claims.
49−
50−9. **Disclaimers; No Warranties.**
51−
52− THE SOFTWARE AND ALL MATERIALS AND CONTENT AVAILABLE THROUGH THE SOFTWARE ARE PROVIDED “AS IS” AND ON AN “AS AVAILABLE” BASIS. TLON DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, RELATING TO THE SOFTWARE AND ALL MATERIALS AND CONTENT AVAILABLE THROUGH THE SOFTWARE, INCLUDING: (A) ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, QUIET ENJOYMENT, OR NON-INFRINGEMENT; AND (B) ANY WARRANTY ARISING OUT OF COURSE OF DEALING, USAGE, OR TRADE. TLON DOES NOT WARRANT THAT THE SOFTWARE OR ANY PORTION OF THE SOFTWARE, OR ANY MATERIALS OR CONTENT OFFERED THROUGH THE SOFTWARE, WILL BE UNINTERRUPTED, SECURE, OR FREE OF ERRORS, VIRUSES, OR OTHER HARMFUL COMPONENTS, AND TLON DOES NOT WARRANT THAT ANY OF THOSE ISSUES WILL BE CORRECTED.
53−
54− NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM THE SOFTWARE OR TLON ENTITIES OR ANY MATERIALS OR CONTENT AVAILABLE THROUGH THE SOFTWARE WILL CREATE ANY WARRANTY REGARDING ANY OF THE TLON ENTITIES OR THE SOFTWARE THAT IS NOT EXPRESSLY STATED IN THESE TERMS. WE ARE NOT RESPONSIBLE FOR ANY DAMAGE THAT MAY RESULT FROM THE SOFTWARE.
55−
56− **YOU ARE SOLELY RESPONSIBLE FOR RECORDING AND SAFEGUARDING YOUR KEYS AND ANY INFORMATION THAT YOU MAY NEED TO RECOVER THE SAME. YOU UNDERSTAND AND AGREE THAT YOU USE ANY PORTION OF THE SOFTWARE AT YOUR OWN DISCRETION AND RISK, AND THAT WE ARE NOT RESPONSIBLE FOR ANY DAMAGE TO YOUR PROPERTY (INCLUDING YOUR COMPUTER SYSTEM OR MOBILE DEVICE USED IN CONNECTION WITH THE SOFTWARE) OR ANY LOSS OF DATA OR OTHER PROPERTY OR ASSETS YOU MAY OWN OR CONTROL IN CONNECTION WITH YOUR USE OF THE SOFTWARE, KEYS OR WALLET, INCLUDING ANY LOSS OF ACCESS TO YOUR WALLET OR KEYS.**
57−
58− THE LIMITATIONS, EXCLUSIONS AND DISCLAIMERS IN THIS SECTION APPLY TO THE FULLEST EXTENT PERMITTED BY LAW. Tlon does not disclaim any warranty or other right that Tlon is prohibited from disclaiming under applicable law.
59−
60−10. **Limitation of Liability**
61−
62− TO THE FULLEST EXTENT PERMITTED BY LAW, IN NO EVENT WILL THE TLON ENTITIES BE LIABLE TO YOU FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR PUNITIVE DAMAGES (INCLUDING DAMAGES FOR LOSS OF PROFITS, GOODWILL, OR ANY OTHER INTANGIBLE LOSS) ARISING OUT OF OR RELATING TO YOUR ACCESS TO OR USE OF, OR YOUR INABILITY TO ACCESS OR USE OR ANY OTHER PROBLEMS WITH, THE SOFTWARE, YOUR WALLET OR KEYS, OR ANY MATERIALS OR CONTENT WITHIN THE SOFTWARE, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), STATUTE, OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT ANY TLON ENTITY HAS BEEN INFORMED OF THE POSSIBILITY OF DAMAGE.
63−
64− TO THE FULLEST EXTENT PERMITTED BY LAW AND EXCEPT AS OTHERWISE SET FORTH IN SECTION 11, THE AGGREGATE LIABILITY OF THE TLON ENTITIES TO YOU FOR ALL CLAIMS ARISING OUT OF OR RELATING TO THE USE OF OR ANY INABILITY TO USE ANY PORTION OF THE SOFTWARE OR OTHERWISE UNDER THESE TERMS, WHETHER IN CONTRACT, TORT, OR OTHERWISE, IS LIMITED TO $100.
65−
66− EACH PROVISION OF THESE TERMS THAT PROVIDES FOR A LIMITATION OF LIABILITY, DISCLAIMER OF WARRANTIES, OR EXCLUSION OF DAMAGES IS INTENDED TO AND DOES ALLOCATE THE RISKS BETWEEN THE PARTIES UNDER THESE TERMS. THIS ALLOCATION IS AN ESSENTIAL ELEMENT OF THE BASIS OF THE BARGAIN BETWEEN THE PARTIES. EACH OF THESE PROVISIONS IS SEVERABLE AND INDEPENDENT OF ALL OTHER PROVISIONS OF THESE TERMS. THE LIMITATIONS IN THIS SECTION 10 WILL APPLY EVEN IF ANY LIMITED REMEDY FAILS OF ITS ESSENTIAL PURPOSE.
67−
68−11. **Dispute Resolution and Arbitration**
69−
70− 1. **Generally.** In the interest of resolving disputes between you and Tlon in the most expedient and cost effective manner, and except as described in Section 11.2, you and Tlon agree that every dispute arising in connection with these Terms will be resolved by binding arbitration. Arbitration is less formal than a lawsuit in court. Arbitration uses a neutral arbitrator instead of a judge or jury, may allow for more limited discovery than in court, and can be subject to very limited review by courts. Arbitrators can award the same damages and relief that a court can award. This agreement to arbitrate disputes includes all claims arising out of or relating to any aspect of these Terms, whether based in contract, tort, statute, fraud, misrepresentation, or any other legal theory, and regardless of whether a claim arises during or after the termination of these Terms. YOU UNDERSTAND AND AGREE THAT, BY ENTERING INTO THESE TERMS, YOU AND Tlon ARE EACH WAIVING THE RIGHT TO A TRIAL BY JURY OR TO PARTICIPATE IN A CLASS ACTION.
71−
72− 2. **Exceptions.** Despite the provisions of Section 11.1, nothing in these Terms will be deemed to waive, preclude, or otherwise limit the right of either party to: (a) bring an individual action in small claims court; (b) pursue an enforcement action through the applicable federal, state, or local agency if that action is available; (c) seek injunctive relief in a court of law in aid of arbitration; or (d) to file suit in a court of law to address an intellectual property infringement claim.
73−
74− 3. **Arbitrator.** Any arbitration between you and Tlon will be settled under the Federal Arbitration Act and administered by the American Arbitration Association (“AAA”) under its Consumer Arbitration Rules (collectively, “AAA Rules”) as modified by these Terms. The AAA Rules and filing forms are available online at www.adr.org, by calling the AAA at 1-800-778-7879, or by contacting Tlon. The arbitrator has exclusive authority to resolve any dispute relating to the interpretation, applicability, or enforceability of this binding arbitration agreement.
75−
76− 4. **Notice of Arbitration; Process.** A party who intends to seek arbitration must first send a written notice of the dispute to the other party by certified U.S. Mail or by Federal Express (signature required) or, only if that other party has not provided a current physical address, then by electronic mail (“**Notice of Arbitration**”). Tlon’s address for Notice is: Tlon Corporation, 584 Market St. #56196, San Francisco, CA 94104\. The Notice of Arbitration must: (a) describe the nature and basis of the claim or dispute; and (b) set forth the specific relief sought (“**Demand**”). The parties will make good faith efforts to resolve the claim directly, but if the parties do not reach an agreement to do so within 30 days after the Notice of Arbitration is received, you or Tlon may commence an arbitration proceeding. All arbitration proceedings between the parties will be confidential unless otherwise agreed by the parties in writing. During the arbitration, the amount of any settlement offer made by you or Tlon must not be disclosed to the arbitrator until after the arbitrator makes a final decision and award, if any. If the arbitrator awards you an amount higher than the last written settlement amount offered by Tlon in settlement of the dispute prior to the award, Tlon will pay to you the higher of: (i) the amount awarded by the arbitrator; or (ii) $10,000.
77−
78− 5. **Fees.** If you commence arbitration in accordance with these Terms, Tlon will reimburse you for your payment of the filing fee, unless your claim is for more than $10,000, in which case the payment of any fees will be decided by the AAA Rules. Any arbitration hearing will take place at a location to be agreed upon in San Francisco County, California, but if the claim is for $10,000 or less, you may choose whether the arbitration will be conducted: (a) solely on the basis of documents submitted to the arbitrator; (b) through a non-appearance based telephone hearing; or (c) by an in-person hearing as established by the AAA Rules in the county (or parish) of your billing address. If the arbitrator finds that either the substance of your claim or the relief sought in the Demand is frivolous or brought for an improper purpose (as measured by the standards set forth in Federal Rule of Civil Procedure 11(b)), then the payment of all fees will be governed by the AAA Rules. In that case, you agree to reimburse Tlon for all monies previously disbursed by it that are otherwise your obligation to pay under the AAA Rules. Regardless of the manner in which the arbitration is conducted, the arbitrator must issue a reasoned written decision sufficient to explain the essential findings and conclusions on which the decision and award, if any, are based. The arbitrator may make rulings and resolve disputes as to the payment and reimbursement of fees or expenses at any time during the proceeding and upon request from either party made within 14 days of the arbitrator’s ruling on the merits.
79−
80− 6. **No Class Actions.** YOU AND TLON AGREE THAT EACH MAY BRING CLAIMS AGAINST THE OTHER ONLY IN YOUR OR ITS INDIVIDUAL CAPACITY AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR REPRESENTATIVE PROCEEDING. Further, unless both you and Tlon agree otherwise, the arbitrator may not consolidate more than one person’s claims, and may not otherwise preside over any form of a representative or class proceeding.
81−
82− 7. **Modifications to this Arbitration Provision.** If Tlon makes any future change to this arbitration provision, other than a change to Tlon’s address for Notice of Arbitration, you may reject the change by sending us written notice within 30 days of the change to Tlon’s address for Notice of Arbitration, in which case your account with Tlon will be immediately terminated and this arbitration provision, as in effect immediately prior to the changes you rejected will survive.
83−
84− 8. **Enforceability.** If Section 11.6 is found to be unenforceable or if the entirety of this Section 11 is found to be unenforceable, then the entirety of this Section 11 will be null and void and, in that case, the parties agree that the exclusive jurisdiction and venue described in Section 12 will govern any action arising out of or related to these Terms.
85−
86−12. **Miscellaneous.** Your use of the Software is subject to all additional terms, policies, rules, or guidelines applicable to the Software or certain features of the Software that we may post on or link to from the Software (the “Additional Terms”). All Additional Terms are incorporated by this reference into, and made a part of, these Terms. You may not assign or transfer these Terms or your rights under these Terms, in whole or in part, by operation of law or otherwise, without our prior written consent. We may assign these Terms at any time without notice or consent. The failure to require performance of any provision will not affect our right to require performance at any other time after that, nor will a waiver by us of any breach or default of these Terms, or any provision of these Terms, be a waiver of any subsequent breach or default or a waiver of the provision itself. If any part of these Terms is held to be invalid or unenforceable, the unenforceable part will be given effect to the greatest extent possible, and the remaining parts will remain in full force and effect. These Terms are governed by the laws of the State of California without regard to conflict of law principles. You and Tlon submit to the personal and exclusive jurisdiction of the state courts and federal courts located within San Francisco County, California for resolution of any lawsuit or court proceeding permitted under these Terms. We are under no obligation to provide support for the Software. In instances where we may offer support, the support will be subject to published policies.
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+49797−17228

This diff is too big to show here.

package.json+145−47

This diff is too big to show here.

public/index.htmldeleted−19

This diff is too big to show here.

public/spritesheet_a.pngnew file

Binary file not shown.

src/Bridge.jsdeleted−247

This diff is too big to show here.

src/Bridge.tsxnew file+128

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/Anchor.jsdeleted−33

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/Base.jsdeleted−203

This diff is too big to show here.

src/components/Blinky.jsxnew file+47

This diff is too big to show here.

src/components/Blockie.jsdeleted−12

This diff is too big to show here.

src/components/Breadcrumb.jsdeleted−12

This diff is too big to show here.

src/components/BreadcrumbItem.jsdeleted−12

This diff is too big to show here.

src/components/BrowserWarning.tsxnew file+27

This diff is too big to show here.

src/components/Button.jsdeleted−30

This diff is too big to show here.

src/components/Buttons.jsxnew file+33

This diff is too big to show here.

src/components/Checkbox.jsdeleted−47

This diff is too big to show here.

src/components/CheckboxButton.jsdeleted−60

This diff is too big to show here.

src/components/Chip.jsxnew file+16

This diff is too big to show here.

src/components/Code.jsdeleted−37

This diff is too big to show here.

src/components/Col.jsdeleted−29

This diff is too big to show here.

src/components/Container.jsdeleted−29

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/DropdownDivider.jsdeleted−12

This diff is too big to show here.

src/components/DropdownItem.jsdeleted−38

This diff is too big to show here.

src/components/FlexCol.jsdeleted−29

This diff is too big to show here.

src/components/FlexRow.jsdeleted−26

This diff is too big to show here.

src/components/Footer.jsdeleted−27

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/Form.jsdeleted−29

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/H1.jsdeleted−26

This diff is too big to show here.

src/components/H2.jsdeleted−26

This diff is too big to show here.

src/components/H3.jsdeleted−26

This diff is too big to show here.

src/components/H4.jsdeleted−26

This diff is too big to show here.

src/components/Header.jsdeleted−54

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/InnerLabel.jsdeleted−26

This diff is too big to show here.

src/components/InnerLabelDropdown.jsdeleted−71

This diff is too big to show here.

src/components/Input.jsdeleted−73

This diff is too big to show here.

src/components/InputCaption.jsdeleted−26

This diff is too big to show here.

src/components/InputSigil.jsxnew file+46

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/Label.jsdeleted−26

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/OldHeader.jsdeleted−52

This diff is too big to show here.

src/components/OldLink.jsdeleted−127

This diff is too big to show here.

src/components/OldTextArea.jsdeleted−129

This diff is too big to show here.

src/components/P.jsdeleted−37

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.jsxnew file+244

This diff is too big to show here.

src/components/PointList.jsdeleted−30

This diff is too big to show here.

src/components/ProgressButton.jsxnew file+30

This diff is too big to show here.

src/components/ProtoAnchor.jsdeleted−32

This diff is too big to show here.

src/components/ProtoButton.jsdeleted−40

This diff is too big to show here.

src/components/ProtoInput.jsdeleted−67

This diff is too big to show here.

src/components/ProtoTextarea.jsdeleted−64

This diff is too big to show here.

src/components/ReactSVGComponents.jsdeleted−63

This diff is too big to show here.

src/components/RenderedPoint.jsdeleted−46

This diff is too big to show here.

src/components/Router.jsxnew file+9

This diff is too big to show here.

src/components/Row.jsdeleted−28

This diff is too big to show here.

src/components/RowCol.jsdeleted−30

This diff is too big to show here.

src/components/ShowBlockie.jsdeleted−81

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/Spacing.jsdeleted−32

This diff is too big to show here.

src/components/StatelessTransaction.jsdeleted−175

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/Textarea.jsdeleted−74

This diff is too big to show here.

src/components/Transaction.jsdeleted−191

This diff is too big to show here.

src/components/Transaction/Signer.jsdeleted−193

This diff is too big to show here.

src/components/Transaction/StatelessSigner.jsdeleted−194

This diff is too big to show here.

src/components/UploadButton.jsxnew file+21

This diff is too big to show here.

src/components/ValidatedBlockie.jsdeleted−66

This diff is too big to show here.

src/components/ValidatedSigil.jsdeleted−79

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/Warning.jsdeleted−28

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/advancedInput.jsdeleted−153

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/icons/Chevron.jsdeleted−30

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.jsdeleted−13

This diff is too big to show here.

src/index.tsxnew file+7

This diff is too big to show here.

src/indigo-react/README.mdnew file+4

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.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.jsxnew file+64

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.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.jsxnew file+12

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.jsnew file+13

This diff is too big to show here.

src/indigo-react/indigo.cssnew file+6845

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/base.js+5−8

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+13−13

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+13−14

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+32−36

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.jsnew file+14

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.jsnew file+38

This diff is too big to show here.

src/lib/inviteMail.jsnew file+46

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+218−120

This diff is too big to show here.

src/lib/ledger.jsdeleted−23

This diff is too big to show here.

src/lib/lib.js+64−16

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.jsnew file+66

This diff is too big to show here.

src/lib/nest.jsnew file+7

This diff is too big to show here.

src/lib/network.js+45−16

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+49−17

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.tsnew file+39

This diff is too big to show here.

src/lib/router.jsdeleted−173

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/state.js+5−17

This diff is too big to show here.

src/lib/tank.jsnew file+154

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−18

This diff is too big to show here.

src/lib/trezor.jsdeleted−39

This diff is too big to show here.

src/lib/txn.jsdeleted−228

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/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.jsnew file+7

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/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−190

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−109

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.jsnew file+24

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.jsxnew file+162

This diff is too big to show here.

src/store/online.jsxnew file+66

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.jsxnew file+59

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/txnCursor.jsxnew file+35

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/anchor.cssdeleted−30

This diff is too big to show here.

src/style/anim.cssnew file+458

This diff is too big to show here.

src/style/base.cssdeleted−13100

This diff is too big to show here.

src/style/bridge.scssnew file+37

This diff is too big to show here.

src/style/button.cssdeleted−97

This diff is too big to show here.

src/style/extend.cssdeleted−437

This diff is too big to show here.

src/style/fadeable.scssnew file+21

This diff is too big to show here.

src/style/fonts64.scssnew file+6

This diff is too big to show here.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Black.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Black.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-BlackItalic.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-BlackItalic.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Bold.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Bold.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-BoldItalic.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-BoldItalic.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBold.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBold.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBoldItalic.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-ExtraBoldItalic.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Italic.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Italic.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Medium.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Medium.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-MediumItalic.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-MediumItalic.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Regular.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-Regular.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBold.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBold.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBoldItalic.woffdeleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/Inter-UI-SemiBoldItalic.woff2deleted

Binary file not shown.

src/style/fontstack/Inter UI (web hinted)/inter-ui.cssdeleted−147

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.cssdeleted−5

This diff is too big to show here.

src/style/index.scssnew file+18

This diff is too big to show here.

src/style/indigo-proposals.scssnew file+58

This diff is too big to show here.

src/style/input.cssdeleted−51

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−351

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−282

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−290

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−169

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/IssueChild.jsdeleted−509

This diff is too big to show here.

src/views/Landing.jsdeleted−53

This diff is too big to show here.

src/views/Ledger.jsdeleted−101

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−135

This diff is too big to show here.

src/views/Network.jsdeleted−202

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−379

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−181

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−244

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/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−95

This diff is too big to show here.

src/views/SetKeys.jsdeleted−379

This diff is too big to show here.

src/views/SetProxy.jsdeleted−372

This diff is too big to show here.

src/views/Shards.jsdeleted−205

This diff is too big to show here.

src/views/Ticket.jsdeleted−142

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−341

This diff is too big to show here.

src/views/Trezor.jsdeleted−73

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−90

This diff is too big to show here.

src/views/Wallet.jsdeleted−144

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.