@gnolang/gnonative 1.2.1 → 1.3.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.
Files changed (43) hide show
  1. package/README.md +6 -6
  2. package/android/libs/gnocore.aar +0 -0
  3. package/build/api/GnoNativeApi.d.ts +50 -0
  4. package/build/api/GnoNativeApi.d.ts.map +1 -0
  5. package/build/api/GnoNativeApi.js +261 -0
  6. package/build/api/GnoNativeApi.js.map +1 -0
  7. package/build/api/index.d.ts +3 -0
  8. package/build/api/index.d.ts.map +1 -0
  9. package/build/api/index.js +3 -0
  10. package/build/api/index.js.map +1 -0
  11. package/build/{hooks/use-gno.d.ts → api/types.d.ts} +18 -13
  12. package/build/api/types.d.ts.map +1 -0
  13. package/build/api/types.js +7 -0
  14. package/build/api/types.js.map +1 -0
  15. package/build/index.d.ts +1 -1
  16. package/build/index.d.ts.map +1 -1
  17. package/build/index.js +1 -1
  18. package/build/index.js.map +1 -1
  19. package/build/provider/gnonative-provider.d.ts +4 -35
  20. package/build/provider/gnonative-provider.d.ts.map +1 -1
  21. package/build/provider/gnonative-provider.js +5 -249
  22. package/build/provider/gnonative-provider.js.map +1 -1
  23. package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/GnoCore +0 -0
  24. package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/A/GnoCore +0 -0
  25. package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/Current/GnoCore +0 -0
  26. package/ios/Frameworks/GnoCore.xcframework/ios-arm64_x86_64-simulator/GnoCore.framework/GnoCore +0 -0
  27. package/ios/Frameworks/GnoCore.xcframework/ios-arm64_x86_64-simulator/GnoCore.framework/Versions/A/GnoCore +0 -0
  28. package/ios/Frameworks/GnoCore.xcframework/ios-arm64_x86_64-simulator/GnoCore.framework/Versions/Current/GnoCore +0 -0
  29. package/package.json +1 -1
  30. package/src/api/GnoNativeApi.ts +388 -0
  31. package/src/api/index.ts +2 -0
  32. package/src/api/types.ts +78 -0
  33. package/src/index.ts +2 -1
  34. package/src/provider/gnonative-provider.tsx +8 -428
  35. package/build/hooks/types.d.ts +0 -17
  36. package/build/hooks/types.d.ts.map +0 -1
  37. package/build/hooks/types.js +0 -2
  38. package/build/hooks/types.js.map +0 -1
  39. package/build/hooks/use-gno.d.ts.map +0 -1
  40. package/build/hooks/use-gno.js +0 -256
  41. package/build/hooks/use-gno.js.map +0 -1
  42. package/src/hooks/types.ts +0 -19
  43. package/src/hooks/use-gno.ts +0 -431
@@ -1,18 +1,9 @@
1
- import { AddressFromBech32Request, AddressToBech32Request, CallRequest, CreateAccountRequest, DeleteAccountRequest, GenerateRecoveryPhraseRequest, GetActiveAccountRequest, GetChainIDRequest, GetKeyInfoByAddressRequest, GetKeyInfoByNameOrAddressRequest, GetKeyInfoByNameRequest, GetRemoteRequest, HasKeyByAddressRequest, HasKeyByNameOrAddressRequest, HasKeyByNameRequest, HelloRequest, ListKeyInfoRequest, MsgCall, MsgSend, QEvalRequest, QueryAccountRequest, QueryRequest, RenderRequest, SelectAccountRequest, SendRequest, SetChainIDRequest, SetPasswordRequest, SetRemoteRequest, } from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';
2
1
  import { createContext, useContext, useEffect, useState } from 'react';
3
- import { GoBridge } from '../GoBridge';
4
- import * as Grpc from '../grpc/client';
5
- var BridgeStatus;
6
- (function (BridgeStatus) {
7
- BridgeStatus[BridgeStatus["Stopped"] = 0] = "Stopped";
8
- BridgeStatus[BridgeStatus["Starting"] = 1] = "Starting";
9
- BridgeStatus[BridgeStatus["Started"] = 2] = "Started";
10
- })(BridgeStatus || (BridgeStatus = {}));
2
+ import { GnoNativeApi } from '../api';
11
3
  const GnoNativeContext = createContext(null);
