@xyo-network/react-chain-network 1.20.4 → 1.20.8

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.
Files changed (40) hide show
  1. package/dist/browser/components/broadcast/details/SummaryStack.d.ts +1 -1
  2. package/dist/browser/components/broadcast/details/SummaryStack.d.ts.map +1 -1
  3. package/dist/browser/hooks/provider/index.d.ts +0 -4
  4. package/dist/browser/hooks/provider/index.d.ts.map +1 -1
  5. package/dist/browser/hooks/provider/useViewerInPage.d.ts +7 -4
  6. package/dist/browser/hooks/provider/useViewerInPage.d.ts.map +1 -1
  7. package/dist/browser/hooks/status/usePollNetworkStatus.d.ts.map +1 -1
  8. package/dist/browser/index.d.ts +1 -0
  9. package/dist/browser/index.d.ts.map +1 -1
  10. package/dist/browser/index.mjs +129 -151
  11. package/dist/browser/index.mjs.map +1 -1
  12. package/dist/browser/model/BroadcastRpc.d.ts +2 -1
  13. package/dist/browser/model/BroadcastRpc.d.ts.map +1 -1
  14. package/dist/browser/story/NetworkGatewayDecorators.d.ts +5 -0
  15. package/dist/browser/story/NetworkGatewayDecorators.d.ts.map +1 -0
  16. package/dist/browser/story/index.d.ts +2 -0
  17. package/dist/browser/story/index.d.ts.map +1 -0
  18. package/package.json +20 -17
  19. package/src/components/broadcast/details/SummaryStack.tsx +1 -1
  20. package/src/hooks/provider/UseViewerInPageV2.stories.tsx +5 -14
  21. package/src/hooks/provider/index.ts +0 -4
  22. package/src/hooks/provider/useViewerInPage.ts +11 -33
  23. package/src/hooks/status/usePollNetworkStatus.ts +2 -3
  24. package/src/index.ts +1 -0
  25. package/src/model/BroadcastRpc.ts +2 -1
  26. package/src/story/NetworkGatewayDecorators.tsx +44 -0
  27. package/src/story/index.ts +1 -0
  28. package/dist/browser/hooks/provider/useActiveNetworkCurrentBlock.d.ts +0 -101
  29. package/dist/browser/hooks/provider/useActiveNetworkCurrentBlock.d.ts.map +0 -1
  30. package/dist/browser/hooks/provider/useActiveNetworkNetwork.d.ts +0 -2
  31. package/dist/browser/hooks/provider/useActiveNetworkNetwork.d.ts.map +0 -1
  32. package/dist/browser/hooks/provider/useActiveNetworkRunner.d.ts +0 -2
  33. package/dist/browser/hooks/provider/useActiveNetworkRunner.d.ts.map +0 -1
  34. package/dist/browser/hooks/provider/useViewerInWallet.d.ts +0 -7
  35. package/dist/browser/hooks/provider/useViewerInWallet.d.ts.map +0 -1
  36. package/src/hooks/provider/UseViewerInPage.stories.tsx +0 -129
  37. package/src/hooks/provider/useActiveNetworkCurrentBlock.ts +0 -26
  38. package/src/hooks/provider/useActiveNetworkNetwork.ts +0 -10
  39. package/src/hooks/provider/useActiveNetworkRunner.ts +0 -11
  40. package/src/hooks/provider/useViewerInWallet.ts +0 -14
