@keetanetwork/keetanet-client 0.10.4 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/client/client_common_tests.d.ts +27 -0
  2. package/client/index-browser.d.ts +17 -4
  3. package/client/index-browser.js +799 -694
  4. package/client/index.d.ts +17 -4
  5. package/client/index.js +106 -24
  6. package/docs/assets/hierarchy.js +1 -1
  7. package/docs/assets/search.js +1 -1
  8. package/docs/classes/KeetaNetSDK.Client.html +12 -3
  9. package/docs/classes/KeetaNetSDK.Referenced.BaseSet.html +1 -1
  10. package/docs/classes/KeetaNetSDK.Referenced.BlockHash.html +1 -1
  11. package/docs/classes/KeetaNetSDK.Referenced.BlockOperation.html +1 -1
  12. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationCREATE_IDENTIFIER.html +1 -1
  13. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationMODIFY_PERMISSIONS.html +1 -1
  14. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationRECEIVE.html +1 -1
  15. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationSEND.html +1 -1
  16. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationSET_INFO.html +1 -1
  17. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationSET_REP.html +1 -1
  18. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationTOKEN_ADMIN_MODIFY_BALANCE.html +1 -1
  19. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationTOKEN_ADMIN_SUPPLY.html +1 -1
  20. package/docs/classes/KeetaNetSDK.Referenced.ECDSAKeyPair.html +1 -1
  21. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1KeyPair.html +1 -1
  22. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1PrivateKey.html +1 -1
  23. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1PublicKey.html +1 -1
  24. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1Signature.html +1 -1
  25. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1KeyPair.html +1 -1
  26. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1PrivateKey.html +1 -1
  27. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1PublicKey.html +1 -1
  28. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1Signature.html +1 -1
  29. package/docs/classes/KeetaNetSDK.Referenced.ED25519KeyPair.html +1 -1
  30. package/docs/classes/KeetaNetSDK.Referenced.ED25519PrivateKey.html +1 -1
  31. package/docs/classes/KeetaNetSDK.Referenced.ED25519PublicKey.html +1 -1
  32. package/docs/classes/KeetaNetSDK.Referenced.ED25519Signature.html +1 -1
  33. package/docs/classes/KeetaNetSDK.Referenced.ExternalKeyPair.html +1 -1
  34. package/docs/classes/KeetaNetSDK.Referenced.ExternalSet.html +1 -1
  35. package/docs/classes/KeetaNetSDK.Referenced.HTTPAgentManager.html +4 -0
  36. package/docs/classes/KeetaNetSDK.Referenced.IdentifierKey.html +1 -1
  37. package/docs/classes/KeetaNetSDK.Referenced.IdentifierKeyPair.html +1 -1
  38. package/docs/classes/KeetaNetSDK.Referenced.KeetaNetError.html +1 -1
  39. package/docs/classes/KeetaNetSDK.Referenced.KeyInterface.html +1 -1
  40. package/docs/classes/KeetaNetSDK.Referenced.KeyStorage.html +1 -1
  41. package/docs/classes/KeetaNetSDK.Referenced.PermissionSetHolder.html +1 -1
  42. package/docs/classes/KeetaNetSDK.Referenced.PossiblyExpiredVote.html +1 -1
  43. package/docs/classes/KeetaNetSDK.Referenced.SignatureStorage.html +1 -1
  44. package/docs/classes/KeetaNetSDK.Referenced.Vote.html +1 -1
  45. package/docs/classes/KeetaNetSDK.Referenced.VoteBlockHash.html +1 -1
  46. package/docs/classes/KeetaNetSDK.Referenced.VoteHash.html +1 -1
  47. package/docs/classes/KeetaNetSDK.Referenced.VoteStapleHash.html +1 -1
  48. package/docs/classes/KeetaNetSDK.Referenced.src_lib_utils_buffer.BufferStorage.html +1 -1
  49. package/docs/classes/KeetaNetSDK.UserClient.html +3 -3
  50. package/docs/hierarchy.html +1 -1
  51. package/docs/interfaces/KeetaNetSDK.Referenced.ACLEntry.html +1 -1
  52. package/docs/interfaces/KeetaNetSDK.Referenced.ACLUpdate.html +1 -1
  53. package/docs/interfaces/KeetaNetSDK.Referenced.ASN1ExplicitContextTag.html +1 -1
  54. package/docs/interfaces/KeetaNetSDK.Referenced.ASN1ImplicitContextTag.html +1 -1
  55. package/docs/interfaces/KeetaNetSDK.Referenced.ASN1Object.html +1 -1
  56. package/docs/interfaces/KeetaNetSDK.Referenced.BaseExternalKeyPairFunctions.html +1 -1
  57. package/docs/interfaces/KeetaNetSDK.Referenced.BaseGenerationConfig.html +1 -1
  58. package/docs/interfaces/KeetaNetSDK.Referenced.BlockCanonical.html +1 -1
  59. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperation.html +1 -1
  60. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationCREATE_IDENTIFIER.html +1 -1
  61. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationMODIFY_PERMISSIONS.html +1 -1
  62. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationRECEIVE.html +1 -1
  63. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationSEND.html +1 -1
  64. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationSET_INFO.html +1 -1
  65. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationSET_REP.html +1 -1
  66. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationTOKEN_ADMIN_MODIFY_BALANCE.html +1 -1
  67. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationTOKEN_ADMIN_SUPPLY.html +1 -1
  68. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOutput.html +1 -1
  69. package/docs/interfaces/KeetaNetSDK.Referenced.Constructor.html +1 -1
  70. package/docs/interfaces/KeetaNetSDK.Referenced.ExternalKeyPairFunctionsNoEncryption.html +1 -1
  71. package/docs/interfaces/KeetaNetSDK.Referenced.ExternalKeyPairFunctionsSupportsEncryption.html +1 -1
  72. package/docs/interfaces/KeetaNetSDK.Referenced.InitialConfigSupply.html +1 -1
  73. package/docs/interfaces/KeetaNetSDK.Referenced.ModifyTokenBalanceEntry.html +1 -1
  74. package/docs/interfaces/KeetaNetSDK.Referenced.NumericValueEntry.html +1 -1
  75. package/docs/interfaces/KeetaNetSDK.Referenced.P2PPeerBase.html +1 -1
  76. package/docs/interfaces/KeetaNetSDK.Referenced.P2PPeerListener.html +1 -1
  77. package/docs/interfaces/KeetaNetSDK.Referenced.P2PPeerRepBase.html +1 -1
  78. package/docs/interfaces/KeetaNetSDK.Referenced.PublicKeyStorage.html +1 -1
  79. package/docs/interfaces/KeetaNetSDK.Referenced.RequestTokenReceiveEntry.html +1 -1
  80. package/docs/interfaces/KeetaNetSDK.Referenced.TokenNumericEntry.html +1 -1
  81. package/docs/interfaces/KeetaNetSDK.Referenced.UserClientConfig.html +1 -1
  82. package/docs/interfaces/KeetaNetSDK.Referenced.UserClientOptions.html +1 -1
  83. package/docs/interfaces/KeetaNetSDK.Referenced.VoteJSONOutput.html +1 -1
  84. package/docs/interfaces/KeetaNetSDK.Referenced.WithIsInstance.html +1 -1
  85. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1BitString.html +1 -1
  86. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1Date.html +1 -1
  87. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1OID.html +1 -1
  88. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1Set.html +1 -1
  89. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1String.html +1 -1
  90. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_helper.InstanceSet.html +1 -1
  91. package/docs/modules/KeetaNetSDK.Referenced.html +1 -1
  92. package/docs/types/KeetaNetSDK.Referenced.ClientRepresentative.html +1 -1
  93. package/docs/types/KeetaNetSDK.Referenced.src_config.NetworkConfig.html +2 -2
  94. package/package.json +1 -1
  95. package/version.d.ts +1 -1
