@gnolang/gnonative 4.0.0 → 4.1.1
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 +20 -3
- package/android/libs/gnocore-sources.jar +0 -0
- package/android/libs/gnocore.aar +0 -0
- package/android/src/main/java/land/gno/gnonative/GnonativeModule.kt +0 -13
- package/build/GoBridge.d.ts +0 -1
- package/build/GoBridge.d.ts.map +1 -1
- package/build/GoBridge.js +0 -3
- package/build/GoBridge.js.map +1 -1
- package/build/api/GnoNativeApi.d.ts +6 -6
- package/build/api/GnoNativeApi.d.ts.map +1 -1
- package/build/api/GnoNativeApi.js +50 -61
- package/build/api/GnoNativeApi.js.map +1 -1
- package/build/api/types.d.ts +2 -2
- package/build/api/types.d.ts.map +1 -1
- package/build/api/types.js.map +1 -1
- package/build/api/vendor/gnonativetypes_pb.d.ts +1334 -0
- package/build/api/vendor/gnonativetypes_pb.d.ts.map +1 -0
- package/build/api/vendor/gnonativetypes_pb.js +379 -0
- package/build/api/vendor/gnonativetypes_pb.js.map +1 -0
- package/build/api/vendor/rpc_pb.d.ts +646 -0
- package/build/api/vendor/rpc_pb.d.ts.map +1 -0
- package/build/api/vendor/rpc_pb.js +227 -0
- package/build/api/vendor/rpc_pb.js.map +1 -0
- package/build/grpc/client.d.ts +3 -3
- package/build/grpc/client.d.ts.map +1 -1
- package/build/grpc/client.js +3 -3
- package/build/grpc/client.js.map +1 -1
- package/build/grpc/error.d.ts +1 -1
- package/build/grpc/error.d.ts.map +1 -1
- package/build/grpc/error.js +1 -1
- package/build/grpc/error.js.map +1 -1
- package/build/grpc/transport_native.d.ts.map +1 -1
- package/build/grpc/transport_native.js +20 -25
- package/build/grpc/transport_native.js.map +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -2
- package/build/index.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/Headers/GnoGnonative.objc.h +0 -7
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/A/GnoCore +0 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/A/Headers/GnoGnonative.objc.h +0 -7
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/Current/GnoCore +0 -0
- package/ios/Frameworks/GnoCore.xcframework/ios-arm64/GnoCore.framework/Versions/Current/Headers/GnoGnonative.objc.h +0 -7
- 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/Headers/GnoGnonative.objc.h +0 -7
- package/ios/GnonativeModule.swift +0 -12
- package/package.json +4 -6
- package/src/GoBridge.ts +0 -5
- package/src/api/GnoNativeApi.ts +87 -142
- package/src/api/types.ts +10 -3
- package/src/api/vendor/gnonativetypes_pb.ts +1627 -0
- package/src/api/vendor/rpc_pb.ts +697 -0
- package/src/grpc/client.ts +4 -4
- package/src/grpc/error.ts +2 -1
- package/src/grpc/transport_native.ts +35 -36
- package/src/index.ts +2 -2
- package/tsconfig.json +0 -1
package/Makefile
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
PROJECT_DIR := $(shell go list -m -f '{{.Dir}}')
|
|
2
2
|
|
|
3
|
+
API_SRC := $(PROJECT_DIR)/api/gen/es
|
|
4
|
+
API_SRC_FILES := $(shell find $(PROJECT_DIR)/api/gen/es -iname '*.js' -o -iname '*.ts')
|
|
5
|
+
API_VENDOR := src/api/vendor
|
|
6
|
+
|
|
3
7
|
ANDROID_FRAMEWORK_SRC_DIR := $(PROJECT_DIR)/framework/android
|
|
4
8
|
ANDROID_FRAMEWORK_OUTPUT_DIR := android/libs
|
|
5
9
|
ANDROID_FRAMEWORK_FILES := gnocore.aar gnocore-sources.jar
|
|
@@ -20,13 +24,26 @@ go_deps := $(PROJECT_DIR)/go.mod $(PROJECT_DIR)/go.sum $(go_files)
|
|
|
20
24
|
|
|
21
25
|
build: build.android build.ios
|
|
22
26
|
|
|
23
|
-
clean: clean.android clean.ios
|
|
27
|
+
clean: clean.android clean.ios clean.api
|
|
24
28
|
cd $(PROJECT_DIR); $(MAKE) clean
|
|
25
29
|
.PHONY: clean
|
|
26
30
|
|
|
31
|
+
######### API #########
|
|
32
|
+
|
|
33
|
+
build.api: $(API_VENDOR)
|
|
34
|
+
.PHONY: build.api
|
|
35
|
+
|
|
36
|
+
$(API_VENDOR): $(API_SRC_FILES)
|
|
37
|
+
mkdir -p $(API_VENDOR)
|
|
38
|
+
cp -r $^ $(API_VENDOR)
|
|
39
|
+
touch $@
|
|
40
|
+
|
|
41
|
+
clean.api:
|
|
42
|
+
rm -fr $(API_VENDOR)
|
|
43
|
+
|
|
27
44
|
######### ANDROID #########
|
|
28
45
|
|
|
29
|
-
build.android: $(ANDROID_FRAMEWORK_DST)
|
|
46
|
+
build.android: $(ANDROID_FRAMEWORK_DST) build.api
|
|
30
47
|
.PHONY: build.android
|
|
31
48
|
|
|
32
49
|
$(ANDROID_FRAMEWORK_SRC): $(go_deps)
|
|
@@ -42,7 +59,7 @@ clean.android:
|
|
|
42
59
|
|
|
43
60
|
######### IOS #########
|
|
44
61
|
|
|
45
|
-
build.ios: $(IOS_FRAMEWORK_DST)
|
|
62
|
+
build.ios: $(IOS_FRAMEWORK_DST) build.api
|
|
46
63
|
.PHONY: build.ios
|
|
47
64
|
|
|
48
65
|
$(IOS_FRAMEWORK_SRC): $(go_deps)
|
|
Binary file
|
package/android/libs/gnocore.aar
CHANGED
|
Binary file
|
|
@@ -88,19 +88,6 @@ class GnonativeModule : Module() {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
AsyncFunction("startGnokeyMobileService") { promise: Promise ->
|
|
92
|
-
try {
|
|
93
|
-
bridgeGnoNative?.let {
|
|
94
|
-
bridgeGnoNative!!.startGnokeyMobileService()
|
|
95
|
-
promise.resolve(true)
|
|
96
|
-
} ?: run {
|
|
97
|
-
throw GoBridgeNotStartedError()
|
|
98
|
-
}
|
|
99
|
-
} catch (err: CodedException) {
|
|
100
|
-
promise.reject(err)
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
91
|
AsyncFunction("invokeGrpcMethod") { method: String, jsonMessage: String, promise: Promise ->
|
|
105
92
|
try {
|
|
106
93
|
bridgeGnoNative?.let {
|
package/build/GoBridge.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export interface GoBridgeInterface {
|
|
|
2
2
|
initBridge(): Promise<void>;
|
|
3
3
|
closeBridge(): Promise<void>;
|
|
4
4
|
getTcpPort(): Promise<number>;
|
|
5
|
-
startGnokeyMobileService(): Promise<void>;
|
|
6
5
|
invokeGrpcMethod(method: string, jsonMessage: string): Promise<string>;
|
|
7
6
|
createStreamClient(method: string, jsonMessage: string): Promise<string>;
|
|
8
7
|
streamClientReceive(id: string): Promise<string>;
|
package/build/GoBridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoBridge.d.ts","sourceRoot":"","sources":["../src/GoBridge.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,
|
|
1
|
+
{"version":3,"file":"GoBridge.d.ts","sourceRoot":"","sources":["../src/GoBridge.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzE,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAgCD,QAAA,MAAM,QAAQ,EAAE,iBAAkC,CAAC;AACnD,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC"}
|
package/build/GoBridge.js
CHANGED
|
@@ -9,9 +9,6 @@ class GoBridge {
|
|
|
9
9
|
getTcpPort() {
|
|
10
10
|
return GnonativeModule.getTcpPort();
|
|
11
11
|
}
|
|
12
|
-
startGnokeyMobileService() {
|
|
13
|
-
return GnonativeModule.startGnokeyMobileService();
|
|
14
|
-
}
|
|
15
12
|
invokeGrpcMethod(method, jsonMessage) {
|
|
16
13
|
return GnonativeModule.invokeGrpcMethod(method, jsonMessage);
|
|
17
14
|
}
|
package/build/GoBridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoBridge.js","sourceRoot":"","sources":["../src/GoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"GoBridge.js","sourceRoot":"","sources":["../src/GoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAYhD,MAAM,QAAQ;IACZ,UAAU;QACR,OAAO,eAAe,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,WAAW;QACT,OAAO,eAAe,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,UAAU;QACR,OAAO,eAAe,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,WAAmB;QAClD,OAAO,eAAe,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,WAAmB;QACpD,OAAO,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC5B,OAAO,eAAe,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,iBAAiB,CAAC,EAAU;QAC1B,OAAO,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,QAAQ,GAAsB,IAAI,QAAQ,EAAE,CAAC;AACnD,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC","sourcesContent":["import GnonativeModule from './GnonativeModule';\n\nexport interface GoBridgeInterface {\n initBridge(): Promise<void>;\n closeBridge(): Promise<void>;\n getTcpPort(): Promise<number>;\n invokeGrpcMethod(method: string, jsonMessage: string): Promise<string>;\n createStreamClient(method: string, jsonMessage: string): Promise<string>;\n streamClientReceive(id: string): Promise<string>;\n closeStreamClient(id: string): Promise<void>;\n}\n\nclass GoBridge implements GoBridgeInterface {\n initBridge(): Promise<void> {\n return GnonativeModule.initBridge();\n }\n\n closeBridge(): Promise<void> {\n return GnonativeModule.closeBridge();\n }\n\n getTcpPort(): Promise<number> {\n return GnonativeModule.getTcpPort();\n }\n\n invokeGrpcMethod(method: string, jsonMessage: string): Promise<string> {\n return GnonativeModule.invokeGrpcMethod(method, jsonMessage);\n }\n\n createStreamClient(method: string, jsonMessage: string): Promise<string> {\n return GnonativeModule.createStreamClient(method, jsonMessage);\n }\n\n streamClientReceive(id: string): Promise<string> {\n return GnonativeModule.streamClientReceive(id);\n }\n\n closeStreamClient(id: string): Promise<void> {\n return GnonativeModule.closeStreamClient(id);\n }\n}\n\nconst goBridge: GoBridgeInterface = new GoBridge();\nexport { goBridge as GoBridge };\n"]}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { GnoNativeService } from '@buf/gnolang_gnonative.connectrpc_es/rpc_connect';
|
|
3
|
-
import { PromiseClient } from '@connectrpc/connect';
|
|
1
|
+
import { Client } from '@connectrpc/connect';
|
|
4
2
|
import { GnoKeyApi, BridgeStatus, Config } from './types';
|
|
3
|
+
import { BroadcastTxCommitResponse, CallResponse, DeleteAccountResponse, GetActivatedAccountResponse, HelloStreamResponse, KeyInfo, MakeTxResponse, Coin, QueryAccountResponse, QueryResponse, ActivateAccountResponse, SendResponse, SetChainIDResponse, SetPasswordResponse, SetRemoteResponse, SignTxResponse, RotatePasswordResponse, EstimateGasResponse } from './vendor/gnonativetypes_pb';
|
|
4
|
+
import { GnoNativeService } from './vendor/rpc_pb';
|
|
5
5
|
import { GoBridgeInterface } from '../GoBridge';
|
|
6
6
|
export declare class GnoNativeApi implements GnoKeyApi, GoBridgeInterface {
|
|
7
7
|
#private;
|
|
8
8
|
bridgeStatus: BridgeStatus;
|
|
9
9
|
config: Config;
|
|
10
|
-
clientInstance:
|
|
10
|
+
clientInstance: Client<typeof GnoNativeService> | undefined;
|
|
11
11
|
constructor(config: Config);
|
|
12
12
|
initClient(): Promise<boolean>;
|
|
13
13
|
setRemote(remote: string): Promise<SetRemoteResponse>;
|
|
14
14
|
getRemote(): Promise<string>;
|
|
15
15
|
signTx(txJson: string, address: Uint8Array, accountNumber?: bigint, sequenceNumber?: bigint): Promise<SignTxResponse>;
|
|
16
|
+
estimateGas(txJson: string, address: Uint8Array, securityMargin: number, updateTx: boolean, accountNumber?: bigint, sequenceNumber?: bigint): Promise<EstimateGasResponse>;
|
|
16
17
|
setChainID(chainId: string): Promise<SetChainIDResponse>;
|
|
17
18
|
getChainID(): Promise<string>;
|
|
18
19
|
createAccount(nameOrBech32: string, mnemonic: string, password: string): Promise<KeyInfo | undefined>;
|
|
@@ -27,7 +28,7 @@ export declare class GnoNativeApi implements GnoKeyApi, GoBridgeInterface {
|
|
|
27
28
|
makeCallTx(packagePath: string, fnc: string, args: string[], gasFee: string, gasWanted: bigint, callerAddress: Uint8Array, send?: Coin[], memo?: string): Promise<MakeTxResponse>;
|
|
28
29
|
makeSendTx(toAddress: Uint8Array, amount: Coin[], gasFee: string, gasWanted: bigint, callerAddress: Uint8Array, memo?: string): Promise<MakeTxResponse>;
|
|
29
30
|
activateAccount(nameOrBech32: string): Promise<ActivateAccountResponse>;
|
|
30
|
-
getClient(): Promise<
|
|
31
|
+
getClient(): Promise<Client<typeof GnoNativeService>>;
|
|
31
32
|
isInitialized(): boolean;
|
|
32
33
|
setPassword(password: string, address: Uint8Array): Promise<SetPasswordResponse>;
|
|
33
34
|
rotatePassword(newPassword: string, addresses: Uint8Array[]): Promise<RotatePasswordResponse>;
|
|
@@ -48,7 +49,6 @@ export declare class GnoNativeApi implements GnoKeyApi, GoBridgeInterface {
|
|
|
48
49
|
initBridge(): Promise<void>;
|
|
49
50
|
closeBridge(): Promise<void>;
|
|
50
51
|
getTcpPort(): Promise<number>;
|
|
51
|
-
startGnokeyMobileService(): Promise<void>;
|
|
52
52
|
invokeGrpcMethod(method: string, jsonMessage: string): Promise<string>;
|
|
53
53
|
createStreamClient(method: string, jsonMessage: string): Promise<string>;
|
|
54
54
|
streamClientReceive(id: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GnoNativeApi.d.ts","sourceRoot":"","sources":["../../src/api/GnoNativeApi.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"GnoNativeApi.d.ts","sourceRoot":"","sources":["../../src/api/GnoNativeApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AddressFromBech32Request, AddressToBech32Request, AddressFromMnemonicRequest, CallRequest, CreateAccountRequest, DeleteAccountRequest, GenerateRecoveryPhraseRequest, GetActivatedAccountRequest, GetChainIDRequest, GetKeyInfoByAddressRequest, GetKeyInfoByNameOrAddressRequest, GetKeyInfoByNameRequest, GetRemoteRequest, HasKeyByAddressRequest, HasKeyByNameOrAddressRequest, HasKeyByNameRequest, HelloRequest, ListKeyInfoRequest, MsgCall, MsgSend, QEvalRequest, QueryAccountRequest, QueryRequest, RenderRequest, ActivateAccountRequest, SendRequest, SetChainIDRequest, SetPasswordRequest, SetRemoteRequest, RotatePasswordRequest, } from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';
|
|
2
1
|
import { BridgeStatus } from './types';
|
|
3
2
|
import { GoBridge } from '../GoBridge';
|
|
4
3
|
import * as Grpc from '../grpc/client';
|
|
@@ -24,13 +23,9 @@ export class GnoNativeApi {
|
|
|
24
23
|
this.clientInstance = client;
|
|
25
24
|
console.log('GoBridge GRPC client instance. Done.');
|
|
26
25
|
try {
|
|
27
|
-
await this.clientInstance
|
|
28
|
-
await this.clientInstance
|
|
26
|
+
await this.clientInstance?.setRemote({ remote: this.config.remote });
|
|
27
|
+
await this.clientInstance?.setChainID({ chainId: this.config.chain_id });
|
|
29
28
|
console.log('✅ GnoNative bridge initialized.');
|
|
30
|
-
if (this.config.start_gnokey_mobile_service) {
|
|
31
|
-
await this.startGnokeyMobileService();
|
|
32
|
-
console.log('✅ Gnokey Mobile service started.');
|
|
33
|
-
}
|
|
34
29
|
return true;
|
|
35
30
|
}
|
|
36
31
|
catch (error) {
|
|
@@ -55,12 +50,12 @@ export class GnoNativeApi {
|
|
|
55
50
|
}
|
|
56
51
|
async setRemote(remote) {
|
|
57
52
|
const client = this.#getClient();
|
|
58
|
-
const response = client.setRemote(
|
|
53
|
+
const response = client.setRemote({ remote });
|
|
59
54
|
return response;
|
|
60
55
|
}
|
|
61
56
|
async getRemote() {
|
|
62
57
|
const client = this.#getClient();
|
|
63
|
-
const response = await client.getRemote(
|
|
58
|
+
const response = await client.getRemote({});
|
|
64
59
|
return response.remote;
|
|
65
60
|
}
|
|
66
61
|
async signTx(txJson, address, accountNumber = BigInt(0), sequenceNumber = BigInt(0)) {
|
|
@@ -68,63 +63,75 @@ export class GnoNativeApi {
|
|
|
68
63
|
const response = client.signTx({ txJson, address, accountNumber, sequenceNumber });
|
|
69
64
|
return response;
|
|
70
65
|
}
|
|
66
|
+
async estimateGas(txJson, address, securityMargin, updateTx, accountNumber = BigInt(0), sequenceNumber = BigInt(0)) {
|
|
67
|
+
const client = this.#getClient();
|
|
68
|
+
const response = client.estimateGas({
|
|
69
|
+
txJson,
|
|
70
|
+
address,
|
|
71
|
+
securityMargin,
|
|
72
|
+
updateTx,
|
|
73
|
+
accountNumber,
|
|
74
|
+
sequenceNumber,
|
|
75
|
+
});
|
|
76
|
+
return response;
|
|
77
|
+
}
|
|
71
78
|
async setChainID(chainId) {
|
|
72
79
|
const client = this.#getClient();
|
|
73
|
-
const response = client.setChainID(
|
|
80
|
+
const response = client.setChainID({ chainId });
|
|
74
81
|
return response;
|
|
75
82
|
}
|
|
76
83
|
async getChainID() {
|
|
77
84
|
const client = this.#getClient();
|
|
78
|
-
const response = await client.getChainID(
|
|
85
|
+
const response = await client.getChainID({});
|
|
79
86
|
return response.chainId;
|
|
80
87
|
}
|
|
81
88
|
async createAccount(nameOrBech32, mnemonic, password) {
|
|
82
89
|
const client = this.#getClient();
|
|
83
|
-
const reponse = await client.createAccount(
|
|
90
|
+
const reponse = await client.createAccount({
|
|
84
91
|
nameOrBech32,
|
|
85
92
|
mnemonic,
|
|
86
93
|
password,
|
|
87
|
-
})
|
|
94
|
+
});
|
|
88
95
|
return reponse.key;
|
|
89
96
|
}
|
|
90
97
|
async generateRecoveryPhrase() {
|
|
91
98
|
const client = this.#getClient();
|
|
92
|
-
const response = await client.generateRecoveryPhrase(
|
|
99
|
+
const response = await client.generateRecoveryPhrase({});
|
|
93
100
|
return response.phrase;
|
|
94
101
|
}
|
|
95
102
|
async hasKeyByName(name) {
|
|
96
103
|
const client = this.#getClient();
|
|
97
|
-
const response = await client.hasKeyByName(
|
|
104
|
+
const response = await client.hasKeyByName({ name });
|
|
98
105
|
return response.has;
|
|
99
106
|
}
|
|
100
107
|
async hasKeyByAddress(address) {
|
|
101
108
|
const client = this.#getClient();
|
|
102
|
-
const response = await client.hasKeyByAddress(
|
|
109
|
+
const response = await client.hasKeyByAddress({ address });
|
|
103
110
|
return response.has;
|
|
104
111
|
}
|
|
105
112
|
async hasKeyByNameOrAddress(nameOrBech32) {
|
|
106
113
|
const client = this.#getClient();
|
|
107
|
-
const response = await client.hasKeyByNameOrAddress(
|
|
114
|
+
const response = await client.hasKeyByNameOrAddress({ nameOrBech32 });
|
|
108
115
|
return response.has;
|
|
109
116
|
}
|
|
110
117
|
async getKeyInfoByName(name) {
|
|
111
118
|
const client = this.#getClient();
|
|
112
|
-
const response = await client.getKeyInfoByName(
|
|
119
|
+
const response = await client.getKeyInfoByName({ name });
|
|
113
120
|
return response.key;
|
|
114
121
|
}
|
|
115
122
|
async getKeyInfoByAddress(address) {
|
|
116
123
|
const client = this.#getClient();
|
|
117
|
-
const response = await client.getKeyInfoByAddress(
|
|
124
|
+
const response = await client.getKeyInfoByAddress({ address });
|
|
118
125
|
return response.key;
|
|
119
126
|
}
|
|
120
127
|
async getKeyInfoByNameOrAddress(nameOrBech32) {
|
|
121
128
|
const client = this.#getClient();
|
|
122
|
-
const response = await client.getKeyInfoByNameOrAddress(
|
|
129
|
+
const response = await client.getKeyInfoByNameOrAddress({ nameOrBech32 });
|
|
123
130
|
return response.key;
|
|
124
131
|
}
|
|
125
132
|
async listKeyInfo() {
|
|
126
133
|
const client = this.#getClient();
|
|
127
|
-
const response = await client.listKeyInfo(
|
|
134
|
+
const response = await client.listKeyInfo({});
|
|
128
135
|
return response.keys;
|
|
129
136
|
}
|
|
130
137
|
async makeCallTx(packagePath, fnc, args, gasFee, gasWanted, callerAddress, send, memo) {
|
|
@@ -163,9 +170,7 @@ export class GnoNativeApi {
|
|
|
163
170
|
}
|
|
164
171
|
async activateAccount(nameOrBech32) {
|
|
165
172
|
const client = this.#getClient();
|
|
166
|
-
const response = client.activateAccount(
|
|
167
|
-
nameOrBech32,
|
|
168
|
-
}));
|
|
173
|
+
const response = client.activateAccount({ nameOrBech32 });
|
|
169
174
|
return response;
|
|
170
175
|
}
|
|
171
176
|
async getClient() {
|
|
@@ -179,104 +184,91 @@ export class GnoNativeApi {
|
|
|
179
184
|
}
|
|
180
185
|
async setPassword(password, address) {
|
|
181
186
|
const client = this.#getClient();
|
|
182
|
-
const response = client.setPassword(
|
|
187
|
+
const response = client.setPassword({ password, address });
|
|
183
188
|
return response;
|
|
184
189
|
}
|
|
185
190
|
async rotatePassword(newPassword, addresses) {
|
|
186
191
|
const client = this.#getClient();
|
|
187
|
-
const response = client.rotatePassword(
|
|
192
|
+
const response = client.rotatePassword({ newPassword, addresses });
|
|
188
193
|
return response;
|
|
189
194
|
}
|
|
190
195
|
async getActivatedAccount() {
|
|
191
196
|
const client = this.#getClient();
|
|
192
|
-
const response = client.getActivatedAccount(
|
|
197
|
+
const response = client.getActivatedAccount({});
|
|
193
198
|
return response;
|
|
194
199
|
}
|
|
195
200
|
async queryAccount(address) {
|
|
196
201
|
const client = this.#getClient();
|
|
197
|
-
const reponse = client.queryAccount(
|
|
202
|
+
const reponse = client.queryAccount({ address });
|
|
198
203
|
return reponse;
|
|
199
204
|
}
|
|
200
205
|
async deleteAccount(nameOrBech32, password, skipPassword) {
|
|
201
206
|
const client = this.#getClient();
|
|
202
|
-
const response = client.deleteAccount(
|
|
203
|
-
nameOrBech32,
|
|
204
|
-
password,
|
|
205
|
-
skipPassword,
|
|
206
|
-
}));
|
|
207
|
+
const response = client.deleteAccount({ nameOrBech32, password, skipPassword });
|
|
207
208
|
return response;
|
|
208
209
|
}
|
|
209
210
|
async query(path, data) {
|
|
210
211
|
const client = this.#getClient();
|
|
211
|
-
const reponse = client.query(
|
|
212
|
-
path,
|
|
213
|
-
data,
|
|
214
|
-
}));
|
|
212
|
+
const reponse = client.query({ path, data });
|
|
215
213
|
return reponse;
|
|
216
214
|
}
|
|
217
215
|
async render(packagePath, args) {
|
|
218
216
|
const client = this.#getClient();
|
|
219
|
-
const reponse = await client.render(
|
|
220
|
-
packagePath,
|
|
221
|
-
args,
|
|
222
|
-
}));
|
|
217
|
+
const reponse = await client.render({ packagePath, args });
|
|
223
218
|
return reponse.result;
|
|
224
219
|
}
|
|
225
220
|
async qEval(packagePath, expression) {
|
|
226
221
|
const client = this.#getClient();
|
|
227
|
-
const reponse = await client.qEval(
|
|
228
|
-
packagePath,
|
|
229
|
-
expression,
|
|
230
|
-
}));
|
|
222
|
+
const reponse = await client.qEval({ packagePath, expression });
|
|
231
223
|
return reponse.result;
|
|
232
224
|
}
|
|
233
225
|
async call(packagePath, fnc, args, gasFee, gasWanted, callerAddress, send, memo) {
|
|
234
226
|
const client = this.#getClient();
|
|
235
|
-
const reponse = client.call(
|
|
227
|
+
const reponse = client.call({
|
|
236
228
|
gasFee,
|
|
237
229
|
gasWanted,
|
|
238
230
|
memo,
|
|
239
231
|
callerAddress,
|
|
240
232
|
msgs: [
|
|
241
|
-
|
|
233
|
+
{
|
|
242
234
|
packagePath,
|
|
243
235
|
fnc,
|
|
244
236
|
args,
|
|
245
237
|
send,
|
|
246
|
-
}
|
|
238
|
+
},
|
|
247
239
|
],
|
|
248
|
-
})
|
|
240
|
+
});
|
|
249
241
|
return reponse;
|
|
250
242
|
}
|
|
251
243
|
async send(toAddress, amount, gasFee, gasWanted, callerAddress, memo) {
|
|
252
244
|
const client = this.#getClient();
|
|
253
|
-
const reponse = client.send(
|
|
245
|
+
const reponse = client.send({
|
|
254
246
|
gasFee,
|
|
255
247
|
gasWanted,
|
|
256
248
|
memo,
|
|
257
249
|
callerAddress,
|
|
258
250
|
msgs: [
|
|
259
|
-
|
|
251
|
+
{
|
|
260
252
|
toAddress,
|
|
261
253
|
amount,
|
|
262
|
-
}
|
|
254
|
+
},
|
|
263
255
|
],
|
|
264
|
-
})
|
|
256
|
+
});
|
|
265
257
|
return reponse;
|
|
266
258
|
}
|
|
267
259
|
async addressToBech32(address) {
|
|
268
260
|
const client = this.#getClient();
|
|
269
|
-
const response = await client.addressToBech32(
|
|
261
|
+
const response = await client.addressToBech32({ address });
|
|
270
262
|
return response.bech32Address;
|
|
271
263
|
}
|
|
272
264
|
async addressFromMnemonic(mnemonic) {
|
|
273
265
|
const client = this.#getClient();
|
|
274
|
-
const response = await client.addressFromMnemonic(
|
|
266
|
+
const response = await client.addressFromMnemonic({ mnemonic });
|
|
275
267
|
return response.address;
|
|
276
268
|
}
|
|
277
269
|
async addressFromBech32(bech32Address) {
|
|
278
270
|
const client = this.#getClient();
|
|
279
|
-
const response = await client.addressFromBech32(
|
|
271
|
+
const response = await client.addressFromBech32({ bech32Address });
|
|
280
272
|
return response.address;
|
|
281
273
|
}
|
|
282
274
|
async broadcastTxCommit(signedTxJson) {
|
|
@@ -287,13 +279,13 @@ export class GnoNativeApi {
|
|
|
287
279
|
// // debug
|
|
288
280
|
async hello(name) {
|
|
289
281
|
const client = this.#getClient();
|
|
290
|
-
const response = await client.hello(
|
|
282
|
+
const response = await client.hello({ name });
|
|
291
283
|
return response.greeting;
|
|
292
284
|
}
|
|
293
285
|
// // debug
|
|
294
286
|
async helloStream(name) {
|
|
295
287
|
const client = this.#getClient();
|
|
296
|
-
return client.helloStream(
|
|
288
|
+
return client.helloStream({ name });
|
|
297
289
|
}
|
|
298
290
|
// Go Bridge Interface:
|
|
299
291
|
initBridge() {
|
|
@@ -305,9 +297,6 @@ export class GnoNativeApi {
|
|
|
305
297
|
getTcpPort() {
|
|
306
298
|
return GoBridge.getTcpPort();
|
|
307
299
|
}
|
|
308
|
-
startGnokeyMobileService() {
|
|
309
|
-
return GoBridge.startGnokeyMobileService();
|
|
310
|
-
}
|
|
311
300
|
invokeGrpcMethod(method, jsonMessage) {
|
|
312
301
|
return GoBridge.invokeGrpcMethod(method, jsonMessage);
|
|
313
302
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GnoNativeApi.js","sourceRoot":"","sources":["../../src/api/GnoNativeApi.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AddressFromBech32Request,\n AddressToBech32Request,\n AddressFromMnemonicRequest,\n BroadcastTxCommitResponse,\n CallRequest,\n CallResponse,\n CreateAccountRequest,\n DeleteAccountRequest,\n DeleteAccountResponse,\n GenerateRecoveryPhraseRequest,\n GetActivatedAccountRequest,\n GetActivatedAccountResponse,\n GetChainIDRequest,\n GetKeyInfoByAddressRequest,\n GetKeyInfoByNameOrAddressRequest,\n GetKeyInfoByNameRequest,\n GetRemoteRequest,\n HasKeyByAddressRequest,\n HasKeyByNameOrAddressRequest,\n HasKeyByNameRequest,\n HelloRequest,\n HelloStreamResponse,\n KeyInfo,\n ListKeyInfoRequest,\n MakeTxResponse,\n MsgCall,\n Coin,\n MsgSend,\n QEvalRequest,\n QueryAccountRequest,\n QueryAccountResponse,\n QueryRequest,\n QueryResponse,\n RenderRequest,\n ActivateAccountRequest,\n ActivateAccountResponse,\n SendRequest,\n SendResponse,\n SetChainIDRequest,\n SetChainIDResponse,\n SetPasswordRequest,\n SetPasswordResponse,\n SetRemoteRequest,\n SetRemoteResponse,\n SignTxResponse,\n RotatePasswordRequest,\n RotatePasswordResponse,\n} from '@buf/gnolang_gnonative.bufbuild_es/gnonativetypes_pb';\nimport { GnoNativeService } from '@buf/gnolang_gnonative.connectrpc_es/rpc_connect';\nimport { PromiseClient } from '@connectrpc/connect';\n\nimport { GnoKeyApi, BridgeStatus, Config } from './types';\nimport { GoBridge, GoBridgeInterface } from '../GoBridge';\nimport * as Grpc from '../grpc/client';\n\nexport class GnoNativeApi implements GnoKeyApi, GoBridgeInterface {\n bridgeStatus = BridgeStatus.Stopped;\n config: Config;\n clientInstance: PromiseClient<typeof GnoNativeService> | undefined;\n\n constructor(config: Config) {\n this.config = config;\n }\n\n async initClient() {\n if (this.bridgeStatus === BridgeStatus.Stopped) {\n console.log('Bridge stopped. Initializing...');\n await this.#initBridge();\n }\n\n if (this.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 this.clientInstance = client;\n console.log('GoBridge GRPC client instance. Done.');\n\n try {\n await this.clientInstance.setRemote(new SetRemoteRequest({ remote: this.config.remote }));\n await this.clientInstance.setChainID(\n new SetChainIDRequest({ chainId: this.config.chain_id }),\n );\n console.log('✅ GnoNative bridge initialized.');\n if (this.config.start_gnokey_mobile_service) {\n await this.startGnokeyMobileService();\n console.log('✅ Gnokey Mobile service started.');\n }\n return true;\n } catch (error) {\n console.error(error);\n return false;\n }\n }\n\n async #initBridge() {\n if (this.bridgeStatus === BridgeStatus.Stopped) {\n console.log('Initializing bridge...');\n this.bridgeStatus = BridgeStatus.Starting;\n await GoBridge.initBridge();\n console.log('Bridge initialized.');\n this.bridgeStatus = BridgeStatus.Started;\n }\n }\n\n #getClient() {\n if (!this.clientInstance) {\n throw new Error('GoBridge client instance not initialized.');\n }\n\n return this.clientInstance;\n }\n\n async setRemote(remote: string): Promise<SetRemoteResponse> {\n const client = this.#getClient();\n const response = client.setRemote(new SetRemoteRequest({ remote }));\n return response;\n }\n\n async getRemote(): Promise<string> {\n const client = this.#getClient();\n const response = await client.getRemote(new GetRemoteRequest());\n return response.remote;\n }\n\n async signTx(\n txJson: string,\n address: Uint8Array,\n accountNumber: bigint = BigInt(0),\n sequenceNumber: bigint = BigInt(0),\n ): Promise<SignTxResponse> {\n const client = this.#getClient();\n const response = client.signTx({ txJson, address, accountNumber, sequenceNumber });\n return response;\n }\n\n async setChainID(chainId: string): Promise<SetChainIDResponse> {\n const client = this.#getClient();\n const response = client.setChainID(new SetChainIDRequest({ chainId }));\n return response;\n }\n\n async getChainID() {\n const client = this.#getClient();\n const response = await client.getChainID(new GetChainIDRequest());\n return response.chainId;\n }\n\n async createAccount(\n nameOrBech32: string,\n mnemonic: string,\n password: string,\n ): Promise<KeyInfo | undefined> {\n const client = this.#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 async generateRecoveryPhrase() {\n const client = this.#getClient();\n const response = await client.generateRecoveryPhrase(new GenerateRecoveryPhraseRequest());\n return response.phrase;\n }\n\n async hasKeyByName(name: string) {\n const client = this.#getClient();\n const response = await client.hasKeyByName(new HasKeyByNameRequest({ name }));\n return response.has;\n }\n\n async hasKeyByAddress(address: Uint8Array) {\n const client = this.#getClient();\n const response = await client.hasKeyByAddress(new HasKeyByAddressRequest({ address }));\n return response.has;\n }\n\n async hasKeyByNameOrAddress(nameOrBech32: string) {\n const client = this.#getClient();\n const response = await client.hasKeyByNameOrAddress(\n new HasKeyByNameOrAddressRequest({ nameOrBech32 }),\n );\n return response.has;\n }\n\n async getKeyInfoByName(name: string): Promise<KeyInfo | undefined> {\n const client = this.#getClient();\n const response = await client.getKeyInfoByName(new GetKeyInfoByNameRequest({ name }));\n return response.key;\n }\n\n async getKeyInfoByAddress(address: Uint8Array): Promise<KeyInfo | undefined> {\n const client = this.#getClient();\n const response = await client.getKeyInfoByAddress(new GetKeyInfoByAddressRequest({ address }));\n return response.key;\n }\n\n async getKeyInfoByNameOrAddress(nameOrBech32: string): Promise<KeyInfo | undefined> {\n const client = this.#getClient();\n const response = await client.getKeyInfoByNameOrAddress(\n new GetKeyInfoByNameOrAddressRequest({ nameOrBech32 }),\n );\n return response.key;\n }\n\n async listKeyInfo(): Promise<KeyInfo[]> {\n const client = this.#getClient();\n const response = await client.listKeyInfo(new ListKeyInfoRequest());\n return response.keys;\n }\n\n async makeCallTx(\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n send?: Coin[],\n memo?: string,\n ): Promise<MakeTxResponse> {\n const client = this.#getClient();\n const reponse = client.makeCallTx({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n {\n packagePath,\n fnc,\n args,\n send,\n },\n ],\n });\n return reponse;\n }\n\n async makeSendTx(\n toAddress: Uint8Array,\n amount: Coin[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n memo?: string,\n ): Promise<MakeTxResponse> {\n const client = this.#getClient();\n const reponse = client.makeSendTx({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n {\n toAddress,\n amount,\n },\n ],\n });\n return reponse;\n }\n\n async activateAccount(nameOrBech32: string): Promise<ActivateAccountResponse> {\n const client = this.#getClient();\n const response = client.activateAccount(\n new ActivateAccountRequest({\n nameOrBech32,\n }),\n );\n return response;\n }\n\n async getClient(): Promise<PromiseClient<typeof GnoNativeService>> {\n if (!this.clientInstance) {\n throw new Error('GoBridge client instance not initialized.');\n }\n return this.clientInstance;\n }\n\n isInitialized(): boolean {\n return this.clientInstance !== undefined;\n }\n\n async setPassword(password: string, address: Uint8Array): Promise<SetPasswordResponse> {\n const client = this.#getClient();\n const response = client.setPassword(new SetPasswordRequest({ password, address }));\n return response;\n }\n\n async rotatePassword(\n newPassword: string,\n addresses: Uint8Array[],\n ): Promise<RotatePasswordResponse> {\n const client = this.#getClient();\n const response = client.rotatePassword(new RotatePasswordRequest({ newPassword, addresses }));\n return response;\n }\n\n async getActivatedAccount(): Promise<GetActivatedAccountResponse> {\n const client = this.#getClient();\n const response = client.getActivatedAccount(new GetActivatedAccountRequest());\n return response;\n }\n\n async queryAccount(address: Uint8Array): Promise<QueryAccountResponse> {\n const client = this.#getClient();\n const reponse = client.queryAccount(new QueryAccountRequest({ address }));\n return reponse;\n }\n\n async deleteAccount(\n nameOrBech32: string,\n password: string | undefined,\n skipPassword: boolean,\n ): Promise<DeleteAccountResponse> {\n const client = this.#getClient();\n const response = client.deleteAccount(\n new DeleteAccountRequest({\n nameOrBech32,\n password,\n skipPassword,\n }),\n );\n return response;\n }\n\n async query(path: string, data: Uint8Array): Promise<QueryResponse> {\n const client = this.#getClient();\n const reponse = client.query(\n new QueryRequest({\n path,\n data,\n }),\n );\n return reponse;\n }\n\n async render(packagePath: string, args: string) {\n const client = this.#getClient();\n const reponse = await client.render(\n new RenderRequest({\n packagePath,\n args,\n }),\n );\n return reponse.result;\n }\n\n async qEval(packagePath: string, expression: string) {\n const client = this.#getClient();\n const reponse = await client.qEval(\n new QEvalRequest({\n packagePath,\n expression,\n }),\n );\n return reponse.result;\n }\n\n async call(\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n send?: Coin[],\n memo?: string,\n ): Promise<AsyncIterable<CallResponse>> {\n const client = this.#getClient();\n const reponse = client.call(\n new CallRequest({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n new MsgCall({\n packagePath,\n fnc,\n args,\n send,\n }),\n ],\n }),\n );\n return reponse;\n }\n\n async send(\n toAddress: Uint8Array,\n amount: Coin[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n memo?: string,\n ): Promise<AsyncIterable<SendResponse>> {\n const client = this.#getClient();\n const reponse = client.send(\n new SendRequest({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n new MsgSend({\n toAddress,\n amount,\n }),\n ],\n }),\n );\n return reponse;\n }\n\n async addressToBech32(address: Uint8Array) {\n const client = this.#getClient();\n const response = await client.addressToBech32(new AddressToBech32Request({ address }));\n return response.bech32Address;\n }\n\n async addressFromMnemonic(mnemonic: string) {\n const client = this.#getClient();\n const response = await client.addressFromMnemonic(new AddressFromMnemonicRequest({ mnemonic }));\n return response.address;\n }\n\n async addressFromBech32(bech32Address: string) {\n const client = this.#getClient();\n const response = await client.addressFromBech32(\n new AddressFromBech32Request({ bech32Address }),\n );\n return response.address;\n }\n\n async broadcastTxCommit(signedTxJson: string): Promise<AsyncIterable<BroadcastTxCommitResponse>> {\n const client = this.#getClient();\n const response = client.broadcastTxCommit({ signedTxJson });\n return response;\n }\n\n // // debug\n async hello(name: string) {\n const client = this.#getClient();\n const response = await client.hello(new HelloRequest({ name }));\n return response.greeting;\n }\n\n // // debug\n async helloStream(name: string): Promise<AsyncIterable<HelloStreamResponse>> {\n const client = this.#getClient();\n return client.helloStream(new HelloRequest({ name }));\n }\n\n // Go Bridge Interface:\n initBridge(): Promise<void> {\n return GoBridge.initBridge();\n }\n closeBridge(): Promise<void> {\n return GoBridge.closeBridge();\n }\n getTcpPort(): Promise<number> {\n return GoBridge.getTcpPort();\n }\n startGnokeyMobileService(): Promise<void> {\n return GoBridge.startGnokeyMobileService();\n }\n invokeGrpcMethod(method: string, jsonMessage: string): Promise<string> {\n return GoBridge.invokeGrpcMethod(method, jsonMessage);\n }\n createStreamClient(method: string, jsonMessage: string): Promise<string> {\n return GoBridge.createStreamClient(method, jsonMessage);\n }\n streamClientReceive(id: string): Promise<string> {\n return GoBridge.streamClientReceive(id);\n }\n closeStreamClient(id: string): Promise<void> {\n return GoBridge.closeStreamClient(id);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GnoNativeApi.js","sourceRoot":"","sources":["../../src/api/GnoNativeApi.ts"],"names":[],"mappings":"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","sourcesContent":["import { Client } from '@connectrpc/connect';\n\nimport { GnoKeyApi, BridgeStatus, Config } from './types';\nimport {\n BroadcastTxCommitResponse,\n CallResponse,\n DeleteAccountResponse,\n GetActivatedAccountResponse,\n HelloStreamResponse,\n KeyInfo,\n MakeTxResponse,\n Coin,\n QueryAccountResponse,\n QueryResponse,\n ActivateAccountResponse,\n SendResponse,\n SetChainIDResponse,\n SetPasswordResponse,\n SetRemoteResponse,\n SignTxResponse,\n RotatePasswordResponse,\n EstimateGasResponse,\n} from './vendor/gnonativetypes_pb';\nimport { GnoNativeService } from './vendor/rpc_pb';\nimport { GoBridge, GoBridgeInterface } from '../GoBridge';\nimport * as Grpc from '../grpc/client';\n\nexport class GnoNativeApi implements GnoKeyApi, GoBridgeInterface {\n bridgeStatus = BridgeStatus.Stopped;\n config: Config;\n clientInstance: Client<typeof GnoNativeService> | undefined;\n\n constructor(config: Config) {\n this.config = config;\n }\n\n async initClient() {\n if (this.bridgeStatus === BridgeStatus.Stopped) {\n console.log('Bridge stopped. Initializing...');\n await this.#initBridge();\n }\n\n if (this.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 this.clientInstance = client;\n console.log('GoBridge GRPC client instance. Done.');\n\n try {\n await this.clientInstance?.setRemote({ remote: this.config.remote });\n await this.clientInstance?.setChainID({ chainId: this.config.chain_id });\n console.log('✅ GnoNative bridge initialized.');\n return true;\n } catch (error) {\n console.error(error);\n return false;\n }\n }\n\n async #initBridge() {\n if (this.bridgeStatus === BridgeStatus.Stopped) {\n console.log('Initializing bridge...');\n this.bridgeStatus = BridgeStatus.Starting;\n await GoBridge.initBridge();\n console.log('Bridge initialized.');\n this.bridgeStatus = BridgeStatus.Started;\n }\n }\n\n #getClient() {\n if (!this.clientInstance) {\n throw new Error('GoBridge client instance not initialized.');\n }\n\n return this.clientInstance;\n }\n\n async setRemote(remote: string): Promise<SetRemoteResponse> {\n const client = this.#getClient();\n const response = client.setRemote({ remote });\n return response;\n }\n\n async getRemote(): Promise<string> {\n const client = this.#getClient();\n const response = await client.getRemote({});\n return response.remote;\n }\n\n async signTx(\n txJson: string,\n address: Uint8Array,\n accountNumber: bigint = BigInt(0),\n sequenceNumber: bigint = BigInt(0),\n ): Promise<SignTxResponse> {\n const client = this.#getClient();\n const response = client.signTx({ txJson, address, accountNumber, sequenceNumber });\n return response;\n }\n\n async estimateGas(\n txJson: string,\n address: Uint8Array,\n securityMargin: number,\n updateTx: boolean,\n accountNumber: bigint = BigInt(0),\n sequenceNumber: bigint = BigInt(0),\n ): Promise<EstimateGasResponse> {\n const client = this.#getClient();\n const response = client.estimateGas({\n txJson,\n address,\n securityMargin,\n updateTx,\n accountNumber,\n sequenceNumber,\n });\n return response;\n }\n\n async setChainID(chainId: string): Promise<SetChainIDResponse> {\n const client = this.#getClient();\n const response = client.setChainID({ chainId });\n return response;\n }\n\n async getChainID() {\n const client = this.#getClient();\n const response = await client.getChainID({});\n return response.chainId;\n }\n\n async createAccount(\n nameOrBech32: string,\n mnemonic: string,\n password: string,\n ): Promise<KeyInfo | undefined> {\n const client = this.#getClient();\n const reponse = await client.createAccount({\n nameOrBech32,\n mnemonic,\n password,\n });\n return reponse.key;\n }\n\n async generateRecoveryPhrase() {\n const client = this.#getClient();\n const response = await client.generateRecoveryPhrase({});\n return response.phrase;\n }\n\n async hasKeyByName(name: string) {\n const client = this.#getClient();\n const response = await client.hasKeyByName({ name });\n return response.has;\n }\n\n async hasKeyByAddress(address: Uint8Array) {\n const client = this.#getClient();\n const response = await client.hasKeyByAddress({ address });\n return response.has;\n }\n\n async hasKeyByNameOrAddress(nameOrBech32: string) {\n const client = this.#getClient();\n const response = await client.hasKeyByNameOrAddress({ nameOrBech32 });\n return response.has;\n }\n\n async getKeyInfoByName(name: string): Promise<KeyInfo | undefined> {\n const client = this.#getClient();\n const response = await client.getKeyInfoByName({ name });\n return response.key;\n }\n\n async getKeyInfoByAddress(address: Uint8Array): Promise<KeyInfo | undefined> {\n const client = this.#getClient();\n const response = await client.getKeyInfoByAddress({ address });\n return response.key;\n }\n\n async getKeyInfoByNameOrAddress(nameOrBech32: string): Promise<KeyInfo | undefined> {\n const client = this.#getClient();\n const response = await client.getKeyInfoByNameOrAddress({ nameOrBech32 });\n return response.key;\n }\n\n async listKeyInfo(): Promise<KeyInfo[]> {\n const client = this.#getClient();\n const response = await client.listKeyInfo({});\n return response.keys;\n }\n\n async makeCallTx(\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n send?: Coin[],\n memo?: string,\n ): Promise<MakeTxResponse> {\n const client = this.#getClient();\n const reponse = client.makeCallTx({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n {\n packagePath,\n fnc,\n args,\n send,\n },\n ],\n });\n return reponse;\n }\n\n async makeSendTx(\n toAddress: Uint8Array,\n amount: Coin[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n memo?: string,\n ): Promise<MakeTxResponse> {\n const client = this.#getClient();\n const reponse = client.makeSendTx({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n {\n toAddress,\n amount,\n },\n ],\n });\n return reponse;\n }\n\n async activateAccount(nameOrBech32: string): Promise<ActivateAccountResponse> {\n const client = this.#getClient();\n const response = client.activateAccount({ nameOrBech32 });\n return response;\n }\n\n async getClient(): Promise<Client<typeof GnoNativeService>> {\n if (!this.clientInstance) {\n throw new Error('GoBridge client instance not initialized.');\n }\n return this.clientInstance;\n }\n\n isInitialized(): boolean {\n return this.clientInstance !== undefined;\n }\n\n async setPassword(password: string, address: Uint8Array): Promise<SetPasswordResponse> {\n const client = this.#getClient();\n const response = client.setPassword({ password, address });\n return response;\n }\n\n async rotatePassword(\n newPassword: string,\n addresses: Uint8Array[],\n ): Promise<RotatePasswordResponse> {\n const client = this.#getClient();\n const response = client.rotatePassword({ newPassword, addresses });\n return response;\n }\n\n async getActivatedAccount(): Promise<GetActivatedAccountResponse> {\n const client = this.#getClient();\n const response = client.getActivatedAccount({});\n return response;\n }\n\n async queryAccount(address: Uint8Array): Promise<QueryAccountResponse> {\n const client = this.#getClient();\n const reponse = client.queryAccount({ address });\n return reponse;\n }\n\n async deleteAccount(\n nameOrBech32: string,\n password: string | undefined,\n skipPassword: boolean,\n ): Promise<DeleteAccountResponse> {\n const client = this.#getClient();\n const response = client.deleteAccount({ nameOrBech32, password, skipPassword });\n return response;\n }\n\n async query(path: string, data: Uint8Array): Promise<QueryResponse> {\n const client = this.#getClient();\n const reponse = client.query({ path, data });\n return reponse;\n }\n\n async render(packagePath: string, args: string) {\n const client = this.#getClient();\n const reponse = await client.render({ packagePath, args });\n return reponse.result;\n }\n\n async qEval(packagePath: string, expression: string) {\n const client = this.#getClient();\n const reponse = await client.qEval({ packagePath, expression });\n return reponse.result;\n }\n\n async call(\n packagePath: string,\n fnc: string,\n args: string[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n send?: Coin[],\n memo?: string,\n ): Promise<AsyncIterable<CallResponse>> {\n const client = this.#getClient();\n const reponse = client.call({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n {\n packagePath,\n fnc,\n args,\n send,\n },\n ],\n });\n return reponse;\n }\n\n async send(\n toAddress: Uint8Array,\n amount: Coin[],\n gasFee: string,\n gasWanted: bigint,\n callerAddress: Uint8Array,\n memo?: string,\n ): Promise<AsyncIterable<SendResponse>> {\n const client = this.#getClient();\n const reponse = client.send({\n gasFee,\n gasWanted,\n memo,\n callerAddress,\n msgs: [\n {\n toAddress,\n amount,\n },\n ],\n });\n return reponse;\n }\n\n async addressToBech32(address: Uint8Array) {\n const client = this.#getClient();\n const response = await client.addressToBech32({ address });\n return response.bech32Address;\n }\n\n async addressFromMnemonic(mnemonic: string) {\n const client = this.#getClient();\n const response = await client.addressFromMnemonic({ mnemonic });\n return response.address;\n }\n\n async addressFromBech32(bech32Address: string) {\n const client = this.#getClient();\n const response = await client.addressFromBech32({ bech32Address });\n return response.address;\n }\n\n async broadcastTxCommit(signedTxJson: string): Promise<AsyncIterable<BroadcastTxCommitResponse>> {\n const client = this.#getClient();\n const response = client.broadcastTxCommit({ signedTxJson });\n return response;\n }\n\n // // debug\n async hello(name: string) {\n const client = this.#getClient();\n const response = await client.hello({ name });\n return response.greeting;\n }\n\n // // debug\n async helloStream(name: string): Promise<AsyncIterable<HelloStreamResponse>> {\n const client = this.#getClient();\n return client.helloStream({ name });\n }\n\n // Go Bridge Interface:\n initBridge(): Promise<void> {\n return GoBridge.initBridge();\n }\n closeBridge(): Promise<void> {\n return GoBridge.closeBridge();\n }\n getTcpPort(): Promise<number> {\n return GoBridge.getTcpPort();\n }\n invokeGrpcMethod(method: string, jsonMessage: string): Promise<string> {\n return GoBridge.invokeGrpcMethod(method, jsonMessage);\n }\n createStreamClient(method: string, jsonMessage: string): Promise<string> {\n return GoBridge.createStreamClient(method, jsonMessage);\n }\n streamClientReceive(id: string): Promise<string> {\n return GoBridge.streamClientReceive(id);\n }\n closeStreamClient(id: string): Promise<void> {\n return GoBridge.closeStreamClient(id);\n }\n}\n"]}
|
package/build/api/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CallResponse, DeleteAccountResponse, GetActivatedAccountResponse, HelloStreamResponse, QueryAccountResponse, QueryResponse, ActivateAccountResponse, SendResponse, SetChainIDResponse, SetPasswordResponse, SetRemoteResponse, RotatePasswordResponse, KeyInfo, SignTxResponse, MakeTxResponse, BroadcastTxCommitResponse, Coin } from '
|
|
1
|
+
import { CallResponse, DeleteAccountResponse, GetActivatedAccountResponse, HelloStreamResponse, QueryAccountResponse, QueryResponse, ActivateAccountResponse, SendResponse, SetChainIDResponse, SetPasswordResponse, SetRemoteResponse, RotatePasswordResponse, KeyInfo, SignTxResponse, EstimateGasResponse, MakeTxResponse, BroadcastTxCommitResponse, Coin } from './vendor/gnonativetypes_pb';
|
|
2
2
|
export declare enum BridgeStatus {
|
|
3
3
|
Stopped = 0,
|
|
4
4
|
Starting = 1,
|
|
@@ -7,7 +7,6 @@ export declare enum BridgeStatus {
|
|
|
7
7
|
export interface Config {
|
|
8
8
|
remote: string;
|
|
9
9
|
chain_id: string;
|
|
10
|
-
start_gnokey_mobile_service?: boolean;
|
|
11
10
|
}
|
|
12
11
|
export interface GnoKeyApi {
|
|
13
12
|
setRemote: (remote: string) => Promise<SetRemoteResponse>;
|
|
@@ -38,6 +37,7 @@ export interface GnoKeyApi {
|
|
|
38
37
|
addressFromMnemonic: (mnemonic: string) => Promise<Uint8Array>;
|
|
39
38
|
addressFromBech32: (bech32Address: string) => Promise<Uint8Array>;
|
|
40
39
|
signTx(txJson: string, address: Uint8Array, accountNumber?: bigint, sequenceNumber?: bigint): Promise<SignTxResponse>;
|
|
40
|
+
estimateGas(txJson: string, address: Uint8Array, securityMargin: number, updateTx: boolean, accountNumber?: bigint, sequenceNumber?: bigint): Promise<EstimateGasResponse>;
|
|
41
41
|
makeCallTx(packagePath: string, fnc: string, args: string[], gasFee: string, gasWanted: bigint, callerAddress: Uint8Array, send?: Coin[], memo?: string): Promise<MakeTxResponse>;
|
|
42
42
|
makeSendTx(toAddress: Uint8Array, amount: Coin[], gasFee: string, gasWanted: bigint, callerAddress: Uint8Array, memo?: string): Promise<MakeTxResponse>;
|
|
43
43
|
broadcastTxCommit(signedTxJson: string): Promise<AsyncIterable<BroadcastTxCommitResponse>>;
|
package/build/api/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,OAAO,EACP,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,IAAI,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
|