@gnolang/gnonative 1.2.0 → 1.2.2
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/Makefile +9 -2
- package/README.md +34 -14
- package/android/libs/gnocore.aar +0 -0
- package/build/grpc/transport_native.d.ts.map +1 -1
- package/build/grpc/transport_native.js +3 -11
- package/build/grpc/transport_native.js.map +1 -1
- package/build/provider/gnonative-provider.d.ts +1 -1
- package/build/provider/gnonative-provider.d.ts.map +1 -1
- package/build/provider/gnonative-provider.js +2 -2
- package/build/provider/gnonative-provider.js.map +1 -1
- package/ios/Frameworks/GnoCore.xcframework/Info.plist +5 -5
- 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/ios/GnonativeModule.swift +1 -3
- package/package.json +3 -3
- package/src/grpc/transport_native.ts +4 -15
- package/src/provider/gnonative-provider.tsx +2 -2
package/Makefile
CHANGED
|
@@ -11,6 +11,12 @@ IOS_FRAMEWORK_OUTPUT_DIR := ios/Frameworks
|
|
|
11
11
|
IOS_FRAMEWORK_FILES := GnoCore.xcframework
|
|
12
12
|
IOS_FRAMEWORK_SRC := $(addprefix $(IOS_FRAMEWORK_SRC_DIR)/, $(IOS_FRAMEWORK_FILES))
|
|
13
13
|
IOS_FRAMEWORK_DST := $(addprefix $(IOS_FRAMEWORK_OUTPUT_DIR)/, $(IOS_FRAMEWORK_FILES))
|
|
14
|
+
#
|
|
15
|
+
# go files and dependencies
|
|
16
|
+
go_framework_files := $(shell find $(PROJECT_DIR)/framework -iname '*.go')
|
|
17
|
+
go_service_files := $(shell find $(PROJECT_DIR)/service -iname '*.go')
|
|
18
|
+
go_files := $(go_framework_files) $(go_service_files)
|
|
19
|
+
go_deps := $(PROJECT_DIR)/go.mod $(PROJECT_DIR)/go.sum $(go_files)
|
|
14
20
|
|
|
15
21
|
build: build.android build.ios
|
|
16
22
|
|
|
@@ -23,7 +29,7 @@ clean: clean.android clean.ios
|
|
|
23
29
|
build.android: $(ANDROID_FRAMEWORK_DST)
|
|
24
30
|
.PHONY: build.android
|
|
25
31
|
|
|
26
|
-
$(ANDROID_FRAMEWORK_SRC):
|
|
32
|
+
$(ANDROID_FRAMEWORK_SRC): $(go_deps)
|
|
27
33
|
cd $(PROJECT_DIR); $(MAKE) framework.android
|
|
28
34
|
|
|
29
35
|
$(ANDROID_FRAMEWORK_DST): $(ANDROID_FRAMEWORK_SRC)
|
|
@@ -39,12 +45,13 @@ clean.android:
|
|
|
39
45
|
build.ios: $(IOS_FRAMEWORK_DST)
|
|
40
46
|
.PHONY: build.ios
|
|
41
47
|
|
|
42
|
-
$(IOS_FRAMEWORK_SRC):
|
|
48
|
+
$(IOS_FRAMEWORK_SRC): $(go_deps)
|
|
43
49
|
cd $(PROJECT_DIR); $(MAKE) framework.ios
|
|
44
50
|
|
|
45
51
|
$(IOS_FRAMEWORK_DST): $(IOS_FRAMEWORK_SRC)
|
|
46
52
|
mkdir -p $(IOS_FRAMEWORK_OUTPUT_DIR)
|
|
47
53
|
cp -r $^ $(IOS_FRAMEWORK_OUTPUT_DIR)
|
|
54
|
+
touch $(IOS_FRAMEWORK_DST)
|
|
48
55
|
|
|
49
56
|
clean.ios:
|
|
50
57
|
rm -fr $(IOS_FRAMEWORK_OUTPUT_DIR)
|
package/README.md
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
<h2 align="center">⚛️ @gnolang/gnonative ⚛️</h2>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### Bring Your Gno.land (d)Apps to React Native Effortlessly!
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`@gnolang/gnonative` simplifies the process of access the Gno.land (d)apps to mobile by using gRPC to connect with core blockchain functions.
|
|
8
|
+
|
|
9
|
+
It helps bypass this complexity by using gRPC to make [calls to the Gno core API](https://buf.build/gnolang/gnonative/docs/main:land.gno.gnonative.v1) and access the blockchain's realm functions on a remote Gno.land node.
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
useGno object is defined in the GnoNative repo at `/expo/src/hooks/use-gno.ts`.
|
|
11
|
+
# API documentation
|
|
9
12
|
|
|
10
13
|
The RPC API documentation is available in the Buf registry:
|
|
11
14
|
|
|
@@ -43,38 +46,55 @@ We prepared for you an example Hello World code.
|
|
|
43
46
|
Open App.js and replace the content with this:
|
|
44
47
|
|
|
45
48
|
```tsx
|
|
49
|
+
import { GnoNativeProvider, useGnoNativeContext } from '@gnolang/gnonative';
|
|
46
50
|
import React, { useEffect, useState } from 'react';
|
|
47
51
|
import { StyleSheet, Text, View } from 'react-native';
|
|
48
52
|
|
|
49
|
-
|
|
53
|
+
const config = {
|
|
54
|
+
remote: 'https://gno.berty.io',
|
|
55
|
+
chain_id: 'dev',
|
|
56
|
+
};
|
|
50
57
|
|
|
51
58
|
export default function App() {
|
|
52
|
-
|
|
59
|
+
return (
|
|
60
|
+
<GnoNativeProvider config={config}>
|
|
61
|
+
<InnerApp />
|
|
62
|
+
</GnoNativeProvider>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const InnerApp = () => {
|
|
67
|
+
const gno = useGnoNativeContext();
|
|
53
68
|
const [greeting, setGreeting] = useState('');
|
|
54
69
|
|
|
55
70
|
useEffect(() => {
|
|
56
|
-
|
|
71
|
+
(async () => {
|
|
57
72
|
try {
|
|
58
|
-
|
|
73
|
+
const accounts = await gno.listKeyInfo();
|
|
74
|
+
console.log(accounts);
|
|
75
|
+
|
|
76
|
+
const remote = await gno.getRemote();
|
|
77
|
+
const chainId = await gno.getChainID();
|
|
78
|
+
console.log('Remote %s ChainId %s', remote, chainId);
|
|
79
|
+
|
|
59
80
|
setGreeting(await gno.hello('Gno'));
|
|
60
81
|
|
|
61
|
-
// async Hello function
|
|
62
82
|
for await (const res of await gno.helloStream('Gno')) {
|
|
63
83
|
console.log(res.greeting);
|
|
64
84
|
}
|
|
65
85
|
} catch (error) {
|
|
66
86
|
console.log(error);
|
|
67
87
|
}
|
|
68
|
-
};
|
|
69
|
-
greeting();
|
|
88
|
+
})();
|
|
70
89
|
}, []);
|
|
71
90
|
|
|
72
91
|
return (
|
|
73
92
|
<View style={styles.container}>
|
|
74
|
-
<Text>
|
|
93
|
+
<Text>Gnonative App</Text>
|
|
94
|
+
<Text>{greeting}</Text>
|
|
75
95
|
</View>
|
|
76
96
|
);
|
|
77
|
-
}
|
|
97
|
+
};
|
|
78
98
|
|
|
79
99
|
const styles = StyleSheet.create({
|
|
80
100
|
container: {
|
package/android/libs/gnocore.aar
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport_native.d.ts","sourceRoot":"","sources":["../../src/grpc/transport_native.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"transport_native.d.ts","sourceRoot":"","sources":["../../src/grpc/transport_native.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAMlE,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAkKrF"}
|
|
@@ -2,17 +2,9 @@ import { MethodKind } from '@bufbuild/protobuf';
|
|
|
2
2
|
import { createContextValues } from '@connectrpc/connect';
|
|
3
3
|
import { createClientMethodSerializers, createMethodUrl, runStreamingCall, runUnaryCall, } from '@connectrpc/connect/protocol';
|
|
4
4
|
import { requestHeader } from '@connectrpc/connect/protocol-grpc-web';
|
|
5
|
+
import { toByteArray } from 'base64-js';
|
|
5
6
|
import { CodedError } from 'expo-modules-core';
|
|
6
|
-
import { decode } from 'js-base64';
|
|
7
7
|
import { GoBridge } from '../GoBridge';
|
|
8
|
-
function base64ToBytes(base64) {
|
|
9
|
-
const binString = decode(base64);
|
|
10
|
-
const bytes = new Uint8Array(binString.length);
|
|
11
|
-
for (let i = 0; i < binString.length; i++) {
|
|
12
|
-
bytes[i] = binString.charCodeAt(i);
|
|
13
|
-
}
|
|
14
|
-
return bytes;
|
|
15
|
-
}
|
|
16
8
|
export function createNativeGrpcTransport(options) {
|
|
17
9
|
const useBinaryFormat = options.useBinaryFormat ?? true;
|
|
18
10
|
return {
|
|
@@ -39,7 +31,7 @@ export function createNativeGrpcTransport(options) {
|
|
|
39
31
|
const res = await GoBridge.invokeGrpcMethod(req.method.name, req.message.toJsonString());
|
|
40
32
|
const header = new Headers();
|
|
41
33
|
const trailer = new Headers();
|
|
42
|
-
const data =
|
|
34
|
+
const data = toByteArray(res);
|
|
43
35
|
const message = parse(data);
|
|
44
36
|
return {
|
|
45
37
|
stream: false,
|
|
@@ -104,7 +96,7 @@ export function createNativeGrpcTransport(options) {
|
|
|
104
96
|
for (;;) {
|
|
105
97
|
try {
|
|
106
98
|
const res = await GoBridge.streamClientReceive(streamId);
|
|
107
|
-
const data =
|
|
99
|
+
const data = toByteArray(res);
|
|
108
100
|
const message = parse(data);
|
|
109
101
|
yield message;
|
|
110
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport_native.js","sourceRoot":"","sources":["../../src/grpc/transport_native.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AnyMessage, MethodInfo, PartialMessage, ServiceType } from '@bufbuild/protobuf';\nimport { Message, MethodKind } from '@bufbuild/protobuf';\nimport type {\n ContextValues,\n StreamResponse,\n Transport,\n UnaryRequest,\n UnaryResponse,\n} from '@connectrpc/connect';\nimport { createContextValues } from '@connectrpc/connect';\nimport {\n createClientMethodSerializers,\n createMethodUrl,\n runStreamingCall,\n runUnaryCall,\n} from '@connectrpc/connect/protocol';\nimport { requestHeader } from '@connectrpc/connect/protocol-grpc-web';\nimport { GrpcWebTransportOptions } from '@connectrpc/connect-web';\nimport { CodedError } from 'expo-modules-core';\nimport { decode } from 'js-base64';\n\nimport { GoBridge } from '../GoBridge';\n\nfunction base64ToBytes(base64: string): Uint8Array {\n const binString = decode(base64);\n const bytes = new Uint8Array(binString.length);\n\n for (let i = 0; i < binString.length; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n\n return bytes;\n}\n\nexport function createNativeGrpcTransport(options: GrpcWebTransportOptions): Transport {\n const useBinaryFormat = options.useBinaryFormat ?? true;\n return {\n async unary<I extends Message<I> = AnyMessage, O extends Message<O> = AnyMessage>(\n service: ServiceType,\n method: MethodInfo<I, O>,\n signal: AbortSignal | undefined,\n timeoutMs: number | undefined,\n header: HeadersInit | undefined,\n message: PartialMessage<I>,\n contextValues?: ContextValues,\n ): Promise<UnaryResponse<I, O>> {\n const { parse } = createClientMethodSerializers(\n method,\n useBinaryFormat,\n options.jsonOptions,\n options.binaryOptions,\n );\n\n return await runUnaryCall<I, O>({\n signal,\n interceptors: options.interceptors,\n req: {\n stream: false,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: 'POST',\n mode: 'cors',\n },\n header: new Headers(),\n contextValues: contextValues ?? createContextValues(),\n message,\n },\n next: async (req: UnaryRequest<I, O>): Promise<UnaryResponse<I, O>> => {\n try {\n const res = await GoBridge.invokeGrpcMethod(\n req.method.name,\n req.message.toJsonString(),\n );\n\n const header: Headers | undefined = new Headers();\n const trailer: Headers | undefined = new Headers();\n\n const data = base64ToBytes(res);\n const message = parse(data);\n\n return <UnaryResponse<I, O>>{\n stream: false,\n service,\n method,\n header,\n message,\n trailer,\n };\n } catch (e) {\n console.log('next: unary call error:', e);\n throw e;\n }\n },\n });\n },\n\n async stream<I extends Message<I> = AnyMessage, O extends Message<O> = AnyMessage>(\n service: ServiceType,\n method: MethodInfo<I, O>,\n signal: AbortSignal | undefined,\n timeoutMs: number | undefined,\n header: HeadersInit | undefined,\n input: AsyncIterable<PartialMessage<I>>,\n contextValues?: ContextValues,\n ): Promise<StreamResponse<I, O>> {\n const { parse } = createClientMethodSerializers(\n method,\n useBinaryFormat,\n options.jsonOptions,\n options.binaryOptions,\n );\n\n async function createRequestBody(input: AsyncIterable<I>): Promise<string> {\n if (method.kind !== MethodKind.ServerStreaming) {\n throw 'The fetch API does not support streaming request bodies';\n }\n\n const r = await input[Symbol.asyncIterator]().next();\n if (r.done === true) {\n throw 'missing request message';\n }\n\n return r.value.toJsonString();\n }\n\n return await runStreamingCall<I, O>({\n interceptors: options.interceptors,\n timeoutMs,\n signal,\n req: {\n stream: true,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: 'POST',\n credentials: options.credentials ?? 'same-origin',\n mode: 'cors',\n },\n header: requestHeader(useBinaryFormat, timeoutMs, header, false),\n message: input,\n contextValues: contextValues ?? createContextValues(),\n },\n next: async req => {\n const header: Headers | undefined = new Headers();\n const trailer: Headers | undefined = new Headers();\n\n const body = await createRequestBody(req.message);\n\n let streamId: string;\n try {\n streamId = await GoBridge.createStreamClient(req.method.name, body);\n } catch (e) {\n console.log('createStreamClient error:', e);\n throw e;\n }\n\n const generator = {\n async *[Symbol.asyncIterator]() {\n for (; ;) {\n try {\n const res = await GoBridge.streamClientReceive(streamId);\n const data = base64ToBytes(res);\n const message = parse(data);\n yield message;\n } catch (e) {\n // close the stream\n try {\n await GoBridge.closeStreamClient(streamId);\n } catch (e) {\n console.log('closeStreamClient error:', e);\n }\n\n if (!(e instanceof CodedError && e.message === 'EOF')) {\n console.log('streamClientReceive error:', e);\n throw e;\n }\n break;\n }\n }\n },\n };\n\n const res: StreamResponse<I, O> = {\n ...req,\n header,\n trailer,\n message: generator,\n };\n return res;\n },\n });\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"transport_native.js","sourceRoot":"","sources":["../../src/grpc/transport_native.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAChB,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,UAAU,yBAAyB,CAAC,OAAgC;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;IACxD,OAAO;QACL,KAAK,CAAC,KAAK,CACT,OAAoB,EACpB,MAAwB,EACxB,MAA+B,EAC/B,SAA6B,EAC7B,MAA+B,EAC/B,OAA0B,EAC1B,aAA6B;YAE7B,MAAM,EAAE,KAAK,EAAE,GAAG,6BAA6B,CAC7C,MAAM,EACN,eAAe,EACf,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,aAAa,CACtB,CAAC;YAEF,OAAO,MAAM,YAAY,CAAO;gBAC9B,MAAM;gBACN,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,GAAG,EAAE;oBACH,MAAM,EAAE,KAAK;oBACb,OAAO;oBACP,MAAM;oBACN,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;oBACtD,IAAI,EAAE;wBACJ,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,MAAM;qBACb;oBACD,MAAM,EAAE,IAAI,OAAO,EAAE;oBACrB,aAAa,EAAE,aAAa,IAAI,mBAAmB,EAAE;oBACrD,OAAO;iBACR;gBACD,IAAI,EAAE,KAAK,EAAE,GAAuB,EAAgC,EAAE;oBACpE,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CACzC,GAAG,CAAC,MAAM,CAAC,IAAI,EACf,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAC3B,CAAC;wBAEF,MAAM,MAAM,GAAwB,IAAI,OAAO,EAAE,CAAC;wBAClD,MAAM,OAAO,GAAwB,IAAI,OAAO,EAAE,CAAC;wBAEnD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;wBAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;wBAE5B,OAAO;4BACL,MAAM,EAAE,KAAK;4BACb,OAAO;4BACP,MAAM;4BACN,MAAM;4BACN,OAAO;4BACP,OAAO;yBACR,CAAC;oBACJ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;wBAC1C,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,CACV,OAAoB,EACpB,MAAwB,EACxB,MAA+B,EAC/B,SAA6B,EAC7B,MAA+B,EAC/B,KAAuC,EACvC,aAA6B;YAE7B,MAAM,EAAE,KAAK,EAAE,GAAG,6BAA6B,CAC7C,MAAM,EACN,eAAe,EACf,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,aAAa,CACtB,CAAC;YAEF,KAAK,UAAU,iBAAiB,CAAC,KAAuB;gBACtD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;oBAC/C,MAAM,yDAAyD,CAAC;gBAClE,CAAC;gBAED,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACrD,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,yBAAyB,CAAC;gBAClC,CAAC;gBAED,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAChC,CAAC;YAED,OAAO,MAAM,gBAAgB,CAAO;gBAClC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,SAAS;gBACT,MAAM;gBACN,GAAG,EAAE;oBACH,MAAM,EAAE,IAAI;oBACZ,OAAO;oBACP,MAAM;oBACN,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;oBACtD,IAAI,EAAE;wBACJ,MAAM,EAAE,MAAM;wBACd,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,aAAa;wBACjD,IAAI,EAAE,MAAM;qBACb;oBACD,MAAM,EAAE,aAAa,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;oBAChE,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,aAAa,IAAI,mBAAmB,EAAE;iBACtD;gBACD,IAAI,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;oBAChB,MAAM,MAAM,GAAwB,IAAI,OAAO,EAAE,CAAC;oBAClD,MAAM,OAAO,GAAwB,IAAI,OAAO,EAAE,CAAC;oBAEnD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAElD,IAAI,QAAgB,CAAC;oBACrB,IAAI,CAAC;wBACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACtE,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;wBAC5C,MAAM,CAAC,CAAC;oBACV,CAAC;oBAED,MAAM,SAAS,GAAG;wBAChB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC3B,SAAU,CAAC;gCACT,IAAI,CAAC;oCACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oCACzD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;oCAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oCAC5B,MAAM,OAAO,CAAC;gCAChB,CAAC;gCAAC,OAAO,CAAC,EAAE,CAAC;oCACX,mBAAmB;oCACnB,IAAI,CAAC;wCACH,MAAM,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oCAC7C,CAAC;oCAAC,OAAO,CAAC,EAAE,CAAC;wCACX,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;oCAC7C,CAAC;oCAED,IAAI,CAAC,CAAC,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;wCACtD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;wCAC7C,MAAM,CAAC,CAAC;oCACV,CAAC;oCACD,MAAM;gCACR,CAAC;4BACH,CAAC;wBACH,CAAC;qBACF,CAAC;oBAEF,MAAM,GAAG,GAAyB;wBAChC,GAAG,GAAG;wBACN,MAAM;wBACN,OAAO;wBACP,OAAO,EAAE,SAAS;qBACnB,CAAC;oBACF,OAAO,GAAG,CAAC;gBACb,CAAC;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { AnyMessage, MethodInfo, PartialMessage, ServiceType } from '@bufbuild/protobuf';\nimport { Message, MethodKind } from '@bufbuild/protobuf';\nimport type {\n ContextValues,\n StreamResponse,\n Transport,\n UnaryRequest,\n UnaryResponse,\n} from '@connectrpc/connect';\nimport { createContextValues } from '@connectrpc/connect';\nimport {\n createClientMethodSerializers,\n createMethodUrl,\n runStreamingCall,\n runUnaryCall,\n} from '@connectrpc/connect/protocol';\nimport { requestHeader } from '@connectrpc/connect/protocol-grpc-web';\nimport { GrpcWebTransportOptions } from '@connectrpc/connect-web';\nimport { toByteArray } from 'base64-js';\nimport { CodedError } from 'expo-modules-core';\n\nimport { GoBridge } from '../GoBridge';\n\nexport function createNativeGrpcTransport(options: GrpcWebTransportOptions): Transport {\n const useBinaryFormat = options.useBinaryFormat ?? true;\n return {\n async unary<I extends Message<I> = AnyMessage, O extends Message<O> = AnyMessage>(\n service: ServiceType,\n method: MethodInfo<I, O>,\n signal: AbortSignal | undefined,\n timeoutMs: number | undefined,\n header: HeadersInit | undefined,\n message: PartialMessage<I>,\n contextValues?: ContextValues,\n ): Promise<UnaryResponse<I, O>> {\n const { parse } = createClientMethodSerializers(\n method,\n useBinaryFormat,\n options.jsonOptions,\n options.binaryOptions,\n );\n\n return await runUnaryCall<I, O>({\n signal,\n interceptors: options.interceptors,\n req: {\n stream: false,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: 'POST',\n mode: 'cors',\n },\n header: new Headers(),\n contextValues: contextValues ?? createContextValues(),\n message,\n },\n next: async (req: UnaryRequest<I, O>): Promise<UnaryResponse<I, O>> => {\n try {\n const res = await GoBridge.invokeGrpcMethod(\n req.method.name,\n req.message.toJsonString(),\n );\n\n const header: Headers | undefined = new Headers();\n const trailer: Headers | undefined = new Headers();\n\n const data = toByteArray(res);\n const message = parse(data);\n\n return {\n stream: false,\n service,\n method,\n header,\n message,\n trailer,\n };\n } catch (e) {\n console.log('next: unary call error:', e);\n throw e;\n }\n },\n });\n },\n\n async stream<I extends Message<I> = AnyMessage, O extends Message<O> = AnyMessage>(\n service: ServiceType,\n method: MethodInfo<I, O>,\n signal: AbortSignal | undefined,\n timeoutMs: number | undefined,\n header: HeadersInit | undefined,\n input: AsyncIterable<PartialMessage<I>>,\n contextValues?: ContextValues,\n ): Promise<StreamResponse<I, O>> {\n const { parse } = createClientMethodSerializers(\n method,\n useBinaryFormat,\n options.jsonOptions,\n options.binaryOptions,\n );\n\n async function createRequestBody(input: AsyncIterable<I>): Promise<string> {\n if (method.kind !== MethodKind.ServerStreaming) {\n throw 'The fetch API does not support streaming request bodies';\n }\n\n const r = await input[Symbol.asyncIterator]().next();\n if (r.done === true) {\n throw 'missing request message';\n }\n\n return r.value.toJsonString();\n }\n\n return await runStreamingCall<I, O>({\n interceptors: options.interceptors,\n timeoutMs,\n signal,\n req: {\n stream: true,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: 'POST',\n credentials: options.credentials ?? 'same-origin',\n mode: 'cors',\n },\n header: requestHeader(useBinaryFormat, timeoutMs, header, false),\n message: input,\n contextValues: contextValues ?? createContextValues(),\n },\n next: async req => {\n const header: Headers | undefined = new Headers();\n const trailer: Headers | undefined = new Headers();\n\n const body = await createRequestBody(req.message);\n\n let streamId: string;\n try {\n streamId = await GoBridge.createStreamClient(req.method.name, body);\n } catch (e) {\n console.log('createStreamClient error:', e);\n throw e;\n }\n\n const generator = {\n async *[Symbol.asyncIterator]() {\n for (; ;) {\n try {\n const res = await GoBridge.streamClientReceive(streamId);\n const data = toByteArray(res);\n const message = parse(data);\n yield message;\n } catch (e) {\n // close the stream\n try {\n await GoBridge.closeStreamClient(streamId);\n } catch (e) {\n console.log('closeStreamClient error:', e);\n }\n\n if (!(e instanceof CodedError && e.message === 'EOF')) {\n console.log('streamClientReceive error:', e);\n throw e;\n }\n break;\n }\n }\n },\n };\n\n const res: StreamResponse<I, O> = {\n ...req,\n header,\n trailer,\n message: generator,\n };\n return res;\n },\n });\n },\n };\n}\n"]}
|
|
@@ -40,5 +40,5 @@ interface GnoNativeProviderProps {
|
|
|
40
40
|
}
|
|
41
41
|
declare const GnoNativeProvider: React.FC<GnoNativeProviderProps>;
|
|
42
42
|
declare function useGnoNativeContext(): GnoNativeContextProps;
|
|
43
|
-
export {
|
|
43
|
+
export { GnoNativeProvider, useGnoNativeContext };
|
|
44
44
|
//# sourceMappingURL=gnonative-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gnonative-provider.d.ts","sourceRoot":"","sources":["../../src/provider/gnonative-provider.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gnonative-provider.d.ts","sourceRoot":"","sources":["../../src/provider/gnonative-provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ const GnoNativeProvider = ({ children, config }) => {
|
|
|
31
31
|
}
|
|
32
32
|
const port = await GoBridge.getTcpPort();
|
|
33
33
|
console.log('GoBridge GRPC client instance port: %s', port);
|
|
34
|
-
const client =
|
|
34
|
+
const client = Grpc.createClient(port);
|
|
35
35
|
setClientInstance(client);
|
|
36
36
|
console.log('GoBridge GRPC client instance. Done.');
|
|
37
37
|
try {
|
|
@@ -280,5 +280,5 @@ function useGnoNativeContext() {
|
|
|
280
280
|
}
|
|
281
281
|
return context;
|
|
282
282
|
}
|
|
283
|
-
export {
|
|
283
|
+
export { GnoNativeProvider, useGnoNativeContext };
|
|
284
284
|
//# sourceMappingURL=gnonative-provider.js.map
|
|
@@ -1 +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"]}
|
|
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 = 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 { GnoNativeProvider, useGnoNativeContext };\n"]}
|
|
@@ -8,32 +8,32 @@
|
|
|
8
8
|
<key>BinaryPath</key>
|
|
9
9
|
<string>GnoCore.framework/Versions/A/GnoCore</string>
|
|
10
10
|
<key>LibraryIdentifier</key>
|
|
11
|
-
<string>ios-
|
|
11
|
+
<string>ios-arm64_x86_64-simulator</string>
|
|
12
12
|
<key>LibraryPath</key>
|
|
13
13
|
<string>GnoCore.framework</string>
|
|
14
14
|
<key>SupportedArchitectures</key>
|
|
15
15
|
<array>
|
|
16
16
|
<string>arm64</string>
|
|
17
|
+
<string>x86_64</string>
|
|
17
18
|
</array>
|
|
18
19
|
<key>SupportedPlatform</key>
|
|
19
20
|
<string>ios</string>
|
|
21
|
+
<key>SupportedPlatformVariant</key>
|
|
22
|
+
<string>simulator</string>
|
|
20
23
|
</dict>
|
|
21
24
|
<dict>
|
|
22
25
|
<key>BinaryPath</key>
|
|
23
26
|
<string>GnoCore.framework/Versions/A/GnoCore</string>
|
|
24
27
|
<key>LibraryIdentifier</key>
|
|
25
|
-
<string>ios-
|
|
28
|
+
<string>ios-arm64</string>
|
|
26
29
|
<key>LibraryPath</key>
|
|
27
30
|
<string>GnoCore.framework</string>
|
|
28
31
|
<key>SupportedArchitectures</key>
|
|
29
32
|
<array>
|
|
30
33
|
<string>arm64</string>
|
|
31
|
-
<string>x86_64</string>
|
|
32
34
|
</array>
|
|
33
35
|
<key>SupportedPlatform</key>
|
|
34
36
|
<string>ios</string>
|
|
35
|
-
<key>SupportedPlatformVariant</key>
|
|
36
|
-
<string>simulator</string>
|
|
37
37
|
</dict>
|
|
38
38
|
</array>
|
|
39
39
|
<key>CFBundlePackageType</key>
|
|
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
|
|
@@ -5,9 +5,7 @@ public class GnonativeModule: Module {
|
|
|
5
5
|
// Each module class must implement the definition function. The definition consists of components
|
|
6
6
|
// that describes the module's functionality and behavior.
|
|
7
7
|
// See https://docs.expo.dev/modules/module-api for more details about available components.
|
|
8
|
-
var logger: Logger = Logger(
|
|
9
|
-
category: String(describing: "GnoNative")
|
|
10
|
-
)
|
|
8
|
+
var logger: Logger = Logger(logHandlers: [createOSLogHandler(category: "dSocial")])
|
|
11
9
|
var appRootDir: String?
|
|
12
10
|
var tmpDir: String?
|
|
13
11
|
var bridge: GnoGnonativeBridge?
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gnolang/gnonative",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "Develop for Gno using your app's native language ",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"@bufbuild/protobuf": "^1.8.0",
|
|
35
35
|
"@connectrpc/connect": "^1.4.0",
|
|
36
36
|
"@connectrpc/connect-web": "^1.4.0",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
37
|
+
"base64-js": "^1.5.1",
|
|
38
|
+
"fast-text-encoding": "^1.0.6"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/react": "^18.0.25",
|
|
@@ -16,22 +16,11 @@ import {
|
|
|
16
16
|
} from '@connectrpc/connect/protocol';
|
|
17
17
|
import { requestHeader } from '@connectrpc/connect/protocol-grpc-web';
|
|
18
18
|
import { GrpcWebTransportOptions } from '@connectrpc/connect-web';
|
|
19
|
+
import { toByteArray } from 'base64-js';
|
|
19
20
|
import { CodedError } from 'expo-modules-core';
|
|
20
|
-
import { decode } from 'js-base64';
|
|
21
21
|
|
|
22
22
|
import { GoBridge } from '../GoBridge';
|
|
23
23
|
|
|
24
|
-
function base64ToBytes(base64: string): Uint8Array {
|
|
25
|
-
const binString = decode(base64);
|
|
26
|
-
const bytes = new Uint8Array(binString.length);
|
|
27
|
-
|
|
28
|
-
for (let i = 0; i < binString.length; i++) {
|
|
29
|
-
bytes[i] = binString.charCodeAt(i);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return bytes;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
24
|
export function createNativeGrpcTransport(options: GrpcWebTransportOptions): Transport {
|
|
36
25
|
const useBinaryFormat = options.useBinaryFormat ?? true;
|
|
37
26
|
return {
|
|
@@ -77,10 +66,10 @@ export function createNativeGrpcTransport(options: GrpcWebTransportOptions): Tra
|
|
|
77
66
|
const header: Headers | undefined = new Headers();
|
|
78
67
|
const trailer: Headers | undefined = new Headers();
|
|
79
68
|
|
|
80
|
-
const data =
|
|
69
|
+
const data = toByteArray(res);
|
|
81
70
|
const message = parse(data);
|
|
82
71
|
|
|
83
|
-
return
|
|
72
|
+
return {
|
|
84
73
|
stream: false,
|
|
85
74
|
service,
|
|
86
75
|
method,
|
|
@@ -162,7 +151,7 @@ export function createNativeGrpcTransport(options: GrpcWebTransportOptions): Tra
|
|
|
162
151
|
for (; ;) {
|
|
163
152
|
try {
|
|
164
153
|
const res = await GoBridge.streamClientReceive(streamId);
|
|
165
|
-
const data =
|
|
154
|
+
const data = toByteArray(res);
|
|
166
155
|
const message = parse(data);
|
|
167
156
|
yield message;
|
|
168
157
|
} catch (e) {
|
|
@@ -155,7 +155,7 @@ const GnoNativeProvider: React.FC<GnoNativeProviderProps> = ({ children, config
|
|
|
155
155
|
|
|
156
156
|
const port = await GoBridge.getTcpPort();
|
|
157
157
|
console.log('GoBridge GRPC client instance port: %s', port);
|
|
158
|
-
const client =
|
|
158
|
+
const client = Grpc.createClient(port);
|
|
159
159
|
setClientInstance(client);
|
|
160
160
|
console.log('GoBridge GRPC client instance. Done.');
|
|
161
161
|
|
|
@@ -482,4 +482,4 @@ function useGnoNativeContext() {
|
|
|
482
482
|
return context;
|
|
483
483
|
}
|
|
484
484
|
|
|
485
|
-
export {
|
|
485
|
+
export { GnoNativeProvider, useGnoNativeContext };
|