@keetanetwork/keetanet-client 0.12.2 → 0.14.2

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 (207) hide show
  1. package/api/index.d.ts +23 -2
  2. package/api/node.d.ts +7 -1
  3. package/api/p2p.d.ts +13 -0
  4. package/api/vote.d.ts +10 -0
  5. package/client/builder.d.ts +13 -6
  6. package/client/client_common_tests.d.ts +18 -0
  7. package/client/index-browser.d.ts +42 -14
  8. package/client/index-browser.js +2899 -1382
  9. package/client/index.d.ts +42 -14
  10. package/client/index.js +2138 -655
  11. package/config/index.d.ts +2 -0
  12. package/docs/assets/hierarchy.js +1 -1
  13. package/docs/assets/search.js +1 -1
  14. package/docs/classes/KeetaNetSDK.Client.html +14 -10
  15. package/docs/classes/KeetaNetSDK.Referenced.BaseSet.html +2 -2
  16. package/docs/classes/KeetaNetSDK.Referenced.BaseVoteBuilder.html +10 -0
  17. package/docs/classes/KeetaNetSDK.Referenced.Block.html +9 -5
  18. package/docs/classes/KeetaNetSDK.Referenced.BlockBuilder.html +3 -2
  19. package/docs/classes/KeetaNetSDK.Referenced.BlockHash.html +1 -1
  20. package/docs/classes/KeetaNetSDK.Referenced.BlockOperation.html +1 -1
  21. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationCREATE_IDENTIFIER.html +4 -4
  22. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationMANAGE_CERTIFICATE.html +1 -1
  23. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationMODIFY_PERMISSIONS.html +1 -1
  24. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationRECEIVE.html +1 -1
  25. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationSEND.html +1 -1
  26. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationSET_INFO.html +1 -1
  27. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationSET_REP.html +1 -1
  28. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationTOKEN_ADMIN_MODIFY_BALANCE.html +1 -1
  29. package/docs/classes/KeetaNetSDK.Referenced.BlockOperationTOKEN_ADMIN_SUPPLY.html +1 -1
  30. package/docs/classes/KeetaNetSDK.Referenced.Certificate.html +6 -2
  31. package/docs/classes/KeetaNetSDK.Referenced.CertificateHash.html +1 -1
  32. package/docs/classes/KeetaNetSDK.Referenced.ECDSAKeyPair.html +1 -1
  33. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1KeyPair.html +1 -1
  34. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1PrivateKey.html +1 -1
  35. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1PublicKey.html +1 -1
  36. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256K1Signature.html +1 -1
  37. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1KeyPair.html +1 -1
  38. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1PrivateKey.html +1 -1
  39. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1PublicKey.html +1 -1
  40. package/docs/classes/KeetaNetSDK.Referenced.ECDSASECP256R1Signature.html +1 -1
  41. package/docs/classes/KeetaNetSDK.Referenced.ED25519KeyPair.html +1 -1
  42. package/docs/classes/KeetaNetSDK.Referenced.ED25519PrivateKey.html +1 -1
  43. package/docs/classes/KeetaNetSDK.Referenced.ED25519PublicKey.html +1 -1
  44. package/docs/classes/KeetaNetSDK.Referenced.ED25519Signature.html +1 -1
  45. package/docs/classes/KeetaNetSDK.Referenced.ExternalKeyPair.html +1 -1
  46. package/docs/classes/KeetaNetSDK.Referenced.ExternalSet.html +1 -1
  47. package/docs/classes/KeetaNetSDK.Referenced.IdentifierKey.html +1 -1
  48. package/docs/classes/KeetaNetSDK.Referenced.IdentifierKeyPair.html +1 -1
  49. package/docs/classes/KeetaNetSDK.Referenced.KeetaNetError.html +1 -1
  50. package/docs/classes/KeetaNetSDK.Referenced.KeyInterface.html +1 -1
  51. package/docs/classes/KeetaNetSDK.Referenced.KeyStorage.html +1 -1
  52. package/docs/classes/KeetaNetSDK.Referenced.Ledger.html +5 -2
  53. package/docs/classes/KeetaNetSDK.Referenced.LedgerAtomicInterface.html +3 -1
  54. package/docs/classes/KeetaNetSDK.Referenced.LedgerStorageTransactionBase.html +8 -0
  55. package/docs/classes/KeetaNetSDK.Referenced.P2PSwitch.html +6 -2
  56. package/docs/classes/KeetaNetSDK.Referenced.PermissionSetHolder.html +1 -1
  57. package/docs/classes/KeetaNetSDK.Referenced.PossiblyExpiredVote.html +31 -27
  58. package/docs/classes/KeetaNetSDK.Referenced.SignatureStorage.html +1 -1
  59. package/docs/classes/KeetaNetSDK.Referenced.Stats.html +10 -4
  60. package/docs/classes/KeetaNetSDK.Referenced.StatsPending.html +10 -0
  61. package/docs/classes/KeetaNetSDK.Referenced.UserClientBuilder.html +4 -3
  62. package/docs/classes/KeetaNetSDK.Referenced.Vote.html +7 -3
  63. package/docs/classes/KeetaNetSDK.Referenced.VoteBlockBundle.html +3 -3
  64. package/docs/classes/KeetaNetSDK.Referenced.VoteBlockHash.html +2 -2
  65. package/docs/classes/KeetaNetSDK.Referenced.VoteBuilder.html +10 -8
  66. package/docs/classes/KeetaNetSDK.Referenced.VoteHash.html +2 -2
  67. package/docs/classes/KeetaNetSDK.Referenced.VoteLikeBase.html +32 -0
  68. package/docs/classes/KeetaNetSDK.Referenced.VoteQuote.html +34 -0
  69. package/docs/classes/KeetaNetSDK.Referenced.VoteQuoteBuilder.html +11 -0
  70. package/docs/classes/KeetaNetSDK.Referenced.VoteStaple.html +3 -3
  71. package/docs/classes/KeetaNetSDK.Referenced.VoteStapleHash.html +2 -2
  72. package/docs/classes/KeetaNetSDK.Referenced.src_lib_utils_asn1.ValidateASN1.html +2 -2
  73. package/docs/classes/KeetaNetSDK.Referenced.src_lib_utils_buffer.BufferStorage.html +1 -1
  74. package/docs/classes/KeetaNetSDK.UserClient.html +7 -2
  75. package/docs/enums/KeetaNetSDK.Referenced.BaseFlag.html +2 -1
  76. package/docs/enums/KeetaNetSDK.Referenced.BasePermissionGroup.html +3 -1
  77. package/docs/enums/KeetaNetSDK.Referenced.BlockPurpose.html +3 -0
  78. package/docs/functions/KeetaNetSDK.Referenced.src_lib_utils_helper.bufferToBigInt.html +1 -0
  79. package/docs/hierarchy.html +1 -1
  80. package/docs/interfaces/KeetaNetSDK.Referenced.ACLEntry.html +1 -1
  81. package/docs/interfaces/KeetaNetSDK.Referenced.ACLUpdate.html +1 -1
  82. package/docs/interfaces/KeetaNetSDK.Referenced.ASN1ExplicitContextTag.html +1 -1
  83. package/docs/interfaces/KeetaNetSDK.Referenced.ASN1ImplicitContextTag.html +1 -1
  84. package/docs/interfaces/KeetaNetSDK.Referenced.ASN1Object.html +1 -1
  85. package/docs/interfaces/KeetaNetSDK.Referenced.AccountInfo.html +4 -2
  86. package/docs/interfaces/KeetaNetSDK.Referenced.BaseExternalKeyPairFunctions.html +1 -1
  87. package/docs/interfaces/KeetaNetSDK.Referenced.BaseGenerationConfig.html +1 -1
  88. package/docs/interfaces/KeetaNetSDK.Referenced.BaseIdentifierCreateArguments.html +3 -0
  89. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperation.html +1 -1
  90. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationCREATE_IDENTIFIER.html +3 -3
  91. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationMANAGE_CERTIFICATE.html +1 -1
  92. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationMANAGE_CERTIFICATESerializable.html +1 -1
  93. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationMODIFY_PERMISSIONS.html +1 -1
  94. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationRECEIVE.html +1 -1
  95. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationSEND.html +1 -1
  96. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationSET_INFO.html +1 -1
  97. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationSET_REP.html +1 -1
  98. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationTOKEN_ADMIN_MODIFY_BALANCE.html +1 -1
  99. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSONOperationTOKEN_ADMIN_SUPPLY.html +1 -1
  100. package/docs/interfaces/{KeetaNetSDK.Referenced.BlockCanonical.html → KeetaNetSDK.Referenced.BlockV1Canonical.html} +1 -1
  101. package/docs/interfaces/KeetaNetSDK.Referenced.BlockV1JSON.html +12 -0
  102. package/docs/interfaces/KeetaNetSDK.Referenced.BlockV1UnsignedCanonical.html +11 -0
  103. package/docs/interfaces/KeetaNetSDK.Referenced.BlockV2Canonical.html +11 -0
  104. package/docs/interfaces/KeetaNetSDK.Referenced.BlockV2JSON.html +12 -0
  105. package/docs/interfaces/KeetaNetSDK.Referenced.BlockV2UnsignedCanonical.html +11 -0
  106. package/docs/interfaces/KeetaNetSDK.Referenced.BuilderBlockOptions.html +3 -0
  107. package/docs/interfaces/KeetaNetSDK.Referenced.ComputedBlocksEffectFields.html +3 -2
  108. package/docs/interfaces/KeetaNetSDK.Referenced.Constructor.html +1 -1
  109. package/docs/interfaces/KeetaNetSDK.Referenced.CreateIdentifierRequest.html +4 -0
  110. package/docs/interfaces/KeetaNetSDK.Referenced.DisposableTimingHandle.html +1 -1
  111. package/docs/interfaces/KeetaNetSDK.Referenced.ExternalKeyPairFunctionsNoEncryption.html +1 -1
  112. package/docs/interfaces/KeetaNetSDK.Referenced.ExternalKeyPairFunctionsSupportsEncryption.html +1 -1
  113. package/docs/interfaces/KeetaNetSDK.Referenced.InitialConfigSupply.html +1 -1
  114. package/docs/interfaces/KeetaNetSDK.Referenced.InstanceSet.html +1 -1
  115. package/docs/interfaces/KeetaNetSDK.Referenced.KVGenericOptionsType.html +1 -1
  116. package/docs/interfaces/KeetaNetSDK.Referenced.KVSetOptionsType.html +1 -1
  117. package/docs/interfaces/KeetaNetSDK.Referenced.LedgerConfig.html +5 -3
  118. package/docs/interfaces/KeetaNetSDK.Referenced.LedgerStorageAPI.html +4 -4
  119. package/docs/interfaces/KeetaNetSDK.Referenced.LedgerStorageTransactionBaseOptions.html +6 -0
  120. package/docs/interfaces/KeetaNetSDK.Referenced.ModifyTokenBalanceEntry.html +1 -1
  121. package/docs/interfaces/KeetaNetSDK.Referenced.MultiSigIdentifierCreateArguments.html +5 -0
  122. package/docs/interfaces/KeetaNetSDK.Referenced.MultisigConfig.html +3 -0
  123. package/docs/interfaces/KeetaNetSDK.Referenced.NumericValueEntry.html +1 -1
  124. package/docs/interfaces/KeetaNetSDK.Referenced.P2PConfig.html +4 -2
  125. package/docs/interfaces/KeetaNetSDK.Referenced.P2PPeerBase.html +1 -1
  126. package/docs/interfaces/KeetaNetSDK.Referenced.P2PPeerListener.html +1 -1
  127. package/docs/interfaces/KeetaNetSDK.Referenced.P2PPeerRepBase.html +4 -2
  128. package/docs/interfaces/KeetaNetSDK.Referenced.PrincipalACLWithInfoParsed.html +1 -0
  129. package/docs/interfaces/KeetaNetSDK.Referenced.PublicKeyStorage.html +1 -1
  130. package/docs/interfaces/KeetaNetSDK.Referenced.PublishOptions.html +5 -0
  131. package/docs/interfaces/KeetaNetSDK.Referenced.RequestTokenReceiveEntry.html +1 -1
  132. package/docs/interfaces/KeetaNetSDK.Referenced.TokenNumericEntry.html +1 -1
  133. package/docs/interfaces/KeetaNetSDK.Referenced.UserClientConfig.html +5 -3
  134. package/docs/interfaces/KeetaNetSDK.Referenced.UserClientOptions.html +4 -2
  135. package/docs/interfaces/KeetaNetSDK.Referenced.VoteJSON.html +3 -2
  136. package/docs/interfaces/KeetaNetSDK.Referenced.VoteStapleJSON.html +2 -2
  137. package/docs/interfaces/KeetaNetSDK.Referenced.WithIsInstance.html +1 -1
  138. package/docs/interfaces/KeetaNetSDK.Referenced.src_config.ValidationConfig.html +2 -2
  139. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1BitString.html +1 -1
  140. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1Date.html +1 -1
  141. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1OID.html +1 -1
  142. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1Set.html +1 -1
  143. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1String.html +1 -1
  144. package/docs/interfaces/KeetaNetSDK.Referenced.src_lib_utils_helper.InstanceSetConstructor.html +2 -2
  145. package/docs/modules/KeetaNetSDK.Referenced.html +1 -1
  146. package/docs/modules/KeetaNetSDK.Referenced.src_lib_utils_asn1.html +1 -1
  147. package/docs/modules/KeetaNetSDK.Referenced.src_lib_utils_helper.html +1 -1
  148. package/docs/types/KeetaNetSDK.Referenced.BlockASN1SchemaWithoutSignature.html +1 -0
  149. package/docs/types/KeetaNetSDK.Referenced.BlockJSON.html +1 -0
  150. package/docs/types/KeetaNetSDK.Referenced.BlockJSONIncomplete.html +1 -1
  151. package/docs/types/KeetaNetSDK.Referenced.BlockOperationASN1SchemaType.html +1 -0
  152. package/docs/types/KeetaNetSDK.Referenced.BlockOperationTypes.html +1 -0
  153. package/docs/types/KeetaNetSDK.Referenced.BlockSignature.html +2 -0
  154. package/docs/types/KeetaNetSDK.Referenced.BlockSignatureField.html +1 -0
  155. package/docs/types/KeetaNetSDK.Referenced.BlockSignerField.html +1 -0
  156. package/docs/types/KeetaNetSDK.Referenced.BlockSignerFieldJSON.html +1 -0
  157. package/docs/types/KeetaNetSDK.Referenced.BlockV1ASN1WithoutSignature.html +1 -0
  158. package/docs/types/KeetaNetSDK.Referenced.BlockV2ASN1WithoutSignature.html +1 -0
  159. package/docs/types/KeetaNetSDK.Referenced.CertificateBuilderParams.html +8 -3
  160. package/docs/types/KeetaNetSDK.Referenced.ComputedEffectOfBlocks.html +2 -2
  161. package/docs/types/KeetaNetSDK.Referenced.GetAccountStateAPIResponseFormatted.html +1 -0
  162. package/docs/types/KeetaNetSDK.Referenced.HashNames.html +1 -0
  163. package/docs/types/KeetaNetSDK.Referenced.MultisigAddress.html +1 -0
  164. package/docs/types/KeetaNetSDK.Referenced.MultisigSignerField.html +1 -0
  165. package/docs/types/KeetaNetSDK.Referenced.MultisigSignerFieldJSON.html +1 -0
  166. package/docs/types/KeetaNetSDK.Referenced.OmitLastArrayValue.html +1 -0
  167. package/docs/types/KeetaNetSDK.Referenced.P2PUpdateOptions.html +1 -0
  168. package/docs/types/KeetaNetSDK.Referenced.UserEditableAccountInfo.html +1 -0
  169. package/docs/types/KeetaNetSDK.Referenced.src_config.NetworkConfig.html +1 -1
  170. package/docs/types/KeetaNetSDK.Referenced.src_lib_utils_asn1.ValidateASN1.Schema.html +1 -1
  171. package/docs/types/KeetaNetSDK.Referenced.src_lib_utils_asn1.ValidateASN1.SchemaMap.html +1 -1
  172. package/docs/variables/KeetaNetSDK.Referenced.BlockErrorCodes-1.html +1 -1
  173. package/docs/variables/KeetaNetSDK.Referenced.BlockErrorCodes.html +1 -1
  174. package/docs/variables/KeetaNetSDK.Referenced.BlockOperationASN1Schema.html +2 -0
  175. package/docs/variables/KeetaNetSDK.Referenced.LedgerErrorCodes.html +1 -1
  176. package/docs/variables/KeetaNetSDK.Referenced.VoteErrorCodes.html +1 -1
  177. package/docs/variables/KeetaNetSDK.Referenced.src_lib_utils_asn1.ASN1CheckUtilities.html +1 -0
  178. package/lib/block/index.d.ts +104 -36
  179. package/lib/block/operations.d.ts +31 -3
  180. package/lib/error/block.d.ts +1 -1
  181. package/lib/error/certificate.d.ts +1 -1
  182. package/lib/error/ledger.d.ts +1 -1
  183. package/lib/error/vote.d.ts +1 -1
  184. package/lib/ledger/common.d.ts +14 -1
  185. package/lib/ledger/db_dynamodb.d.ts +7 -11
  186. package/lib/ledger/db_postgres.d.ts +12 -4
  187. package/lib/ledger/db_spanner.d.ts +6 -13
  188. package/lib/ledger/db_spanner_helper.d.ts +29 -6
  189. package/lib/ledger/db_sqlite.d.ts +12 -4
  190. package/lib/ledger/effects.d.ts +10 -9
  191. package/lib/ledger/index.d.ts +28 -10
  192. package/lib/ledger/types.d.ts +10 -1
  193. package/lib/node/utils.d.ts +5 -0
  194. package/lib/p2p.d.ts +32 -0
  195. package/lib/permissions.d.ts +5 -2
  196. package/lib/stats.d.ts +22 -3
  197. package/lib/utils/asn1.d.ts +22 -5
  198. package/lib/utils/certificate.d.ts +38 -1
  199. package/lib/utils/helper.d.ts +2 -1
  200. package/lib/utils/static-types.d.ts +11 -0
  201. package/lib/vote.d.ts +55 -20
  202. package/package.json +1 -1
  203. package/version.d.ts +1 -1
  204. package/docs/interfaces/KeetaNetSDK.Referenced.BlockJSON.html +0 -11
  205. package/docs/interfaces/KeetaNetSDK.Referenced.BlockUnsignedCanonical.html +0 -11
  206. package/docs/interfaces/KeetaNetSDK.Referenced.LedgerStorageTransactionBase.html +0 -6
  207. package/docs/types/KeetaNetSDK.Referenced.CreateIdentifierRequest.html +0 -6