12
4
  const GnoNativeProvider = ({ children, config }) => {
13
5
  const [initialized, setInitialized] = useState(false);
14
- const [clientInstance, setClientInstance] = useState(undefined);
15
- const [bridgeStatus, setBridgeStatus] = useState(BridgeStatus.Stopped);
6
+ const [api] = useState(new GnoNativeApi(config));
16
7
  useEffect(() => {
17
8
  (async () => {
18
9
  await init(config);
@@ -20,24 +11,9 @@ const GnoNativeProvider = ({ children, config }) => {
20
11
  })();
21
12
  }, []);
22
13
  async function init(config) {
23
- console.log('🍄 Initializing GnoNative on remote: %s chain_id: %s', config.remote, config.chain_id);
24
- if (bridgeStatus === BridgeStatus.Stopped) {
25
- console.log('Bridge stopped. Initializing...');
26
- await initBridge();
27
- }
28
- if (clientInstance) {
29
- console.error('GoBridge already initialized.');
30
- return true;
31
- }
32
- const port = await GoBridge.getTcpPort();
33
- console.log('GoBridge GRPC client instance port: %s', port);
34
- const client = Grpc.createClient(port);
35
- setClientInstance(client);
36
- console.log('GoBridge GRPC client instance. Done.');
14
+ console.log('🍄 Initializing GnoNative Context on remote: %s chain_id: %s', config.remote, config.chain_id);
37
15
  try {
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.');
16
+ await api.initClient();
41
17
  }
42
18
  catch (error) {
43
19
  console.error(error);
@@ -45,228 +21,8 @@ const GnoNativeProvider = ({ children, config }) => {
45
21
  }
46
22
  return true;
47
23
  }
48
- const initBridge = async () => {
49
- if (bridgeStatus === BridgeStatus.Stopped) {
50
- console.log('Initializing bridge...');
51
- setBridgeStatus(BridgeStatus.Starting);
52
- await GoBridge.initBridge();
53
- console.log('Bridge initialized.');
54
- setBridgeStatus(BridgeStatus.Started);
55
- }
56
- };
57
- const setRemote = async (remote) => {
58
- const client = await getClient();
59
- const response = await client.setRemote(new SetRemoteRequest({ remote }));
60
- return response;
61
- };
62
- const getRemote = async () => {
63
- const client = await getClient();
64
- const response = await client.getRemote(new GetRemoteRequest());
65
- return response.remote;
66
- };
67
- const setChainID = async (chainId) => {
68
- const client = await getClient();
69
- const response = await client.setChainID(new SetChainIDRequest({ chainId }));
70
- return response;
71
- };
72
- const getChainID = async () => {
73
- const client = await getClient();
74
- const response = await client.getChainID(new GetChainIDRequest());
75
- return response.chainId;
76
- };
77
- const createAccount = async (nameOrBech32, mnemonic, password) => {
78
- const client = await getClient();
79
- const reponse = await client.createAccount(new CreateAccountRequest({
80
- nameOrBech32,
81
- mnemonic,
82
- password,
83
- }));
84
- return reponse.key;
85
- };
86
- const generateRecoveryPhrase = async () => {
87
- const client = await getClient();
88
- const response = await client.generateRecoveryPhrase(new GenerateRecoveryPhraseRequest());
89
- return response.phrase;
90
- };
91
- const hasKeyByName = async (name) => {
92
- const client = await getClient();
93
- const response = await client.hasKeyByName(new HasKeyByNameRequest({ name }));
94
- return response.has;
95
- };
96
- const hasKeyByAddress = async (address) => {
97
- const client = await getClient();
98
- const response = await client.hasKeyByAddress(new HasKeyByAddressRequest({ address }));
99
- return response.has;
100
- };
101
- const hasKeyByNameOrAddress = async (nameOrBech32) => {
102
- const client = await getClient();
103
- const response = await client.hasKeyByNameOrAddress(new HasKeyByNameOrAddressRequest({ nameOrBech32 }));
104
- return response.has;
105
- };
106
- const getKeyInfoByName = async (name) => {
107
- const client = await getClient();
108
- const response = await client.getKeyInfoByName(new GetKeyInfoByNameRequest({ name }));
109
- return response.key;
110
- };
111
- const getKeyInfoByAddress = async (address) => {
112
- const client = await getClient();
113
- const response = await client.getKeyInfoByAddress(new GetKeyInfoByAddressRequest({ address }));
114
- return response.key;
115
- };
116
- const getKeyInfoByNameOrAddress = async (nameOrBech32) => {
117
- const client = await getClient();
118
- const response = await client.getKeyInfoByNameOrAddress(new GetKeyInfoByNameOrAddressRequest({ nameOrBech32 }));
119
- return response.key;
120
- };
121
- const listKeyInfo = async () => {
122
- const client = await getClient();
123
- const response = await client.listKeyInfo(new ListKeyInfoRequest());
124
- return response.keys;
125
- };
126
- const selectAccount = async (nameOrBech32) => {
127
- const client = await getClient();
128
- const response = await client.selectAccount(new SelectAccountRequest({
129
- nameOrBech32,
130
- }));
131
- return response;
132
- };
133
- const getClient = async () => {
134
- if (!clientInstance) {
135
- throw new Error('GoBridge client instance not initialized.');
136
- }
137
- return clientInstance;
138
- };
139
- const setPassword = async (password) => {
140
- const client = await getClient();
141
- const response = await client.setPassword(new SetPasswordRequest({ password }));
142
- return response;
143
- };
144
- const getActiveAccount = async () => {
145
- const client = await getClient();
146
- const response = await client.getActiveAccount(new GetActiveAccountRequest());
147
- return response;
148
- };
149
- const queryAccount = async (address) => {
150
- const client = await getClient();
151
- const reponse = await client.queryAccount(new QueryAccountRequest({ address }));
152
- return reponse;
153
- };
154
- const deleteAccount = async (nameOrBech32, password, skipPassword) => {
155
- const client = await getClient();
156
- const response = await client.deleteAccount(new DeleteAccountRequest({
157
- nameOrBech32,
158
- password,
159
- skipPassword,
160
- }));
161
- return response;
162
- };
163
- const query = async (path, data) => {
164
- const client = await getClient();
165
- const reponse = await client.query(new QueryRequest({
166
- path,
167
- data,
168
- }));
169
- return reponse;
170
- };
171
- const render = async (packagePath, args) => {
172
- const client = await getClient();
173
- const reponse = await client.render(new RenderRequest({
174
- packagePath,
175
- args,
176
- }));
177
- return reponse.result;
178
- };
179
- const qEval = async (packagePath, expression) => {
180
- const client = await getClient();
181
- const reponse = await client.qEval(new QEvalRequest({
182
- packagePath,
183
- expression,
184
- }));
185
- return reponse.result;
186
- };
187
- const call = async (packagePath, fnc, args, gasFee, gasWanted, send, memo) => {
188
- const client = await getClient();
189
- const reponse = client.call(new CallRequest({
190
- gasFee,
191
- gasWanted: BigInt(gasWanted),
192
- memo,
193
- msgs: [
194
- new MsgCall({
195
- packagePath,
196
- fnc,
197
- args,
198
- send,
199
- }),
200
- ],
201
- }));
202
- return reponse;
203
- };
204
- const send = async (toAddress, send, gasFee, gasWanted, memo) => {
205
- const client = await getClient();
206
- const reponse = client.send(new SendRequest({
207
- gasFee,
208
- gasWanted: BigInt(gasWanted),
209
- memo,
210
- msgs: [
211
- new MsgSend({
212
- toAddress,
213
- send,
214
- }),
215
- ],
216
- }));
217
- return reponse;
218
- };
219
- const addressToBech32 = async (address) => {
220
- const client = await getClient();
221
- const response = await client.addressToBech32(new AddressToBech32Request({ address }));
222
- return response.bech32Address;
223
- };
224
- const addressFromBech32 = async (bech32Address) => {
225
- const client = await getClient();
226
- const response = await client.addressFromBech32(new AddressFromBech32Request({ bech32Address }));
227
- return response.address;
228
- };
229
- // debug
230
- const hello = async (name) => {
231
- const client = await getClient();
232
- const response = await client.hello(new HelloRequest({ name }));
233
- return response.greeting;
234
- };
235
- // debug
236
- const helloStream = async (name) => {
237
- const client = await getClient();
238
- return client.helloStream(new HelloRequest({ name }));
239
- };
240
24
  const value = {
241
- init,
242
- setRemote,
243
- getRemote,
244
- setChainID,
245
- getChainID,
246
- createAccount,
247
- generateRecoveryPhrase,
248
- listKeyInfo,
249
- hasKeyByName,
250
- hasKeyByAddress,
251
- hasKeyByNameOrAddress,
252
- getKeyInfoByName,
253
- getKeyInfoByAddress,
254
- getKeyInfoByNameOrAddress,
255
- selectAccount,
256
- setPassword,
257
- getActiveAccount,
258
- queryAccount,
259
- deleteAccount,
260
- query,
261
- render,
262
- qEval,
263
- call,
264
- send,
265
- addressToBech32,
266
- addressFromBech32,
267
- // debug
268
- hello,
269
- helloStream,
25
+ gnonative: api,
270
26
  };
271
27
  if (!initialized) {
272
28
  return null;
@@ -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 = 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"]}
1
+ {"version":3,"file":"gnonative-provider.js","sourceRoot":"","sources":["../../src/provider/gnonative-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAYtC,MAAM,gBAAgB,GAAG,aAAa,CAA+B,IAAI,CAAC,CAAC;AAE3E,MAAM,iBAAiB,GAAqC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;IACnF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAe,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,UAAU,IAAI,CAAC,MAAM;QACxB,OAAO,CAAC,GAAG,CACT,8DAA8D,EAC9D,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAChB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,GAAG;KACf,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,SAAS,mBAAmB;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAA0B,CAAC;IAEtE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["import { createContext, useContext, useEffect, useState } from 'react';\n\nimport { GnoNativeApi } from '../api';\nimport { Config } from '../api/types';\n\nexport interface GnoNativeContextProps {\n gnonative: GnoNativeApi;\n}\n\ninterface GnoNativeProviderProps {\n config: Config;\n children: React.ReactNode;\n}\n\nconst GnoNativeContext = createContext<GnoNativeContextProps | null>(null);\n\nconst GnoNativeProvider: React.FC<GnoNativeProviderProps> = ({ children, config }) => {\n const [initialized, setInitialized] = useState(false);\n const [api] = useState<GnoNativeApi>(new GnoNativeApi(config));\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 Context on remote: %s chain_id: %s',\n config.remote,\n config.chain_id,\n );\n\n try {\n await api.initClient();\n } catch (error) {\n console.error(error);\n return false;\n }\n\n return true;\n }\n\n const value = {\n gnonative: api,\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gnolang/gnonative",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
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",