@novasamatech/host-api 0.5.4 → 0.5.5
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/README.md +2 -2
- package/dist/hostApi.d.ts +2 -1
- package/dist/hostApi.js +111 -34
- package/dist/index.d.ts +6 -1
- package/dist/index.js +6 -1
- package/dist/protocol/impl.d.ts +60 -60
- package/dist/protocol/impl.js +57 -35
- package/dist/protocol/messageCodec.d.ts +241 -185
- package/dist/protocol/v1/devicePermission.d.ts +5 -0
- package/dist/protocol/v1/devicePermission.js +6 -0
- package/dist/protocol/v1/localStorage.d.ts +31 -0
- package/dist/protocol/v1/localStorage.js +17 -0
- package/dist/protocol/v1/navigation.d.ts +21 -0
- package/dist/protocol/v1/navigation.js +9 -0
- package/dist/protocol/v1/notification.d.ts +11 -0
- package/dist/protocol/v1/notification.js +8 -0
- package/dist/protocol/v1/preimage.d.ts +24 -0
- package/dist/protocol/v1/preimage.js +12 -0
- package/dist/protocol/v1/remotePermission.d.ts +17 -0
- package/dist/protocol/v1/remotePermission.js +9 -0
- package/dist/protocol/v1/statementStore.d.ts +0 -36
- package/dist/protocol/v1/statementStore.js +1 -3
- package/dist/transport.js +3 -3
- package/package.json +3 -3
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const DevicePermissionRequest: import("scale-ts").Codec<"Camera" | "Microphone" | "Bluetooth" | "Location">;
|
|
2
|
+
export declare const DevicePermissionV1_request: import("scale-ts").Codec<"Camera" | "Microphone" | "Bluetooth" | "Location">;
|
|
3
|
+
export declare const DevicePermissionV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<boolean, import("@novasamatech/scale").CodecError<{
|
|
4
|
+
reason: string;
|
|
5
|
+
}, "GenericError">>>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Status } from '@novasamatech/scale';
|
|
2
|
+
import { Result, bool } from 'scale-ts';
|
|
3
|
+
import { GenericError } from '../commonCodecs.js';
|
|
4
|
+
export const DevicePermissionRequest = Status('Camera', 'Microphone', 'Bluetooth', 'Location');
|
|
5
|
+
export const DevicePermissionV1_request = DevicePermissionRequest;
|
|
6
|
+
export const DevicePermissionV1_response = Result(bool, GenericError);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const StorageErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
|
|
2
|
+
reason: string;
|
|
3
|
+
}, "StorageErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "StorageErr::Full">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<{
|
|
4
|
+
reason: string;
|
|
5
|
+
}, "StorageErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "StorageErr::Full">>] & {
|
|
6
|
+
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
|
|
7
|
+
reason: string;
|
|
8
|
+
}, "StorageErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "StorageErr::Full">>;
|
|
9
|
+
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<{
|
|
10
|
+
reason: string;
|
|
11
|
+
}, "StorageErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "StorageErr::Full">>;
|
|
12
|
+
} & {
|
|
13
|
+
readonly Full: import("@novasamatech/scale").ErrCodec<undefined, "StorageErr::Full">;
|
|
14
|
+
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
15
|
+
reason: string;
|
|
16
|
+
}, "StorageErr::Unknown">;
|
|
17
|
+
};
|
|
18
|
+
export declare const StorageKey: import("scale-ts").Codec<string>;
|
|
19
|
+
export declare const StorageValue: import("scale-ts").Codec<Uint8Array<ArrayBufferLike>>;
|
|
20
|
+
export declare const StorageReadV1_request: import("scale-ts").Codec<string>;
|
|
21
|
+
export declare const StorageReadV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike> | undefined, import("@novasamatech/scale").CodecError<{
|
|
22
|
+
reason: string;
|
|
23
|
+
}, "StorageErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "StorageErr::Full">>>;
|
|
24
|
+
export declare const StorageWriteV1_request: import("scale-ts").Codec<[string, Uint8Array<ArrayBufferLike>]>;
|
|
25
|
+
export declare const StorageWriteV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<undefined, import("@novasamatech/scale").CodecError<{
|
|
26
|
+
reason: string;
|
|
27
|
+
}, "StorageErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "StorageErr::Full">>>;
|
|
28
|
+
export declare const StorageClearV1_request: import("scale-ts").Codec<string>;
|
|
29
|
+
export declare const StorageClearV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<undefined, import("@novasamatech/scale").CodecError<{
|
|
30
|
+
reason: string;
|
|
31
|
+
}, "StorageErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "StorageErr::Full">>>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ErrEnum } from '@novasamatech/scale';
|
|
2
|
+
import { Bytes, Option, Result, Tuple, _void, str } from 'scale-ts';
|
|
3
|
+
import { GenericErr } from '../commonCodecs.js';
|
|
4
|
+
// common structures
|
|
5
|
+
export const StorageErr = ErrEnum('StorageErr', {
|
|
6
|
+
Full: [_void, 'Storage is full'],
|
|
7
|
+
Unknown: [GenericErr, 'Unknown storage error'],
|
|
8
|
+
});
|
|
9
|
+
export const StorageKey = str;
|
|
10
|
+
export const StorageValue = Bytes();
|
|
11
|
+
// actions
|
|
12
|
+
export const StorageReadV1_request = StorageKey;
|
|
13
|
+
export const StorageReadV1_response = Result(Option(StorageValue), StorageErr);
|
|
14
|
+
export const StorageWriteV1_request = Tuple(StorageKey, StorageValue);
|
|
15
|
+
export const StorageWriteV1_response = Result(_void, StorageErr);
|
|
16
|
+
export const StorageClearV1_request = StorageKey;
|
|
17
|
+
export const StorageClearV1_response = Result(_void, StorageErr);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const NavigateToErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
|
|
2
|
+
reason: string;
|
|
3
|
+
}, "NavigateToErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "NavigateToErr::PermissionDenied">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<{
|
|
4
|
+
reason: string;
|
|
5
|
+
}, "NavigateToErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "NavigateToErr::PermissionDenied">>] & {
|
|
6
|
+
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
|
|
7
|
+
reason: string;
|
|
8
|
+
}, "NavigateToErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "NavigateToErr::PermissionDenied">>;
|
|
9
|
+
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<{
|
|
10
|
+
reason: string;
|
|
11
|
+
}, "NavigateToErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "NavigateToErr::PermissionDenied">>;
|
|
12
|
+
} & {
|
|
13
|
+
readonly PermissionDenied: import("@novasamatech/scale").ErrCodec<undefined, "NavigateToErr::PermissionDenied">;
|
|
14
|
+
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
15
|
+
reason: string;
|
|
16
|
+
}, "NavigateToErr::Unknown">;
|
|
17
|
+
};
|
|
18
|
+
export declare const NavigateToV1_request: import("scale-ts").Codec<string>;
|
|
19
|
+
export declare const NavigateToV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<undefined, import("@novasamatech/scale").CodecError<{
|
|
20
|
+
reason: string;
|
|
21
|
+
}, "NavigateToErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "NavigateToErr::PermissionDenied">>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ErrEnum } from '@novasamatech/scale';
|
|
2
|
+
import { Result, _void, str } from 'scale-ts';
|
|
3
|
+
import { GenericErr } from '../commonCodecs.js';
|
|
4
|
+
export const NavigateToErr = ErrEnum('NavigateToErr', {
|
|
5
|
+
PermissionDenied: [_void, 'Permission denied'],
|
|
6
|
+
Unknown: [GenericErr, 'Unknown error'],
|
|
7
|
+
});
|
|
8
|
+
export const NavigateToV1_request = str;
|
|
9
|
+
export const NavigateToV1_response = Result(_void, NavigateToErr);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const PushNotification: import("scale-ts").Codec<{
|
|
2
|
+
text: string;
|
|
3
|
+
deeplink: string | undefined;
|
|
4
|
+
}>;
|
|
5
|
+
export declare const PushNotificationV1_request: import("scale-ts").Codec<{
|
|
6
|
+
text: string;
|
|
7
|
+
deeplink: string | undefined;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const PushNotificationV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<undefined, import("packages/scale/dist/err.js").CodecError<{
|
|
10
|
+
reason: string;
|
|
11
|
+
}, "GenericError">>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Option, Result, Struct, _void, str } from 'scale-ts';
|
|
2
|
+
import { GenericError } from '../commonCodecs.js';
|
|
3
|
+
export const PushNotification = Struct({
|
|
4
|
+
text: str,
|
|
5
|
+
deeplink: Option(str),
|
|
6
|
+
});
|
|
7
|
+
export const PushNotificationV1_request = PushNotification;
|
|
8
|
+
export const PushNotificationV1_response = Result(_void, GenericError);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const PreimageKey: import("scale-ts").Codec<`0x${string}`>;
|
|
2
|
+
export declare const PreimageValue: import("scale-ts").Codec<Uint8Array<ArrayBufferLike>>;
|
|
3
|
+
export declare const PreimageLookupSubscribeV1_start: import("scale-ts").Codec<`0x${string}`>;
|
|
4
|
+
export declare const PreimageLookupSubscribeV1_receive: import("scale-ts").Codec<Uint8Array<ArrayBufferLike> | null>;
|
|
5
|
+
export declare const PreimageSubmitErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
|
|
6
|
+
reason: string;
|
|
7
|
+
}, "PreimageSubmitErr::Unknown">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<{
|
|
8
|
+
reason: string;
|
|
9
|
+
}, "PreimageSubmitErr::Unknown">>] & {
|
|
10
|
+
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
|
|
11
|
+
reason: string;
|
|
12
|
+
}, "PreimageSubmitErr::Unknown">>;
|
|
13
|
+
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<{
|
|
14
|
+
reason: string;
|
|
15
|
+
}, "PreimageSubmitErr::Unknown">>;
|
|
16
|
+
} & {
|
|
17
|
+
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
18
|
+
reason: string;
|
|
19
|
+
}, "PreimageSubmitErr::Unknown">;
|
|
20
|
+
};
|
|
21
|
+
export declare const PreimageSubmitV1_request: import("scale-ts").Codec<Uint8Array<ArrayBufferLike>>;
|
|
22
|
+
export declare const PreimageSubmitV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<`0x${string}`, import("@novasamatech/scale").CodecError<{
|
|
23
|
+
reason: string;
|
|
24
|
+
}, "PreimageSubmitErr::Unknown">>>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ErrEnum, Hex, Nullable } from '@novasamatech/scale';
|
|
2
|
+
import { Bytes, Result } from 'scale-ts';
|
|
3
|
+
import { GenericErr } from '../commonCodecs.js';
|
|
4
|
+
export const PreimageKey = Hex();
|
|
5
|
+
export const PreimageValue = Bytes();
|
|
6
|
+
export const PreimageLookupSubscribeV1_start = PreimageKey;
|
|
7
|
+
export const PreimageLookupSubscribeV1_receive = Nullable(PreimageValue);
|
|
8
|
+
export const PreimageSubmitErr = ErrEnum('PreimageSubmitErr', {
|
|
9
|
+
Unknown: [GenericErr, 'Unknown error'],
|
|
10
|
+
});
|
|
11
|
+
export const PreimageSubmitV1_request = PreimageValue;
|
|
12
|
+
export const PreimageSubmitV1_response = Result(PreimageKey, PreimageSubmitErr);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const RemotePermissionRequest: import("scale-ts").Codec<{
|
|
2
|
+
tag: "ExternalRequest";
|
|
3
|
+
value: string;
|
|
4
|
+
} | {
|
|
5
|
+
tag: "TransactionSubmit";
|
|
6
|
+
value: undefined;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const RemotePermissionV1_request: import("scale-ts").Codec<{
|
|
9
|
+
tag: "ExternalRequest";
|
|
10
|
+
value: string;
|
|
11
|
+
} | {
|
|
12
|
+
tag: "TransactionSubmit";
|
|
13
|
+
value: undefined;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const RemotePermissionV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<boolean, import("@novasamatech/scale").CodecError<{
|
|
16
|
+
reason: string;
|
|
17
|
+
}, "GenericError">>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Enum } from '@novasamatech/scale';
|
|
2
|
+
import { Result, _void, bool, str } from 'scale-ts';
|
|
3
|
+
import { GenericError } from '../commonCodecs.js';
|
|
4
|
+
export const RemotePermissionRequest = Enum({
|
|
5
|
+
ExternalRequest: str, // URL
|
|
6
|
+
TransactionSubmit: _void,
|
|
7
|
+
});
|
|
8
|
+
export const RemotePermissionV1_request = RemotePermissionRequest;
|
|
9
|
+
export const RemotePermissionV1_response = Result(bool, GenericError);
|
|
@@ -67,42 +67,6 @@ export declare const SignedStatement: import("scale-ts").Codec<{
|
|
|
67
67
|
topics: Uint8Array<ArrayBufferLike>[];
|
|
68
68
|
data: Uint8Array<ArrayBufferLike> | undefined;
|
|
69
69
|
}>;
|
|
70
|
-
export declare const StatementStoreQueryV1_request: import("scale-ts").Codec<Uint8Array<ArrayBufferLike>[]>;
|
|
71
|
-
export declare const StatementStoreQueryV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<{
|
|
72
|
-
proof: {
|
|
73
|
-
tag: "Sr25519";
|
|
74
|
-
value: {
|
|
75
|
-
signature: Uint8Array<ArrayBufferLike>;
|
|
76
|
-
signer: Uint8Array<ArrayBufferLike>;
|
|
77
|
-
};
|
|
78
|
-
} | {
|
|
79
|
-
tag: "Ed25519";
|
|
80
|
-
value: {
|
|
81
|
-
signature: Uint8Array<ArrayBufferLike>;
|
|
82
|
-
signer: Uint8Array<ArrayBufferLike>;
|
|
83
|
-
};
|
|
84
|
-
} | {
|
|
85
|
-
tag: "Ecdsa";
|
|
86
|
-
value: {
|
|
87
|
-
signature: Uint8Array<ArrayBufferLike>;
|
|
88
|
-
signer: Uint8Array<ArrayBufferLike>;
|
|
89
|
-
};
|
|
90
|
-
} | {
|
|
91
|
-
tag: "OnChain";
|
|
92
|
-
value: {
|
|
93
|
-
who: Uint8Array<ArrayBufferLike>;
|
|
94
|
-
blockHash: Uint8Array<ArrayBufferLike>;
|
|
95
|
-
event: bigint;
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
decryptionKey: Uint8Array<ArrayBufferLike> | undefined;
|
|
99
|
-
priority: number | undefined;
|
|
100
|
-
channel: Uint8Array<ArrayBufferLike> | undefined;
|
|
101
|
-
topics: Uint8Array<ArrayBufferLike>[];
|
|
102
|
-
data: Uint8Array<ArrayBufferLike> | undefined;
|
|
103
|
-
}[], import("@novasamatech/scale").CodecError<{
|
|
104
|
-
reason: string;
|
|
105
|
-
}, "GenericError">>>;
|
|
106
70
|
export declare const StatementStoreSubscribeV1_start: import("scale-ts").Codec<Uint8Array<ArrayBufferLike>[]>;
|
|
107
71
|
export declare const StatementStoreSubscribeV1_receive: import("scale-ts").Codec<{
|
|
108
72
|
proof: {
|
|
@@ -46,9 +46,7 @@ export const SignedStatement = Struct({
|
|
|
46
46
|
topics: Vector(Topic),
|
|
47
47
|
data: Option(Bytes()),
|
|
48
48
|
});
|
|
49
|
-
//
|
|
50
|
-
export const StatementStoreQueryV1_request = Vector(Topic);
|
|
51
|
-
export const StatementStoreQueryV1_response = Result(Vector(SignedStatement), GenericError);
|
|
49
|
+
// subscription
|
|
52
50
|
export const StatementStoreSubscribeV1_start = Vector(Topic);
|
|
53
51
|
export const StatementStoreSubscribeV1_receive = Vector(SignedStatement);
|
|
54
52
|
// creating proof
|
package/dist/transport.js
CHANGED
|
@@ -62,7 +62,7 @@ export function createTransport(provider) {
|
|
|
62
62
|
handshakeAbortController.signal.removeEventListener('abort', unsubscribe);
|
|
63
63
|
};
|
|
64
64
|
return new Promise(resolve => {
|
|
65
|
-
const unsubscribe = transport.listenMessages('
|
|
65
|
+
const unsubscribe = transport.listenMessages('host_handshake_response', responseId => {
|
|
66
66
|
if (responseId === id) {
|
|
67
67
|
cleanup(interval, unsubscribe);
|
|
68
68
|
resolved = true;
|
|
@@ -76,7 +76,7 @@ export function createTransport(provider) {
|
|
|
76
76
|
resolve(false);
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
|
-
transport.postMessage(id, enumValue('
|
|
79
|
+
transport.postMessage(id, enumValue('host_handshake_request', enumValue('v1', codecVersion)));
|
|
80
80
|
}, HANDSHAKE_INTERVAL);
|
|
81
81
|
}).then(success => {
|
|
82
82
|
if (!success && !resolved) {
|
|
@@ -233,7 +233,7 @@ export function createTransport(provider) {
|
|
|
233
233
|
},
|
|
234
234
|
};
|
|
235
235
|
if (provider.isCorrectEnvironment()) {
|
|
236
|
-
transport.handleRequest('
|
|
236
|
+
transport.handleRequest('host_handshake', async (version) => {
|
|
237
237
|
switch (version.tag) {
|
|
238
238
|
case 'v1': {
|
|
239
239
|
codecVersion = version.value;
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@novasamatech/host-api",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.5",
|
|
5
5
|
"description": "Host API: transport implementation for host - product integration.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
9
|
+
"url": "git+https://github.com/Polkadot-Community-Foundation/triangle-js-sdks.git"
|
|
10
10
|
},
|
|
11
11
|
"main": "dist/index.js",
|
|
12
12
|
"exports": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"README.md"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@novasamatech/scale": "0.5.
|
|
24
|
+
"@novasamatech/scale": "0.5.5",
|
|
25
25
|
"@polkadot-api/utils": "^0.2.0",
|
|
26
26
|
"nanoevents": "9.1.0",
|
|
27
27
|
"nanoid": "5.1.6",
|