package/api/index.d.ts CHANGED
@@ -6,6 +6,7 @@ declare const rootTree: {
6
6
  POST: (request: APIRequest, payload: {
7
7
  blocks: string[];
8
8
  votes?: string[];
9
+ quote?: string;
9
10
  }) => Promise<{
10
11
  vote: import("../lib/vote").Vote;
11
12
  }>;
@@ -16,6 +17,13 @@ declare const rootTree: {
16
17
  votes: import("../lib/vote").Vote[] | null;
17
18
  }>;
18
19
  };
20
+ quote: {
21
+ POST: (request: APIRequest, payload: {
22
+ blocks: string[];
23
+ }) => Promise<{
24
+ quote: import("../lib/vote").VoteQuote;
25
+ }>;
26
+ };
19
27
  };
20
28
  node: {
21
29
  peers: {
@@ -67,6 +75,9 @@ declare const rootTree: {
67
75
  representatives: import("./node").NodeAPIGetAllRepresentativesResponse[];
68
76
  }>;
69
77
  };
78
+ history: {
79
+ GET: (request: APIRequest, account?: string | unknown, startFromURL?: unknown) => Promise<import("./node").NodeAPIGetAccountHistoryResponse>;
80
+ };
70
81
  account: {
71
82
  ':account': {
72
83
  GET: (request: APIRequest, pubKey: string) => Promise<import("./node").NodeAPIAccountState | import("./node").NodeAPIAccountStateError>;
@@ -80,10 +91,10 @@ declare const rootTree: {
80
91
  GET: (request: APIRequest, account: string) => Promise<import("./node").NodeAPIGetAccountChainResponse>;
81
92
  };
82
93
  history: {
83
- GET: (request: APIRequest, account: string, start?: unknown) => Promise<import("./node").NodeAPIGetAccountHistoryResponse>;
94
+ GET: (request: APIRequest, account?: string | unknown, startFromURL?: unknown) => Promise<import("./node").NodeAPIGetAccountHistoryResponse>;
84
95
  start: {
85
96
  ':block': {
86
- GET: (request: APIRequest, account: string, start?: unknown) => Promise<import("./node").NodeAPIGetAccountHistoryResponse>;
97
+ GET: (request: APIRequest, account?: string | unknown, startFromURL?: unknown) => Promise<import("./node").NodeAPIGetAccountHistoryResponse>;
87
98
  };
88
99
  };
89
100
  };
@@ -171,6 +182,16 @@ declare const rootTree: {
171
182
  }>;
172
183
  };
173
184
  };
185
+ p2p: {
186
+ message: {
187
+ POST: (request: APIRequest, payload: {
188
+ message: string;
189
+ greeting: object;
190
+ }) => Promise<{
191
+ success: boolean;
192
+ }>;
193
+ };
194
+ };
174
195
  };
