@gnolang/gnonative 1.1.0 → 1.2.0
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/android/libs/gnocore.aar +0 -0
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/provider/{gnokey-provider.d.ts → gnonative-provider.d.ts} +7 -7
- package/build/provider/gnonative-provider.d.ts.map +1 -0
- package/build/provider/{gnokey-provider.js → gnonative-provider.js} +15 -15
- package/build/provider/gnonative-provider.js.map +1 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/GnoCore +0 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/A/GnoCore +0 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/Current/GnoCore +0 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64_x86_64-simulator/GnoCore.framework/GnoCore +0 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64_x86_64-simulator/GnoCore.framework/Versions/A/GnoCore +0 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64_x86_64-simulator/GnoCore.framework/Versions/Current/GnoCore +0 -0
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/provider/{gnokey-provider.tsx → gnonative-provider.tsx} +17 -17
- package/build/provider/gnokey-provider.d.ts.map +0 -1
- package/build/provider/gnokey-provider.js.map +0 -1
package/android/libs/gnocore.aar
CHANGED
|
Binary file
|
package/build/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ import 'fast-text-encoding';
|
|
|
5
5
|
export declare function addChangeListener(listener: (event: ChangeEventPayload) => void): Subscription;
|
|
6
6
|
export { ChangeEventPayload, GnonativeView, GnonativeViewProps };
|
|
7
7
|
export { useGno } from './hooks/use-gno';
|
|
8
|
-
export * from './provider/
|
|
8
|
+
export * from './provider/gnonative-provider';
|
|
9
9
|
export * from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,oBAAoB,CAAC;AAM5B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,YAAY,CAE7F;AAED,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,oBAAoB,CAAC;AAM5B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,YAAY,CAE7F;AAED,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sDAAsD,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -9,6 +9,6 @@ export function addChangeListener(listener) {
|
|
|
9
9
|
}
|
|
10
10
|
export { GnonativeView };
|
|
11
11
|
export { useGno } from './hooks/use-gno';
|
|
12
|
-
export * from './provider/
|
|
12
|
+
export * from './provider/gnonative-provider';
|
|
13
13
|
export * from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAgB,MAAM,mBAAmB,CAAC;AAKnF,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,oBAAoB,CAAC;AAE3B,MAAc,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAE3F,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,eAAe,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAElF,MAAM,UAAU,iBAAiB,CAAC,QAA6C;IAC7E,OAAO,OAAO,CAAC,WAAW,CAAqB,UAAU,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED,OAAO,EAAsB,aAAa,EAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAgB,MAAM,mBAAmB,CAAC;AAKnF,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,oBAAoB,CAAC;AAE3B,MAAc,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAE3F,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,eAAe,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAElF,MAAM,UAAU,iBAAiB,CAAC,QAA6C;IAC7E,OAAO,OAAO,CAAC,WAAW,CAAqB,UAAU,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED,OAAO,EAAsB,aAAa,EAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sDAAsD,CAAC","sourcesContent":["import { EventEmitter, NativeModulesProxy, Subscription } from 'expo-modules-core';\n\n// Import the native module. On web, it will be resolved to Gnonative.web.ts\n// and on native platforms to Gnonative.ts\nimport { ChangeEventPayload, GnonativeViewProps } from './Gnonative.types';\nimport GnonativeModule from './GnonativeModule';\nimport GnonativeView from './GnonativeView';\nimport 'fast-text-encoding';\n\n(Symbol as any).asyncIterator = Symbol.asyncIterator || Symbol.for('Symbol.asyncIterator');\n\nconst emitter = new EventEmitter(GnonativeModule ?? NativeModulesProxy.Gnonative);\n\nexport function addChangeListener(listener: (event: ChangeEventPayload) => void): Subscription {\n return emitter.addListener<ChangeEventPayload>('onChange', listener);\n}\n\nexport { ChangeEventPayload, GnonativeView, GnonativeViewProps };\nexport { useGno } from './hooks/use-gno';\nexport * from './provider/gnonative-provider';\nexport * from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CallResponse, DeleteAccountResponse, GetActiveAccountResponse, HelloStreamResponse, QueryAccountResponse, QueryResponse, SelectAccountResponse, SendResponse, SetChainIDResponse, SetPasswordResponse, SetRemoteResponse } from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';
|
|
2
2
|
import { GnoAccount } from '../hooks/types';
|
|
3
|
-
export interface
|
|
4
|
-
|
|
3
|
+
export interface GnoNativeContextProps {
|
|
4
|
+
init: (config: ConfigProps) => Promise<boolean>;
|
|
5
5
|
setRemote: (remote: string) => Promise<SetRemoteResponse>;
|
|
6
6
|
getRemote: () => Promise<string>;
|
|
7
7
|
setChainID: (chainId: string) => Promise<SetChainIDResponse>;
|
|
@@ -34,11 +34,11 @@ interface ConfigProps {
|
|
|
34
34
|
remote: string;
|
|
35
35
|
chain_id: string;
|
|
36
36
|
}
|
|
37
|
-
interface
|
|
37
|
+
interface GnoNativeProviderProps {
|
|
38
38
|
config: ConfigProps;
|
|
39
39
|
children: React.ReactNode;
|
|
40
40
|
}
|
|
41
|
-
declare const
|
|
42
|
-
declare function
|
|
43
|
-
export {
|
|
44
|
-
//# sourceMappingURL=
|
|
41
|
+
declare const GnoNativeProvider: React.FC<GnoNativeProviderProps>;
|
|
42
|
+
declare function useGnoNativeContext(): GnoNativeContextProps;
|
|
43
|
+
export { useGnoNativeContext, GnoNativeProvider };
|
|
44
|
+
//# sourceMappingURL=gnonative-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gnonative-provider.d.ts","sourceRoot":"","sources":["../../src/provider/gnonative-provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,19 +8,19 @@ var BridgeStatus;
|
|
|
8
8
|
BridgeStatus[BridgeStatus["Starting"] = 1] = "Starting";
|
|
9
9
|
BridgeStatus[BridgeStatus["Started"] = 2] = "Started";
|
|
10
10
|
})(BridgeStatus || (BridgeStatus = {}));
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const GnoNativeContext = createContext(null);
|
|
12
|
+
const GnoNativeProvider = ({ children, config }) => {
|
|
13
13
|
const [initialized, setInitialized] = useState(false);
|
|
14
14
|
const [clientInstance, setClientInstance] = useState(undefined);
|
|
15
15
|
const [bridgeStatus, setBridgeStatus] = useState(BridgeStatus.Stopped);
|
|
16
16
|
useEffect(() => {
|
|
17
17
|
(async () => {
|
|
18
|
-
await
|
|
18
|
+
await init(config);
|
|
19
19
|
setInitialized(true);
|
|
20
20
|
})();
|
|
21
21
|
}, []);
|
|
22
|
-
async function
|
|
23
|
-
console.log('🍄 Initializing
|
|
22
|
+
async function init(config) {
|
|
23
|
+
console.log('🍄 Initializing GnoNative on remote: %s chain_id: %s', config.remote, config.chain_id);
|
|
24
24
|
if (bridgeStatus === BridgeStatus.Stopped) {
|
|
25
25
|
console.log('Bridge stopped. Initializing...');
|
|
26
26
|
await initBridge();
|
|
@@ -35,9 +35,9 @@ const GnokeyProvider = ({ children, config }) => {
|
|
|
35
35
|
setClientInstance(client);
|
|
36
36
|
console.log('GoBridge GRPC client instance. Done.');
|
|
37
37
|
try {
|
|
38
|
-
await client.setRemote(new SetRemoteRequest({ remote:
|
|
39
|
-
await client.setChainID(new SetChainIDRequest({ chainId:
|
|
40
|
-
console.log('✅
|
|
38
|
+
await client.setRemote(new SetRemoteRequest({ remote: config.remote }));
|
|
39
|
+
await client.setChainID(new SetChainIDRequest({ chainId: config.chain_id }));
|
|
40
|
+
console.log('✅ GnoNative bridge initialized.');
|
|
41
41
|
}
|
|
42
42
|
catch (error) {
|
|
43
43
|
console.error(error);
|
|
@@ -238,7 +238,7 @@ const GnokeyProvider = ({ children, config }) => {
|
|
|
238
238
|
return client.helloStream(new HelloRequest({ name }));
|
|
239
239
|
};
|
|
240
240
|
const value = {
|
|
241
|
-
|
|
241
|
+
init,
|
|
242
242
|
setRemote,
|
|
243
243
|
getRemote,
|
|
244
244
|
setChainID,
|
|
@@ -271,14 +271,14 @@ const GnokeyProvider = ({ children, config }) => {
|
|
|
271
271
|
if (!initialized) {
|
|
272
272
|
return null;
|
|
273
273
|
}
|
|
274
|
-
return <
|
|
274
|
+
return <GnoNativeContext.Provider value={value}>{children}</GnoNativeContext.Provider>;
|
|
275
275
|
};
|
|
276
|
-
function
|
|
277
|
-
const context = useContext(
|
|
276
|
+
function useGnoNativeContext() {
|
|
277
|
+
const context = useContext(GnoNativeContext);
|
|
278
278
|
if (context === undefined) {
|
|
279
|
-
throw new Error('
|
|
279
|
+
throw new Error('useGnoNativeContext must be used within a GnoNativeProvider');
|
|
280
280
|
}
|
|
281
281
|
return context;
|
|
282
282
|
}
|
|
283
|
-
export {
|
|
284
|
-
//# sourceMappingURL=
|
|
283
|
+
export { useGnoNativeContext, GnoNativeProvider };
|
|
284
|
+
//# sourceMappingURL=gnonative-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gnonative-provider.js","sourceRoot":"","sources":["../../src/provider/gnonative-provider.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AddressFromBech32Request,\n AddressToBech32Request,\n CallRequest,\n CallResponse,\n CreateAccountRequest,\n DeleteAccountRequest,\n DeleteAccountResponse,\n GenerateRecoveryPhraseRequest,\n GetActiveAccountRequest,\n GetActiveAccountResponse,\n GetChainIDRequest,\n GetKeyInfoByAddressRequest,\n GetKeyInfoByNameOrAddressRequest,\n GetKeyInfoByNameRequest,\n GetRemoteRequest,\n HasKeyByAddressRequest,\n HasKeyByNameOrAddressRequest,\n HasKeyByNameRequest,\n HelloRequest,\n HelloStreamResponse,\n ListKeyInfoRequest,\n MsgCall,\n MsgSend,\n QEvalRequest,\n QueryAccountRequest,\n QueryAccountResponse,\n QueryRequest,\n QueryResponse,\n RenderRequest,\n SelectAccountRequest,\n SelectAccountResponse,\n SendRequest,\n SendResponse,\n SetChainIDRequest,\n SetChainIDResponse,\n SetPasswordRequest,\n SetPasswordResponse,\n SetRemoteRequest,\n SetRemoteResponse,\n} from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';\nimport { GnoNativeService } from '@buf/gnolang_gnonative.connectrpc_es/rpc_connect';\nimport { PromiseClient } from '@connectrpc/connect';\nimport { createContext, useContext, useEffect, useState } from 'react';\n\nimport { GoBridge } from '../GoBridge';\nimport * as Grpc from '../grpc/client';\nimport { GnoAccount } from '../hooks/types';\n\nexport interface GnoNativeContextProps {\n init: (config: ConfigProps) => Promise<boolean>;\n\n setRemote: (remote: string) => Promise<SetRemoteResponse>;\n getRemote: () => Promise<string>;\n setChainID: (chainId: string) => Promise<SetChainIDResponse>;\n getChainID: () => Promise<string>;\n createAccount: (\n nameOrBech32: string,\n mnemonic: string,\n password: string,\n ) => Promise<GnoAccount | undefined>;\n generateRecoveryPhrase: () => Promise<string>;\n listKeyInfo: () => Promise<GnoAccount[]>;\n hasKeyByName: (name: string) => Promise<boolean>;\n hasKeyByAddress: (address: Uint8Array) => Promise<boolean>;\n hasKeyByNameOrAddress: (nameOrBech32: string) => Promise<boolean>;\n getKeyInfoByName: (name: string) => Promise<GnoAccount | undefined>;\n getKeyInfoByAddress: (address: Uint8Array) => Promise<GnoAccount | undefined>;\n getKeyInfoByNameOrAddress: (nameOrBech32: string) => Promise<GnoAccount | undefined>;\n selectAccount: (nameOrBech32: string) => Promise<SelectAccountResponse>;\n setPassword: (password: string) => Promise<SetPasswordResponse>;\n getActiveAccount: () => Promise<GetActiveAccountResponse>;\n queryAccount: (address: Uint8Array) => Promise<QueryAccountResponse>;\n deleteAccount: (\n nameOrBech32: string,\n password: string | undefined,\n skipPassword: boolean,\n ) => Promise<DeleteAccountResponse>;\n query: (path: string, data: Uint8Array) => Promise<QueryResponse>;\n render: (packagePath: string, args: string) => Promise<string>;\n qEval: (packagePath: string, expression: string) => Promise<string>;\n call: (\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: number,\n send?: string,\n memo?: string,\n ) => Promise<AsyncIterable<CallResponse>>;\n send: (\n toAddress: Uint8Array,\n send: string,\n gasFee: string,\n gasWanted: number,\n memo?: string,\n ) => Promise<AsyncIterable<SendResponse>>;\n addressToBech32: (address: Uint8Array) => Promise<string>;\n addressFromBech32: (bech32Address: string) => Promise<Uint8Array>;\n // closeBridge: () => Promise<void>;\n // initBridge: () => Promise<void>;\n // debug\n hello: (name: string) => Promise<string>;\n helloStream: (name: string) => Promise<AsyncIterable<HelloStreamResponse>>;\n}\n\ninterface ConfigProps {\n remote: string;\n chain_id: string;\n}\n\ninterface GnoNativeProviderProps {\n config: ConfigProps;\n children: React.ReactNode;\n}\n\nenum BridgeStatus {\n Stopped,\n Starting,\n Started,\n}\n\nconst GnoNativeContext = createContext<GnoNativeContextProps | null>(null);\n\nconst GnoNativeProvider: React.FC<GnoNativeProviderProps> = ({ children, config }) => {\n const [initialized, setInitialized] = useState(false);\n const [clientInstance, setClientInstance] = useState<\n PromiseClient<typeof GnoNativeService> | undefined\n >(undefined);\n const [bridgeStatus, setBridgeStatus] = useState(BridgeStatus.Stopped);\n\n useEffect(() => {\n (async () => {\n await init(config);\n setInitialized(true);\n })();\n }, []);\n\n async function init(config): Promise<boolean> {\n console.log(\n '🍄 Initializing GnoNative on remote: %s chain_id: %s',\n config.remote,\n config.chain_id,\n );\n\n if (bridgeStatus === BridgeStatus.Stopped) {\n console.log('Bridge stopped. Initializing...');\n await initBridge();\n }\n\n if (clientInstance) {\n console.error('GoBridge already initialized.');\n return true;\n }\n\n const port = await GoBridge.getTcpPort();\n console.log('GoBridge GRPC client instance port: %s', port);\n const client = await Grpc.createClient(port);\n setClientInstance(client);\n console.log('GoBridge GRPC client instance. Done.');\n\n try {\n await client.setRemote(new SetRemoteRequest({ remote: config.remote }));\n await client.setChainID(new SetChainIDRequest({ chainId: config.chain_id }));\n\n console.log('✅ GnoNative bridge initialized.');\n } catch (error) {\n console.error(error);\n return false;\n }\n\n return true;\n }\n\n const initBridge = async () => {\n if (bridgeStatus === BridgeStatus.Stopped) {\n console.log('Initializing bridge...');\n setBridgeStatus(BridgeStatus.Starting);\n await GoBridge.initBridge();\n console.log('Bridge initialized.');\n setBridgeStatus(BridgeStatus.Started);\n }\n };\n\n const setRemote = async (remote: string) => {\n const client = await getClient();\n const response = await client.setRemote(new SetRemoteRequest({ remote }));\n return response;\n };\n\n const getRemote = async () => {\n const client = await getClient();\n const response = await client.getRemote(new GetRemoteRequest());\n return response.remote;\n };\n\n const setChainID = async (chainId: string) => {\n const client = await getClient();\n const response = await client.setChainID(new SetChainIDRequest({ chainId }));\n return response;\n };\n\n const getChainID = async () => {\n const client = await getClient();\n const response = await client.getChainID(new GetChainIDRequest());\n return response.chainId;\n };\n\n const createAccount = async (nameOrBech32: string, mnemonic: string, password: string) => {\n const client = await getClient();\n const reponse = await client.createAccount(\n new CreateAccountRequest({\n nameOrBech32,\n mnemonic,\n password,\n }),\n );\n return reponse.key;\n };\n\n const generateRecoveryPhrase = async () => {\n const client = await getClient();\n const response = await client.generateRecoveryPhrase(new GenerateRecoveryPhraseRequest());\n return response.phrase;\n };\n\n const hasKeyByName = async (name: string) => {\n const client = await getClient();\n const response = await client.hasKeyByName(new HasKeyByNameRequest({ name }));\n return response.has;\n };\n\n const hasKeyByAddress = async (address: Uint8Array) => {\n const client = await getClient();\n const response = await client.hasKeyByAddress(new HasKeyByAddressRequest({ address }));\n return response.has;\n };\n\n const hasKeyByNameOrAddress = async (nameOrBech32: string) => {\n const client = await getClient();\n const response = await client.hasKeyByNameOrAddress(\n new HasKeyByNameOrAddressRequest({ nameOrBech32 }),\n );\n return response.has;\n };\n\n const getKeyInfoByName = async (name: string) => {\n const client = await getClient();\n const response = await client.getKeyInfoByName(new GetKeyInfoByNameRequest({ name }));\n return response.key;\n };\n\n const getKeyInfoByAddress = async (address: Uint8Array) => {\n const client = await getClient();\n const response = await client.getKeyInfoByAddress(new GetKeyInfoByAddressRequest({ address }));\n return response.key;\n };\n\n const getKeyInfoByNameOrAddress = async (nameOrBech32: string) => {\n const client = await getClient();\n const response = await client.getKeyInfoByNameOrAddress(\n new GetKeyInfoByNameOrAddressRequest({ nameOrBech32 }),\n );\n return response.key;\n };\n\n const listKeyInfo = async () => {\n const client = await getClient();\n const response = await client.listKeyInfo(new ListKeyInfoRequest());\n return response.keys;\n };\n\n const selectAccount = async (nameOrBech32: string) => {\n const client = await getClient();\n const response = await client.selectAccount(\n new SelectAccountRequest({\n nameOrBech32,\n }),\n );\n return response;\n };\n\n const getClient = async () => {\n if (!clientInstance) {\n throw new Error('GoBridge client instance not initialized.');\n }\n\n return clientInstance;\n };\n\n const setPassword = async (password: string) => {\n const client = await getClient();\n const response = await client.setPassword(new SetPasswordRequest({ password }));\n return response;\n };\n\n const getActiveAccount = async () => {\n const client = await getClient();\n const response = await client.getActiveAccount(new GetActiveAccountRequest());\n return response;\n };\n\n const queryAccount = async (address: Uint8Array) => {\n const client = await getClient();\n const reponse = await client.queryAccount(new QueryAccountRequest({ address }));\n return reponse;\n };\n\n const deleteAccount = async (\n nameOrBech32: string,\n password: string | undefined,\n skipPassword: boolean,\n ) => {\n const client = await getClient();\n const response = await client.deleteAccount(\n new DeleteAccountRequest({\n nameOrBech32,\n password,\n skipPassword,\n }),\n );\n return response;\n };\n\n const query = async (path: string, data: Uint8Array) => {\n const client = await getClient();\n const reponse = await client.query(\n new QueryRequest({\n path,\n data,\n }),\n );\n return reponse;\n };\n\n const render = async (packagePath: string, args: string) => {\n const client = await getClient();\n const reponse = await client.render(\n new RenderRequest({\n packagePath,\n args,\n }),\n );\n return reponse.result;\n };\n\n const qEval = async (packagePath: string, expression: string) => {\n const client = await getClient();\n const reponse = await client.qEval(\n new QEvalRequest({\n packagePath,\n expression,\n }),\n );\n return reponse.result;\n };\n\n const call = async (\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: number,\n send?: string,\n memo?: string,\n ) => {\n const client = await getClient();\n const reponse = client.call(\n new CallRequest({\n gasFee,\n gasWanted: BigInt(gasWanted),\n memo,\n msgs: [\n new MsgCall({\n packagePath,\n fnc,\n args,\n send,\n }),\n ],\n }),\n );\n return reponse;\n };\n\n const send = async (\n toAddress: Uint8Array,\n send: string,\n gasFee: string,\n gasWanted: number,\n memo?: string,\n ) => {\n const client = await getClient();\n const reponse = client.send(\n new SendRequest({\n gasFee,\n gasWanted: BigInt(gasWanted),\n memo,\n msgs: [\n new MsgSend({\n toAddress,\n send,\n }),\n ],\n }),\n );\n return reponse;\n };\n\n const addressToBech32 = async (address: Uint8Array) => {\n const client = await getClient();\n const response = await client.addressToBech32(new AddressToBech32Request({ address }));\n return response.bech32Address;\n };\n\n const addressFromBech32 = async (bech32Address: string) => {\n const client = await getClient();\n const response = await client.addressFromBech32(\n new AddressFromBech32Request({ bech32Address }),\n );\n return response.address;\n };\n\n // debug\n const hello = async (name: string) => {\n const client = await getClient();\n const response = await client.hello(new HelloRequest({ name }));\n return response.greeting;\n };\n\n // debug\n const helloStream = async (name: string) => {\n const client = await getClient();\n return client.helloStream(new HelloRequest({ name }));\n };\n\n const value = {\n init,\n setRemote,\n getRemote,\n setChainID,\n getChainID,\n createAccount,\n generateRecoveryPhrase,\n listKeyInfo,\n hasKeyByName,\n hasKeyByAddress,\n hasKeyByNameOrAddress,\n getKeyInfoByName,\n getKeyInfoByAddress,\n getKeyInfoByNameOrAddress,\n selectAccount,\n setPassword,\n getActiveAccount,\n queryAccount,\n deleteAccount,\n query,\n render,\n qEval,\n call,\n send,\n addressToBech32,\n addressFromBech32,\n // debug\n hello,\n helloStream,\n };\n\n if (!initialized) {\n return null;\n }\n\n return <GnoNativeContext.Provider value={value}>{children}</GnoNativeContext.Provider>;\n};\n\nfunction useGnoNativeContext() {\n const context = useContext(GnoNativeContext) as GnoNativeContextProps;\n\n if (context === undefined) {\n throw new Error('useGnoNativeContext must be used within a GnoNativeProvider');\n }\n return context;\n}\n\nexport { useGnoNativeContext, GnoNativeProvider };\n"]}
|
|
Binary file
|
|
Binary file
|
package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/Current/GnoCore
CHANGED
|
Binary file
|
package/ios/Frameworks/GnoCore.xcframework/ios-arm64_x86_64-simulator/GnoCore.framework/GnoCore
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -17,5 +17,5 @@ export function addChangeListener(listener: (event: ChangeEventPayload) => void)
|
|
|
17
17
|
|
|
18
18
|
export { ChangeEventPayload, GnonativeView, GnonativeViewProps };
|
|
19
19
|
export { useGno } from './hooks/use-gno';
|
|
20
|
-
export * from './provider/
|
|
20
|
+
export * from './provider/gnonative-provider';
|
|
21
21
|
export * from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';
|
|
@@ -47,8 +47,8 @@ import { GoBridge } from '../GoBridge';
|
|
|
47
47
|
import * as Grpc from '../grpc/client';
|
|
48
48
|
import { GnoAccount } from '../hooks/types';
|
|
49
49
|
|
|
50
|
-
export interface
|
|
51
|
-
|
|
50
|
+
export interface GnoNativeContextProps {
|
|
51
|
+
init: (config: ConfigProps) => Promise<boolean>;
|
|
52
52
|
|
|
53
53
|
setRemote: (remote: string) => Promise<SetRemoteResponse>;
|
|
54
54
|
getRemote: () => Promise<string>;
|
|
@@ -109,7 +109,7 @@ interface ConfigProps {
|
|
|
109
109
|
chain_id: string;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
interface
|
|
112
|
+
interface GnoNativeProviderProps {
|
|
113
113
|
config: ConfigProps;
|
|
114
114
|
children: React.ReactNode;
|
|
115
115
|
}
|
|
@@ -120,9 +120,9 @@ enum BridgeStatus {
|
|
|
120
120
|
Started,
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
const
|
|
123
|
+
const GnoNativeContext = createContext<GnoNativeContextProps | null>(null);
|
|
124
124
|
|
|
125
|
-
const
|
|
125
|
+
const GnoNativeProvider: React.FC<GnoNativeProviderProps> = ({ children, config }) => {
|
|
126
126
|
const [initialized, setInitialized] = useState(false);
|
|
127
127
|
const [clientInstance, setClientInstance] = useState<
|
|
128
128
|
PromiseClient<typeof GnoNativeService> | undefined
|
|
@@ -131,14 +131,14 @@ const GnokeyProvider: React.FC<GnokeyProviderProps> = ({ children, config }) =>
|
|
|
131
131
|
|
|
132
132
|
useEffect(() => {
|
|
133
133
|
(async () => {
|
|
134
|
-
await
|
|
134
|
+
await init(config);
|
|
135
135
|
setInitialized(true);
|
|
136
136
|
})();
|
|
137
137
|
}, []);
|
|
138
138
|
|
|
139
|
-
async function
|
|
139
|
+
async function init(config): Promise<boolean> {
|
|
140
140
|
console.log(
|
|
141
|
-
'🍄 Initializing
|
|
141
|
+
'🍄 Initializing GnoNative on remote: %s chain_id: %s',
|
|
142
142
|
config.remote,
|
|
143
143
|
config.chain_id,
|
|
144
144
|
);
|
|
@@ -160,10 +160,10 @@ const GnokeyProvider: React.FC<GnokeyProviderProps> = ({ children, config }) =>
|
|
|
160
160
|
console.log('GoBridge GRPC client instance. Done.');
|
|
161
161
|
|
|
162
162
|
try {
|
|
163
|
-
await client.setRemote(new SetRemoteRequest({ remote:
|
|
164
|
-
await client.setChainID(new SetChainIDRequest({ chainId:
|
|
163
|
+
await client.setRemote(new SetRemoteRequest({ remote: config.remote }));
|
|
164
|
+
await client.setChainID(new SetChainIDRequest({ chainId: config.chain_id }));
|
|
165
165
|
|
|
166
|
-
console.log('✅
|
|
166
|
+
console.log('✅ GnoNative bridge initialized.');
|
|
167
167
|
} catch (error) {
|
|
168
168
|
console.error(error);
|
|
169
169
|
return false;
|
|
@@ -435,7 +435,7 @@ const GnokeyProvider: React.FC<GnokeyProviderProps> = ({ children, config }) =>
|
|
|
435
435
|
};
|
|
436
436
|
|
|
437
437
|
const value = {
|
|
438
|
-
|
|
438
|
+
init,
|
|
439
439
|
setRemote,
|
|
440
440
|
getRemote,
|
|
441
441
|
setChainID,
|
|
@@ -470,16 +470,16 @@ const GnokeyProvider: React.FC<GnokeyProviderProps> = ({ children, config }) =>
|
|
|
470
470
|
return null;
|
|
471
471
|
}
|
|
472
472
|
|
|
473
|
-
return <
|
|
473
|
+
return <GnoNativeContext.Provider value={value}>{children}</GnoNativeContext.Provider>;
|
|
474
474
|
};
|
|
475
475
|
|
|
476
|
-
function
|
|
477
|
-
const context = useContext(
|
|
476
|
+
function useGnoNativeContext() {
|
|
477
|
+
const context = useContext(GnoNativeContext) as GnoNativeContextProps;
|
|
478
478
|
|
|
479
479
|
if (context === undefined) {
|
|
480
|
-
throw new Error('
|
|
480
|
+
throw new Error('useGnoNativeContext must be used within a GnoNativeProvider');
|
|
481
481
|
}
|
|
482
482
|
return context;
|
|
483
483
|
}
|
|
484
484
|
|
|
485
|
-
export {
|
|
485
|
+
export { useGnoNativeContext, GnoNativeProvider };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gnokey-provider.d.ts","sourceRoot":"","sources":["../../src/provider/gnokey-provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gnokey-provider.js","sourceRoot":"","sources":["../../src/provider/gnokey-provider.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AddressFromBech32Request,\n AddressToBech32Request,\n CallRequest,\n CallResponse,\n CreateAccountRequest,\n DeleteAccountRequest,\n DeleteAccountResponse,\n GenerateRecoveryPhraseRequest,\n GetActiveAccountRequest,\n GetActiveAccountResponse,\n GetChainIDRequest,\n GetKeyInfoByAddressRequest,\n GetKeyInfoByNameOrAddressRequest,\n GetKeyInfoByNameRequest,\n GetRemoteRequest,\n HasKeyByAddressRequest,\n HasKeyByNameOrAddressRequest,\n HasKeyByNameRequest,\n HelloRequest,\n HelloStreamResponse,\n ListKeyInfoRequest,\n MsgCall,\n MsgSend,\n QEvalRequest,\n QueryAccountRequest,\n QueryAccountResponse,\n QueryRequest,\n QueryResponse,\n RenderRequest,\n SelectAccountRequest,\n SelectAccountResponse,\n SendRequest,\n SendResponse,\n SetChainIDRequest,\n SetChainIDResponse,\n SetPasswordRequest,\n SetPasswordResponse,\n SetRemoteRequest,\n SetRemoteResponse,\n} from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';\nimport { GnoNativeService } from '@buf/gnolang_gnonative.connectrpc_es/rpc_connect';\nimport { PromiseClient } from '@connectrpc/connect';\nimport { createContext, useContext, useEffect, useState } from 'react';\n\nimport { GoBridge } from '../GoBridge';\nimport * as Grpc from '../grpc/client';\nimport { GnoAccount } from '../hooks/types';\n\nexport interface GnokeyContextProps {\n initGnokey: (config: ConfigProps) => Promise<boolean>;\n\n setRemote: (remote: string) => Promise<SetRemoteResponse>;\n getRemote: () => Promise<string>;\n setChainID: (chainId: string) => Promise<SetChainIDResponse>;\n getChainID: () => Promise<string>;\n createAccount: (\n nameOrBech32: string,\n mnemonic: string,\n password: string,\n ) => Promise<GnoAccount | undefined>;\n generateRecoveryPhrase: () => Promise<string>;\n listKeyInfo: () => Promise<GnoAccount[]>;\n hasKeyByName: (name: string) => Promise<boolean>;\n hasKeyByAddress: (address: Uint8Array) => Promise<boolean>;\n hasKeyByNameOrAddress: (nameOrBech32: string) => Promise<boolean>;\n getKeyInfoByName: (name: string) => Promise<GnoAccount | undefined>;\n getKeyInfoByAddress: (address: Uint8Array) => Promise<GnoAccount | undefined>;\n getKeyInfoByNameOrAddress: (nameOrBech32: string) => Promise<GnoAccount | undefined>;\n selectAccount: (nameOrBech32: string) => Promise<SelectAccountResponse>;\n setPassword: (password: string) => Promise<SetPasswordResponse>;\n getActiveAccount: () => Promise<GetActiveAccountResponse>;\n queryAccount: (address: Uint8Array) => Promise<QueryAccountResponse>;\n deleteAccount: (\n nameOrBech32: string,\n password: string | undefined,\n skipPassword: boolean,\n ) => Promise<DeleteAccountResponse>;\n query: (path: string, data: Uint8Array) => Promise<QueryResponse>;\n render: (packagePath: string, args: string) => Promise<string>;\n qEval: (packagePath: string, expression: string) => Promise<string>;\n call: (\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: number,\n send?: string,\n memo?: string,\n ) => Promise<AsyncIterable<CallResponse>>;\n send: (\n toAddress: Uint8Array,\n send: string,\n gasFee: string,\n gasWanted: number,\n memo?: string,\n ) => Promise<AsyncIterable<SendResponse>>;\n addressToBech32: (address: Uint8Array) => Promise<string>;\n addressFromBech32: (bech32Address: string) => Promise<Uint8Array>;\n // closeBridge: () => Promise<void>;\n // initBridge: () => Promise<void>;\n // debug\n hello: (name: string) => Promise<string>;\n helloStream: (name: string) => Promise<AsyncIterable<HelloStreamResponse>>;\n}\n\ninterface ConfigProps {\n remote: string;\n chain_id: string;\n}\n\ninterface GnokeyProviderProps {\n config: ConfigProps;\n children: React.ReactNode;\n}\n\nenum BridgeStatus {\n Stopped,\n Starting,\n Started,\n}\n\nconst GnokeyContext = createContext<GnokeyContextProps | null>(null);\n\nconst GnokeyProvider: React.FC<GnokeyProviderProps> = ({ children, config }) => {\n const [initialized, setInitialized] = useState(false);\n const [clientInstance, setClientInstance] = useState<\n PromiseClient<typeof GnoNativeService> | undefined\n >(undefined);\n const [bridgeStatus, setBridgeStatus] = useState(BridgeStatus.Stopped);\n\n useEffect(() => {\n (async () => {\n await initGnokey(config);\n setInitialized(true);\n })();\n }, []);\n\n async function initGnokey(config): Promise<boolean> {\n console.log(\n '🍄 Initializing Gnokey on remote: %s chain_id: %s',\n config.remote,\n config.chain_id,\n );\n\n if (bridgeStatus === BridgeStatus.Stopped) {\n console.log('Bridge stopped. Initializing...');\n await initBridge();\n }\n\n if (clientInstance) {\n console.error('GoBridge already initialized.');\n return true;\n }\n\n const port = await GoBridge.getTcpPort();\n console.log('GoBridge GRPC client instance port: %s', port);\n const client = await Grpc.createClient(port);\n setClientInstance(client);\n console.log('GoBridge GRPC client instance. Done.');\n\n try {\n await client.setRemote(new SetRemoteRequest({ remote: 'gno.land:26657' }));\n await client.setChainID(new SetChainIDRequest({ chainId: 'portal-loop' }));\n\n console.log('✅ Gnokey bridge initialized.');\n } catch (error) {\n console.error(error);\n return false;\n }\n\n return true;\n }\n\n const initBridge = async () => {\n if (bridgeStatus === BridgeStatus.Stopped) {\n console.log('Initializing bridge...');\n setBridgeStatus(BridgeStatus.Starting);\n await GoBridge.initBridge();\n console.log('Bridge initialized.');\n setBridgeStatus(BridgeStatus.Started);\n }\n };\n\n const setRemote = async (remote: string) => {\n const client = await getClient();\n const response = await client.setRemote(new SetRemoteRequest({ remote }));\n return response;\n };\n\n const getRemote = async () => {\n const client = await getClient();\n const response = await client.getRemote(new GetRemoteRequest());\n return response.remote;\n };\n\n const setChainID = async (chainId: string) => {\n const client = await getClient();\n const response = await client.setChainID(new SetChainIDRequest({ chainId }));\n return response;\n };\n\n const getChainID = async () => {\n const client = await getClient();\n const response = await client.getChainID(new GetChainIDRequest());\n return response.chainId;\n };\n\n const createAccount = async (nameOrBech32: string, mnemonic: string, password: string) => {\n const client = await getClient();\n const reponse = await client.createAccount(\n new CreateAccountRequest({\n nameOrBech32,\n mnemonic,\n password,\n }),\n );\n return reponse.key;\n };\n\n const generateRecoveryPhrase = async () => {\n const client = await getClient();\n const response = await client.generateRecoveryPhrase(new GenerateRecoveryPhraseRequest());\n return response.phrase;\n };\n\n const hasKeyByName = async (name: string) => {\n const client = await getClient();\n const response = await client.hasKeyByName(new HasKeyByNameRequest({ name }));\n return response.has;\n };\n\n const hasKeyByAddress = async (address: Uint8Array) => {\n const client = await getClient();\n const response = await client.hasKeyByAddress(new HasKeyByAddressRequest({ address }));\n return response.has;\n };\n\n const hasKeyByNameOrAddress = async (nameOrBech32: string) => {\n const client = await getClient();\n const response = await client.hasKeyByNameOrAddress(\n new HasKeyByNameOrAddressRequest({ nameOrBech32 }),\n );\n return response.has;\n };\n\n const getKeyInfoByName = async (name: string) => {\n const client = await getClient();\n const response = await client.getKeyInfoByName(new GetKeyInfoByNameRequest({ name }));\n return response.key;\n };\n\n const getKeyInfoByAddress = async (address: Uint8Array) => {\n const client = await getClient();\n const response = await client.getKeyInfoByAddress(new GetKeyInfoByAddressRequest({ address }));\n return response.key;\n };\n\n const getKeyInfoByNameOrAddress = async (nameOrBech32: string) => {\n const client = await getClient();\n const response = await client.getKeyInfoByNameOrAddress(\n new GetKeyInfoByNameOrAddressRequest({ nameOrBech32 }),\n );\n return response.key;\n };\n\n const listKeyInfo = async () => {\n const client = await getClient();\n const response = await client.listKeyInfo(new ListKeyInfoRequest());\n return response.keys;\n };\n\n const selectAccount = async (nameOrBech32: string) => {\n const client = await getClient();\n const response = await client.selectAccount(\n new SelectAccountRequest({\n nameOrBech32,\n }),\n );\n return response;\n };\n\n const getClient = async () => {\n if (!clientInstance) {\n throw new Error('GoBridge client instance not initialized.');\n }\n\n return clientInstance;\n };\n\n const setPassword = async (password: string) => {\n const client = await getClient();\n const response = await client.setPassword(new SetPasswordRequest({ password }));\n return response;\n };\n\n const getActiveAccount = async () => {\n const client = await getClient();\n const response = await client.getActiveAccount(new GetActiveAccountRequest());\n return response;\n };\n\n const queryAccount = async (address: Uint8Array) => {\n const client = await getClient();\n const reponse = await client.queryAccount(new QueryAccountRequest({ address }));\n return reponse;\n };\n\n const deleteAccount = async (\n nameOrBech32: string,\n password: string | undefined,\n skipPassword: boolean,\n ) => {\n const client = await getClient();\n const response = await client.deleteAccount(\n new DeleteAccountRequest({\n nameOrBech32,\n password,\n skipPassword,\n }),\n );\n return response;\n };\n\n const query = async (path: string, data: Uint8Array) => {\n const client = await getClient();\n const reponse = await client.query(\n new QueryRequest({\n path,\n data,\n }),\n );\n return reponse;\n };\n\n const render = async (packagePath: string, args: string) => {\n const client = await getClient();\n const reponse = await client.render(\n new RenderRequest({\n packagePath,\n args,\n }),\n );\n return reponse.result;\n };\n\n const qEval = async (packagePath: string, expression: string) => {\n const client = await getClient();\n const reponse = await client.qEval(\n new QEvalRequest({\n packagePath,\n expression,\n }),\n );\n return reponse.result;\n };\n\n const call = async (\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: number,\n send?: string,\n memo?: string,\n ) => {\n const client = await getClient();\n const reponse = client.call(\n new CallRequest({\n gasFee,\n gasWanted: BigInt(gasWanted),\n memo,\n msgs: [\n new MsgCall({\n packagePath,\n fnc,\n args,\n send,\n }),\n ],\n }),\n );\n return reponse;\n };\n\n const send = async (\n toAddress: Uint8Array,\n send: string,\n gasFee: string,\n gasWanted: number,\n memo?: string,\n ) => {\n const client = await getClient();\n const reponse = client.send(\n new SendRequest({\n gasFee,\n gasWanted: BigInt(gasWanted),\n memo,\n msgs: [\n new MsgSend({\n toAddress,\n send,\n }),\n ],\n }),\n );\n return reponse;\n };\n\n const addressToBech32 = async (address: Uint8Array) => {\n const client = await getClient();\n const response = await client.addressToBech32(new AddressToBech32Request({ address }));\n return response.bech32Address;\n };\n\n const addressFromBech32 = async (bech32Address: string) => {\n const client = await getClient();\n const response = await client.addressFromBech32(\n new AddressFromBech32Request({ bech32Address }),\n );\n return response.address;\n };\n\n // debug\n const hello = async (name: string) => {\n const client = await getClient();\n const response = await client.hello(new HelloRequest({ name }));\n return response.greeting;\n };\n\n // debug\n const helloStream = async (name: string) => {\n const client = await getClient();\n return client.helloStream(new HelloRequest({ name }));\n };\n\n const value = {\n initGnokey,\n setRemote,\n getRemote,\n setChainID,\n getChainID,\n createAccount,\n generateRecoveryPhrase,\n listKeyInfo,\n hasKeyByName,\n hasKeyByAddress,\n hasKeyByNameOrAddress,\n getKeyInfoByName,\n getKeyInfoByAddress,\n getKeyInfoByNameOrAddress,\n selectAccount,\n setPassword,\n getActiveAccount,\n queryAccount,\n deleteAccount,\n query,\n render,\n qEval,\n call,\n send,\n addressToBech32,\n addressFromBech32,\n // debug\n hello,\n helloStream,\n };\n\n if (!initialized) {\n return null;\n }\n\n return <GnokeyContext.Provider value={value}>{children}</GnokeyContext.Provider>;\n};\n\nfunction useGnokeyContext() {\n const context = useContext(GnokeyContext) as GnokeyContextProps;\n\n if (context === undefined) {\n throw new Error('useGnokeyContext must be used within a GnokeyProvider');\n }\n return context;\n}\n\nexport { useGnokeyContext, GnokeyProvider };\n"]}
|