@@ -4,6 +4,7 @@ import type { Networks } from '../config';
4
4
  import { AccountKeyAlgorithm } from '../lib/account';
5
5
  import type Account from '../lib/account';
6
6
  import { UserClient } from '.';
7
+ import { type CreateTestNodeOptions } from '../lib/utils/helper_testing';
7
8
  import { toJSONSerializable } from '../lib/utils/conversion';
8
9
  import { KeetaNetError as KeetaError } from '../lib/error';
9
10
  export type ClientParams = {
@@ -21,6 +22,7 @@ export type ClientParams = {
21
22
  export type NodeCreationOptions = {
22
23
  p2pTested?: boolean;
23
24
  count?: number;
25
+ customNodeOptions?: Omit<CreateTestNodeOptions, 'peerNodes' | 'enableP2P' | 'initialTrustedAccount'>[];
24
26
  };
25
27
  export declare function setup(options?: NodeCreationOptions): Promise<{
26
28
  trustedKey: Account<AccountKeyAlgorithm.ECDSA_SECP256K1>;
@@ -38,6 +40,7 @@ declare function runBasicTests(nodes: LocalNode[], userClient: UserClient, trust
38
40
  declare function runBuilderStorageTests(_ignoreNodes: LocalNode[], userClient: UserClient, trustedClient: UserClient, params: ClientParams, expect: any, ExpectErrorCode: any): Promise<void>;
39
41
  declare function runRecoverAccountTest(nodes: LocalNode[], userClient: UserClient, trustedClient: UserClient, params: ClientParams, expect: any, ExpectErrorCode: any): Promise<void>;
40
42
  declare function runNonNodeTests(_ignore_nodes: LocalNode[], _ignore_userClient: UserClient, _ignore_trustedClient: UserClient, _ignore_params: ClientParams, expect: any, _ignore_ExpectErrorCode: any): Promise<void>;
43
+ declare function runErrorTests(nodes: LocalNode[], userClientAccount1: UserClient, trustedClient: UserClient, params: ClientParams, expect: any, ExpectErrorCode: any): Promise<void>;
41
44
  export declare const clientTests: {
42
45
  'Basic Client Tests': {
43
46
  test: typeof runBasicTests;
@@ -68,6 +71,30 @@ export declare const clientTests: {
68
71
  count: number;
69
72
  };
70
73
  };
74
+ 'Client Error Tests': {
75
+ test: typeof runErrorTests;
76
+ options: {
77
+ p2pTested: boolean;
78
+ count: number;
79
+ customNodeOptions: ({
80
+ readonly ledger: {
81
+ readonly ledgerWriteMode: "no-voting";
82
+ };
83
+ } | {
84
+ readonly ledger: {
85
+ readonly ledgerWriteMode: "read-write";
86
+ };
87
+ } | {
88
+ readonly ledger: {
89
+ readonly ledgerWriteMode: "bootstrap-only";
90
+ };
91
+ } | {
92
+ readonly ledger: {
93
+ readonly ledgerWriteMode: "read-only";
94
+ };
95
+ })[];
96
+ };
97
+ };
71
98
  };
72
99
  export declare const KeetaNetError: typeof KeetaError;
73
100
  export { toJSONSerializable };
@@ -217,6 +217,7 @@ export declare class Client {
217
217
  * by the application.
218
218
  */
219
219
  logger: Pick<Console, "error" | "log" | "warn">;
220
+ private static updateRepsInterval;
220
221
  /**
221
222
  * Stats for this instance of the client
222
223
  */
@@ -432,10 +433,11 @@ export declare class Client {
432
433
  * may have sent tokens to it.
433
434
  *
434
435
  * @param account The account to get the head block for
436
+ * @param rep The representative to get the head block from -- this is generally "ANY" in which case the best representative will be used, but it is possible to request a specific representative
435
437
  * @return The head block for the account or null if the account has
436
438
  * not created any blocks
437
439
  */
438
- getHeadBlock(account: GenericAccount | string): Promise<Block | null>;
440
+ getHeadBlock(account: GenericAccount | string, rep?: Config.Representative | 'ANY'): Promise<Block | null>;
439
441
  /**
440
442
  * Get a block from the specified representative by its block hash.
441
443
  *
@@ -477,9 +479,10 @@ export declare class Client {
477
479
  /**
478
480
  * @param blockhash The block hash to get the vote staple for
479
481
  * @param side The side of the ledger to get the vote staple from -- this is generally "main", but it is possible to request "side" ledger blocks
482
+ * @param rep The representative to get the staple from -- this is generally "ANY" in which case the best representative will be used, but it is possible to request a specific representative
480
483
  * @return The vote staple for the given block hash or null if the vote staple does not exist on the given ledger
481
484
  */
482
- getVoteStaple(blockhash: BlockHash | string, side?: LedgerStorage): Promise<VoteStaple | null>;
485
+ getVoteStaple(blockhash: BlockHash | string, side?: LedgerStorage, rep?: Config.Representative): Promise<VoteStaple | null>;
483
486
  /**
484
487
  * Get the chain for a given account. This is the set of blocks that
485
488
  * the account has created. This will return the blocks in reverse
@@ -643,6 +646,16 @@ export declare class Client {
643
646
  * pending block
644
647
  */
645
648
  getPendingBlock(account: GenericAccount): Promise<Block | null>;
649
+ /**
650
+ * Get the successor block for a given block. This will return the
651
+ * block on the representative's ledger that comes after the given block
652
+ *
653
+ * @param blockOrHash The block or hash to get the successor for
654
+ * @param rep The representative account to get the successor block from
655
+ * @return The successor block for the block or null if there is no
656
+ * successor block
657
+ */
658
+ getSuccessorBlock(blockOrHash: Block | BlockHash | string, rep?: Config.Representative | 'ANY'): Promise<Block | null>;
646
659
  /**
647
660
  * Recover any unpublished or half-publish account artifacts
648
661
  *
@@ -891,10 +904,10 @@ export declare class UserClient {
891
904
  * @param token The token to send
892
905
  * @param external The external identifier to use for the transaction
893
906
  * @param options The options to use for the request
894
- * @param retries The number of times to retry the request if it fails
907
+ * @param retries The number of times the request has been retried
895
908
  * @return The vote staple that was generated and whether it was able to be published
896
909
  */
897
- send(to: GenericAccount | string, amount: bigint | number, token: TokenAddress | string, external?: string, options?: UserClientOptions, retries?: number): Promise<void>;
910
+ send(to: GenericAccount | string, amount: bigint | number, token: TokenAddress | string, external?: string, options?: UserClientOptions, retries?: number): Promise<Awaited<ReturnType<typeof this.publishBuilder>>>;
898
911
  /**
899
912
  * Generate a new identifier for the given type and publish the blocks
900
913
  *