175
196
  export interface APIRequest {
176
197
  node: Node;
package/api/node.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import KeetaNet from '../lib';
1
2
  import type { AccountInfo, GetAllBalancesResponse, LedgerStatistics, ACLRow } from '../lib/ledger/types';
2
3
  import type { P2PSwitchStatistics } from '../lib/p2p';
3
4
  import { NodeKind } from '../lib/node';
@@ -14,6 +15,7 @@ interface GetPeersAPIResponse {
14
15
  p2p: string;
15
16
  api: string;
16
17
  };
18
+ preferUpdates?: string;
17
19
  signature?: string;
18
20
  }
19
21
  interface GetAccountChainAPIResponse {
@@ -63,6 +65,7 @@ interface GetAccountHistoryResponse {
63
65
  '$id': string;
64
66
  '$timestamp': string;
65
67
  }[];
68
+ nextKey: InstanceType<typeof KeetaNet.Vote.VoteBlocksHash> | null;
66
69
  }
67
70
  declare function getPeers(request: APIRequest): Promise<{
68
71
  peers: GetPeersAPIResponse[];
@@ -130,7 +133,7 @@ declare function listACLsByPrincipal(request: APIRequest, principal: string | Ge
130
133
  }>;
131
134
  declare function listACLsByPrincipalWithInfo(request: APIRequest, principalPubKey: string, entityList?: string): Promise<PrincipalACLWithInfoResponse>;
132
135
  declare function getAccountChain(request: APIRequest, account: string): Promise<GetAccountChainAPIResponse>;
133
- declare function getAccountHistory(request: APIRequest, account: string, start?: unknown): Promise<GetAccountHistoryResponse>;
136
+ declare function getAccountHistory(request: APIRequest, account?: string | unknown, startFromURL?: unknown): Promise<GetAccountHistoryResponse>;
134
137
  declare function getAllRepresentatives(request: APIRequest): Promise<{
135
138
  representatives: GetAllRepresentativesAPIResponse[];
136
139
  }>;
@@ -173,6 +176,9 @@ declare const _default: {
173
176
  representatives: {
174
177
  GET: typeof getAllRepresentatives;
175
178
  };
179
+ history: {
180
+ GET: typeof getAccountHistory;
181
+ };
176
182
  account: {
177
183
  ':account': {
178
184
  GET: typeof getAccountState;
package/api/p2p.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import type { APIRequest } from ".";
2
+ declare function handleMessage(request: APIRequest, payload: {
3
+ message: string;
4
+ greeting: object;
5
+ }): Promise<{
6
+ success: boolean;
7
+ }>;
8
+ declare const _default: {
9
+ message: {
10
+ POST: typeof handleMessage;
11
+ };
12
+ };
13
+ export default _default;
package/api/vote.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import type { APIRequest } from '.';
2
2
  import KeetaNet from '../lib';
3
3
  type Vote = InstanceType<typeof KeetaNet['Vote']>;
4
+ type VoteQuote = InstanceType<typeof KeetaNet['Vote']['Quote']>;
4
5
  type BlockHash = InstanceType<typeof KeetaNet['Block']['Hash']>;
5
6
  declare function createNewVote(request: APIRequest, payload: {
6
7
  blocks: string[];
7
8
  votes?: string[];
9
+ quote?: string;
8
10
  }): Promise<{
9
11
  vote: Vote;
10
12
  }>;
@@ -12,6 +14,11 @@ declare function getVotes(request: APIRequest, blockhash: string): Promise<{
12
14
  blockhash: BlockHash;
13
15
  votes: Vote[] | null;
14
16
  }>;
17
+ declare function createNewQuote(request: APIRequest, payload: {
18
+ blocks: string[];
19
+ }): Promise<{
20
+ quote: VoteQuote;
21
+ }>;
15
22
  declare const _default: {
16
23
  _root: {
17
24
  POST: typeof createNewVote;
@@ -19,5 +26,8 @@ declare const _default: {
19
26
  ':blockhash': {
20
27
  GET: typeof getVotes;
21
28
  };
29
+ quote: {
30
+ POST: typeof createNewQuote;
31
+ };
22
32
  };
23
33
  export default _default;
@@ -2,13 +2,16 @@ import type { GenericAccount, IdentifierKeyAlgorithm } from '../lib/account';
2
2
  import { Account, AccountKeyAlgorithm } from '../lib/account';
3
3
  import type { AdjustMethod, BlockHash } from '../lib/block';
4
4
  import { Block } from '../lib/block';
5
- import type { BlockJSONOperations } from '../lib/block/operations';
5
+ import { type BlockJSONOperations } from '../lib/block/operations';
6
6
  import type { AccountInfo } from '../lib/ledger/types';
7
7
  import type { AcceptedPermissionTypes } from '../lib/permissions';
8
- import type { UserClient } from '.';
8
+ import type { UserClient, Client } from '.';
9
9
  import { Permissions } from '../lib/permissions';
10
10
  import { Certificate, CertificateBundle } from '../lib/utils/certificate';
11
+ import type { VoteStaple } from '../lib/vote';
11
12
  type GetPrevFunction = (acct: GenericAccount | string) => Promise<BlockHash | string | null | undefined>;
13
+ type PublishOptions = NonNullable<Parameters<Client['transmit']>[1]>;
14
+ /** @expand */
12
15
  interface AccountSignerOptions {
13
16
  account: GenericAccount;
14
17
  signer: Account;
@@ -18,8 +21,11 @@ interface RenderOptions {
18
21
  network: bigint;
19
22
  getPrevious: GetPrevFunction;
20
23
  }
21
- /** @useDeclaredType */
22
- type BuilderBlockOptions = Partial<AccountSignerOptions>;
24
+ /** @expand */
25
+ interface BuilderBlockOptions {
26
+ account?: AccountSignerOptions['account'];
27
+ signer?: AccountSignerOptions['signer'];
28
+ }
23
29
  /**
24
30
  * Either a UserClient or an object with a client and network
25
31
  *
@@ -166,8 +172,9 @@ export declare class UserClientBuilder {
166
172
  get defaultOptions(): BuilderOptions;
167
173
  updateAccounts(accountOptions: Partial<AccountSignerOptions>): void;
168
174
  clone(): Promise<UserClientBuilder>;
169
- publish(): Promise<Awaited<ReturnType<UserClient['publishBuilder']>>>;
170
- publish(client?: UserClientOrClientAndNetwork): Promise<Awaited<ReturnType<UserClient['publishBuilder']>>>;
175
+ publish(options?: PublishOptions): Promise<Awaited<ReturnType<UserClient['publishBuilder']>>>;
176
+ publish(options?: PublishOptions, client?: UserClientOrClientAndNetwork): Promise<Awaited<ReturnType<UserClient['publishBuilder']>>>;
177
+ computeFeeBlock(staple: VoteStaple, options?: BuilderBlockOptions, renderOptions?: RenderOptions | UserClientOrClientAndNetwork): Promise<Block>;
171
178
  computeBlocks(): Promise<ComputeBlocksResponse>;
172
179
  computeBlocks(client?: UserClientOrClientAndNetwork): Promise<ComputeBlocksResponse>;
173
180
  computeBlocks(renderOptions: RenderOptions): Promise<ComputeBlocksResponse>;
@@ -7,6 +7,9 @@ import { UserClient } from '.';
7
7
  import { type CreateTestNodeOptions } from '../lib/utils/helper_testing';
8
8
  import { toJSONSerializable } from '../lib/utils/conversion';
9
9
  import { KeetaNetError as KeetaError } from '../lib/error';
10
+ import { type Block } from '../lib/block';
11
+ import type { Ledger } from '../lib/ledger';
12
+ import type { ComputedEffectOfBlocks } from '../lib/ledger/effects';
10
13
  export type ClientParams = {
11
14
  ip?: string;
12
15
  port?: number;
@@ -37,6 +40,7 @@ export declare function setup(options?: NodeCreationOptions): Promise<{
37
40
  cleanupFunctions: (() => Promise<void>)[];
38
41
  }>;
39
42
  declare function runBasicTests(nodes: LocalNode[], userClient: UserClient, trustedClient: UserClient, params: ClientParams, expect: any, _ignoreExpectErrorCode: any): Promise<void>;
43
+ declare function runFeeBlockTests(_ignore_nodes: LocalNode[], userClient: UserClient, trustedClient: UserClient, params: ClientParams, expect: any, ExpectErrorCode: any): Promise<void>;
40
44
  declare function runBuilderStorageTests(_ignoreNodes: LocalNode[], userClient: UserClient, trustedClient: UserClient, params: ClientParams, expect: any, ExpectErrorCode: any): Promise<void>;
41
45
  declare function runRecoverAccountTest(nodes: LocalNode[], userClient: UserClient, trustedClient: UserClient, params: ClientParams, expect: any, ExpectErrorCode: any): Promise<void>;
42
46
  declare function runNonNodeTests(_ignore_nodes: LocalNode[], _ignore_userClient: UserClient, _ignore_trustedClient: UserClient, _ignore_params: ClientParams, expect: any, ExpectErrorCode: any): Promise<void>;
@@ -57,6 +61,20 @@ export declare const clientTests: {
57
61
  timeout: number;
58
62
  };
59
63
  };
64
+ 'Fee Block Tests': {
65
+ test: typeof runFeeBlockTests;
66
+ options: {
67
+ p2pTested: boolean;
68
+ count: number;
69
+ customNodeOptions: {
70
+ ledger: {
71
+ computeFeeFromBlocks: (ledger: Ledger, blocks: Block[], effects: ComputedEffectOfBlocks) => {
72
+ amount: bigint;
73
+ };
74
+ };
75
+ }[];
76
+ };
77
+ };
60
78
  'Builder/Storage Test': {
61
79
  test: typeof runBuilderStorageTests;
62
80
  options: {
@@ -24,8 +24,8 @@ import type { AcceptedPermissionTypes } from '../lib/permissions';
24
24
  import { type BlockOperations } from '../lib/block/operations';
25
25
  import { Certificate } from '../lib/utils/certificate';
26
26
  import { CertificateBundle, type CertificateHash } from '../lib/utils/certificate';
27
+ import { VoteStaple, type VoteQuote } from '../lib/vote';
27
28
  type Vote = InstanceType<typeof KeetaNet['Vote']>;
28
- type VoteStaple = InstanceType<typeof KeetaNet['Vote']['Staple']>;
29
29
  type VoteBlocksHash = Vote['blocksHash'];
30
30
  /**
31
31
  * Account information
@@ -119,6 +119,16 @@ interface CertificateWithIntermediatesResponse {
119
119
  certificate: Certificate;
120
120
  intermediates: CertificateBundle | null;
121
121
  }
122
+ interface PublishOptions {
123
+ /**
124
+ * Client provided function to compute the fee block associated with any transactions
125
+ */
126
+ generateFeeBlock?: (staple: VoteStaple) => Promise<Block>;
127
+ /**
128
+ * Quotes if provided will be sent to the representative
129
+ */
130
+ quotes?: VoteQuote[];
131
+ }
122
132
  /**
123
133
  */
124
134
  interface UserClientOptions {
@@ -146,6 +156,10 @@ interface UserClientOptions {
146
156
  * be no account and some operations may not be available.
147
157
  */
148
158
  account?: GenericAccount;
159
+ /**
160
+ * Client provided function to compute the fee block associated with any transactions
161
+ */
162
+ generateFeeBlock?: PublishOptions['generateFeeBlock'];
149
163
  }
150
164
  /**
151
165
  * The set of options that are applicable to read-only operations
@@ -324,22 +338,28 @@ export declare class Client {
324
338
  * votes and permanent votes for the blocks and then publish them to
325
339
  * the network.
326
340
  *
327
- * @param blocks The blocks or UserClientBuilder to transmit
341
+ * The `blocks` builder will be computed using {@link computeBuilderBlocks} and then transmitted.
342
+ *
343
+ * @param builder The UserClientBuilder to compute and transmit transmit
344
+ * @param network The network to use for the builder (if using a builder)
328
345
  * @return The result of the publish operation
329
346
  */
330
- transmit(blocks: Block[]): ReturnType<Client['transmitStaple']>;
347
+ transmitBuilder(builder: UserClientBuilder, network: bigint, options?: PublishOptions): ReturnType<Client['transmit']>;
331
348
  /**
332
349
  * Transmit a set of blocks to the network. This will request short
333
350
  * votes and permanent votes for the blocks and then publish them to
334
- * the network.
351
+ * the network. Optionally it will generate a fee block from a user
352
+ * provided function if fees are required.
335
353
  *
336
- * The `blocks` builder will be computed using {@link computeBuilderBlocks} and then transmitted.
337
- *
338
- * @param blocks The UserClientBuilder to compute and transmit transmit
339
- * @param network The network to use for the builder (if using a builder)
354
+ * @param blocks The blocks to transmit
355
+ * @param options User provided options {@link PublishOptions }
340
356
  * @return The result of the publish operation
341
357
  */
342
- transmit(blocks: UserClientBuilder, network: bigint): ReturnType<Client['transmitStaple']>;
358
+ transmit(blocks: Block[], options?: PublishOptions): Promise<{
359
+ voteStaple: VoteStaple;
360
+ publish: boolean;
361
+ from: "direct";
362
+ }>;
343
363
  /**
344
364
  * Publish a Vote Staple to the network. This will publish the votes
345
365
  * and blocks to the network.
@@ -570,13 +590,13 @@ export declare class Client {
570
590
  * that it will always return at least 1 vote staple if there are any
571
591
  * vote staples available.
572
592
  *
573
- * @param account The account to get the history for
593
+ * @param account The account to get the history for -- if null then the history for all accounts will be returned
574
594
  * @param options The options to use for the request
575
595
  * @param options.startBlocksHash The block hash to start from -- this is used to paginate the request
576
596
  * @param options.depth The maximum number of vote staples to return -- this is used to limit the number of vote staples returned
577
597
  * @return The history of vote staples for the given account, in reverse order starting with the most recent vote staple
578
598
  */
579
- getHistory(account: GenericAccount | string, options?: {
599
+ getHistory(account: GenericAccount | string | null, options?: {
580
600
  startBlocksHash?: VoteBlocksHash | string;
581
601
  depth?: number;
582
602
  }): Promise<{
@@ -701,6 +721,7 @@ export declare class Client {
701
721
  * @param publish Publish the recovered staple to the network (default is true)
702
722
  */
703
723
  recoverAccount(account: GenericAccount, publish?: boolean): Promise<VoteStaple | null>;
724
+ getVoteQuotes(blocks: Block[]): Promise<VoteQuote[]>;
704
725
  /** Work in progress */
705
726
  getLedgerChecksum(rep?: ClientRepresentative | 'ANY'): Promise<{
706
727
  moment: string;
@@ -911,9 +932,10 @@ export declare class UserClient {
911
932
  * instead of this one.
912
933
  *
913
934
  * @param builder The builder to publish
935
+ * @param options options for publishing {@link PublishOptions }
914
936
  * @return The vote staple that was generated and whether it was able to be published
915
937
  */
916
- publishBuilder(builder: UserClientBuilder): Promise<{
938
+ publishBuilder(builder: UserClientBuilder, options?: PublishOptions): Promise<{
917
939
  voteStaple: VoteStaple;
918
940
  publish: boolean;
919
941
  from: "direct";
@@ -1008,6 +1030,12 @@ export declare class UserClient {
1008
1030
  * @return The vote staple that was generated and whether it was able to be published
1009
1031
  */
1010
1032
  send(to: GenericAccount | string, amount: bigint | number, token: TokenAddress | string, external?: string, options?: UserClientOptions, retries?: number): Promise<Awaited<ReturnType<typeof this.publishBuilder>>>;
1033
+ /**
1034
+ * Gets a quote for the cost for a given set of blocks from each representative
1035
+ * @param blocks
1036
+ * @returns A list of quotes from representatives the client knows about
1037
+ */
1038
+ getQuotes(blocks: Block[]): Promise<VoteQuote[]>;
1011
1039
  /**
1012
1040
  * Generate a new identifier for the given type and publish the blocks
1013
1041
  *
@@ -1089,7 +1117,7 @@ export declare class UserClient {
1089
1117
  * @return The history for the account, paginated
1090
1118
  */
1091
1119
  history(query?: Parameters<Client['getHistory']>[1], options?: UserClientOptionsReadOnly): Promise<{
1092
- voteStaple: import("../lib/vote").VoteStaple;
1120
+ voteStaple: VoteStaple;
1093
1121
  effects: import("../lib/ledger/effects").ComputedEffectOfBlocks;
1094
1122
  }[]>;
1095
1123
  /**
@@ -1214,7 +1242,7 @@ export declare class UserClient {
1214
1242
  get readonly(): boolean;
1215
1243
  }
1216
1244
  /** @hidden */
1217
- export declare function blockGenerator(seed: string, index: number, transactionCount: number, network?: bigint): Promise<import("../lib/vote").VoteStaple>;
1245
+ export declare function blockGenerator(seed: string, index: number, transactionCount: number, network?: bigint): Promise<VoteStaple>;
1218
1246
  /** @hidden */
1219
1247
  export declare function emitBlocks(client: Client, blocks: number, seed: string, index: number, transactionCount: number, network?: bigint): Promise<void>;
1220
1248
  /**