create-near-app 6.0.0-beta.2 → 6.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +6 -11
- package/dist/make.js +44 -81
- package/dist/messages.js +31 -23
- package/dist/package-json.js +16 -16
- package/dist/tracking.js +1 -1
- package/dist/types.js +5 -4
- package/dist/user-input.js +81 -89
- package/package.json +1 -1
- package/templates/contracts/{rust → rs}/Cargo.toml +0 -3
- package/templates/contracts/{rust → rs}/README.md +14 -5
- package/templates/contracts/rs/build.sh +3 -0
- package/templates/contracts/rs/deploy.sh +2 -0
- package/templates/contracts/{rust → rs}/src/lib.rs +4 -6
- package/templates/contracts/rs/test-rs.sh +9 -0
- package/templates/contracts/rs/test-ts.sh +10 -0
- package/templates/contracts/{js → ts}/README.md +1 -0
- package/templates/contracts/ts/package.json +20 -0
- package/templates/frontend/next/.eslintrc.json +3 -0
- package/templates/frontend/next/README.md +36 -0
- package/templates/frontend/next/jsconfig.json +7 -0
- package/templates/frontend/next/next.config.js +6 -0
- package/templates/frontend/next/package.json +40 -0
- package/templates/frontend/next/public/near-logo.svg +43 -0
- package/templates/frontend/next/public/near.svg +1 -0
- package/templates/frontend/next/src/app/app.module.css +228 -0
- package/templates/frontend/next/src/app/globals.css +95 -0
- package/templates/frontend/next/src/app/hello-components/page.js +44 -0
- package/templates/frontend/next/src/app/hello-near/page.js +64 -0
- package/templates/frontend/next/src/app/layout.js +22 -0
- package/templates/frontend/next/src/app/page.js +37 -0
- package/templates/frontend/next/src/components/cards.js +46 -0
- package/templates/frontend/next/src/components/navigation.js +36 -0
- package/templates/frontend/next/src/components/vm-component.js +26 -0
- package/templates/frontend/next/src/config.js +21 -0
- package/templates/frontend/next/src/wallets/wallet-selector.js +128 -0
- package/templates/frontend/{gateway/src/data/web3.ts → next/src/wallets/web3-wallet.ts} +4 -7
- package/templates/frontend/vanilla/.babelrc +7 -0
- package/templates/frontend/vanilla/package.json +27 -13
- package/templates/frontend/vanilla/{assets → src/assets}/global.css +25 -56
- package/templates/frontend/vanilla/src/components.html +61 -0
- package/templates/frontend/vanilla/src/components.js +63 -0
- package/templates/frontend/vanilla/src/hello-near.html +80 -0
- package/templates/frontend/vanilla/src/hello.js +61 -0
- package/templates/frontend/vanilla/src/index.html +65 -0
- package/templates/frontend/vanilla/{near-wallet.js → src/near-wallet.js} +20 -18
- package/templates/frontend/vanilla/webpack.config.js +79 -0
- package/templates/{integration-tests/rust-tests → sandbox-tests/sandbox-rs}/Cargo.toml +5 -5
- package/templates/{integration-tests/js-tests → sandbox-tests/sandbox-ts}/package.json +6 -6
- package/templates/contracts/js/build.sh +0 -5
- package/templates/contracts/js/deploy.sh +0 -18
- package/templates/contracts/js/package.json +0 -19
- package/templates/contracts/rust/build.sh +0 -6
- package/templates/contracts/rust/deploy.sh +0 -18
- package/templates/frontend/gateway/.env +0 -1
- package/templates/frontend/gateway/.nvmrc +0 -1
- package/templates/frontend/gateway/.prettierrc +0 -6
- package/templates/frontend/gateway/next.config.js +0 -15
- package/templates/frontend/gateway/package.json +0 -74
- package/templates/frontend/gateway/public/apple-touch-icon.png +0 -0
- package/templates/frontend/gateway/public/bos-meta.png +0 -0
- package/templates/frontend/gateway/public/favicon.png +0 -0
- package/templates/frontend/gateway/public/fonts/FKGrotesk.woff2 +0 -0
- package/templates/frontend/gateway/public/fonts/Mona-Sans.woff2 +0 -0
- package/templates/frontend/gateway/public/logo192.png +0 -0
- package/templates/frontend/gateway/public/robots.txt +0 -3
- package/templates/frontend/gateway/public/site.webmanifest +0 -8
- package/templates/frontend/gateway/src/assets/images/near-icon.svg +0 -3
- package/templates/frontend/gateway/src/components/MetaTags.tsx +0 -22
- package/templates/frontend/gateway/src/components/component/ComponentWrapperPage.tsx +0 -27
- package/templates/frontend/gateway/src/components/layouts/DefaultLayout.tsx +0 -16
- package/templates/frontend/gateway/src/components/layouts/SimpleLayout.tsx +0 -9
- package/templates/frontend/gateway/src/components/lib/Button/Button.tsx +0 -379
- package/templates/frontend/gateway/src/components/lib/Button/index.tsx +0 -1
- package/templates/frontend/gateway/src/components/lib/Spinner/Spinner.tsx +0 -33
- package/templates/frontend/gateway/src/components/lib/Spinner/index.ts +0 -1
- package/templates/frontend/gateway/src/components/lib/Text/Text.tsx +0 -14
- package/templates/frontend/gateway/src/components/lib/Text/index.tsx +0 -1
- package/templates/frontend/gateway/src/components/lib/Toast/README.md +0 -83
- package/templates/frontend/gateway/src/components/lib/Toast/Toast.tsx +0 -25
- package/templates/frontend/gateway/src/components/lib/Toast/Toaster.tsx +0 -48
- package/templates/frontend/gateway/src/components/lib/Toast/api.ts +0 -6
- package/templates/frontend/gateway/src/components/lib/Toast/index.ts +0 -3
- package/templates/frontend/gateway/src/components/lib/Toast/store.ts +0 -83
- package/templates/frontend/gateway/src/components/lib/Toast/styles.ts +0 -126
- package/templates/frontend/gateway/src/components/navigation/Navigation.tsx +0 -23
- package/templates/frontend/gateway/src/components/navigation/UserDropdownMenu.tsx +0 -209
- package/templates/frontend/gateway/src/components/navigation/desktop/DesktopNavigation.tsx +0 -109
- package/templates/frontend/gateway/src/components/navigation/desktop/MainNavigationMenu.tsx +0 -170
- package/templates/frontend/gateway/src/components/navigation/icons/close.svg +0 -22
- package/templates/frontend/gateway/src/components/navigation/icons/near-icon.svg +0 -3
- package/templates/frontend/gateway/src/components/navigation/icons/near-logo.svg +0 -14
- package/templates/frontend/gateway/src/components/navigation/icons/return.svg +0 -29
- package/templates/frontend/gateway/src/components/navigation/icons/search.svg +0 -3
- package/templates/frontend/gateway/src/components/navigation/mobile/AccordionMenu.tsx +0 -141
- package/templates/frontend/gateway/src/components/navigation/mobile/Menu.tsx +0 -86
- package/templates/frontend/gateway/src/components/navigation/mobile/MobileNavigation.tsx +0 -131
- package/templates/frontend/gateway/src/components/navigation/navigation-categories.ts +0 -75
- package/templates/frontend/gateway/src/components/vm/VmCommitButton.tsx +0 -20
- package/templates/frontend/gateway/src/components/vm/VmComponent.tsx +0 -29
- package/templates/frontend/gateway/src/components/vm/VmInitializer.tsx +0 -124
- package/templates/frontend/gateway/src/data/components.ts +0 -50
- package/templates/frontend/gateway/src/hooks/useBosComponents.ts +0 -14
- package/templates/frontend/gateway/src/hooks/useBosLoaderInitializer.ts +0 -60
- package/templates/frontend/gateway/src/hooks/useFlags.ts +0 -40
- package/templates/frontend/gateway/src/hooks/useLayout.tsx +0 -12
- package/templates/frontend/gateway/src/index.d.ts +0 -9
- package/templates/frontend/gateway/src/pages/_app.tsx +0 -47
- package/templates/frontend/gateway/src/pages/_document.tsx +0 -27
- package/templates/frontend/gateway/src/pages/dig.tsx +0 -25
- package/templates/frontend/gateway/src/pages/flags.tsx +0 -83
- package/templates/frontend/gateway/src/pages/hello-api.tsx +0 -105
- package/templates/frontend/gateway/src/pages/hello-component.tsx +0 -23
- package/templates/frontend/gateway/src/pages/hello-ethereum.tsx +0 -23
- package/templates/frontend/gateway/src/pages/hello-social.tsx +0 -31
- package/templates/frontend/gateway/src/pages/index.tsx +0 -51
- package/templates/frontend/gateway/src/pages/nui.tsx +0 -25
- package/templates/frontend/gateway/src/stores/auth.ts +0 -29
- package/templates/frontend/gateway/src/stores/bos-loader.ts +0 -20
- package/templates/frontend/gateway/src/stores/current-component.ts +0 -11
- package/templates/frontend/gateway/src/stores/vm.ts +0 -24
- package/templates/frontend/gateway/src/styles/globals.css +0 -68
- package/templates/frontend/gateway/src/styles/theme.css +0 -129
- package/templates/frontend/gateway/src/utils/config.ts +0 -49
- package/templates/frontend/gateway/src/utils/form-validation.ts +0 -18
- package/templates/frontend/gateway/src/utils/keypom-options.ts +0 -59
- package/templates/frontend/gateway/src/utils/route/privateRoute.tsx +0 -20
- package/templates/frontend/gateway/src/utils/route/signedOutRoute.tsx +0 -21
- package/templates/frontend/gateway/src/utils/types.ts +0 -33
- package/templates/frontend/gateway/tsconfig.json +0 -24
- package/templates/frontend/vanilla/.env +0 -1
- package/templates/frontend/vanilla/index.html +0 -97
- package/templates/frontend/vanilla/index.js +0 -70
- package/templates/shared/template.gitignore +0 -31
- /package/templates/contracts/{rust → rs}/.cargo/config +0 -0
- /package/templates/contracts/{rust → rs}/rust-toolchain.toml +0 -0
- /package/templates/contracts/{js → ts}/package-lock.json +0 -0
- /package/templates/contracts/{js → ts}/src/contract.ts +0 -0
- /package/templates/contracts/{js → ts}/tsconfig.json +0 -0
- /package/templates/frontend/{gateway → next}/public/next.svg +0 -0
- /package/templates/frontend/{gateway → next}/public/vercel.svg +0 -0
- /package/templates/frontend/{gateway/public → next/src/app}/favicon.ico +0 -0
- /package/templates/{shared → frontend/vanilla}/.gitpod.yml +0 -0
- /package/templates/{shared → frontend/vanilla}/README.md +0 -0
- /package/templates/frontend/vanilla/{assets → src/assets}/favicon.ico +0 -0
- /package/templates/frontend/vanilla/{assets → src/assets}/logo-black.svg +0 -0
- /package/templates/frontend/vanilla/{assets → src/assets}/logo-white.svg +0 -0
- /package/templates/{integration-tests/rust-tests → sandbox-tests/sandbox-rs}/src/tests.rs +0 -0
- /package/templates/{integration-tests/js-tests → sandbox-tests/sandbox-ts}/ava.config.cjs +0 -0
- /package/templates/{integration-tests/js-tests → sandbox-tests/sandbox-ts}/package-lock.json +0 -0
- /package/templates/{integration-tests/js-tests → sandbox-tests/sandbox-ts}/src/main.ava.ts +0 -0
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { useEffect } from 'react';
|
|
2
|
-
import type { SubmitHandler } from 'react-hook-form';
|
|
3
|
-
import { useForm } from 'react-hook-form';
|
|
4
|
-
import styled from 'styled-components';
|
|
5
|
-
|
|
6
|
-
import { Button } from '@/components/lib/Button';
|
|
7
|
-
import { Text } from '@/components/lib/Text';
|
|
8
|
-
import { useClearCurrentComponent } from '@/hooks/useClearCurrentComponent';
|
|
9
|
-
import { useFlags } from '@/hooks/useFlags';
|
|
10
|
-
import { useDefaultLayout } from '@/hooks/useLayout';
|
|
11
|
-
import type { NextPageWithLayout } from '@/utils/types';
|
|
12
|
-
|
|
13
|
-
const Container = styled.div`
|
|
14
|
-
display: flex;
|
|
15
|
-
flex-direction: column;
|
|
16
|
-
gap: 1rem;
|
|
17
|
-
padding: 2rem 1rem;
|
|
18
|
-
`;
|
|
19
|
-
|
|
20
|
-
const Form = styled.form`
|
|
21
|
-
display: flex;
|
|
22
|
-
flex-direction: column;
|
|
23
|
-
gap: 1rem;
|
|
24
|
-
`;
|
|
25
|
-
|
|
26
|
-
const InputGrid = styled.div`
|
|
27
|
-
display: grid;
|
|
28
|
-
grid-template-columns: max-content 1fr;
|
|
29
|
-
align-items: center;
|
|
30
|
-
gap: 1rem;
|
|
31
|
-
|
|
32
|
-
@media (max-width: 600px) {
|
|
33
|
-
grid-template-columns: 1fr;
|
|
34
|
-
}
|
|
35
|
-
`;
|
|
36
|
-
|
|
37
|
-
type FormData = {
|
|
38
|
-
bosLoaderUrl: string;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const FlagsPage: NextPageWithLayout = () => {
|
|
42
|
-
const [flags, setFlags] = useFlags();
|
|
43
|
-
const form = useForm<FormData>();
|
|
44
|
-
|
|
45
|
-
useClearCurrentComponent();
|
|
46
|
-
|
|
47
|
-
useEffect(() => {
|
|
48
|
-
form.setValue('bosLoaderUrl', flags?.bosLoaderUrl || '');
|
|
49
|
-
}, [form, flags]);
|
|
50
|
-
|
|
51
|
-
const submitHandler: SubmitHandler<FormData> = (data) => {
|
|
52
|
-
setFlags(data);
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
<Container className="container-xl">
|
|
57
|
-
<Text as="h1" font="text-3xl">
|
|
58
|
-
Flags
|
|
59
|
-
</Text>
|
|
60
|
-
|
|
61
|
-
<Form onSubmit={form.handleSubmit(submitHandler)}>
|
|
62
|
-
<InputGrid>
|
|
63
|
-
<Text as="label" font="text-s" weight="500" htmlFor="bosLoaderUrl">
|
|
64
|
-
BOS Loader Url
|
|
65
|
-
</Text>
|
|
66
|
-
|
|
67
|
-
<input
|
|
68
|
-
className="form-control"
|
|
69
|
-
placeholder="e.g. http://127.0.0.1:3030/, https://my-loader.ngrok.io"
|
|
70
|
-
id="bosLoaderUrl"
|
|
71
|
-
{...form.register('bosLoaderUrl')}
|
|
72
|
-
/>
|
|
73
|
-
</InputGrid>
|
|
74
|
-
|
|
75
|
-
<Button label="Save Flags" variant="affirmative" size="large" type="submit" style={{ marginLeft: 'auto' }} />
|
|
76
|
-
</Form>
|
|
77
|
-
</Container>
|
|
78
|
-
);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
FlagsPage.getLayout = useDefaultLayout;
|
|
82
|
-
|
|
83
|
-
export default FlagsPage;
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react';
|
|
2
|
-
|
|
3
|
-
import { useDefaultLayout } from '@/hooks/useLayout';
|
|
4
|
-
import { useAuthStore } from '@/stores/auth';
|
|
5
|
-
import { useVmStore } from '@/stores/vm';
|
|
6
|
-
import type { NextPageWithLayout } from '@/utils/types';
|
|
7
|
-
|
|
8
|
-
// Contract that the app will interact with
|
|
9
|
-
const CONTRACT = process.env.NEXT_PUBLIC_CONTRACT_NAME || '';
|
|
10
|
-
|
|
11
|
-
const callMethod = async (near: any, contractId: string, methodName: string, args: any = {}, gas = '30000000000000', deposit = 0) => {
|
|
12
|
-
const selector = await near.selector;
|
|
13
|
-
const wallet = await selector.wallet();
|
|
14
|
-
|
|
15
|
-
wallet.signAndSendTransaction({
|
|
16
|
-
signerId: near.accountId,
|
|
17
|
-
receiverId: contractId,
|
|
18
|
-
actions: [
|
|
19
|
-
{
|
|
20
|
-
type: 'FunctionCall',
|
|
21
|
-
params: { methodName, args, gas, deposit },
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
// Make a read-only call to retrieve information from the network
|
|
28
|
-
const viewMethod = async (near: any, contractId: string, methodName: string, args = {}) => {
|
|
29
|
-
const provider = await near.nearConnection.connection.provider;
|
|
30
|
-
|
|
31
|
-
const res = await provider.query({
|
|
32
|
-
request_type: 'call_function',
|
|
33
|
-
account_id: contractId,
|
|
34
|
-
method_name: methodName,
|
|
35
|
-
args_base64: Buffer.from(JSON.stringify(args)).toString('base64'),
|
|
36
|
-
finality: 'optimistic',
|
|
37
|
-
});
|
|
38
|
-
return JSON.parse(Buffer.from(res.result).toString());
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const ExampleAPIPage: NextPageWithLayout = () => {
|
|
42
|
-
const { signedIn } = useAuthStore(store => store);
|
|
43
|
-
const near = useVmStore(store => store.near);
|
|
44
|
-
const [greeting, setStateGreeting] = useState('');
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
useEffect(() => {
|
|
48
|
-
if (near) {
|
|
49
|
-
viewMethod(near, CONTRACT, 'get_greeting')
|
|
50
|
-
.then(
|
|
51
|
-
res => setStateGreeting(res)
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
}, [near]);
|
|
55
|
-
|
|
56
|
-
const setGreeting = async () => {
|
|
57
|
-
callMethod(near, CONTRACT, 'set_greeting', { greeting });
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
// Define components
|
|
61
|
-
const greetingForm = (
|
|
62
|
-
<>
|
|
63
|
-
<div className="border border-black p-3">
|
|
64
|
-
<label>Update greeting: </label>
|
|
65
|
-
<input className="w-50 mx-2" placeholder="Howdy" onChange={(e) => setStateGreeting(e.target.value)} />
|
|
66
|
-
<button className="btn btn-primary" onClick={setGreeting}>
|
|
67
|
-
Save
|
|
68
|
-
</button>
|
|
69
|
-
</div>
|
|
70
|
-
</>
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
const notLoggedInWarning = (
|
|
74
|
-
<p className="text-center py-2"> Please login to change the greeting </p>
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
return <>
|
|
78
|
-
<p className="text-center mt-3 p-3"> This example makes calls directly from the Gateway app using the <code>near-api-js</code> and <code>wallet-selector</code> libraries </p>
|
|
79
|
-
|
|
80
|
-
<div className="container border mt-2 border-warning p-3">
|
|
81
|
-
|
|
82
|
-
<h3 className="text-center">
|
|
83
|
-
The contract says:
|
|
84
|
-
<span className="text-decoration-underline"> {greeting} </span>
|
|
85
|
-
</h3>
|
|
86
|
-
|
|
87
|
-
<p className='pt-4 pb-2'>
|
|
88
|
-
Look at that! A greeting stored on <b>{CONTRACT}</b>.
|
|
89
|
-
</p>
|
|
90
|
-
|
|
91
|
-
<p>
|
|
92
|
-
<b> Note </b>: The contract address is being loaded from
|
|
93
|
-
an <code> env </code> variable. If you chose to add a contract during
|
|
94
|
-
the wizard, running <code> npm run deploy </code> will deploy the
|
|
95
|
-
contract code and update the <code> env </code> variable used here.
|
|
96
|
-
</p>
|
|
97
|
-
|
|
98
|
-
{signedIn ? greetingForm : notLoggedInWarning}
|
|
99
|
-
</div>
|
|
100
|
-
</>;
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
ExampleAPIPage.getLayout = useDefaultLayout;
|
|
104
|
-
|
|
105
|
-
export default ExampleAPIPage;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ComponentWrapperPage } from '@/components/component/ComponentWrapperPage';
|
|
2
|
-
import { useBosComponents } from '@/hooks/useBosComponents';
|
|
3
|
-
import { useDefaultLayout } from '@/hooks/useLayout';
|
|
4
|
-
import type { NextPageWithLayout } from '@/utils/types';
|
|
5
|
-
|
|
6
|
-
const ExampleComponentPage: NextPageWithLayout = () => {
|
|
7
|
-
const components = useBosComponents();
|
|
8
|
-
|
|
9
|
-
return <>
|
|
10
|
-
<p className="text-center mt-4 p-1"> This example retrieves the <code><a href="https://near.org/near/widget/ComponentDetailsPage?src=gagdiez.near/widget/HelloNear&tab=source">Hello Near component</a></code> from the NEAR Blockchain (please wait while it loads...) </p>
|
|
11
|
-
|
|
12
|
-
<ComponentWrapperPage
|
|
13
|
-
src={components.helloExample}
|
|
14
|
-
meta={{
|
|
15
|
-
title: 'Hello NEAR',
|
|
16
|
-
description: '"A Page that loads a full-page Component"',
|
|
17
|
-
}} />
|
|
18
|
-
</>;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
ExampleComponentPage.getLayout = useDefaultLayout;
|
|
22
|
-
|
|
23
|
-
export default ExampleComponentPage;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ComponentWrapperPage } from '@/components/component/ComponentWrapperPage';
|
|
2
|
-
import { useBosComponents } from '@/hooks/useBosComponents';
|
|
3
|
-
import { useDefaultLayout } from '@/hooks/useLayout';
|
|
4
|
-
import type { NextPageWithLayout } from '@/utils/types';
|
|
5
|
-
|
|
6
|
-
const ExampleComponentPage: NextPageWithLayout = () => {
|
|
7
|
-
const components = useBosComponents();
|
|
8
|
-
|
|
9
|
-
return <>
|
|
10
|
-
<p className="text-center mt-4 p-1 text-dark"> This example retrieves an Ethereum component from the NEAR Blockchain (wait while it loads...) </p>
|
|
11
|
-
|
|
12
|
-
<ComponentWrapperPage
|
|
13
|
-
src={components.lidoExample}
|
|
14
|
-
meta={{
|
|
15
|
-
title: 'Hello NEAR',
|
|
16
|
-
description: '"A Page that loads a full-page Component"',
|
|
17
|
-
}} />
|
|
18
|
-
</>;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
ExampleComponentPage.getLayout = useDefaultLayout;
|
|
22
|
-
|
|
23
|
-
export default ExampleComponentPage;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { VmComponent } from '@/components/vm/VmComponent';
|
|
2
|
-
import { useBosComponents } from '@/hooks/useBosComponents';
|
|
3
|
-
import { useDefaultLayout } from '@/hooks/useLayout';
|
|
4
|
-
import type { NextPageWithLayout } from '@/utils/types';
|
|
5
|
-
|
|
6
|
-
const ExampleComponentPage: NextPageWithLayout = () => {
|
|
7
|
-
const components = useBosComponents();
|
|
8
|
-
|
|
9
|
-
return <>
|
|
10
|
-
<p className="text-center mt-4 p-1"> This example shows the social feed of <a href="https://near.social">NEAR Social</a></p>
|
|
11
|
-
|
|
12
|
-
<div className="container p-2">
|
|
13
|
-
<VmComponent
|
|
14
|
-
key="compose"
|
|
15
|
-
src={components.social.compose}
|
|
16
|
-
props={{}}
|
|
17
|
-
/>
|
|
18
|
-
|
|
19
|
-
<VmComponent
|
|
20
|
-
key="reg-feed"
|
|
21
|
-
src={components.social.feed}
|
|
22
|
-
props={{}}
|
|
23
|
-
/>
|
|
24
|
-
|
|
25
|
-
</div>
|
|
26
|
-
</>;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
ExampleComponentPage.getLayout = useDefaultLayout;
|
|
30
|
-
|
|
31
|
-
export default ExampleComponentPage;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { isPassKeyAvailable } from '@near-js/biometric-ed25519';
|
|
2
|
-
import { useEffect } from 'react';
|
|
3
|
-
|
|
4
|
-
import { openToast } from '@/components/lib/Toast';
|
|
5
|
-
import { useDefaultLayout } from '@/hooks/useLayout';
|
|
6
|
-
import { useAuthStore } from '@/stores/auth';
|
|
7
|
-
import type { NextPageWithLayout } from '@/utils/types';
|
|
8
|
-
|
|
9
|
-
const HomePage: NextPageWithLayout = () => {
|
|
10
|
-
const signedIn = useAuthStore((store) => store.signedIn);
|
|
11
|
-
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
if (signedIn) {
|
|
14
|
-
isPassKeyAvailable().then((passKeyAvailable: boolean) => {
|
|
15
|
-
if (!passKeyAvailable) {
|
|
16
|
-
openToast({
|
|
17
|
-
title: 'Limited Functionality',
|
|
18
|
-
type: 'WARNING',
|
|
19
|
-
description: 'To access all account features, try using a browser that supports passkeys',
|
|
20
|
-
duration: 5000,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}, [signedIn]);
|
|
26
|
-
|
|
27
|
-
return (
|
|
28
|
-
<div className="container mx-auto">
|
|
29
|
-
<h1 className="mt-5 text-center"> Your Gateway to an Open Web </h1>
|
|
30
|
-
<h3 className="text-center"> Welcome to your NEAR Gateway </h3>
|
|
31
|
-
|
|
32
|
-
<p className="mt-5">
|
|
33
|
-
A gateway is a simple web app that can be augmented with <span className="red"> NEAR Components</span>.
|
|
34
|
-
This Gateway is built using `Next.js` and readily allows users to login
|
|
35
|
-
using FastAuth.
|
|
36
|
-
</p>
|
|
37
|
-
|
|
38
|
-
<h5 className="mt-5"> Configure your Gateway </h5>
|
|
39
|
-
<ul>
|
|
40
|
-
<li> Select the network <code>mainnet</code> or <code>testnet</code> in the <code> ./src/utils/config.ts </code> </li>
|
|
41
|
-
<li> Modify the navigation menu in <code>./src/components/navigation/navigation-categories.ts</code> </li>
|
|
42
|
-
<li> Create new pages by adding files in <code>./src/pages</code> </li>
|
|
43
|
-
<li> Define general components in <code>./src/data/components.ts</code> to use them across pages </li>
|
|
44
|
-
</ul>
|
|
45
|
-
</div>
|
|
46
|
-
);
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
HomePage.getLayout = useDefaultLayout;
|
|
50
|
-
|
|
51
|
-
export default HomePage;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { VmComponent } from '@/components/vm/VmComponent';
|
|
2
|
-
import { useBosComponents } from '@/hooks/useBosComponents';
|
|
3
|
-
import { useDefaultLayout } from '@/hooks/useLayout';
|
|
4
|
-
import type { NextPageWithLayout } from '@/utils/types';
|
|
5
|
-
|
|
6
|
-
const ExampleComponentPage: NextPageWithLayout = () => {
|
|
7
|
-
const components = useBosComponents();
|
|
8
|
-
|
|
9
|
-
return <>
|
|
10
|
-
<p className="text-center mt-4 p-1"> This example shows a UI library for Near components</p>
|
|
11
|
-
|
|
12
|
-
<div className="container p-2">
|
|
13
|
-
<VmComponent
|
|
14
|
-
key="compose"
|
|
15
|
-
src={components.NUI}
|
|
16
|
-
props={{}}
|
|
17
|
-
/>
|
|
18
|
-
|
|
19
|
-
</div>
|
|
20
|
-
</>;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
ExampleComponentPage.getLayout = useDefaultLayout;
|
|
24
|
-
|
|
25
|
-
export default ExampleComponentPage;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type Big from 'big.js';
|
|
2
|
-
import { create } from 'zustand';
|
|
3
|
-
|
|
4
|
-
type AuthState = {
|
|
5
|
-
account: any;
|
|
6
|
-
accountId: string;
|
|
7
|
-
availableStorage: Big | null;
|
|
8
|
-
logOut: () => Promise<void>;
|
|
9
|
-
refreshAllowance: () => Promise<void>;
|
|
10
|
-
requestSignInWithWallet: () => void;
|
|
11
|
-
signedIn: boolean;
|
|
12
|
-
vmNear: any;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
type AuthStore = AuthState & {
|
|
16
|
-
set: (state: AuthState) => void;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export const useAuthStore = create<AuthStore>((set) => ({
|
|
20
|
-
account: null,
|
|
21
|
-
accountId: '',
|
|
22
|
-
availableStorage: null,
|
|
23
|
-
logOut: async () => undefined,
|
|
24
|
-
refreshAllowance: async () => undefined,
|
|
25
|
-
requestSignInWithWallet: () => undefined,
|
|
26
|
-
signedIn: false,
|
|
27
|
-
set: (state) => set((previousState) => ({ ...previousState, ...state })),
|
|
28
|
-
vmNear: null,
|
|
29
|
-
}));
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { create } from 'zustand';
|
|
2
|
-
|
|
3
|
-
type BosLoaderState = {
|
|
4
|
-
failedToLoad: boolean;
|
|
5
|
-
hasResolved: boolean;
|
|
6
|
-
loaderUrl: string;
|
|
7
|
-
redirectMap: Record<string, unknown>;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
type BosLoaderStore = BosLoaderState & {
|
|
11
|
-
set: (state: Partial<BosLoaderState>) => void;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export const useBosLoaderStore = create<BosLoaderStore>((set) => ({
|
|
15
|
-
failedToLoad: false,
|
|
16
|
-
hasResolved: false,
|
|
17
|
-
loaderUrl: '',
|
|
18
|
-
redirectMap: {},
|
|
19
|
-
set: (state) => set((previousState) => ({ ...previousState, ...state })),
|
|
20
|
-
}));
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { create } from 'zustand';
|
|
2
|
-
|
|
3
|
-
type CurrentComponentStore = {
|
|
4
|
-
src: string | null;
|
|
5
|
-
setSrc: (src: string | null) => void;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export const useCurrentComponentStore = create<CurrentComponentStore>((set) => ({
|
|
9
|
-
src: null,
|
|
10
|
-
setSrc: (src) => set(() => ({ src })),
|
|
11
|
-
}));
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { create } from 'zustand';
|
|
2
|
-
|
|
3
|
-
type VmState = {
|
|
4
|
-
cache: any;
|
|
5
|
-
CommitButton: any;
|
|
6
|
-
ethersContext: any;
|
|
7
|
-
EthersProvider: any;
|
|
8
|
-
Widget: any;
|
|
9
|
-
near: any;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
type VmStore = VmState & {
|
|
13
|
-
set: (update: VmState) => void;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const useVmStore = create<VmStore>((set) => ({
|
|
17
|
-
cache: null,
|
|
18
|
-
CommitButton: null,
|
|
19
|
-
ethersContext: null,
|
|
20
|
-
EthersProvider: null,
|
|
21
|
-
Widget: null,
|
|
22
|
-
near: null,
|
|
23
|
-
set: (params) => set(() => ({ ...params })),
|
|
24
|
-
}));
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
@import 'bootstrap';
|
|
2
|
-
|
|
3
|
-
@font-face {
|
|
4
|
-
font-family: 'Mona Sans';
|
|
5
|
-
src: url('/fonts/Mona-Sans.woff2') format('woff2 supports variations'),
|
|
6
|
-
url('/fonts/Mona-Sans.woff2') format('woff2-variations');
|
|
7
|
-
font-weight: 200 900;
|
|
8
|
-
font-stretch: 75% 125%;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
@font-face {
|
|
12
|
-
font-family: 'FK Grotesk';
|
|
13
|
-
src: url('/fonts/FKGrotesk.woff2') format('woff2 supports variations'),
|
|
14
|
-
url('/fonts/FKGrotesk.woff2') format('woff2-variations');
|
|
15
|
-
font-weight: 200 900;
|
|
16
|
-
font-stretch: 75% 125%;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
body,
|
|
20
|
-
html {
|
|
21
|
-
--body-top-padding: 24px;
|
|
22
|
-
-webkit-font-smoothing: antialiased;
|
|
23
|
-
color: var(--sand12);
|
|
24
|
-
font: var(--text-base);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
a {
|
|
28
|
-
text-decoration: none;
|
|
29
|
-
}
|
|
30
|
-
a:hover {
|
|
31
|
-
text-decoration: underline;
|
|
32
|
-
}
|
|
33
|
-
.btn {
|
|
34
|
-
text-decoration: none;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
#near-wallet-selector-modal .open {
|
|
38
|
-
z-index: 1001;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
#w3m-modal {
|
|
42
|
-
z-index: 1002;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
#launcher {
|
|
46
|
-
color-scheme: light;
|
|
47
|
-
width: 48px;
|
|
48
|
-
height: 50px;
|
|
49
|
-
padding: 0px;
|
|
50
|
-
margin: 10px 20px;
|
|
51
|
-
position: fixed;
|
|
52
|
-
bottom: 10px;
|
|
53
|
-
overflow: visible;
|
|
54
|
-
opacity: 1;
|
|
55
|
-
border: 0px;
|
|
56
|
-
z-index: 999998;
|
|
57
|
-
transition-duration: 250ms;
|
|
58
|
-
transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
59
|
-
transition-property: opacity, top, bottom;
|
|
60
|
-
right: 10px;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@media (max-width: 650px) {
|
|
64
|
-
#launcher {
|
|
65
|
-
right: 2px;
|
|
66
|
-
bottom: 10px;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--text-xs: 450 12px/1.4 'Mona Sans', sans-serif;
|
|
3
|
-
--text-s: 450 14px/1.5 'Mona Sans', sans-serif;
|
|
4
|
-
--text-base: 450 16px/1.5 'Mona Sans', sans-serif;
|
|
5
|
-
--text-l: 400 20px/1.3 'FK Grotesk', 'Mona Sans', sans-serif;
|
|
6
|
-
--text-xl: 400 24px/1.3 'FK Grotesk', 'Mona Sans', sans-serif;
|
|
7
|
-
--text-2xl: 400 30px/1.3 'FK Grotesk', 'Mona Sans', sans-serif;
|
|
8
|
-
--text-3xl: 400 42px/1.3 'FK Grotesk', 'Mona Sans', sans-serif;
|
|
9
|
-
--text-hero: 500 72px/1 'FK Grotesk', 'Mona Sans', sans-serif;
|
|
10
|
-
|
|
11
|
-
--black: hsl(0, 0%, 0%);
|
|
12
|
-
--blackA1: hsla(0, 0%, 0%, 0.012);
|
|
13
|
-
--blackA2: hsla(0, 0%, 0%, 0.027);
|
|
14
|
-
--blackA3: hsla(0, 0%, 0%, 0.047);
|
|
15
|
-
--blackA4: hsla(0, 0%, 0%, 0.071);
|
|
16
|
-
--blackA5: hsla(0, 0%, 0%, 0.09);
|
|
17
|
-
--blackA6: hsla(0, 0%, 0%, 0.114);
|
|
18
|
-
--blackA7: hsla(0, 0%, 0%, 0.141);
|
|
19
|
-
--blackA8: hsla(0, 0%, 0%, 0.22);
|
|
20
|
-
--blackA9: hsla(0, 0%, 0%, 0.439);
|
|
21
|
-
--blackA10: hsla(0, 0%, 0%, 0.478);
|
|
22
|
-
--blackA11: hsla(0, 0%, 0%, 0.565);
|
|
23
|
-
--blackA12: hsla(0, 0%, 0%, 0.91);
|
|
24
|
-
|
|
25
|
-
--white: hsl(0, 0%, 100%);
|
|
26
|
-
--whiteA1: hsla(0, 0%, 100%, 0);
|
|
27
|
-
--whiteA2: hsla(0, 0%, 100%, 0.013);
|
|
28
|
-
--whiteA3: hsla(0, 0%, 100%, 0.034);
|
|
29
|
-
--whiteA4: hsla(0, 0%, 100%, 0.056);
|
|
30
|
-
--whiteA5: hsla(0, 0%, 100%, 0.086);
|
|
31
|
-
--whiteA6: hsla(0, 0%, 100%, 0.124);
|
|
32
|
-
--whiteA7: hsla(0, 0%, 100%, 0.176);
|
|
33
|
-
--whiteA8: hsla(0, 0%, 100%, 0.249);
|
|
34
|
-
--whiteA9: hsla(0, 0%, 100%, 0.386);
|
|
35
|
-
--whiteA10: hsla(0, 0%, 100%, 0.446);
|
|
36
|
-
--whiteA11: hsla(0, 0%, 100%, 0.592);
|
|
37
|
-
--whiteA12: hsla(0, 0%, 100%, 0.923);
|
|
38
|
-
|
|
39
|
-
--amber1: hsl(39, 70%, 99%);
|
|
40
|
-
--amber2: hsl(40, 100%, 96.5%);
|
|
41
|
-
--amber3: hsl(44, 100%, 91.7%);
|
|
42
|
-
--amber4: hsl(43, 100%, 86.8%);
|
|
43
|
-
--amber5: hsl(42, 100%, 81.8%);
|
|
44
|
-
--amber6: hsl(38, 99.7%, 76.3%);
|
|
45
|
-
--amber7: hsl(36, 86.1%, 67.1%);
|
|
46
|
-
--amber8: hsl(35, 85.2%, 55.1%);
|
|
47
|
-
--amber9: hsl(39, 100%, 57%);
|
|
48
|
-
--amber10: hsl(35, 100%, 55.5%);
|
|
49
|
-
--amber11: hsl(30, 100%, 34%);
|
|
50
|
-
--amber12: hsl(20, 80%, 17%);
|
|
51
|
-
|
|
52
|
-
--cyan1: hsla(180, 82%, 98%, 1);
|
|
53
|
-
--cyan2: hsla(180, 75%, 97%, 1);
|
|
54
|
-
--cyan3: hsla(178, 78%, 93%, 1);
|
|
55
|
-
--cyan4: hsla(179, 77%, 88%, 1);
|
|
56
|
-
--cyan5: hsla(178, 78%, 82%, 1);
|
|
57
|
-
--cyan6: hsla(178, 73%, 77%, 1);
|
|
58
|
-
--cyan7: hsla(179, 65%, 72%, 1);
|
|
59
|
-
--cyan8: hsla(178, 60%, 52%, 1);
|
|
60
|
-
--cyan9: hsla(179, 72%, 64%, 1);
|
|
61
|
-
--cyan10: hsla(178, 67%, 57%, 1);
|
|
62
|
-
--cyan11: hsla(186, 78%, 33%, 1);
|
|
63
|
-
--cyan12: hsla(186, 78%, 14%, 1);
|
|
64
|
-
|
|
65
|
-
--green1: hsla(150, 100%, 98%, 1);
|
|
66
|
-
--green2: hsla(152, 100%, 97%, 1);
|
|
67
|
-
--green3: hsla(150, 94%, 93%, 1);
|
|
68
|
-
--green4: hsla(151, 93%, 88%, 1);
|
|
69
|
-
--green5: hsla(151, 93%, 82%, 1);
|
|
70
|
-
--green6: hsla(151, 93%, 77%, 1);
|
|
71
|
-
--green7: hsla(150, 86%, 72%, 1);
|
|
72
|
-
--green8: hsla(150, 60%, 51%, 1);
|
|
73
|
-
--green9: hsla(150, 80%, 64%, 1);
|
|
74
|
-
--green10: hsla(150, 74%, 58%, 1);
|
|
75
|
-
--green11: hsla(155, 66%, 32%, 1);
|
|
76
|
-
--green12: hsla(150, 79%, 10%, 1);
|
|
77
|
-
|
|
78
|
-
--mauve1: hsl(300, 20%, 99%);
|
|
79
|
-
--mauve2: hsl(300, 7.7%, 97.5%);
|
|
80
|
-
--mauve3: hsl(294, 5.5%, 95.3%);
|
|
81
|
-
--mauve4: hsl(289, 4.7%, 93.3%);
|
|
82
|
-
--mauve5: hsl(283, 4.4%, 91.3%);
|
|
83
|
-
--mauve6: hsl(278, 4.1%, 89.1%);
|
|
84
|
-
--mauve7: hsl(271, 3.9%, 86.3%);
|
|
85
|
-
--mauve8: hsl(255, 3.7%, 78.8%);
|
|
86
|
-
--mauve9: hsl(252, 4%, 57.3%);
|
|
87
|
-
--mauve10: hsl(253, 3.5%, 53.5%);
|
|
88
|
-
--mauve11: hsl(252, 4%, 44.8%);
|
|
89
|
-
--mauve12: hsl(260, 25%, 11%);
|
|
90
|
-
|
|
91
|
-
--red1: hsla(6, 100%, 98%, 1);
|
|
92
|
-
--red2: hsla(8, 100%, 97%, 1);
|
|
93
|
-
--red3: hsla(8, 100%, 93%, 1);
|
|
94
|
-
--red4: hsla(7, 100%, 88%, 1);
|
|
95
|
-
--red5: hsla(8, 100%, 82%, 1);
|
|
96
|
-
--red6: hsla(7, 100%, 77%, 1);
|
|
97
|
-
--red7: hsla(8, 99%, 72%, 1);
|
|
98
|
-
--red8: hsla(8, 65%, 57%, 1);
|
|
99
|
-
--red9: hsla(7, 90%, 69%, 1);
|
|
100
|
-
--red10: hsla(7, 81%, 65%, 1);
|
|
101
|
-
--red11: hsla(8, 100%, 33%, 1);
|
|
102
|
-
--red12: hsla(7, 95%, 15%, 1);
|
|
103
|
-
|
|
104
|
-
--sand1: hsl(50, 20%, 99%);
|
|
105
|
-
--sand2: hsl(60, 7.7%, 97.5%);
|
|
106
|
-
--sand3: hsl(59, 6.5%, 95.1%);
|
|
107
|
-
--sand4: hsl(58, 6.1%, 92.9%);
|
|
108
|
-
--sand5: hsl(57, 6%, 90.7%);
|
|
109
|
-
--sand6: hsl(56, 5.9%, 88.4%);
|
|
110
|
-
--sand7: hsl(55, 5.9%, 85.2%);
|
|
111
|
-
--sand8: hsl(51, 6%, 77.1%);
|
|
112
|
-
--sand9: hsl(50, 2%, 55.7%);
|
|
113
|
-
--sand10: hsl(55, 1.7%, 51.9%);
|
|
114
|
-
--sand11: hsl(50, 2%, 43.1%);
|
|
115
|
-
--sand12: hsl(50, 6%, 10%);
|
|
116
|
-
|
|
117
|
-
--violet1: hsla(248, 80%, 98%, 1);
|
|
118
|
-
--violet2: hsla(245, 73%, 97%, 1);
|
|
119
|
-
--violet3: hsla(245, 67%, 93%, 1);
|
|
120
|
-
--violet4: hsla(244, 67%, 88%, 1);
|
|
121
|
-
--violet5: hsla(245, 67%, 82%, 1);
|
|
122
|
-
--violet6: hsla(245, 68%, 77%, 1);
|
|
123
|
-
--violet7: hsla(245, 62%, 72%, 1);
|
|
124
|
-
--violet8: hsla(250, 53%, 54%, 1);
|
|
125
|
-
--violet9: hsla(245, 64%, 68%, 1);
|
|
126
|
-
--violet10: hsla(246, 57%, 61%, 1);
|
|
127
|
-
--violet11: hsla(241, 50%, 32%, 1);
|
|
128
|
-
--violet12: hsla(244, 49%, 17%, 1);
|
|
129
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { Network, NetworkId } from './types';
|
|
2
|
-
|
|
3
|
-
export const networks: Record<NetworkId, Network> = {
|
|
4
|
-
mainnet: {
|
|
5
|
-
networkId: 'mainnet',
|
|
6
|
-
viewAccountId: 'near',
|
|
7
|
-
nodeUrl: 'https://rpc.mainnet.near.org',
|
|
8
|
-
walletUrl: 'https://wallet.near.org',
|
|
9
|
-
helperUrl: 'https://helper.mainnet.near.org',
|
|
10
|
-
fastAuth: {
|
|
11
|
-
mpcRecoveryUrl: 'https://mpc-recovery-leader-mainnet-cg7nolnlpa-ue.a.run.app',
|
|
12
|
-
authHelperUrl: 'https://api.kitwallet.app',
|
|
13
|
-
accountIdSuffix: 'near',
|
|
14
|
-
firebase: {
|
|
15
|
-
apiKey: 'AIzaSyDhxTQVeoWdnbpYTocBAABbLULGf6H5khQ',
|
|
16
|
-
authDomain: 'near-fastauth-prod.firebaseapp.com',
|
|
17
|
-
projectId: 'near-fastauth-prod',
|
|
18
|
-
storageBucket: 'near-fastauth-prod.appspot.com',
|
|
19
|
-
messagingSenderId: '829449955812',
|
|
20
|
-
appId: '1:829449955812:web:532436aa35572be60abff1',
|
|
21
|
-
measurementId: 'G-T2PPJ8QRYY',
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
testnet: {
|
|
26
|
-
networkId: 'testnet',
|
|
27
|
-
viewAccountId: 'testnet',
|
|
28
|
-
nodeUrl: 'https://rpc.testnet.near.org',
|
|
29
|
-
walletUrl: 'https://wallet.testnet.near.org',
|
|
30
|
-
helperUrl: 'https://helper.testnet.near.org',
|
|
31
|
-
fastAuth: {
|
|
32
|
-
mpcRecoveryUrl: 'https://mpc-recovery-7tk2cmmtcq-ue.a.run.app',
|
|
33
|
-
authHelperUrl: 'https://testnet-api.kitwallet.app',
|
|
34
|
-
accountIdSuffix: 'testnet',
|
|
35
|
-
firebase: {
|
|
36
|
-
apiKey: 'AIzaSyDAh6lSSkEbpRekkGYdDM5jazV6IQnIZFU',
|
|
37
|
-
authDomain: 'pagoda-oboarding-dev.firebaseapp.com',
|
|
38
|
-
projectId: 'pagoda-oboarding-dev',
|
|
39
|
-
storageBucket: 'pagoda-oboarding-dev.appspot.com',
|
|
40
|
-
messagingSenderId: '116526963563',
|
|
41
|
-
appId: '1:116526963563:web:053cb0c425bf514007ca2e',
|
|
42
|
-
measurementId: 'G-HF2NBGE60S',
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export const networkId: NetworkId = 'mainnet';
|
|
49
|
-
export const network = networks[networkId];
|