@airgap/module-kit 0.13.16-beta.5 → 0.13.16-beta.7

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/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import { newSignature } from './factories/signature';
5
5
  import { newSignedTransaction, newUnsignedTransaction } from './factories/transaction';
6
6
  import { newErrorUIAlert, newInfoUIAlert, newSuccessUIAlert, newWarningUIAlert } from './factories/ui/alert';
7
7
  import { newPlainUIText } from './factories/ui/text';
8
+ import { AirGapSerializedAnyProtocol, AirGapSerializedOfflineProtocol, AirGapSerializedOnlineProtocol, ProtocolSerializerExtension, ProtocolSerializerModule } from './module/extensions/serialization/ProtocolSerializer';
8
9
  import { AirGapModule } from './module/module';
9
10
  import { ModuleNetworkRegistry } from './module/module-network-registry';
10
11
  import { FetchDataForMultipleAddressesExtension, FetchDataForMultipleAddressesProtocol } from './protocol/extensions/address/FetchDataForMultipleAddressesExtension';
@@ -35,22 +36,22 @@ import { ProtocolAccountMetadata, ProtocolFeeMetadata, ProtocolMetadata, Protoco
35
36
  import { V3SchemaConfiguration } from './types/serializer';
36
37
  import { Signature } from './types/signature';
37
38
  import { SubProtocolType } from './types/sub-protocol';
38
- import { AirGapTransaction, AirGapTransactionStatus, AirGapTransactionsWithCursor, SignedTransaction, TransactionSimpleConfiguration, TransactionCursor, TransactionDetails, TransactionType, UnsignedTransaction, TransactionFullConfiguration } from './types/transaction';
39
+ import { AirGapTransaction, AirGapTransactionStatus, AirGapTransactionsWithCursor, SignedTransaction, TransactionCursor, TransactionDetails, TransactionFullConfiguration, TransactionSimpleConfiguration, TransactionType, UnsignedTransaction } from './types/transaction';
39
40
  import { AirGapUIAction } from './types/ui/action';
40
41
  import { AirGapUIAlert } from './types/ui/alert';
41
42
  import { AirGapUIText } from './types/ui/text';
42
43
  import { isAmount } from './utils/amount';
43
44
  import { implementsInterface, Schema } from './utils/interface';
44
45
  import { isAnyKey, isExtendedPublicKey, isExtendedSecretKey, isPublicKey, isSecretKey } from './utils/key';
45
- import { createSupportedProtocols } from './utils/module';
46
+ import { canSerializeProtocols, createSupportedProtocols, protocolSerializerSchema } from './utils/module';
46
47
  import { normalizeToUndefined } from './utils/normalize';
47
48
  import { aesEncryptionSchema, asymmetricEncryptionBaseSchema, asymmetricEncryptionOfflineSchema, baseProtocolSchema, bip32BaseProtocolSchema, bip32OfflineProtocolSchema, bip32OnlineProtocolSchema, canEncryptAES, canEncryptAsymmetric, canFetchDataForAddress, canFetchDataForMultipleAddresses, canSignMessage, configurableContractProtocolSchema, configurableTransactionInjectorSchema, fetchDataForAddressProtocolSchema, fetchDataForMultipleAddressesProtocolSchema, hasConfigurableContract, hasConfigurableTransactionInjector, hasMultiAddressPublicKeys, isAnyProtocol, isBip32Protocol, isMultiTokenSubProtocol, isOfflineProtocol, isOnlineProtocol, isSingleTokenSubProtocol, isSubProtocol, isTransactionStatusChecker, multiAddressPublicKeyProtocolSchema, multiTokenSubProtocolBaseSchema, offlineProtocolSchema, onlineProtocolSchema, protocolNetworkIdentifier, signMessageBaseSchema, signMessageOfflineSchema, singleTokenSubProtocolSchema, subProtocolSchema, transactionStatusCheckerSchema } from './utils/protocol';
48
49
  export { AirGapBlockExplorer, BlockExplorerMetadata };
49
50
  export { newSuccessUIAlert, newInfoUIAlert, newWarningUIAlert, newErrorUIAlert, newPlainUIText, newAmount, newSecretKey, newExtendedSecretKey, newPublicKey, newExtendedPublicKey, newSignature, newUnsignedTransaction, newSignedTransaction };
50
- export { AirGapModule, ModuleNetworkRegistry, ProtocolConfiguration, OfflineProtocolConfiguration, OnlineProtocolConfiguration, FullProtocolConfiguration };
51
+ export { AirGapModule, ModuleNetworkRegistry, ProtocolConfiguration, OfflineProtocolConfiguration, OnlineProtocolConfiguration, FullProtocolConfiguration, ProtocolSerializerExtension, ProtocolSerializerModule, AirGapSerializedOfflineProtocol, AirGapSerializedOnlineProtocol, AirGapSerializedAnyProtocol };
51
52
  export { AirGapOfflineProtocol, AirGapOnlineProtocol, AirGapProtocol, AirGapAnyProtocol, FetchDataForMultipleAddressesExtension, FetchDataForMultipleAddressesProtocol, MultiAddressPublicKeyExtension, MultiAddressPublicKeyProtocol, Bip32Extension, OfflineBip32Protocol, OnlineBip32Protocol, SubProtocolExtension, SubProtocol, SingleTokenSubProtocolExtension, SingleTokenSubProtocol, MultiTokenSubProtocolExtension, BaseMultiTokenSubProtocol, OnlineMultiTokenSubProtocol, CryptoExtension, AESExtension, AsymmetricEncryptionExtension, SignMessageExtension, TransactionStatusCheckerExtension, ProtocolMetadata, ProtocolUnitsMetadata, ProtocolSymbol, ProtocolFeeMetadata, ProtocolAccountMetadata, ProtocolTransactionMetadata, ProtocolNetworkType, ProtocolNetwork, SubProtocolType };
52
53
  export { AirGapV3SerializerCompanion, V3SchemaConfiguration };
53
54
  export { AirGapInterface };
54
55
  export { AirGapUIAction, AirGapUIAlert, AirGapUIText, Address, AddressCursor, AddressWithCursor, Amount, Balance, MultiTokenBalanceConfiguration, BytesStringFormat, BytesString, HexString, CryptoAlgorithm, CryptoSecretType, Ed25519CryptoConfiguration, Sr25519CryptoConfiguration, Secp256K1CryptoConfiguration, SaplingCryptoConfiguration, CryptoConfiguration, CryptoDerivative, FeeDefaults, FeeEstimation, KeyType, SecretKey, ExtendedSecretKey, PublicKey, ExtendedPublicKey, KeyPair, ExtendedKeyPair, Signature, TransactionType, UnsignedTransaction, SignedTransaction, AirGapTransaction, TransactionCursor, AirGapTransactionsWithCursor, TransactionDetails, TransactionSimpleConfiguration, TransactionFullConfiguration, AirGapTransactionStatus, RecursivePartial };
55
- export { isAmount, Schema, implementsInterface, isAnyKey, isSecretKey, isExtendedSecretKey, isPublicKey, isExtendedPublicKey, createSupportedProtocols, isAnyProtocol, isOfflineProtocol, isOnlineProtocol, isBip32Protocol, isSubProtocol, isSingleTokenSubProtocol, isMultiTokenSubProtocol, canFetchDataForAddress, canFetchDataForMultipleAddresses, hasMultiAddressPublicKeys, hasConfigurableContract, canEncryptAES, canEncryptAsymmetric, canSignMessage, hasConfigurableTransactionInjector, isTransactionStatusChecker, protocolNetworkIdentifier, normalizeToUndefined };
56
- export { baseProtocolSchema, offlineProtocolSchema, onlineProtocolSchema, bip32BaseProtocolSchema, bip32OfflineProtocolSchema, bip32OnlineProtocolSchema, subProtocolSchema, singleTokenSubProtocolSchema, multiTokenSubProtocolBaseSchema, fetchDataForAddressProtocolSchema, fetchDataForMultipleAddressesProtocolSchema, multiAddressPublicKeyProtocolSchema, configurableContractProtocolSchema, aesEncryptionSchema, asymmetricEncryptionBaseSchema, asymmetricEncryptionOfflineSchema, signMessageBaseSchema, signMessageOfflineSchema, configurableTransactionInjectorSchema, transactionStatusCheckerSchema };
56
+ export { isAmount, Schema, implementsInterface, isAnyKey, isSecretKey, isExtendedSecretKey, isPublicKey, isExtendedPublicKey, createSupportedProtocols, canSerializeProtocols, isAnyProtocol, isOfflineProtocol, isOnlineProtocol, isBip32Protocol, isSubProtocol, isSingleTokenSubProtocol, isMultiTokenSubProtocol, canFetchDataForAddress, canFetchDataForMultipleAddresses, hasMultiAddressPublicKeys, hasConfigurableContract, canEncryptAES, canEncryptAsymmetric, canSignMessage, hasConfigurableTransactionInjector, isTransactionStatusChecker, protocolNetworkIdentifier, normalizeToUndefined };
57
+ export { protocolSerializerSchema, baseProtocolSchema, offlineProtocolSchema, onlineProtocolSchema, bip32BaseProtocolSchema, bip32OfflineProtocolSchema, bip32OnlineProtocolSchema, subProtocolSchema, singleTokenSubProtocolSchema, multiTokenSubProtocolBaseSchema, fetchDataForAddressProtocolSchema, fetchDataForMultipleAddressesProtocolSchema, multiAddressPublicKeyProtocolSchema, configurableContractProtocolSchema, aesEncryptionSchema, asymmetricEncryptionBaseSchema, asymmetricEncryptionOfflineSchema, signMessageBaseSchema, signMessageOfflineSchema, configurableTransactionInjectorSchema, transactionStatusCheckerSchema };
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchDataForAddressProtocolSchema = exports.multiTokenSubProtocolBaseSchema = exports.singleTokenSubProtocolSchema = exports.subProtocolSchema = exports.bip32OnlineProtocolSchema = exports.bip32OfflineProtocolSchema = exports.bip32BaseProtocolSchema = exports.onlineProtocolSchema = exports.offlineProtocolSchema = exports.baseProtocolSchema = exports.normalizeToUndefined = exports.protocolNetworkIdentifier = exports.isTransactionStatusChecker = exports.hasConfigurableTransactionInjector = exports.canSignMessage = exports.canEncryptAsymmetric = exports.canEncryptAES = exports.hasConfigurableContract = exports.hasMultiAddressPublicKeys = exports.canFetchDataForMultipleAddresses = exports.canFetchDataForAddress = exports.isMultiTokenSubProtocol = exports.isSingleTokenSubProtocol = exports.isSubProtocol = exports.isBip32Protocol = exports.isOnlineProtocol = exports.isOfflineProtocol = exports.isAnyProtocol = exports.createSupportedProtocols = exports.isExtendedPublicKey = exports.isPublicKey = exports.isExtendedSecretKey = exports.isSecretKey = exports.isAnyKey = exports.implementsInterface = exports.isAmount = exports.ModuleNetworkRegistry = exports.newSignedTransaction = exports.newUnsignedTransaction = exports.newSignature = exports.newExtendedPublicKey = exports.newPublicKey = exports.newExtendedSecretKey = exports.newSecretKey = exports.newAmount = exports.newPlainUIText = exports.newErrorUIAlert = exports.newWarningUIAlert = exports.newInfoUIAlert = exports.newSuccessUIAlert = void 0;
4
- exports.transactionStatusCheckerSchema = exports.configurableTransactionInjectorSchema = exports.signMessageOfflineSchema = exports.signMessageBaseSchema = exports.asymmetricEncryptionOfflineSchema = exports.asymmetricEncryptionBaseSchema = exports.aesEncryptionSchema = exports.configurableContractProtocolSchema = exports.multiAddressPublicKeyProtocolSchema = exports.fetchDataForMultipleAddressesProtocolSchema = void 0;
3
+ exports.singleTokenSubProtocolSchema = exports.subProtocolSchema = exports.bip32OnlineProtocolSchema = exports.bip32OfflineProtocolSchema = exports.bip32BaseProtocolSchema = exports.onlineProtocolSchema = exports.offlineProtocolSchema = exports.baseProtocolSchema = exports.protocolSerializerSchema = exports.normalizeToUndefined = exports.protocolNetworkIdentifier = exports.isTransactionStatusChecker = exports.hasConfigurableTransactionInjector = exports.canSignMessage = exports.canEncryptAsymmetric = exports.canEncryptAES = exports.hasConfigurableContract = exports.hasMultiAddressPublicKeys = exports.canFetchDataForMultipleAddresses = exports.canFetchDataForAddress = exports.isMultiTokenSubProtocol = exports.isSingleTokenSubProtocol = exports.isSubProtocol = exports.isBip32Protocol = exports.isOnlineProtocol = exports.isOfflineProtocol = exports.isAnyProtocol = exports.canSerializeProtocols = exports.createSupportedProtocols = exports.isExtendedPublicKey = exports.isPublicKey = exports.isExtendedSecretKey = exports.isSecretKey = exports.isAnyKey = exports.implementsInterface = exports.isAmount = exports.ModuleNetworkRegistry = exports.newSignedTransaction = exports.newUnsignedTransaction = exports.newSignature = exports.newExtendedPublicKey = exports.newPublicKey = exports.newExtendedSecretKey = exports.newSecretKey = exports.newAmount = exports.newPlainUIText = exports.newErrorUIAlert = exports.newWarningUIAlert = exports.newInfoUIAlert = exports.newSuccessUIAlert = void 0;
4
+ exports.transactionStatusCheckerSchema = exports.configurableTransactionInjectorSchema = exports.signMessageOfflineSchema = exports.signMessageBaseSchema = exports.asymmetricEncryptionOfflineSchema = exports.asymmetricEncryptionBaseSchema = exports.aesEncryptionSchema = exports.configurableContractProtocolSchema = exports.multiAddressPublicKeyProtocolSchema = exports.fetchDataForMultipleAddressesProtocolSchema = exports.fetchDataForAddressProtocolSchema = exports.multiTokenSubProtocolBaseSchema = void 0;
5
5
  var amount_1 = require("./factories/amount");
6
6
  Object.defineProperty(exports, "newAmount", { enumerable: true, get: function () { return amount_1.newAmount; } });
7
7
  var key_1 = require("./factories/key");
@@ -34,7 +34,9 @@ Object.defineProperty(exports, "isExtendedSecretKey", { enumerable: true, get: f
34
34
  Object.defineProperty(exports, "isPublicKey", { enumerable: true, get: function () { return key_2.isPublicKey; } });
35
35
  Object.defineProperty(exports, "isSecretKey", { enumerable: true, get: function () { return key_2.isSecretKey; } });
36
36
  var module_1 = require("./utils/module");
37
+ Object.defineProperty(exports, "canSerializeProtocols", { enumerable: true, get: function () { return module_1.canSerializeProtocols; } });
37
38
  Object.defineProperty(exports, "createSupportedProtocols", { enumerable: true, get: function () { return module_1.createSupportedProtocols; } });
39
+ Object.defineProperty(exports, "protocolSerializerSchema", { enumerable: true, get: function () { return module_1.protocolSerializerSchema; } });
38
40
  var normalize_1 = require("./utils/normalize");
39
41
  Object.defineProperty(exports, "normalizeToUndefined", { enumerable: true, get: function () { return normalize_1.normalizeToUndefined; } });
40
42
  var protocol_1 = require("./utils/protocol");
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,6CAA8C;AAsI5C,0FAtIO,kBAAS,OAsIP;AArIX,uCAAwG;AAyItG,qGAzIO,0BAAoB,OAyIP;AAFpB,qGAvI6B,0BAAoB,OAuI7B;AACpB,6FAxImD,kBAAY,OAwInD;AAFZ,6FAtIiE,kBAAY,OAsIjE;AArId,mDAAoD;AAyIlD,6FAzIO,wBAAY,OAyIP;AAxId,uDAAsF;AA0IpF,qGA1IO,kCAAoB,OA0IP;AADpB,uGAzI6B,oCAAsB,OAyI7B;AAxIxB,8CAA4G;AAgI1G,gGAhIO,uBAAe,OAgIP;AAFf,+FA9HwB,sBAAc,OA8HxB;AADd,kGA7HwC,yBAAiB,OA6HxC;AAEjB,kGA/H2D,yBAAiB,OA+H3D;AA9HnB,4CAAoD;AAgIlD,+FAhIO,qBAAc,OAgIP;AA9HhB,4EAAwE;AA6ItE,sGA7IO,+CAAqB,OA6IP;AAvEvB,yCAAyC;AA4KvC,yFA5KO,iBAAQ,OA4KP;AA3KV,+CAA+D;AA6K7D,oGA7KO,+BAAmB,OA6KP;AA5KrB,mCAA0G;AA6KxG,yFA7KO,cAAQ,OA6KP;AAIR,oGAjLiB,yBAAmB,OAiLjB;AAFnB,oGA/KsC,yBAAmB,OA+KtC;AACnB,4FAhL2D,iBAAW,OAgL3D;AAFX,4FA9KwE,iBAAW,OA8KxE;AA7Kb,yCAAyD;AAiLvD,yGAjLO,iCAAwB,OAiLP;AAhL1B,+CAAwD;AAkMtD,qGAlMO,gCAAoB,OAkMP;AAjMtB,6CAsCyB;AA8KvB,oGAnNA,8BAAmB,OAmNA;AACnB,+GAnNA,yCAA8B,OAmNA;AAC9B,kHAnNA,4CAAiC,OAmNA;AAfjC,mGAnMA,6BAAkB,OAmMA;AAGlB,wGArMA,kCAAuB,OAqMA;AACvB,2GArMA,qCAA0B,OAqMA;AAC1B,0GArMA,oCAAyB,OAqMA;AAjBzB,8FAnLA,wBAAa,OAmLA;AACb,qGAnLA,+BAAoB,OAmLA;AALpB,uGA7KA,iCAAsB,OA6KA;AACtB,iHA7KA,2CAAgC,OA6KA;AAKhC,+FAjLA,yBAAc,OAiLA;AAsBd,mHAtMA,6CAAkC,OAsMA;AAMlC,sHA3MA,gDAAqC,OA2MA;AATrC,kHAjMA,4CAAiC,OAiMA;AACjC,4HAjMA,sDAA2C,OAiMA;AAvB3C,wGAzKA,kCAAuB,OAyKA;AAIvB,mHA5KA,6CAAkC,OA4KA;AALlC,0GAtKA,oCAAyB,OAsKA;AATzB,8FA5JA,wBAAa,OA4JA;AAGb,gGA9JA,0BAAe,OA8JA;AAGf,wGAhKA,kCAAuB,OAgKA;AALvB,kGA1JA,4BAAiB,OA0JA;AACjB,iGA1JA,2BAAgB,OA0JA;AAGhB,yGA5JA,mCAAwB,OA4JA;AADxB,8FA1JA,wBAAa,OA0JA;AAWb,2GApKA,qCAA0B,OAoKA;AAmB1B,oHAtLA,8CAAmC,OAsLA;AAHnC,gHAlLA,0CAA+B,OAkLA;AAP/B,sGA1KA,gCAAqB,OA0KA;AACrB,qGA1KA,+BAAoB,OA0KA;AATpB,0GAhKA,oCAAyB,OAgKA;AAuBzB,sGAtLA,gCAAqB,OAsLA;AACrB,yGAtLA,mCAAwB,OAsLA;AAVxB,6GA3KA,uCAA4B,OA2KA;AAD5B,kGAzKA,4BAAiB,OAyKA;AAajB,+GArLA,yCAA8B,OAqLA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAEA,6CAA8C;AA6I5C,0FA7IO,kBAAS,OA6IP;AA5IX,uCAAwG;AAgJtG,qGAhJO,0BAAoB,OAgJP;AAFpB,qGA9I6B,0BAAoB,OA8I7B;AACpB,6FA/ImD,kBAAY,OA+InD;AAFZ,6FA7IiE,kBAAY,OA6IjE;AA5Id,mDAAoD;AAgJlD,6FAhJO,wBAAY,OAgJP;AA/Id,uDAAsF;AAiJpF,qGAjJO,kCAAoB,OAiJP;AADpB,uGAhJ6B,oCAAsB,OAgJ7B;AA/IxB,8CAA4G;AAuI1G,gGAvIO,uBAAe,OAuIP;AAFf,+FArIwB,sBAAc,OAqIxB;AADd,kGApIwC,yBAAiB,OAoIxC;AAEjB,kGAtI2D,yBAAiB,OAsI3D;AArInB,4CAAoD;AAuIlD,+FAvIO,qBAAc,OAuIP;AA9HhB,4EAAwE;AA6ItE,sGA7IO,+CAAqB,OA6IP;AAvEvB,yCAAyC;AAiLvC,yFAjLO,iBAAQ,OAiLP;AAhLV,+CAA+D;AAkL7D,oGAlLO,+BAAmB,OAkLP;AAjLrB,mCAA0G;AAkLxG,yFAlLO,cAAQ,OAkLP;AAIR,oGAtLiB,yBAAmB,OAsLjB;AAFnB,oGApLsC,yBAAmB,OAoLtC;AACnB,4FArL2D,iBAAW,OAqL3D;AAFX,4FAnLwE,iBAAW,OAmLxE;AAlLb,yCAA0G;AAuLxG,sGAvLO,8BAAqB,OAuLP;AADrB,yGAtL8B,iCAAwB,OAsL9B;AAyBxB,yGA/MwD,iCAAwB,OA+MxD;AA9M1B,+CAAwD;AAwMtD,qGAxMO,gCAAoB,OAwMP;AAvMtB,6CAsCyB;AAqLvB,oGA1NA,8BAAmB,OA0NA;AACnB,+GA1NA,yCAA8B,OA0NA;AAC9B,kHA1NA,4CAAiC,OA0NA;AAfjC,mGA1MA,6BAAkB,OA0MA;AAGlB,wGA5MA,kCAAuB,OA4MA;AACvB,2GA5MA,qCAA0B,OA4MA;AAC1B,0GA5MA,oCAAyB,OA4MA;AAlBzB,8FAzLA,wBAAa,OAyLA;AACb,qGAzLA,+BAAoB,OAyLA;AALpB,uGAnLA,iCAAsB,OAmLA;AACtB,iHAnLA,2CAAgC,OAmLA;AAKhC,+FAvLA,yBAAc,OAuLA;AAuBd,mHA7MA,6CAAkC,OA6MA;AAMlC,sHAlNA,gDAAqC,OAkNA;AATrC,kHAxMA,4CAAiC,OAwMA;AACjC,4HAxMA,sDAA2C,OAwMA;AAxB3C,wGA/KA,kCAAuB,OA+KA;AAIvB,mHAlLA,6CAAkC,OAkLA;AALlC,0GA5KA,oCAAyB,OA4KA;AATzB,8FAlKA,wBAAa,OAkKA;AAGb,gGApKA,0BAAe,OAoKA;AAGf,wGAtKA,kCAAuB,OAsKA;AALvB,kGAhKA,4BAAiB,OAgKA;AACjB,iGAhKA,2BAAgB,OAgKA;AAGhB,yGAlKA,mCAAwB,OAkKA;AADxB,8FAhKA,wBAAa,OAgKA;AAWb,2GA1KA,qCAA0B,OA0KA;AAoB1B,oHA7LA,8CAAmC,OA6LA;AAHnC,gHAzLA,0CAA+B,OAyLA;AAP/B,sGAjLA,gCAAqB,OAiLA;AACrB,qGAjLA,+BAAoB,OAiLA;AAVpB,0GAtKA,oCAAyB,OAsKA;AAwBzB,sGA7LA,gCAAqB,OA6LA;AACrB,yGA7LA,mCAAwB,OA6LA;AAVxB,6GAlLA,uCAA4B,OAkLA;AAD5B,kGAhLA,4BAAiB,OAgLA;AAajB,+GA5LA,yCAA8B,OA4LA"}
@@ -1,2 +1,7 @@
1
- export interface ModuleExtensions<_T> {
1
+ import { Module } from '../module';
2
+ import { ProtocolSerializerExtension } from './serialization/ProtocolSerializer';
3
+ export declare type ModuleExtensions<T> = T extends Module ? Extensions<T> : never;
4
+ interface Extensions<T extends Module> {
5
+ ProtocolSerializer: ProtocolSerializerExtension<T>;
2
6
  }
7
+ export {};
@@ -0,0 +1,19 @@
1
+ import { AirGapOfflineProtocol, AirGapOnlineProtocol } from '../../../protocol/protocol';
2
+ import { Module } from '../../module';
3
+ interface AirGapSerializedBaseProtocol<T extends string> {
4
+ type: T;
5
+ identifier: string;
6
+ }
7
+ export interface AirGapSerializedOfflineProtocol extends AirGapSerializedBaseProtocol<'offline'> {
8
+ }
9
+ export interface AirGapSerializedOnlineProtocol extends AirGapSerializedBaseProtocol<'online'> {
10
+ }
11
+ export declare type AirGapSerializedAnyProtocol = AirGapSerializedOfflineProtocol | AirGapSerializedOnlineProtocol;
12
+ export declare type ProtocolSerializerExtension<_T extends Module> = ProtocolSerializerModule;
13
+ export interface ProtocolSerializerModule {
14
+ serializeOfflineProtocol(protocol: AirGapOfflineProtocol): Promise<AirGapSerializedOfflineProtocol | undefined>;
15
+ deserializeOfflineProtocol(serialized: AirGapSerializedOfflineProtocol): Promise<AirGapOfflineProtocol | undefined>;
16
+ serializeOnlineProtocol(protocol: AirGapOnlineProtocol): Promise<AirGapSerializedOnlineProtocol | undefined>;
17
+ deserializeOnlineProtocol(serialized: AirGapSerializedOnlineProtocol): Promise<AirGapOnlineProtocol | undefined>;
18
+ }
19
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ProtocolSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolSerializer.js","sourceRoot":"","sources":["../../../../src/module/extensions/serialization/ProtocolSerializer.ts"],"names":[],"mappings":""}
@@ -2,6 +2,7 @@ import { AirGapBlockExplorer } from '../block-explorer/block-explorer';
2
2
  import { AirGapOfflineProtocol, AirGapOnlineProtocol } from '../protocol/protocol';
3
3
  import { AirGapV3SerializerCompanion } from '../serializer/serializer';
4
4
  import { AirGapInterface } from '../types/airgap';
5
+ import { ApplicableModuleExtension } from '../types/airgap';
5
6
  import { Complement } from '../types/meta/utility-types';
6
7
  import { ProtocolConfiguration } from '../types/module';
7
8
  import { ProtocolNetwork } from '../types/protocol';
@@ -19,5 +20,5 @@ interface _Module<_Protocols extends ModuleGeneric['Protocols'] = any, _Protocol
19
20
  createV3SerializerCompanion(): Promise<AirGapV3SerializerCompanion>;
20
21
  }
21
22
  export declare type Module<G extends Partial<ModuleGeneric> = {}> = _Module<TypedProtocols<G>, TypedProtocolNetwork<G>>;
22
- export declare type AirGapModule<G extends Partial<ModuleGeneric> = {}> = AirGapInterface<Module<G>>;
23
+ export declare type AirGapModule<G extends Partial<ModuleGeneric> = {}, E0 extends ApplicableModuleExtension<Module> = undefined, E1 extends ApplicableModuleExtension<Module> = undefined, E2 extends ApplicableModuleExtension<Module> = undefined, E3 extends ApplicableModuleExtension<Module> = undefined, E4 extends ApplicableModuleExtension<Module> = undefined, E5 extends ApplicableModuleExtension<Module> = undefined, E6 extends ApplicableModuleExtension<Module> = undefined, E7 extends ApplicableModuleExtension<Module> = undefined, E8 extends ApplicableModuleExtension<Module> = undefined, E9 extends ApplicableModuleExtension<Module> = undefined> = AirGapInterface<Module<G>, E0, E1, E2, E3, E4, E5, E6, E7, E8, E9>;
23
24
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airgap/module-kit",
3
- "version": "0.13.16-beta.5",
3
+ "version": "0.13.16-beta.7",
4
4
  "description": "The @airgap/module-kit package provides the common interfaces and functionalities to implement AirGap modules.",
5
5
  "keywords": [
6
6
  "airgap",
@@ -1,4 +1,4 @@
1
- import { _OfflineProtocol, _OnlineProtocol, _AnyProtocol, _Protocol } from '../protocol';
1
+ import { _AnyProtocol, _OfflineProtocol, _OnlineProtocol, _Protocol } from '../protocol';
2
2
  import { FetchDataForAddressExtension } from './address/FetchDataForAddressExtension';
3
3
  import { FetchDataForMultipleAddressesExtension } from './address/FetchDataForMultipleAddressesExtension';
4
4
  import { MultiAddressPublicKeyExtension } from './address/MultiAddressPublicKeyExtension';
package/utils/module.d.ts CHANGED
@@ -1,4 +1,9 @@
1
+ import { ProtocolSerializerExtension, ProtocolSerializerModule } from '../module/extensions/serialization/ProtocolSerializer';
2
+ import { Module } from '../module/module';
1
3
  import { ModuleNetworkRegistry } from '../module/module-network-registry';
2
4
  import { ProtocolConfiguration } from '../types/module';
3
5
  import { ProtocolNetwork } from '../types/protocol';
6
+ import { Schema } from './interface';
4
7
  export declare function createSupportedProtocols<P extends string = string>(online: Record<P, ModuleNetworkRegistry> | Record<P, Record<string, ProtocolNetwork>>, offline?: P[]): Record<P, ProtocolConfiguration>;
8
+ export declare const protocolSerializerSchema: Schema<ProtocolSerializerModule>;
9
+ export declare function canSerializeProtocols<T extends Module>(module: T): module is T & ProtocolSerializerExtension<T>;
package/utils/module.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSupportedProtocols = void 0;
3
+ exports.canSerializeProtocols = exports.protocolSerializerSchema = exports.createSupportedProtocols = void 0;
4
+ var interface_1 = require("./interface");
4
5
  function createSupportedProtocols(online, offline) {
5
6
  var onlineIdentifiers = new Set(Object.keys(online));
6
7
  var offlineIdentifiers = offline ? new Set(offline) : onlineIdentifiers;
@@ -26,4 +27,16 @@ function createOnlineProtocolConfiguration(networks) {
26
27
  networks: (_a = networks.supportedNetworks) !== null && _a !== void 0 ? _a : networks
27
28
  };
28
29
  }
30
+ // Schemas
31
+ exports.protocolSerializerSchema = {
32
+ serializeOfflineProtocol: 'required',
33
+ deserializeOfflineProtocol: 'required',
34
+ serializeOnlineProtocol: 'required',
35
+ deserializeOnlineProtocol: 'required'
36
+ };
37
+ // Implementation Checks
38
+ function canSerializeProtocols(module) {
39
+ return (0, interface_1.implementsInterface)(module, exports.protocolSerializerSchema);
40
+ }
41
+ exports.canSerializeProtocols = canSerializeProtocols;
29
42
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/utils/module.ts"],"names":[],"mappings":";;;AAIA,SAAgB,wBAAwB,CACtC,MAAqF,EACrF,OAAa;IAEb,IAAM,iBAAiB,GAAW,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAQ,CAAC,CAAA;IACrE,IAAM,kBAAkB,GAAW,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAEjF,IAAM,WAAW,GAAW,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAExG,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAC,GAAqC,EAAE,IAAO;;QACnF,IAAM,oBAAoB,GAA6C,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACrI,IAAM,mBAAmB,GAA4C,MAAM,CAAC,IAAI,CAAC;YAC/E,CAAC,CAAC,iCAAiC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC,CAAC,SAAS,CAAA;QAEb,IAAM,aAAa,GACjB,oBAAoB,KAAK,SAAS,IAAI,mBAAmB,KAAK,SAAS;YACrE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAC9E,CAAC,CAAE,CAAC,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,mBAAmB,CAAgE,CAAA;QAEnH,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,YAAI,GAAC,IAAI,IAAG,aAAa,MAAG,CAAA;QACpD,6DAA6D;IAC/D,CAAC,EAAE,EAAsC,CAAC,CAAA;AAC5C,CAAC;AAvBD,4DAuBC;AAED,SAAS,iCAAiC,CAAC,QAAiE;;IAC1G,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAC,QAAkC,CAAC,iBAAiB,mCAAI,QAAQ;KAC5E,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/utils/module.ts"],"names":[],"mappings":";;;AAMA,yCAAyD;AAEzD,SAAgB,wBAAwB,CACtC,MAAqF,EACrF,OAAa;IAEb,IAAM,iBAAiB,GAAW,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAQ,CAAC,CAAA;IACrE,IAAM,kBAAkB,GAAW,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAEjF,IAAM,WAAW,GAAW,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAExG,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAC,GAAqC,EAAE,IAAO;;QACnF,IAAM,oBAAoB,GAA6C,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACrI,IAAM,mBAAmB,GAA4C,MAAM,CAAC,IAAI,CAAC;YAC/E,CAAC,CAAC,iCAAiC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC,CAAC,SAAS,CAAA;QAEb,IAAM,aAAa,GACjB,oBAAoB,KAAK,SAAS,IAAI,mBAAmB,KAAK,SAAS;YACrE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAC9E,CAAC,CAAE,CAAC,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,mBAAmB,CAAgE,CAAA;QAEnH,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,YAAI,GAAC,IAAI,IAAG,aAAa,MAAG,CAAA;QACpD,6DAA6D;IAC/D,CAAC,EAAE,EAAsC,CAAC,CAAA;AAC5C,CAAC;AAvBD,4DAuBC;AAED,SAAS,iCAAiC,CAAC,QAAiE;;IAC1G,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,MAAC,QAAkC,CAAC,iBAAiB,mCAAI,QAAQ;KAC5E,CAAA;AACH,CAAC;AAED,UAAU;AAEG,QAAA,wBAAwB,GAAqC;IACxE,wBAAwB,EAAE,UAAU;IACpC,0BAA0B,EAAE,UAAU;IACtC,uBAAuB,EAAE,UAAU;IACnC,yBAAyB,EAAE,UAAU;CACtC,CAAA;AAED,wBAAwB;AAExB,SAAgB,qBAAqB,CAAmB,MAAS;IAC/D,OAAO,IAAA,+BAAmB,EAA2B,MAAM,EAAE,gCAAwB,CAAC,CAAA;AACxF,CAAC;AAFD,sDAEC"}