@novasamatech/host-api 0.9.1 → 0.9.3
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/dist/hostApi.js +19 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/protocol/impl.d.ts +69 -2
- package/dist/protocol/impl.js +13 -1
- package/dist/protocol/messageCodec.d.ts +168 -4
- package/dist/protocol/v1/accounts.d.ts +228 -12
- package/dist/protocol/v1/accounts.js +91 -2
- package/package.json +2 -2
package/dist/hostApi.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { errAsync, fromPromise, okAsync } from 'neverthrow';
|
|
2
2
|
import { extractErrorMessage } from './helpers.js';
|
|
3
3
|
import { GenericError } from './protocol/commonCodecs.js';
|
|
4
|
-
import { CreateProofErr, GetAliasErr, GetUserIdErr, LoginErr, RequestCredentialsErr, SignVrfErr, } from './protocol/v1/accounts.js';
|
|
4
|
+
import { CreateProofErr, GetAliasErr, GetUserIdErr, ListRingVrfKeysErr, LoginErr, RegisterRingVrfKeyErr, RequestCredentialsErr, RingVrfSignErr, SignVrfErr, } from './protocol/v1/accounts.js';
|
|
5
5
|
import { ChatBotRegistrationErr, ChatMessagePostingErr, ChatRoomRegistrationErr } from './protocol/v1/chat.js';
|
|
6
6
|
import { CreateTransactionErr } from './protocol/v1/createTransaction.js';
|
|
7
7
|
import { DeriveEntropyErr } from './protocol/v1/deriveEntropy.js';
|
|
@@ -124,6 +124,24 @@ export function createHostApi(transport) {
|
|
|
124
124
|
value: new SignVrfErr.Unknown({ reason }),
|
|
125
125
|
}));
|
|
126
126
|
},
|
|
127
|
+
accountRegisterRingVrfKey(payload) {
|
|
128
|
+
return makeRequest(transport.request('host_account_register_ring_vrf_key', payload), reason => ({
|
|
129
|
+
tag: payload.tag,
|
|
130
|
+
value: new RegisterRingVrfKeyErr.Unknown({ reason }),
|
|
131
|
+
}));
|
|
132
|
+
},
|
|
133
|
+
accountListRingVrfKeys(payload) {
|
|
134
|
+
return makeRequest(transport.request('host_account_list_ring_vrf_keys', payload), reason => ({
|
|
135
|
+
tag: payload.tag,
|
|
136
|
+
value: new ListRingVrfKeysErr.Unknown({ reason }),
|
|
137
|
+
}));
|
|
138
|
+
},
|
|
139
|
+
accountRingVrfSign(payload) {
|
|
140
|
+
return makeRequest(transport.request('host_account_ring_vrf_sign', payload), reason => ({
|
|
141
|
+
tag: payload.tag,
|
|
142
|
+
value: new RingVrfSignErr.Unknown({ reason }),
|
|
143
|
+
}));
|
|
144
|
+
},
|
|
127
145
|
getLegacyAccounts(payload) {
|
|
128
146
|
return makeRequest(transport.request('host_get_legacy_accounts', payload), reason => ({
|
|
129
147
|
tag: payload.tag,
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { GenericError } from './protocol/commonCodecs.js';
|
|
|
15
15
|
export { CreateTransactionErr, LegacyTransaction, ProductAccountTransaction } from './protocol/v1/createTransaction.js';
|
|
16
16
|
export type { AccountSelector } from './protocol/v1/accounts.js';
|
|
17
17
|
export { derivationIndexOf } from './protocol/v1/accounts.js';
|
|
18
|
-
export { AccountConnectionStatus, AccountId, ContextualAlias, CreateProofErr, DerivationIndex, DotNsIdentifier, GetAliasErr, GetUserIdErr, LegacyAccount, LoginErr, LoginResult, ProductAccount, ProductAccountId, ProductId, ProductProofContext, ProductProofContextSuffix, RawDerivationIndex, RequestCredentialsErr, RingLocation, RingLocationJunction, RingVrfProof, SignVrfErr, UserIdentity, VrfSignature, VrfTranscriptItem, } from './protocol/v1/accounts.js';
|
|
18
|
+
export { AccountConnectionStatus, AccountId, ContextualAlias, CreateProofErr, DerivationIndex, DotNsIdentifier, GetAliasErr, GetUserIdErr, LegacyAccount, ListRingVrfKeysErr, LoginErr, LoginResult, ProductAccount, ProductAccountId, ProductId, ProductProofContext, ProductProofContextSuffix, RawDerivationIndex, RegisterRingVrfKeyErr, RegisteredRingVrfKey, RequestCredentialsErr, RingLocation, RingLocationJunction, RingVrfKeyDisclosure, RingVrfKeyHandle, RingVrfProof, RingVrfPublicKey, RingVrfSignErr, SignVrfErr, UserIdentity, VrfSignature, VrfTranscriptItem, } from './protocol/v1/accounts.js';
|
|
19
19
|
export { ChatActionPayload, ChatBotRegistrationErr, ChatBotRegistrationStatus, ChatMessageContent, ChatMessagePostingErr, ChatRoom, ChatRoomRegistrationErr, ChatRoomRegistrationResult, ChatRoomRegistrationStatus, ReceivedChatAction, } from './protocol/v1/chat.js';
|
|
20
20
|
export { DeriveEntropyErr } from './protocol/v1/deriveEntropy.js';
|
|
21
21
|
export { HandshakeErr } from './protocol/v1/handshake.js';
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { assertEnumVariant, enumValue, fromHex, isEnumVariant, resultErr, result
|
|
|
8
8
|
export { GenericError } from './protocol/commonCodecs.js';
|
|
9
9
|
export { CreateTransactionErr, LegacyTransaction, ProductAccountTransaction } from './protocol/v1/createTransaction.js';
|
|
10
10
|
export { derivationIndexOf } from './protocol/v1/accounts.js';
|
|
11
|
-
export { AccountConnectionStatus, AccountId, ContextualAlias, CreateProofErr, DerivationIndex, DotNsIdentifier, GetAliasErr, GetUserIdErr, LegacyAccount, LoginErr, LoginResult, ProductAccount, ProductAccountId, ProductId, ProductProofContext, ProductProofContextSuffix, RawDerivationIndex, RequestCredentialsErr, RingLocation, RingLocationJunction, RingVrfProof, SignVrfErr, UserIdentity, VrfSignature, VrfTranscriptItem, } from './protocol/v1/accounts.js';
|
|
11
|
+
export { AccountConnectionStatus, AccountId, ContextualAlias, CreateProofErr, DerivationIndex, DotNsIdentifier, GetAliasErr, GetUserIdErr, LegacyAccount, ListRingVrfKeysErr, LoginErr, LoginResult, ProductAccount, ProductAccountId, ProductId, ProductProofContext, ProductProofContextSuffix, RawDerivationIndex, RegisterRingVrfKeyErr, RegisteredRingVrfKey, RequestCredentialsErr, RingLocation, RingLocationJunction, RingVrfKeyDisclosure, RingVrfKeyHandle, RingVrfProof, RingVrfPublicKey, RingVrfSignErr, SignVrfErr, UserIdentity, VrfSignature, VrfTranscriptItem, } from './protocol/v1/accounts.js';
|
|
12
12
|
export { ChatActionPayload, ChatBotRegistrationErr, ChatBotRegistrationStatus, ChatMessageContent, ChatMessagePostingErr, ChatRoom, ChatRoomRegistrationErr, ChatRoomRegistrationResult, ChatRoomRegistrationStatus, ReceivedChatAction, } from './protocol/v1/chat.js';
|
|
13
13
|
export { DeriveEntropyErr } from './protocol/v1/deriveEntropy.js';
|
|
14
14
|
export { HandshakeErr } from './protocol/v1/handshake.js';
|
package/dist/protocol/impl.d.ts
CHANGED
|
@@ -113,6 +113,12 @@ export declare const hostApiProtocol: {
|
|
|
113
113
|
} | {
|
|
114
114
|
tag: "Raw";
|
|
115
115
|
value: Uint8Array<ArrayBufferLike>;
|
|
116
|
+
}], [string, {
|
|
117
|
+
tag: "Index";
|
|
118
|
+
value: number;
|
|
119
|
+
} | {
|
|
120
|
+
tag: "Raw";
|
|
121
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
116
122
|
}], {
|
|
117
123
|
chainId: `0x${string}`;
|
|
118
124
|
junctions: ({
|
|
@@ -127,7 +133,7 @@ export declare const hostApiProtocol: {
|
|
|
127
133
|
alias: Uint8Array<ArrayBufferLike>;
|
|
128
134
|
}, import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
129
135
|
reason: string;
|
|
130
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>>];
|
|
136
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>>];
|
|
131
137
|
}>;
|
|
132
138
|
readonly host_account_create_proof: VersionedProtocolRequest<{
|
|
133
139
|
readonly v1: [Codec<[[string, {
|
|
@@ -136,6 +142,12 @@ export declare const hostApiProtocol: {
|
|
|
136
142
|
} | {
|
|
137
143
|
tag: "Raw";
|
|
138
144
|
value: Uint8Array<ArrayBufferLike>;
|
|
145
|
+
}], [string, {
|
|
146
|
+
tag: "Index";
|
|
147
|
+
value: number;
|
|
148
|
+
} | {
|
|
149
|
+
tag: "Raw";
|
|
150
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
139
151
|
}], {
|
|
140
152
|
chainId: `0x${string}`;
|
|
141
153
|
junctions: ({
|
|
@@ -155,7 +167,7 @@ export declare const hostApiProtocol: {
|
|
|
155
167
|
ringRevision: number;
|
|
156
168
|
}, import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
157
169
|
reason: string;
|
|
158
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>>];
|
|
170
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>>];
|
|
159
171
|
}>;
|
|
160
172
|
readonly host_get_legacy_accounts: VersionedProtocolRequest<{
|
|
161
173
|
readonly v1: [Codec<undefined>, Codec<import("scale-ts").ResultPayload<{
|
|
@@ -1099,5 +1111,60 @@ export declare const hostApiProtocol: {
|
|
|
1099
1111
|
reason: string;
|
|
1100
1112
|
}, "SignVrfErr::Unknown">>>];
|
|
1101
1113
|
}>;
|
|
1114
|
+
readonly host_account_register_ring_vrf_key: VersionedProtocolRequest<{
|
|
1115
|
+
readonly v1: [Codec<[{
|
|
1116
|
+
tag: "Index";
|
|
1117
|
+
value: number;
|
|
1118
|
+
} | {
|
|
1119
|
+
tag: "Raw";
|
|
1120
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1121
|
+
}, {
|
|
1122
|
+
chainId: `0x${string}`;
|
|
1123
|
+
junctions: ({
|
|
1124
|
+
tag: "PalletInstance";
|
|
1125
|
+
value: number;
|
|
1126
|
+
} | {
|
|
1127
|
+
tag: "CollectionId";
|
|
1128
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1129
|
+
})[];
|
|
1130
|
+
}]>, Codec<import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1131
|
+
reason: string;
|
|
1132
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>>];
|
|
1133
|
+
}>;
|
|
1134
|
+
readonly host_account_list_ring_vrf_keys: VersionedProtocolRequest<{
|
|
1135
|
+
readonly v1: [Codec<[string, "Anonymized" | "PublicKey"]>, Codec<import("scale-ts").ResultPayload<{
|
|
1136
|
+
handle: [string, {
|
|
1137
|
+
tag: "Index";
|
|
1138
|
+
value: number;
|
|
1139
|
+
} | {
|
|
1140
|
+
tag: "Raw";
|
|
1141
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1142
|
+
}];
|
|
1143
|
+
rings: {
|
|
1144
|
+
chainId: `0x${string}`;
|
|
1145
|
+
junctions: ({
|
|
1146
|
+
tag: "PalletInstance";
|
|
1147
|
+
value: number;
|
|
1148
|
+
} | {
|
|
1149
|
+
tag: "CollectionId";
|
|
1150
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1151
|
+
})[];
|
|
1152
|
+
}[];
|
|
1153
|
+
publicKey: Uint8Array<ArrayBufferLike> | undefined;
|
|
1154
|
+
}[], import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1155
|
+
reason: string;
|
|
1156
|
+
}, "ListRingVrfKeysErr::Unknown">>>];
|
|
1157
|
+
}>;
|
|
1158
|
+
readonly host_account_ring_vrf_sign: VersionedProtocolRequest<{
|
|
1159
|
+
readonly v1: [Codec<[[string, {
|
|
1160
|
+
tag: "Index";
|
|
1161
|
+
value: number;
|
|
1162
|
+
} | {
|
|
1163
|
+
tag: "Raw";
|
|
1164
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1165
|
+
}], Uint8Array<ArrayBufferLike>]>, Codec<import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1166
|
+
reason: string;
|
|
1167
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>>];
|
|
1168
|
+
}>;
|
|
1102
1169
|
};
|
|
1103
1170
|
export {};
|
package/dist/protocol/impl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Enum } from '@novasamatech/scale';
|
|
2
|
-
import { AccountConnectionStatusV1_interrupt, AccountConnectionStatusV1_receive, AccountConnectionStatusV1_start, AccountCreateProofV1_request, AccountCreateProofV1_response, AccountGetAliasV1_request, AccountGetAliasV1_response, AccountGetV1_request, AccountGetV1_response, AccountSignVrfV1_request, AccountSignVrfV1_response, GetLegacyAccountsV1_request, GetLegacyAccountsV1_response, GetUserIdV1_request, GetUserIdV1_response, RequestLoginV1_request, RequestLoginV1_response, } from './v1/accounts.js';
|
|
2
|
+
import { AccountConnectionStatusV1_interrupt, AccountConnectionStatusV1_receive, AccountConnectionStatusV1_start, AccountCreateProofV1_request, AccountCreateProofV1_response, AccountGetAliasV1_request, AccountGetAliasV1_response, AccountGetV1_request, AccountGetV1_response, AccountListRingVrfKeysV1_request, AccountListRingVrfKeysV1_response, AccountRegisterRingVrfKeyV1_request, AccountRegisterRingVrfKeyV1_response, AccountRingVrfSignV1_request, AccountRingVrfSignV1_response, AccountSignVrfV1_request, AccountSignVrfV1_response, GetLegacyAccountsV1_request, GetLegacyAccountsV1_response, GetUserIdV1_request, GetUserIdV1_response, RequestLoginV1_request, RequestLoginV1_response, } from './v1/accounts.js';
|
|
3
3
|
import { ChainHeadBodyV1_request, ChainHeadBodyV1_response, ChainHeadCallV1_request, ChainHeadCallV1_response, ChainHeadContinueV1_request, ChainHeadContinueV1_response, ChainHeadFollowV1_interrupt, ChainHeadFollowV1_receive, ChainHeadFollowV1_start, ChainHeadHeaderV1_request, ChainHeadHeaderV1_response, ChainHeadStopOperationV1_request, ChainHeadStopOperationV1_response, ChainHeadStorageV1_request, ChainHeadStorageV1_response, ChainHeadUnpinV1_request, ChainHeadUnpinV1_response, ChainSpecChainNameV1_request, ChainSpecChainNameV1_response, ChainSpecGenesisHashV1_request, ChainSpecGenesisHashV1_response, ChainSpecPropertiesV1_request, ChainSpecPropertiesV1_response, TransactionBroadcastV1_request, TransactionBroadcastV1_response, TransactionStopV1_request, TransactionStopV1_response, } from './v1/chainInteraction.js';
|
|
4
4
|
import { ChatActionSubscribeV1_interrupt, ChatActionSubscribeV1_receive, ChatActionSubscribeV1_start, ChatCreateRoomV1_request, ChatCreateRoomV1_response, ChatCustomMessageRenderingV1_interrupt, ChatCustomMessageRenderingV1_receive, ChatCustomMessageRenderingV1_start, ChatListSubscribeV1_interrupt, ChatListSubscribeV1_receive, ChatListSubscribeV1_start, ChatPostMessageV1_request, ChatPostMessageV1_response, ChatRegisterBotV1_request, ChatRegisterBotV1_response, } from './v1/chat.js';
|
|
5
5
|
import { CreateTransactionV1_request, CreateTransactionV1_response, CreateTransactionWithLegacyAccountV1_request, CreateTransactionWithLegacyAccountV1_response, } from './v1/createTransaction.js';
|
|
@@ -229,4 +229,16 @@ export const hostApiProtocol = {
|
|
|
229
229
|
host_account_sign_vrf: versionedRequest(indexer.request(28), {
|
|
230
230
|
v1: [AccountSignVrfV1_request, AccountSignVrfV1_response],
|
|
231
231
|
}),
|
|
232
|
+
// RFC-0024 — explicit ring VRF key management. Appended so every index above
|
|
233
|
+
// stays stable; `create_proof` / `get_alias` changed shape in place instead,
|
|
234
|
+
// since a key handle is now mandatory there.
|
|
235
|
+
host_account_register_ring_vrf_key: versionedRequest(indexer.request(), {
|
|
236
|
+
v1: [AccountRegisterRingVrfKeyV1_request, AccountRegisterRingVrfKeyV1_response],
|
|
237
|
+
}),
|
|
238
|
+
host_account_list_ring_vrf_keys: versionedRequest(indexer.request(), {
|
|
239
|
+
v1: [AccountListRingVrfKeysV1_request, AccountListRingVrfKeysV1_response],
|
|
240
|
+
}),
|
|
241
|
+
host_account_ring_vrf_sign: versionedRequest(indexer.request(), {
|
|
242
|
+
v1: [AccountRingVrfSignV1_request, AccountRingVrfSignV1_response],
|
|
243
|
+
}),
|
|
232
244
|
};
|
|
@@ -112,6 +112,12 @@ export declare const MessagePayload: EnumCodec<Record<"host_handshake_request",
|
|
|
112
112
|
} | {
|
|
113
113
|
tag: "Raw";
|
|
114
114
|
value: Uint8Array<ArrayBufferLike>;
|
|
115
|
+
}], [string, {
|
|
116
|
+
tag: "Index";
|
|
117
|
+
value: number;
|
|
118
|
+
} | {
|
|
119
|
+
tag: "Raw";
|
|
120
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
115
121
|
}], {
|
|
116
122
|
chainId: `0x${string}`;
|
|
117
123
|
junctions: ({
|
|
@@ -128,7 +134,7 @@ export declare const MessagePayload: EnumCodec<Record<"host_handshake_request",
|
|
|
128
134
|
alias: Uint8Array<ArrayBufferLike>;
|
|
129
135
|
}, import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
130
136
|
reason: string;
|
|
131
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>>;
|
|
137
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>>;
|
|
132
138
|
}>> & Record<"host_account_create_proof_request", EnumCodec<{
|
|
133
139
|
readonly v1: Codec<[[string, {
|
|
134
140
|
tag: "Index";
|
|
@@ -136,6 +142,12 @@ export declare const MessagePayload: EnumCodec<Record<"host_handshake_request",
|
|
|
136
142
|
} | {
|
|
137
143
|
tag: "Raw";
|
|
138
144
|
value: Uint8Array<ArrayBufferLike>;
|
|
145
|
+
}], [string, {
|
|
146
|
+
tag: "Index";
|
|
147
|
+
value: number;
|
|
148
|
+
} | {
|
|
149
|
+
tag: "Raw";
|
|
150
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
139
151
|
}], {
|
|
140
152
|
chainId: `0x${string}`;
|
|
141
153
|
junctions: ({
|
|
@@ -157,7 +169,7 @@ export declare const MessagePayload: EnumCodec<Record<"host_handshake_request",
|
|
|
157
169
|
ringRevision: number;
|
|
158
170
|
}, import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
159
171
|
reason: string;
|
|
160
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>>;
|
|
172
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>>;
|
|
161
173
|
}>> & Record<"host_get_legacy_accounts_request", EnumCodec<{
|
|
162
174
|
readonly v1: Codec<undefined>;
|
|
163
175
|
}>> & Record<"host_get_legacy_accounts_response", EnumCodec<{
|
|
@@ -1161,6 +1173,64 @@ export declare const MessagePayload: EnumCodec<Record<"host_handshake_request",
|
|
|
1161
1173
|
}, import("@novasamatech/scale").CodecError<undefined, "SignVrfErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "SignVrfErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1162
1174
|
reason: string;
|
|
1163
1175
|
}, "SignVrfErr::Unknown">>>;
|
|
1176
|
+
}>> & Record<"host_account_register_ring_vrf_key_request", EnumCodec<{
|
|
1177
|
+
readonly v1: Codec<[{
|
|
1178
|
+
tag: "Index";
|
|
1179
|
+
value: number;
|
|
1180
|
+
} | {
|
|
1181
|
+
tag: "Raw";
|
|
1182
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1183
|
+
}, {
|
|
1184
|
+
chainId: `0x${string}`;
|
|
1185
|
+
junctions: ({
|
|
1186
|
+
tag: "PalletInstance";
|
|
1187
|
+
value: number;
|
|
1188
|
+
} | {
|
|
1189
|
+
tag: "CollectionId";
|
|
1190
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1191
|
+
})[];
|
|
1192
|
+
}]>;
|
|
1193
|
+
}>> & Record<"host_account_register_ring_vrf_key_response", EnumCodec<{
|
|
1194
|
+
readonly v1: Codec<import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1195
|
+
reason: string;
|
|
1196
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>>;
|
|
1197
|
+
}>> & Record<"host_account_list_ring_vrf_keys_request", EnumCodec<{
|
|
1198
|
+
readonly v1: Codec<[string, "Anonymized" | "PublicKey"]>;
|
|
1199
|
+
}>> & Record<"host_account_list_ring_vrf_keys_response", EnumCodec<{
|
|
1200
|
+
readonly v1: Codec<import("scale-ts").ResultPayload<{
|
|
1201
|
+
handle: [string, {
|
|
1202
|
+
tag: "Index";
|
|
1203
|
+
value: number;
|
|
1204
|
+
} | {
|
|
1205
|
+
tag: "Raw";
|
|
1206
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1207
|
+
}];
|
|
1208
|
+
rings: {
|
|
1209
|
+
chainId: `0x${string}`;
|
|
1210
|
+
junctions: ({
|
|
1211
|
+
tag: "PalletInstance";
|
|
1212
|
+
value: number;
|
|
1213
|
+
} | {
|
|
1214
|
+
tag: "CollectionId";
|
|
1215
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1216
|
+
})[];
|
|
1217
|
+
}[];
|
|
1218
|
+
publicKey: Uint8Array<ArrayBufferLike> | undefined;
|
|
1219
|
+
}[], import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1220
|
+
reason: string;
|
|
1221
|
+
}, "ListRingVrfKeysErr::Unknown">>>;
|
|
1222
|
+
}>> & Record<"host_account_ring_vrf_sign_request", EnumCodec<{
|
|
1223
|
+
readonly v1: Codec<[[string, {
|
|
1224
|
+
tag: "Index";
|
|
1225
|
+
value: number;
|
|
1226
|
+
} | {
|
|
1227
|
+
tag: "Raw";
|
|
1228
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1229
|
+
}], Uint8Array<ArrayBufferLike>]>;
|
|
1230
|
+
}>> & Record<"host_account_ring_vrf_sign_response", EnumCodec<{
|
|
1231
|
+
readonly v1: Codec<import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1232
|
+
reason: string;
|
|
1233
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>>;
|
|
1164
1234
|
}>>>;
|
|
1165
1235
|
export declare const Message: Codec<{
|
|
1166
1236
|
requestId: string;
|
|
@@ -1365,6 +1435,12 @@ export declare const Message: Codec<{
|
|
|
1365
1435
|
} | {
|
|
1366
1436
|
tag: "Raw";
|
|
1367
1437
|
value: Uint8Array<ArrayBufferLike>;
|
|
1438
|
+
}], [string, {
|
|
1439
|
+
tag: "Index";
|
|
1440
|
+
value: number;
|
|
1441
|
+
} | {
|
|
1442
|
+
tag: "Raw";
|
|
1443
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1368
1444
|
}], {
|
|
1369
1445
|
chainId: `0x${string}`;
|
|
1370
1446
|
junctions: ({
|
|
@@ -1385,7 +1461,7 @@ export declare const Message: Codec<{
|
|
|
1385
1461
|
alias: Uint8Array<ArrayBufferLike>;
|
|
1386
1462
|
}, import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1387
1463
|
reason: string;
|
|
1388
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>;
|
|
1464
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>;
|
|
1389
1465
|
};
|
|
1390
1466
|
} | {
|
|
1391
1467
|
tag: "host_account_create_proof_request";
|
|
@@ -1397,6 +1473,12 @@ export declare const Message: Codec<{
|
|
|
1397
1473
|
} | {
|
|
1398
1474
|
tag: "Raw";
|
|
1399
1475
|
value: Uint8Array<ArrayBufferLike>;
|
|
1476
|
+
}], [string, {
|
|
1477
|
+
tag: "Index";
|
|
1478
|
+
value: number;
|
|
1479
|
+
} | {
|
|
1480
|
+
tag: "Raw";
|
|
1481
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
1400
1482
|
}], {
|
|
1401
1483
|
chainId: `0x${string}`;
|
|
1402
1484
|
junctions: ({
|
|
@@ -1422,7 +1504,7 @@ export declare const Message: Codec<{
|
|
|
1422
1504
|
ringRevision: number;
|
|
1423
1505
|
}, import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
1424
1506
|
reason: string;
|
|
1425
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>;
|
|
1507
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>;
|
|
1426
1508
|
};
|
|
1427
1509
|
} | {
|
|
1428
1510
|
tag: "host_get_legacy_accounts_request";
|
|
@@ -2798,6 +2880,88 @@ export declare const Message: Codec<{
|
|
|
2798
2880
|
reason: string;
|
|
2799
2881
|
}, "SignVrfErr::Unknown">>;
|
|
2800
2882
|
};
|
|
2883
|
+
} | {
|
|
2884
|
+
tag: "host_account_register_ring_vrf_key_request";
|
|
2885
|
+
value: {
|
|
2886
|
+
tag: "v1";
|
|
2887
|
+
value: [{
|
|
2888
|
+
tag: "Index";
|
|
2889
|
+
value: number;
|
|
2890
|
+
} | {
|
|
2891
|
+
tag: "Raw";
|
|
2892
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
2893
|
+
}, {
|
|
2894
|
+
chainId: `0x${string}`;
|
|
2895
|
+
junctions: ({
|
|
2896
|
+
tag: "PalletInstance";
|
|
2897
|
+
value: number;
|
|
2898
|
+
} | {
|
|
2899
|
+
tag: "CollectionId";
|
|
2900
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
2901
|
+
})[];
|
|
2902
|
+
}];
|
|
2903
|
+
};
|
|
2904
|
+
} | {
|
|
2905
|
+
tag: "host_account_register_ring_vrf_key_response";
|
|
2906
|
+
value: {
|
|
2907
|
+
tag: "v1";
|
|
2908
|
+
value: import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
2909
|
+
reason: string;
|
|
2910
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>;
|
|
2911
|
+
};
|
|
2912
|
+
} | {
|
|
2913
|
+
tag: "host_account_list_ring_vrf_keys_request";
|
|
2914
|
+
value: {
|
|
2915
|
+
tag: "v1";
|
|
2916
|
+
value: [string, "Anonymized" | "PublicKey"];
|
|
2917
|
+
};
|
|
2918
|
+
} | {
|
|
2919
|
+
tag: "host_account_list_ring_vrf_keys_response";
|
|
2920
|
+
value: {
|
|
2921
|
+
tag: "v1";
|
|
2922
|
+
value: import("scale-ts").ResultPayload<{
|
|
2923
|
+
handle: [string, {
|
|
2924
|
+
tag: "Index";
|
|
2925
|
+
value: number;
|
|
2926
|
+
} | {
|
|
2927
|
+
tag: "Raw";
|
|
2928
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
2929
|
+
}];
|
|
2930
|
+
rings: {
|
|
2931
|
+
chainId: `0x${string}`;
|
|
2932
|
+
junctions: ({
|
|
2933
|
+
tag: "PalletInstance";
|
|
2934
|
+
value: number;
|
|
2935
|
+
} | {
|
|
2936
|
+
tag: "CollectionId";
|
|
2937
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
2938
|
+
})[];
|
|
2939
|
+
}[];
|
|
2940
|
+
publicKey: Uint8Array<ArrayBufferLike> | undefined;
|
|
2941
|
+
}[], import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
2942
|
+
reason: string;
|
|
2943
|
+
}, "ListRingVrfKeysErr::Unknown">>;
|
|
2944
|
+
};
|
|
2945
|
+
} | {
|
|
2946
|
+
tag: "host_account_ring_vrf_sign_request";
|
|
2947
|
+
value: {
|
|
2948
|
+
tag: "v1";
|
|
2949
|
+
value: [[string, {
|
|
2950
|
+
tag: "Index";
|
|
2951
|
+
value: number;
|
|
2952
|
+
} | {
|
|
2953
|
+
tag: "Raw";
|
|
2954
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
2955
|
+
}], Uint8Array<ArrayBufferLike>];
|
|
2956
|
+
};
|
|
2957
|
+
} | {
|
|
2958
|
+
tag: "host_account_ring_vrf_sign_response";
|
|
2959
|
+
value: {
|
|
2960
|
+
tag: "v1";
|
|
2961
|
+
value: import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
2962
|
+
reason: string;
|
|
2963
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>;
|
|
2964
|
+
};
|
|
2801
2965
|
};
|
|
2802
2966
|
}>;
|
|
2803
2967
|
export type MessageAction = MessagePayloadSchema['tag'];
|
|
@@ -30,6 +30,25 @@ export declare const ProductAccountId: import("scale-ts").Codec<[string, {
|
|
|
30
30
|
value: Uint8Array<ArrayBufferLike>;
|
|
31
31
|
}]>;
|
|
32
32
|
export declare const RingVrgAlias: import("@novasamatech/scale").BytesCodec<undefined>;
|
|
33
|
+
/**
|
|
34
|
+
* Public name of a registered ring VRF key (RFC-0024): the owning product plus
|
|
35
|
+
* the index of the key inside that product's ring VRF domain (`//{productId}//{index}`
|
|
36
|
+
* of the ring VRF tree, RFC-0022).
|
|
37
|
+
*
|
|
38
|
+
* Structurally a {@link ProductAccountId}, but it names a slot in the ring VRF
|
|
39
|
+
* tree — *not* the sr25519 product account at the same `(product, index)`.
|
|
40
|
+
* Consumers MUST treat it as opaque and select keys by declared
|
|
41
|
+
* {@link RingLocation}; the index is the owner's implementation detail.
|
|
42
|
+
*/
|
|
43
|
+
export declare const RingVrfKeyHandle: import("scale-ts").Codec<[string, {
|
|
44
|
+
tag: "Index";
|
|
45
|
+
value: number;
|
|
46
|
+
} | {
|
|
47
|
+
tag: "Raw";
|
|
48
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
49
|
+
}]>;
|
|
50
|
+
/** Ring VRF member public key. Linkable across every ring the key appears in. */
|
|
51
|
+
export declare const RingVrfPublicKey: import("@novasamatech/scale").BytesCodec<number>;
|
|
33
52
|
/**
|
|
34
53
|
* Ergonomic form of an account selector: a plain index or a raw 32-byte index.
|
|
35
54
|
*/
|
|
@@ -100,6 +119,41 @@ export declare const RingLocation: import("scale-ts").Codec<{
|
|
|
100
119
|
value: Uint8Array<ArrayBufferLike>;
|
|
101
120
|
})[];
|
|
102
121
|
}>;
|
|
122
|
+
/**
|
|
123
|
+
* How much of a registry entry the caller is asking for (RFC-0024).
|
|
124
|
+
*
|
|
125
|
+
* `PublicKey` is owner-visible by default but permissioned cross-product: a
|
|
126
|
+
* member public key is linkable across every ring it appears in.
|
|
127
|
+
*/
|
|
128
|
+
export declare const RingVrfKeyDisclosure: import("scale-ts").Codec<"Anonymized" | "PublicKey">;
|
|
129
|
+
/**
|
|
130
|
+
* A ring VRF key registry entry as returned to a caller (RFC-0024).
|
|
131
|
+
*
|
|
132
|
+
* `rings` is what the owning product *declared* the key for, not proof of
|
|
133
|
+
* membership — membership is still discovered only by attempting a proof, which
|
|
134
|
+
* fails with `NotMember`. `publicKey` is present only when the caller owns the
|
|
135
|
+
* key or asked for (and was granted) `PublicKey` disclosure.
|
|
136
|
+
*/
|
|
137
|
+
export declare const RegisteredRingVrfKey: import("scale-ts").Codec<{
|
|
138
|
+
handle: [string, {
|
|
139
|
+
tag: "Index";
|
|
140
|
+
value: number;
|
|
141
|
+
} | {
|
|
142
|
+
tag: "Raw";
|
|
143
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
144
|
+
}];
|
|
145
|
+
rings: {
|
|
146
|
+
chainId: `0x${string}`;
|
|
147
|
+
junctions: ({
|
|
148
|
+
tag: "PalletInstance";
|
|
149
|
+
value: number;
|
|
150
|
+
} | {
|
|
151
|
+
tag: "CollectionId";
|
|
152
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
153
|
+
})[];
|
|
154
|
+
}[];
|
|
155
|
+
publicKey: Uint8Array<ArrayBufferLike> | undefined;
|
|
156
|
+
}>;
|
|
103
157
|
/** One `transcript.append_message(label, value)` call replayed by the host. */
|
|
104
158
|
export declare const VrfTranscriptItem: import("scale-ts").Codec<{
|
|
105
159
|
label: Uint8Array<ArrayBufferLike>;
|
|
@@ -135,18 +189,21 @@ export declare const RequestCredentialsErr: [import("scale-ts").Encoder<import("
|
|
|
135
189
|
};
|
|
136
190
|
export declare const CreateProofErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
137
191
|
reason: string;
|
|
138
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
192
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
139
193
|
reason: string;
|
|
140
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>] & {
|
|
194
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>] & {
|
|
141
195
|
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
142
196
|
reason: string;
|
|
143
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>;
|
|
197
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>;
|
|
144
198
|
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
145
199
|
reason: string;
|
|
146
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>;
|
|
200
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>;
|
|
147
201
|
} & {
|
|
148
202
|
readonly RingNotFound: import("@novasamatech/scale").ErrCodec<undefined, "CreateProofErr::RingNotFound">;
|
|
149
203
|
readonly NotMember: import("@novasamatech/scale").ErrCodec<undefined, "CreateProofErr::NotMember">;
|
|
204
|
+
readonly KeyNotRegistered: import("@novasamatech/scale").ErrCodec<undefined, "CreateProofErr::KeyNotRegistered">;
|
|
205
|
+
readonly KeyNotInRing: import("@novasamatech/scale").ErrCodec<undefined, "CreateProofErr::KeyNotInRing">;
|
|
206
|
+
readonly NotAllowlisted: import("@novasamatech/scale").ErrCodec<undefined, "CreateProofErr::NotAllowlisted">;
|
|
150
207
|
readonly Rejected: import("@novasamatech/scale").ErrCodec<undefined, "CreateProofErr::Rejected">;
|
|
151
208
|
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
152
209
|
reason: string;
|
|
@@ -154,22 +211,24 @@ export declare const CreateProofErr: [import("scale-ts").Encoder<import("@novasa
|
|
|
154
211
|
} & {
|
|
155
212
|
[Symbol.hasInstance](v: unknown): v is import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
156
213
|
reason: string;
|
|
157
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">;
|
|
214
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">;
|
|
158
215
|
};
|
|
159
216
|
export declare const GetAliasErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
160
217
|
reason: string;
|
|
161
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
218
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
162
219
|
reason: string;
|
|
163
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>] & {
|
|
220
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>] & {
|
|
164
221
|
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
165
222
|
reason: string;
|
|
166
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>;
|
|
223
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>;
|
|
167
224
|
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
168
225
|
reason: string;
|
|
169
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>;
|
|
226
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>;
|
|
170
227
|
} & {
|
|
171
228
|
readonly RingNotFound: import("@novasamatech/scale").ErrCodec<undefined, "GetAliasErr::RingNotFound">;
|
|
172
229
|
readonly NotMember: import("@novasamatech/scale").ErrCodec<undefined, "GetAliasErr::NotMember">;
|
|
230
|
+
readonly KeyNotRegistered: import("@novasamatech/scale").ErrCodec<undefined, "GetAliasErr::KeyNotRegistered">;
|
|
231
|
+
readonly KeyNotInRing: import("@novasamatech/scale").ErrCodec<undefined, "GetAliasErr::KeyNotInRing">;
|
|
173
232
|
readonly Rejected: import("@novasamatech/scale").ErrCodec<undefined, "GetAliasErr::Rejected">;
|
|
174
233
|
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
175
234
|
reason: string;
|
|
@@ -177,7 +236,76 @@ export declare const GetAliasErr: [import("scale-ts").Encoder<import("@novasamat
|
|
|
177
236
|
} & {
|
|
178
237
|
[Symbol.hasInstance](v: unknown): v is import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
179
238
|
reason: string;
|
|
180
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">;
|
|
239
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">;
|
|
240
|
+
};
|
|
241
|
+
export declare const RegisterRingVrfKeyErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
242
|
+
reason: string;
|
|
243
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
244
|
+
reason: string;
|
|
245
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>] & {
|
|
246
|
+
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
247
|
+
reason: string;
|
|
248
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>;
|
|
249
|
+
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
250
|
+
reason: string;
|
|
251
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>;
|
|
252
|
+
} & {
|
|
253
|
+
readonly NotConnected: import("@novasamatech/scale").ErrCodec<undefined, "RegisterRingVrfKeyErr::NotConnected">;
|
|
254
|
+
readonly RingNotFound: import("@novasamatech/scale").ErrCodec<undefined, "RegisterRingVrfKeyErr::RingNotFound">;
|
|
255
|
+
readonly Rejected: import("@novasamatech/scale").ErrCodec<undefined, "RegisterRingVrfKeyErr::Rejected">;
|
|
256
|
+
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
257
|
+
reason: string;
|
|
258
|
+
}, "RegisterRingVrfKeyErr::Unknown">;
|
|
259
|
+
} & {
|
|
260
|
+
[Symbol.hasInstance](v: unknown): v is import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
261
|
+
reason: string;
|
|
262
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">;
|
|
263
|
+
};
|
|
264
|
+
export declare const ListRingVrfKeysErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
265
|
+
reason: string;
|
|
266
|
+
}, "ListRingVrfKeysErr::Unknown">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
267
|
+
reason: string;
|
|
268
|
+
}, "ListRingVrfKeysErr::Unknown">>] & {
|
|
269
|
+
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
270
|
+
reason: string;
|
|
271
|
+
}, "ListRingVrfKeysErr::Unknown">>;
|
|
272
|
+
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
273
|
+
reason: string;
|
|
274
|
+
}, "ListRingVrfKeysErr::Unknown">>;
|
|
275
|
+
} & {
|
|
276
|
+
readonly NotConnected: import("@novasamatech/scale").ErrCodec<undefined, "ListRingVrfKeysErr::NotConnected">;
|
|
277
|
+
readonly Rejected: import("@novasamatech/scale").ErrCodec<undefined, "ListRingVrfKeysErr::Rejected">;
|
|
278
|
+
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
279
|
+
reason: string;
|
|
280
|
+
}, "ListRingVrfKeysErr::Unknown">;
|
|
281
|
+
} & {
|
|
282
|
+
[Symbol.hasInstance](v: unknown): v is import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
283
|
+
reason: string;
|
|
284
|
+
}, "ListRingVrfKeysErr::Unknown">;
|
|
285
|
+
};
|
|
286
|
+
export declare const RingVrfSignErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
287
|
+
reason: string;
|
|
288
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
289
|
+
reason: string;
|
|
290
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>] & {
|
|
291
|
+
enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
292
|
+
reason: string;
|
|
293
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>;
|
|
294
|
+
dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
295
|
+
reason: string;
|
|
296
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>;
|
|
297
|
+
} & {
|
|
298
|
+
readonly NotConnected: import("@novasamatech/scale").ErrCodec<undefined, "RingVrfSignErr::NotConnected">;
|
|
299
|
+
readonly KeyNotRegistered: import("@novasamatech/scale").ErrCodec<undefined, "RingVrfSignErr::KeyNotRegistered">;
|
|
300
|
+
readonly NotAllowlisted: import("@novasamatech/scale").ErrCodec<undefined, "RingVrfSignErr::NotAllowlisted">;
|
|
301
|
+
readonly Rejected: import("@novasamatech/scale").ErrCodec<undefined, "RingVrfSignErr::Rejected">;
|
|
302
|
+
readonly Unknown: import("@novasamatech/scale").ErrCodec<{
|
|
303
|
+
reason: string;
|
|
304
|
+
}, "RingVrfSignErr::Unknown">;
|
|
305
|
+
} & {
|
|
306
|
+
[Symbol.hasInstance](v: unknown): v is import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
307
|
+
reason: string;
|
|
308
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">;
|
|
181
309
|
};
|
|
182
310
|
export declare const GetUserIdErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "GetUserIdErr::NotConnected"> | import("@novasamatech/scale").CodecError<{
|
|
183
311
|
reason: string;
|
|
@@ -245,12 +373,24 @@ export declare const AccountGetV1_response: import("scale-ts").Codec<import("sca
|
|
|
245
373
|
}, import("@novasamatech/scale").CodecError<undefined, "RequestCredentialsErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RequestCredentialsErr::Rejected"> | import("@novasamatech/scale").CodecError<undefined, "RequestCredentialsErr::DomainNotValid"> | import("@novasamatech/scale").CodecError<{
|
|
246
374
|
reason: string;
|
|
247
375
|
}, "RequestCredentialsErr::Unknown">>>;
|
|
376
|
+
/**
|
|
377
|
+
* `(keyHandle, context, ring)` — RFC-0024 replaced RFC-0004's host-side member
|
|
378
|
+
* key selection with an explicit handle. `ring` stays a separate argument
|
|
379
|
+
* because a key may be registered for several; the host MUST check that `ring`
|
|
380
|
+
* is among the handle's declared rings and fail with `KeyNotInRing` otherwise.
|
|
381
|
+
*/
|
|
248
382
|
export declare const AccountGetAliasV1_request: import("scale-ts").Codec<[[string, {
|
|
249
383
|
tag: "Index";
|
|
250
384
|
value: number;
|
|
251
385
|
} | {
|
|
252
386
|
tag: "Raw";
|
|
253
387
|
value: Uint8Array<ArrayBufferLike>;
|
|
388
|
+
}], [string, {
|
|
389
|
+
tag: "Index";
|
|
390
|
+
value: number;
|
|
391
|
+
} | {
|
|
392
|
+
tag: "Raw";
|
|
393
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
254
394
|
}], {
|
|
255
395
|
chainId: `0x${string}`;
|
|
256
396
|
junctions: ({
|
|
@@ -266,13 +406,20 @@ export declare const AccountGetAliasV1_response: import("scale-ts").Codec<import
|
|
|
266
406
|
alias: Uint8Array<ArrayBufferLike>;
|
|
267
407
|
}, import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
268
408
|
reason: string;
|
|
269
|
-
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember">>>;
|
|
409
|
+
}, "GetAliasErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "GetAliasErr::KeyNotInRing">>>;
|
|
410
|
+
/** `(keyHandle, context, ring, message)` — see {@link AccountGetAliasV1_request}. */
|
|
270
411
|
export declare const AccountCreateProofV1_request: import("scale-ts").Codec<[[string, {
|
|
271
412
|
tag: "Index";
|
|
272
413
|
value: number;
|
|
273
414
|
} | {
|
|
274
415
|
tag: "Raw";
|
|
275
416
|
value: Uint8Array<ArrayBufferLike>;
|
|
417
|
+
}], [string, {
|
|
418
|
+
tag: "Index";
|
|
419
|
+
value: number;
|
|
420
|
+
} | {
|
|
421
|
+
tag: "Raw";
|
|
422
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
276
423
|
}], {
|
|
277
424
|
chainId: `0x${string}`;
|
|
278
425
|
junctions: ({
|
|
@@ -293,7 +440,76 @@ export declare const AccountCreateProofV1_response: import("scale-ts").Codec<imp
|
|
|
293
440
|
ringRevision: number;
|
|
294
441
|
}, import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
295
442
|
reason: string;
|
|
296
|
-
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember">>>;
|
|
443
|
+
}, "CreateProofErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::RingNotFound"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotMember"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::KeyNotInRing"> | import("@novasamatech/scale").CodecError<undefined, "CreateProofErr::NotAllowlisted">>>;
|
|
444
|
+
/**
|
|
445
|
+
* `(index, ring)` — registers a key the *calling* product owns. Ownership is the
|
|
446
|
+
* calling product id and is never a parameter, so registration needs no
|
|
447
|
+
* capability gate and no prompt. Registering an already-registered `index` for
|
|
448
|
+
* an additional `ring` extends the existing entry rather than creating a second
|
|
449
|
+
* one (RFC-0024).
|
|
450
|
+
*/
|
|
451
|
+
export declare const AccountRegisterRingVrfKeyV1_request: import("scale-ts").Codec<[{
|
|
452
|
+
tag: "Index";
|
|
453
|
+
value: number;
|
|
454
|
+
} | {
|
|
455
|
+
tag: "Raw";
|
|
456
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
457
|
+
}, {
|
|
458
|
+
chainId: `0x${string}`;
|
|
459
|
+
junctions: ({
|
|
460
|
+
tag: "PalletInstance";
|
|
461
|
+
value: number;
|
|
462
|
+
} | {
|
|
463
|
+
tag: "CollectionId";
|
|
464
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
465
|
+
})[];
|
|
466
|
+
}]>;
|
|
467
|
+
export declare const AccountRegisterRingVrfKeyV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
468
|
+
reason: string;
|
|
469
|
+
}, "RegisterRingVrfKeyErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RegisterRingVrfKeyErr::RingNotFound">>>;
|
|
470
|
+
/** `(owner, disclosure)` — lists the registry entries owned by `owner` (RFC-0024). */
|
|
471
|
+
export declare const AccountListRingVrfKeysV1_request: import("scale-ts").Codec<[string, "Anonymized" | "PublicKey"]>;
|
|
472
|
+
export declare const AccountListRingVrfKeysV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<{
|
|
473
|
+
handle: [string, {
|
|
474
|
+
tag: "Index";
|
|
475
|
+
value: number;
|
|
476
|
+
} | {
|
|
477
|
+
tag: "Raw";
|
|
478
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
479
|
+
}];
|
|
480
|
+
rings: {
|
|
481
|
+
chainId: `0x${string}`;
|
|
482
|
+
junctions: ({
|
|
483
|
+
tag: "PalletInstance";
|
|
484
|
+
value: number;
|
|
485
|
+
} | {
|
|
486
|
+
tag: "CollectionId";
|
|
487
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
488
|
+
})[];
|
|
489
|
+
}[];
|
|
490
|
+
publicKey: Uint8Array<ArrayBufferLike> | undefined;
|
|
491
|
+
}[], import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "ListRingVrfKeysErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
492
|
+
reason: string;
|
|
493
|
+
}, "ListRingVrfKeysErr::Unknown">>>;
|
|
494
|
+
/**
|
|
495
|
+
* `(keyHandle, message)` — signs `message` with the member key itself, producing
|
|
496
|
+
* an ordinary signature rather than an anonymous ring proof (RFC-0024).
|
|
497
|
+
*
|
|
498
|
+
* Takes neither a context nor a ring: it derives no alias and proves no
|
|
499
|
+
* membership, so there is nothing for either to scope. Verified against the
|
|
500
|
+
* member public key, which makes every such signature linkable to every other
|
|
501
|
+
* use of that key.
|
|
502
|
+
*/
|
|
503
|
+
export declare const AccountRingVrfSignV1_request: import("scale-ts").Codec<[[string, {
|
|
504
|
+
tag: "Index";
|
|
505
|
+
value: number;
|
|
506
|
+
} | {
|
|
507
|
+
tag: "Raw";
|
|
508
|
+
value: Uint8Array<ArrayBufferLike>;
|
|
509
|
+
}], Uint8Array<ArrayBufferLike>]>;
|
|
510
|
+
export declare const AccountRingVrfSignV1_response: import("scale-ts").Codec<import("scale-ts").ResultPayload<Uint8Array<ArrayBufferLike>, import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotConnected"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::Rejected"> | import("@novasamatech/scale").CodecError<{
|
|
511
|
+
reason: string;
|
|
512
|
+
}, "RingVrfSignErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::KeyNotRegistered"> | import("@novasamatech/scale").CodecError<undefined, "RingVrfSignErr::NotAllowlisted">>>;
|
|
297
513
|
/**
|
|
298
514
|
* The host replays the transcript verbatim — `Transcript::new(transcriptLabel)`
|
|
299
515
|
* followed by `append_message(item.label, item.value)` per item, in order — and
|
|
@@ -24,6 +24,19 @@ export const DerivationIndex = Enum({
|
|
|
24
24
|
});
|
|
25
25
|
export const ProductAccountId = Tuple(DotNsIdentifier, DerivationIndex);
|
|
26
26
|
export const RingVrgAlias = Bytes();
|
|
27
|
+
/**
|
|
28
|
+
* Public name of a registered ring VRF key (RFC-0024): the owning product plus
|
|
29
|
+
* the index of the key inside that product's ring VRF domain (`//{productId}//{index}`
|
|
30
|
+
* of the ring VRF tree, RFC-0022).
|
|
31
|
+
*
|
|
32
|
+
* Structurally a {@link ProductAccountId}, but it names a slot in the ring VRF
|
|
33
|
+
* tree — *not* the sr25519 product account at the same `(product, index)`.
|
|
34
|
+
* Consumers MUST treat it as opaque and select keys by declared
|
|
35
|
+
* {@link RingLocation}; the index is the owner's implementation detail.
|
|
36
|
+
*/
|
|
37
|
+
export const RingVrfKeyHandle = ProductAccountId;
|
|
38
|
+
/** Ring VRF member public key. Linkable across every ring the key appears in. */
|
|
39
|
+
export const RingVrfPublicKey = Bytes(32);
|
|
27
40
|
/**
|
|
28
41
|
* Normalizes an {@link AccountSelector} into the wire {@link DerivationIndex}:
|
|
29
42
|
* numbers become `Index`, 32-byte arrays become `Raw`.
|
|
@@ -75,6 +88,26 @@ export const RingLocation = Struct({
|
|
|
75
88
|
chainId: GenesisHash,
|
|
76
89
|
junctions: Vector(RingLocationJunction),
|
|
77
90
|
});
|
|
91
|
+
/**
|
|
92
|
+
* How much of a registry entry the caller is asking for (RFC-0024).
|
|
93
|
+
*
|
|
94
|
+
* `PublicKey` is owner-visible by default but permissioned cross-product: a
|
|
95
|
+
* member public key is linkable across every ring it appears in.
|
|
96
|
+
*/
|
|
97
|
+
export const RingVrfKeyDisclosure = Status('Anonymized', 'PublicKey');
|
|
98
|
+
/**
|
|
99
|
+
* A ring VRF key registry entry as returned to a caller (RFC-0024).
|
|
100
|
+
*
|
|
101
|
+
* `rings` is what the owning product *declared* the key for, not proof of
|
|
102
|
+
* membership — membership is still discovered only by attempting a proof, which
|
|
103
|
+
* fails with `NotMember`. `publicKey` is present only when the caller owns the
|
|
104
|
+
* key or asked for (and was granted) `PublicKey` disclosure.
|
|
105
|
+
*/
|
|
106
|
+
export const RegisteredRingVrfKey = Struct({
|
|
107
|
+
handle: RingVrfKeyHandle,
|
|
108
|
+
rings: Vector(RingLocation),
|
|
109
|
+
publicKey: Option(RingVrfPublicKey),
|
|
110
|
+
});
|
|
78
111
|
/** One `transcript.append_message(label, value)` call replayed by the host. */
|
|
79
112
|
export const VrfTranscriptItem = Struct({
|
|
80
113
|
label: Bytes(),
|
|
@@ -95,15 +128,38 @@ export const RequestCredentialsErr = ErrEnum('RequestCredentialsErr', {
|
|
|
95
128
|
export const CreateProofErr = ErrEnum('CreateProofErr', {
|
|
96
129
|
RingNotFound: [_void, 'CreateProof: ring not found'],
|
|
97
130
|
NotMember: [_void, 'CreateProof: selected member key is not a member of the ring'],
|
|
131
|
+
KeyNotRegistered: [_void, 'CreateProof: key handle has no registry entry'],
|
|
132
|
+
KeyNotInRing: [_void, 'CreateProof: key handle is registered, but not for the requested ring'],
|
|
133
|
+
NotAllowlisted: [_void, 'CreateProof: key handle is foreign and its owner has not allowlisted the caller'],
|
|
98
134
|
Rejected: [_void, 'CreateProof: rejected'],
|
|
99
135
|
Unknown: [GenericErr, 'CreateProof: unknown error'],
|
|
100
136
|
});
|
|
101
137
|
export const GetAliasErr = ErrEnum('GetAliasErr', {
|
|
102
138
|
RingNotFound: [_void, 'GetAlias: ring not found'],
|
|
103
139
|
NotMember: [_void, 'GetAlias: selected member key is not a member of the ring'],
|
|
140
|
+
KeyNotRegistered: [_void, 'GetAlias: key handle has no registry entry'],
|
|
141
|
+
KeyNotInRing: [_void, 'GetAlias: key handle is registered, but not for the requested ring'],
|
|
104
142
|
Rejected: [_void, 'GetAlias: rejected'],
|
|
105
143
|
Unknown: [GenericErr, 'GetAlias: unknown error'],
|
|
106
144
|
});
|
|
145
|
+
export const RegisterRingVrfKeyErr = ErrEnum('RegisterRingVrfKeyErr', {
|
|
146
|
+
NotConnected: [_void, 'RegisterRingVrfKey: not connected'],
|
|
147
|
+
RingNotFound: [_void, 'RegisterRingVrfKey: ring not found'],
|
|
148
|
+
Rejected: [_void, 'RegisterRingVrfKey: rejected'],
|
|
149
|
+
Unknown: [GenericErr, 'RegisterRingVrfKey: unknown error'],
|
|
150
|
+
});
|
|
151
|
+
export const ListRingVrfKeysErr = ErrEnum('ListRingVrfKeysErr', {
|
|
152
|
+
NotConnected: [_void, 'ListRingVrfKeys: not connected'],
|
|
153
|
+
Rejected: [_void, 'ListRingVrfKeys: owner is not the calling product and the caller has no grant for it'],
|
|
154
|
+
Unknown: [GenericErr, 'ListRingVrfKeys: unknown error'],
|
|
155
|
+
});
|
|
156
|
+
export const RingVrfSignErr = ErrEnum('RingVrfSignErr', {
|
|
157
|
+
NotConnected: [_void, 'RingVrfSign: not connected'],
|
|
158
|
+
KeyNotRegistered: [_void, 'RingVrfSign: key handle has no registry entry'],
|
|
159
|
+
NotAllowlisted: [_void, 'RingVrfSign: key handle is foreign and its owner has not allowlisted the caller'],
|
|
160
|
+
Rejected: [_void, 'RingVrfSign: rejected'],
|
|
161
|
+
Unknown: [GenericErr, 'RingVrfSign: unknown error'],
|
|
162
|
+
});
|
|
107
163
|
export const GetUserIdErr = ErrEnum('GetUserIdErr', {
|
|
108
164
|
PermissionDenied: [_void, 'GetUserId: permission denied'],
|
|
109
165
|
NotConnected: [_void, 'GetUserId: not connected'],
|
|
@@ -126,11 +182,44 @@ export const GetUserIdV1_response = Result(UserIdentity, GetUserIdErr);
|
|
|
126
182
|
export const AccountGetV1_request = ProductAccountId;
|
|
127
183
|
export const AccountGetV1_response = Result(ProductAccount, RequestCredentialsErr);
|
|
128
184
|
// account_get_alias
|
|
129
|
-
|
|
185
|
+
/**
|
|
186
|
+
* `(keyHandle, context, ring)` — RFC-0024 replaced RFC-0004's host-side member
|
|
187
|
+
* key selection with an explicit handle. `ring` stays a separate argument
|
|
188
|
+
* because a key may be registered for several; the host MUST check that `ring`
|
|
189
|
+
* is among the handle's declared rings and fail with `KeyNotInRing` otherwise.
|
|
190
|
+
*/
|
|
191
|
+
export const AccountGetAliasV1_request = Tuple(RingVrfKeyHandle, ProductProofContext, RingLocation);
|
|
130
192
|
export const AccountGetAliasV1_response = Result(ContextualAlias, GetAliasErr);
|
|
131
193
|
// account_create_proof
|
|
132
|
-
|
|
194
|
+
/** `(keyHandle, context, ring, message)` — see {@link AccountGetAliasV1_request}. */
|
|
195
|
+
export const AccountCreateProofV1_request = Tuple(RingVrfKeyHandle, ProductProofContext, RingLocation, Bytes());
|
|
133
196
|
export const AccountCreateProofV1_response = Result(RingVrfProof, CreateProofErr);
|
|
197
|
+
// account_register_ring_vrf_key
|
|
198
|
+
/**
|
|
199
|
+
* `(index, ring)` — registers a key the *calling* product owns. Ownership is the
|
|
200
|
+
* calling product id and is never a parameter, so registration needs no
|
|
201
|
+
* capability gate and no prompt. Registering an already-registered `index` for
|
|
202
|
+
* an additional `ring` extends the existing entry rather than creating a second
|
|
203
|
+
* one (RFC-0024).
|
|
204
|
+
*/
|
|
205
|
+
export const AccountRegisterRingVrfKeyV1_request = Tuple(DerivationIndex, RingLocation);
|
|
206
|
+
export const AccountRegisterRingVrfKeyV1_response = Result(RingVrfPublicKey, RegisterRingVrfKeyErr);
|
|
207
|
+
// account_list_ring_vrf_keys
|
|
208
|
+
/** `(owner, disclosure)` — lists the registry entries owned by `owner` (RFC-0024). */
|
|
209
|
+
export const AccountListRingVrfKeysV1_request = Tuple(ProductId, RingVrfKeyDisclosure);
|
|
210
|
+
export const AccountListRingVrfKeysV1_response = Result(Vector(RegisteredRingVrfKey), ListRingVrfKeysErr);
|
|
211
|
+
// account_ring_vrf_sign
|
|
212
|
+
/**
|
|
213
|
+
* `(keyHandle, message)` — signs `message` with the member key itself, producing
|
|
214
|
+
* an ordinary signature rather than an anonymous ring proof (RFC-0024).
|
|
215
|
+
*
|
|
216
|
+
* Takes neither a context nor a ring: it derives no alias and proves no
|
|
217
|
+
* membership, so there is nothing for either to scope. Verified against the
|
|
218
|
+
* member public key, which makes every such signature linkable to every other
|
|
219
|
+
* use of that key.
|
|
220
|
+
*/
|
|
221
|
+
export const AccountRingVrfSignV1_request = Tuple(RingVrfKeyHandle, Bytes());
|
|
222
|
+
export const AccountRingVrfSignV1_response = Result(Bytes(), RingVrfSignErr);
|
|
134
223
|
// account_sign_vrf
|
|
135
224
|
/**
|
|
136
225
|
* The host replays the transcript verbatim — `Transcript::new(transcriptLabel)`
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@novasamatech/host-api",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.3",
|
|
5
5
|
"description": "Host API: transport implementation for host - product integration.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@novasamatech/scale": "0.9.
|
|
25
|
+
"@novasamatech/scale": "0.9.3",
|
|
26
26
|
"nanoevents": "10.0.0",
|
|
27
27
|
"nanoid": "6.0.0",
|
|
28
28
|
"neverthrow": "^8.2.0",
|