);
diff --git a/src/views/Login/LoginSelector.tsx b/src/views/Login/LoginSelector.tsx
index 82338ea89..d6cc3a919 100644
--- a/src/views/Login/LoginSelector.tsx
+++ b/src/views/Login/LoginSelector.tsx
@@ -105,9 +105,15 @@ export default function LoginSelector({
if (expectedChainId() === ETHEREUM_LOCAL_CHAIN_ID) {
await window.ethereum.request({
method: "wallet_addEthereumChain",
- params: [{chainId: ETHEREUM_LOCAL_CHAIN_ID,
- chainName: "Ganache",
- rpcUrls: ["http://127.0.0.1:8545"]
+ params: [{
+ chainId: ETHEREUM_LOCAL_CHAIN_ID,
+ chainName: "Ganache",
+ rpcUrls: ["http://127.0.0.1:8545"],
+ nativeCurrency: {
+ name: "Ether",
+ symbol: "ETH",
+ decimals: 18
+ }
}]
});
}
diff --git a/src/views/Point/MigrateL2.tsx b/src/views/Point/MigrateL2.tsx
index a27305b82..7d131694a 100644
--- a/src/views/Point/MigrateL2.tsx
+++ b/src/views/Point/MigrateL2.tsx
@@ -85,11 +85,11 @@ const useMigrate = () => {
setSelectedPoint(selectedPoint);
return transfer || isPlanet(selectedPoint)
? ecliptic.transferPoint(
- _contracts,
- selectedPoint,
- DUMMY_L2_ADDRESS,
- false
- )
+ _contracts,
+ selectedPoint,
+ DUMMY_L2_ADDRESS,
+ false
+ )
: ecliptic.setSpawnProxy(_contracts, selectedPoint, DUMMY_L2_ADDRESS);
},
[_contracts]
@@ -245,10 +245,25 @@ export default function MigrateL2() {
)}
{isStar && (
- Transferring this point will allow you to conduct all
- transactions on Layer 2. Setting the spawn proxy of a star to
- Layer 2 will allow you to create planet invites for free, but
- will require you to do all other transactions on Layer 1.
+
Transferring ship
+ Allows you to conduct all
+ transactions subsidized on Layer 2, with the tradeoff
+ of lost visibility to the Ethereum network.
+
+
+
+
Set spawn proxy
+ Moves spawning functionality to Layer 2
+ enabling subsizided planet creation
+ while retaining visibility to the Ethereum network.
+
+
+ Learn More about the L2 for stars↗
+
)}
{isGalaxy && (
@@ -256,15 +271,17 @@ export default function MigrateL2() {
Setting the spawn proxy of this galaxy to Layer 2 will allow you
to spawn stars on Layer 2 for free, but will still require you
to do all other transactions on Layer 1.
+
+
+
MIGRATING YOUR GALAXY'S SPAWN PROXY IS NOT RECOMMENDED, AND IS IRREVERSIBLE.
)}
pop()}
/>
@@ -275,16 +292,8 @@ export default function MigrateL2() {
return (
- You are about to migrate a node from Layer 1 to Layer 2. This will
- make transactions faster and cheaper. Here are some things you should
- know.{' '}
-
- Learn More
-
+ You are about to migrate an Urbit ID from Layer 1 Ethereum to the Layer 2 rollup. This will
+ make transactions cheaper. Here are some things you should know.{' '}
{!hideInfo && (
@@ -305,9 +314,9 @@ export default function MigrateL2() {
$
- A migration is expensive, but a one-time fee. The estimated
- price is $120. Transaction fees
- will be subsidized on Layer 2.
+ Migration incurs a one-time fee. The estimated
+ price is generally less than $10. Transaction fees
+ are subsidized by Tlon on Layer 2, making them effectively free.
@@ -316,10 +325,17 @@ export default function MigrateL2() {
{/* */}
- All transactions will now be pushed at the end of the day. A
+ Subsidized Layer 2 transactions are batched, generally hourly. A
timer will show when the next push is.
+
+ Learn More↗
+
)}
{!hideInfo && (
diff --git a/src/views/UrbitOS/NetworkKeys.tsx b/src/views/UrbitOS/NetworkKeys.tsx
index e38adf606..64ec0e0d9 100644
--- a/src/views/UrbitOS/NetworkKeys.tsx
+++ b/src/views/UrbitOS/NetworkKeys.tsx
@@ -279,8 +279,8 @@ export default function UrbitOSNetworkKeys({
const viewTitle = completed
? 'Network Keys have been set'
: hasKeys
- ? 'Set Network Keys'
- : 'Initiate Network Keys';
+ ? 'Set Network Keys'
+ : 'Initiate Network Keys';
const bootMessage = () => (
@@ -311,9 +311,19 @@ export default function UrbitOSNetworkKeys({
const waitMessage = () => (
- Important: it may take minutes to hours for the
- keys to become usable. Please be patient, trying to use the new keys
- during this period may result in an invalid keys error.
+ Important: It may take minutes to hours for the
+ keys to become usable as they propogate across the network.
+ Please be patient, trying to use the new keys
+ during this period may result in an{' '}
+ <
+ Text as="code"
+ mono
+ bg={'washedGray'}
+ padding={1}
+ borderRadius={1}
+ textAlign={'center'}>
+ invalid keys
+ {' '}error.
);
@@ -439,4 +449,4 @@ export default function UrbitOSNetworkKeys({
);
-}
\ No newline at end of file
+}
diff --git a/vite.config.ts b/vite.config.ts
index 4cb872b77..4f63a3407 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -7,20 +7,47 @@ import svgr from 'vite-plugin-svgr';
import { comlink } from 'vite-plugin-comlink'
import { resolve } from 'path';
import basicSsl from '@vitejs/plugin-basic-ssl'
+import fs from 'fs'
+import path from 'path'
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
+
+ const certPath = path.resolve(__dirname, 'localhost+2.pem')
+ const keyPath = path.resolve(__dirname, 'localhost+2-key.pem')
+
+ let httpsConfig
+ let useBasicSsl = false
+
+ if (fs.existsSync(certPath) && fs.existsSync(keyPath)) {
+ console.log('✓ Using mkcert certificates')
+ httpsConfig = {
+ key: fs.readFileSync(keyPath),
+ cert: fs.readFileSync(certPath),
+ }
+ } else {
+ console.log('⚠ mkcert certificates not found, using basicSsl')
+ console.log(' Run: mkcert localhost 127.0.0.1 ::1')
+ httpsConfig = true
+ useBasicSsl = true
+ }
+
return {
server: {
port: 3000,
- https: true,
+ https: httpsConfig,
},
- plugins: [comlink(), basicSsl(), svgr(), react(),],
+ plugins: [
+ comlink(),
+ ...(useBasicSsl ? [basicSsl()] : []),
+ svgr(),
+ react(),
+ ],
resolve: {
alias: [
- { find: 'process', replacement: 'process/browser' },
- { find: 'stream', replacement: 'stream-browserify' },
- { find: 'https', replacement: 'agent-base' },
+ { find: 'process', replacement: 'process/browser' },
+ { find: 'stream', replacement: 'stream-browserify' },
+ { find: 'https', replacement: 'agent-base' },
...[
'assets',
'components',
@@ -31,7 +58,7 @@ export default defineConfig(({ mode }) => {
'style',
'views',
'worker',
- ].map(a => ({ find: a, replacement: resolve(__dirname, `src/${a}`)})),
+ ].map(a => ({ find: a, replacement: resolve(__dirname, `src/${a}`) })),
],
},
worker: {
@@ -56,10 +83,10 @@ export default defineConfig(({ mode }) => {
},
plugins: [
GlobalPolyFill({
- process: true,
- buffer: true,
+ process: true,
+ buffer: true,
}),
- ],
+ ],
},
},
define: Object.assign({