@@ -0,0 +1,44 @@
1
+ import type { Decorator } from '@storybook/react-vite'
2
+ import {
3
+ LocalNetwork, MainNetwork, SequenceNetwork,
4
+ } from '@xyo-network/xl1-sdk'
5
+ import React from 'react'
6
+
7
+ import type { ChainNetworkSettings } from '../context/index.ts'
8
+ import { ActiveGatewayProvider, ChainNetworkProvider } from '../context/index.ts'
9
+
10
+ const AvailableNetworks = [MainNetwork, SequenceNetwork, LocalNetwork]
11
+ const networkSettings: ChainNetworkSettings = { [LocalNetwork.id]: { proxy: true } }
12
+
13
+ const getActiveMainnetNetwork = async () => await Promise.resolve(AvailableNetworks[0])
14
+ export const MainnetNetworkGatewayDecorator: Decorator = (Story, args) => {
15
+ return (
16
+ <ChainNetworkProvider networks={AvailableNetworks} networkSettings={networkSettings} getActiveNetwork={getActiveMainnetNetwork}>
17
+ <ActiveGatewayProvider>
18
+ <Story {...args} />
19
+ </ActiveGatewayProvider>
20
+ </ChainNetworkProvider>
21
+ )
22
+ }
23
+
24
+ const getActiveSequenceNetwork = async () => await Promise.resolve(AvailableNetworks[1])
25
+ export const SequenceNetworkGatewayDecorator: Decorator = (Story, args) => {
26
+ return (
27
+ <ChainNetworkProvider networks={AvailableNetworks} networkSettings={networkSettings} getActiveNetwork={getActiveSequenceNetwork}>
28
+ <ActiveGatewayProvider>
29
+ <Story {...args} />
30
+ </ActiveGatewayProvider>
31
+ </ChainNetworkProvider>
32
+ )
33
+ }
34
+
35
+ const getActiveLocalNetwork = async () => await Promise.resolve(AvailableNetworks[2])
36
+ export const LocalNetworkGatewayDecorator: Decorator = (Story, args) => {
37
+ return (
38
+ <ChainNetworkProvider networks={AvailableNetworks} networkSettings={networkSettings} getActiveNetwork={getActiveLocalNetwork}>
39
+ <ActiveGatewayProvider>
40
+ <Story {...args} />
41
+ </ActiveGatewayProvider>
42
+ </ChainNetworkProvider>
43
+ )
44
+ }
@@ -0,0 +1 @@
1
+ export * from './NetworkGatewayDecorators.tsx'
@@ -1,101 +0,0 @@
1
- import type { XyoViewer } from '@xyo-network/xl1-sdk';
2
- export declare const useActiveNetworkCurrentBlock: (refresh?: number, viewer?: XyoViewer) => [[{
3
- $epoch: number;
4
- block: import("@xyo-network/xl1-sdk").XL1BlockNumber;
5
- chain: import("@xylabs/hex").BrandedHex;
6
- previous: import("@xylabs/hex").BrandedHash | null;
7
- schema: "network.xyo.boundwitness" & {
8
- readonly __schema: true;
9
- };
10
- addresses: (Lowercase<string> & {
11
- readonly __hex: true;
12
- } & {
13
- readonly __address: true;
14
- })[];
15
- payload_hashes: import("@xylabs/hex").BrandedHash[];
16
- payload_schemas: import("@xyo-network/payload-model").BrandedSchema<string>[];
17
- previous_hashes: (import("@xylabs/hex").BrandedHash | null)[];
18
- $signatures: (import("@xylabs/hex").BrandedHex | null)[];
19
- _hash: import("@xylabs/hex").BrandedHash;
20
- _dataHash: import("@xylabs/hex").BrandedHash;
21
- protocol?: number | undefined;
22
- step_hashes?: import("@xylabs/hex").BrandedHash[] | undefined;
23
- $destination?: (Lowercase<string> & {
24
- readonly __hex: true;
25
- } & {
26
- readonly __address: true;
27
- }) | undefined;
28
- $sourceQuery?: import("@xylabs/hex").BrandedHash | undefined;
29
- }, {
30
- [x: string]: unknown;
31
- schema: import("@xyo-network/payload-model").BrandedSchema<string>;
32
- _hash: import("@xylabs/hex").BrandedHash;
33
- _dataHash: import("@xylabs/hex").BrandedHash;
34
- }[]] | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
35
- export declare const useActiveNetworkCurrentBlockInPage: (refresh?: number) => [[{
36
- $epoch: number;
37
- block: import("@xyo-network/xl1-sdk").XL1BlockNumber;
38
- chain: import("@xylabs/hex").BrandedHex;
39
- previous: import("@xylabs/hex").BrandedHash | null;
40
- schema: "network.xyo.boundwitness" & {
41
- readonly __schema: true;
42
- };
43
- addresses: (Lowercase<string> & {
44
- readonly __hex: true;
45
- } & {
46
- readonly __address: true;
47
- })[];
48
- payload_hashes: import("@xylabs/hex").BrandedHash[];
49
- payload_schemas: import("@xyo-network/payload-model").BrandedSchema<string>[];
50
- previous_hashes: (import("@xylabs/hex").BrandedHash | null)[];
51
- $signatures: (import("@xylabs/hex").BrandedHex | null)[];
52
- _hash: import("@xylabs/hex").BrandedHash;
53
- _dataHash: import("@xylabs/hex").BrandedHash;
54
- protocol?: number | undefined;
55
- step_hashes?: import("@xylabs/hex").BrandedHash[] | undefined;
56
- $destination?: (Lowercase<string> & {
57
- readonly __hex: true;
58
- } & {
59
- readonly __address: true;
60
- }) | undefined;
61
- $sourceQuery?: import("@xylabs/hex").BrandedHash | undefined;
62
- }, {
63
- [x: string]: unknown;
64
- schema: import("@xyo-network/payload-model").BrandedSchema<string>;
65
- _hash: import("@xylabs/hex").BrandedHash;
66
- _dataHash: import("@xylabs/hex").BrandedHash;
67
- }[]] | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
68
- export declare const useActiveNetworkCurrentBlockInWallet: (refresh?: number) => [[{
69
- $epoch: number;
70
- block: import("@xyo-network/xl1-sdk").XL1BlockNumber;
71
- chain: import("@xylabs/hex").BrandedHex;
72
- previous: import("@xylabs/hex").BrandedHash | null;
73
- schema: "network.xyo.boundwitness" & {
74
- readonly __schema: true;
75
- };
76
- addresses: (Lowercase<string> & {
77
- readonly __hex: true;
78
- } & {
79
- readonly __address: true;
80
- })[];
81
- payload_hashes: import("@xylabs/hex").BrandedHash[];
82
- payload_schemas: import("@xyo-network/payload-model").BrandedSchema<string>[];
83
- previous_hashes: (import("@xylabs/hex").BrandedHash | null)[];
84
- $signatures: (import("@xylabs/hex").BrandedHex | null)[];
85
- _hash: import("@xylabs/hex").BrandedHash;
86
- _dataHash: import("@xylabs/hex").BrandedHash;
87
- protocol?: number | undefined;
88
- step_hashes?: import("@xylabs/hex").BrandedHash[] | undefined;
89
- $destination?: (Lowercase<string> & {
90
- readonly __hex: true;
91
- } & {
92
- readonly __address: true;
93
- }) | undefined;
94
- $sourceQuery?: import("@xylabs/hex").BrandedHash | undefined;
95
- }, {
96
- [x: string]: unknown;
97
- schema: import("@xyo-network/payload-model").BrandedSchema<string>;
98
- _hash: import("@xylabs/hex").BrandedHash;
99
- _dataHash: import("@xylabs/hex").BrandedHash;
100
- }[]] | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
101
- //# sourceMappingURL=useActiveNetworkCurrentBlock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActiveNetworkCurrentBlock.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkCurrentBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAKrD,eAAO,MAAM,4BAA4B,GAAI,gBAAW,EAAE,SAAS,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGAI3E,CAAA;AAGD,eAAO,MAAM,kCAAkC,GAAI,gBAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGAK7D,CAAA;AAED,eAAO,MAAM,oCAAoC,GAAI,gBAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGAK/D,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const useActiveNetworkNetwork: () => import("@xyo-network/xl1-protocol-sdk").SimpleXyoNetwork | undefined;
2
- //# sourceMappingURL=useActiveNetworkNetwork.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActiveNetworkNetwork.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkNetwork.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,4EAInC,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const useActiveNetworkRunner: () => [import("@xyo-network/xl1-protocol-sdk").CreatableProviderInstance<import("@xyo-network/xl1-rpc").JsonRpcXyoRunner, string[], import("@xyo-network/xl1-protocol-sdk").CreatableProviderParams<import("@xyo-network/xl1-protocol-sdk").CreatableProviderContextType>, import("@xyo-network/xl1-protocol-sdk").CreatableProviderEventData> | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
2
- //# sourceMappingURL=useActiveNetworkRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActiveNetworkRunner.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkRunner.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,6aAKlC,CAAA"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Get the viewer directly from the active network
3
- * @returns - The viewer for the active network
4
- */
5
- /** @deprecated use useViewerFromGateway in \@xyo-network/react-chain-provider */
6
- export declare const useViewerInWallet: () => import("@xyo-network/xl1-protocol").XyoViewer | undefined;
7
- //# sourceMappingURL=useViewerInWallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useViewerInWallet.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useViewerInWallet.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,iEAI7B,CAAA"}
@@ -1,129 +0,0 @@
1
- import {
2
- MenuItem, Select, Stack, Typography,
3
- } from '@mui/material'
4
- import type { Decorator, StoryFn } from '@storybook/react-vite'
5
- import { ButtonEx } from '@xylabs/react-button'
6
- import { ErrorRender } from '@xylabs/react-error'
7
- import {
8
- isDefined, isDefinedNotNull, isUndefined, isUndefinedOrNull,
9
- } from '@xylabs/sdk-js'
10
- import { IframeWalletWarningDecorator } from '@xyo-network/react-chain-shared'
11
- import type { HydratedBlock, NetworkId } from '@xyo-network/xl1-sdk'
12
- import {
13
- LocalNetwork, MainNetwork, SequenceNetwork,
14
- } from '@xyo-network/xl1-sdk'
15
- import React, { useCallback, useState } from 'react'
16
-
17
- import { BroadcastedRpcCallsDrawer } from '../../components/index.ts'
18
- import type { ChainNetworkSettings } from '../../context/index.ts'
19
- import { ChainNetworkProvider, useChainNetwork } from '../../context/index.ts'
20
- import { useRpcBroadcastListener } from './useRpcBroadcastListener.ts'
21
- import { useViewerInPage } from './useViewerInPage.ts'
22
-
23
- const UseViewerInPageStoryDecorator: Decorator = (Story, args) => {
24
- return (
25
- <ChainNetworkProvider networkSettings={networkSettings}>
26
- <Story {...args} />
27
- </ChainNetworkProvider>
28
- )
29
- }
30
-
31
- const AvailableNetworks = [MainNetwork, SequenceNetwork, LocalNetwork]
32
- const networkSettings: ChainNetworkSettings = { [LocalNetwork.id]: { proxy: true } }
33
- const getActiveNetwork = async () => await Promise.resolve(AvailableNetworks[2])
34
- const UseViewerInPageStoryProxyDecorator: Decorator = (Story, args) => {
35
- return (
36
- <ChainNetworkProvider networks={AvailableNetworks} networkSettings={networkSettings} getActiveNetwork={getActiveNetwork}>
37
- <StubNetworkSelector />
38
- <Story {...args} />
39
- </ChainNetworkProvider>
40
- )
41
- }
42
-
43
- const StubNetworkSelector: React.FC = () => {
44
- const { updateActiveNetwork } = useChainNetwork()
45
- return (
46
- <Select size="small" defaultValue={LocalNetwork.id} onChange={event => updateActiveNetwork?.(event.target.value as NetworkId)}>
47
- {AvailableNetworks.map(network => (
48
- <MenuItem key={network.id} value={network.id}>{network.name}</MenuItem>
49
- ))}
50
- </Select>
51
- )
52
- }
53
-
54
- const UseViewerInPageStoryTemplate: React.FC = () => {
55
- const { activeNetwork } = useChainNetwork()
56
- const viewer = useViewerInPage(activeNetwork)
57
- const [error, setError] = useState<Error | null>(null)
58
- const [result, setResult] = useState<HydratedBlock | null | undefined>()
59
- const [loading, setLoading] = useState(false)
60
- const [drawerOpen, setDrawerOpen] = useState(false)
61
- const { clearEvents, events } = useRpcBroadcastListener()
62
-
63
- const handleClick = useCallback(async () => {
64
- if (isDefinedNotNull(viewer)) {
65
- try {
66
- setError(null)
67
- setResult(undefined)
68
- setLoading(true)
69
- const block = await viewer.currentBlock()
70
- setError(null)
71
- setResult(block)
72
- setLoading(false)
73
- } catch (err) {
74
- setError(err as Error)
75
- setResult(undefined)
76
- setLoading(false)
77
- }
78
- }
79
- }, [viewer])
80
-
81
- if (isDefined(viewer) && isUndefined(result) && isUndefinedOrNull(error) && !loading) {
82
- void handleClick()
83
- }
84
-
85
- return (
86
- <Stack gap={2} alignItems="center">
87
- <BroadcastedRpcCallsDrawer
88
- open={drawerOpen}
89
- events={events}
90
- onClearEvents={clearEvents}
91
- onClose={() => setDrawerOpen(false)}
92
- />
93
- <ButtonEx disabled={Object.keys(events).length === 0} variant="contained" onClick={() => setDrawerOpen(true)}>
94
- Show Broadcasted RPC Calls
95
- </ButtonEx>
96
- <ButtonEx loading={loading} variant="contained" onClick={() => void handleClick()} disabled={!isDefined(viewer)}>
97
- Get Current Block
98
- </ButtonEx>
99
- {isDefined(result)
100
- ? (
101
- <Typography variant="h4">
102
- Block:
103
- {result?.[0].block}
104
- </Typography>
105
- )
106
- : null}
107
- <pre>
108
- {JSON.stringify(result, null, 2)}
109
- </pre>
110
- <ErrorRender error={error} />
111
- </Stack>
112
- )
113
- }
114
-
115
- export default {
116
- title: 'provider/useViewerInPage',
117
- component: UseViewerInPageStoryTemplate,
118
- }
119
-
120
- const Template: StoryFn<typeof UseViewerInPageStoryTemplate> = args => <UseViewerInPageStoryTemplate {...args} />
121
-
122
- const Default = Template.bind({})
123
- Default.decorators = [IframeWalletWarningDecorator, UseViewerInPageStoryDecorator]
124
- Default.args = {}
125
- const Proxy = Template.bind({})
126
- Proxy.decorators = [IframeWalletWarningDecorator, UseViewerInPageStoryProxyDecorator]
127
- Proxy.args = {}
128
-
129
- export { Default, Proxy }
@@ -1,26 +0,0 @@
1
- import { useCurrentBlock, useViewerFromWallet } from '@xyo-network/react-chain-provider'
2
- import type { XyoViewer } from '@xyo-network/xl1-sdk'
3
-
4
- import { useViewerInPage } from './useViewerInPage.ts'
5
-
6
- /* @deprecated - use useCurrentBlock from @xyo-network/react-chain-provider instead */
7
- export const useActiveNetworkCurrentBlock = (refresh = 1, viewer?: XyoViewer) => {
8
- const currentBlock = useCurrentBlock(refresh, viewer)
9
-
10
- return currentBlock
11
- }
12
-
13
- /* @deprecated - use useCurrentBlock from @xyo-network/react-chain-provider instead */
14
- export const useActiveNetworkCurrentBlockInPage = (refresh = 1) => {
15
- const viewer = useViewerInPage()
16
- const currentBlock = useCurrentBlock(refresh, viewer)
17
-
18
- return currentBlock
19
- }
20
-
21
- export const useActiveNetworkCurrentBlockInWallet = (refresh = 1) => {
22
- const [viewer] = useViewerFromWallet()
23
- const currentBlock = useCurrentBlock(refresh, viewer)
24
-
25
- return currentBlock
26
- }
@@ -1,10 +0,0 @@
1
- import { useNetwork } from '@xyo-network/react-chain-provider'
2
-
3
- import { useChainNetwork } from '../../context/index.ts'
4
-
5
- /* @deprecated - use useNetworkFromGateway from @xyo-network/react-chain-provider instead */
6
- export const useActiveNetworkNetwork = () => {
7
- const { activeNetwork } = useChainNetwork()
8
- const network = useNetwork(activeNetwork?.id)
9
- return network
10
- }
@@ -1,11 +0,0 @@
1
- import { useHttpRpcRunner } from '@xyo-network/react-chain-provider'
2
-
3
- import { useChainNetwork } from '../../context/index.ts'
4
-
5
- /* @deprecated use useRunnerFromGateway in @xyo-network/react-chain-provider */
6
- export const useActiveNetworkRunner = () => {
7
- const { activeNetwork } = useChainNetwork()
8
- const runner = useHttpRpcRunner(activeNetwork?.url)
9
-
10
- return runner
11
- }
@@ -1,14 +0,0 @@
1
- import { useHttpRpcViewer } from '@xyo-network/react-chain-provider'
2
-
3
- import { useChainNetwork } from '../../context/index.ts'
4
-
5
- /**
6
- * Get the viewer directly from the active network
7
- * @returns - The viewer for the active network
8
- */
9
- /** @deprecated use useViewerFromGateway in \@xyo-network/react-chain-provider */
10
- export const useViewerInWallet = () => {
11
- const { activeNetwork } = useChainNetwork()
12
- const walletViewer = useHttpRpcViewer(activeNetwork?.url)
13
- return walletViewer
14
- }