@aws-sdk/client-managedblockchain-query 3.535.0 → 3.537.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist-cjs/index.js +118 -14
- package/dist-es/ManagedBlockchainQuery.js +2 -0
- package/dist-es/commands/ListFilteredTransactionEventsCommand.js +24 -0
- package/dist-es/commands/index.js +1 -0
- package/dist-es/models/models_0.js +7 -4
- package/dist-es/pagination/ListFilteredTransactionEventsPaginator.js +4 -0
- package/dist-es/pagination/index.js +1 -0
- package/dist-es/protocols/Aws_restJson1.js +72 -2
- package/dist-types/ManagedBlockchainQuery.d.ts +7 -0
- package/dist-types/ManagedBlockchainQueryClient.d.ts +3 -2
- package/dist-types/commands/ListFilteredTransactionEventsCommand.d.ts +129 -0
- package/dist-types/commands/ListTransactionEventsCommand.d.ts +11 -3
- package/dist-types/commands/ListTransactionsCommand.d.ts +1 -1
- package/dist-types/commands/index.d.ts +1 -0
- package/dist-types/models/models_0.d.ts +326 -129
- package/dist-types/pagination/ListFilteredTransactionEventsPaginator.d.ts +7 -0
- package/dist-types/pagination/index.d.ts +1 -0
- package/dist-types/protocols/Aws_restJson1.d.ts +9 -0
- package/dist-types/ts3.4/ManagedBlockchainQuery.d.ts +17 -0
- package/dist-types/ts3.4/ManagedBlockchainQueryClient.d.ts +6 -0
- package/dist-types/ts3.4/commands/ListFilteredTransactionEventsCommand.d.ts +39 -0
- package/dist-types/ts3.4/commands/index.d.ts +1 -0
- package/dist-types/ts3.4/models/models_0.d.ts +70 -30
- package/dist-types/ts3.4/pagination/ListFilteredTransactionEventsPaginator.d.ts +11 -0
- package/dist-types/ts3.4/pagination/index.d.ts +1 -0
- package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +12 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -248,6 +248,14 @@ ListAssetContracts
|
|
|
248
248
|
|
|
249
249
|
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/managedblockchain-query/command/ListAssetContractsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-managedblockchain-query/Interface/ListAssetContractsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-managedblockchain-query/Interface/ListAssetContractsCommandOutput/)
|
|
250
250
|
|
|
251
|
+
</details>
|
|
252
|
+
<details>
|
|
253
|
+
<summary>
|
|
254
|
+
ListFilteredTransactionEvents
|
|
255
|
+
</summary>
|
|
256
|
+
|
|
257
|
+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/managedblockchain-query/command/ListFilteredTransactionEventsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-managedblockchain-query/Interface/ListFilteredTransactionEventsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-managedblockchain-query/Interface/ListFilteredTransactionEventsCommandOutput/)
|
|
258
|
+
|
|
251
259
|
</details>
|
|
252
260
|
<details>
|
|
253
261
|
<summary>
|
package/dist-cjs/index.js
CHANGED
|
@@ -31,6 +31,8 @@ __export(src_exports, {
|
|
|
31
31
|
GetTransactionCommand: () => GetTransactionCommand,
|
|
32
32
|
InternalServerException: () => InternalServerException,
|
|
33
33
|
ListAssetContractsCommand: () => ListAssetContractsCommand,
|
|
34
|
+
ListFilteredTransactionEventsCommand: () => ListFilteredTransactionEventsCommand,
|
|
35
|
+
ListFilteredTransactionEventsSortBy: () => ListFilteredTransactionEventsSortBy,
|
|
34
36
|
ListTokenBalancesCommand: () => ListTokenBalancesCommand,
|
|
35
37
|
ListTransactionEventsCommand: () => ListTransactionEventsCommand,
|
|
36
38
|
ListTransactionsCommand: () => ListTransactionsCommand,
|
|
@@ -50,6 +52,7 @@ __export(src_exports, {
|
|
|
50
52
|
ValidationExceptionReason: () => ValidationExceptionReason,
|
|
51
53
|
__Client: () => import_smithy_client.Client,
|
|
52
54
|
paginateListAssetContracts: () => paginateListAssetContracts,
|
|
55
|
+
paginateListFilteredTransactionEvents: () => paginateListFilteredTransactionEvents,
|
|
53
56
|
paginateListTokenBalances: () => paginateListTokenBalances,
|
|
54
57
|
paginateListTransactionEvents: () => paginateListTransactionEvents,
|
|
55
58
|
paginateListTransactions: () => paginateListTransactions
|
|
@@ -396,6 +399,22 @@ var ExecutionStatus = {
|
|
|
396
399
|
FAILED: "FAILED",
|
|
397
400
|
SUCCEEDED: "SUCCEEDED"
|
|
398
401
|
};
|
|
402
|
+
var ListFilteredTransactionEventsSortBy = {
|
|
403
|
+
/**
|
|
404
|
+
* Timestamp of a transaction
|
|
405
|
+
*/
|
|
406
|
+
blockchainInstant: "blockchainInstant"
|
|
407
|
+
};
|
|
408
|
+
var SortOrder = {
|
|
409
|
+
/**
|
|
410
|
+
* Result sorted in ascending order
|
|
411
|
+
*/
|
|
412
|
+
ASCENDING: "ASCENDING",
|
|
413
|
+
/**
|
|
414
|
+
* Result sorted in descending order
|
|
415
|
+
*/
|
|
416
|
+
DESCENDING: "DESCENDING"
|
|
417
|
+
};
|
|
399
418
|
var QueryTransactionEventType = {
|
|
400
419
|
/**
|
|
401
420
|
* A Bitcoin Vin transfer type
|
|
@@ -448,16 +467,6 @@ var ListTransactionsSortBy = {
|
|
|
448
467
|
*/
|
|
449
468
|
TRANSACTION_TIMESTAMP: "TRANSACTION_TIMESTAMP"
|
|
450
469
|
};
|
|
451
|
-
var SortOrder = {
|
|
452
|
-
/**
|
|
453
|
-
* Result sorted in ascending order
|
|
454
|
-
*/
|
|
455
|
-
ASCENDING: "ASCENDING",
|
|
456
|
-
/**
|
|
457
|
-
* Result sorted in descending order
|
|
458
|
-
*/
|
|
459
|
-
DESCENDING: "DESCENDING"
|
|
460
|
-
};
|
|
461
470
|
|
|
462
471
|
// src/protocols/Aws_restJson1.ts
|
|
463
472
|
var se_BatchGetTokenBalanceCommand = /* @__PURE__ */ __name(async (input, context) => {
|
|
@@ -540,6 +549,28 @@ var se_ListAssetContractsCommand = /* @__PURE__ */ __name(async (input, context)
|
|
|
540
549
|
b.m("POST").h(headers).b(body);
|
|
541
550
|
return b.build();
|
|
542
551
|
}, "se_ListAssetContractsCommand");
|
|
552
|
+
var se_ListFilteredTransactionEventsCommand = /* @__PURE__ */ __name(async (input, context) => {
|
|
553
|
+
const b = (0, import_core.requestBuilder)(input, context);
|
|
554
|
+
const headers = {
|
|
555
|
+
"content-type": "application/json"
|
|
556
|
+
};
|
|
557
|
+
b.bp("/list-filtered-transaction-events");
|
|
558
|
+
let body;
|
|
559
|
+
body = JSON.stringify(
|
|
560
|
+
(0, import_smithy_client.take)(input, {
|
|
561
|
+
addressIdentifierFilter: (_) => (0, import_smithy_client._json)(_),
|
|
562
|
+
confirmationStatusFilter: (_) => (0, import_smithy_client._json)(_),
|
|
563
|
+
maxResults: [],
|
|
564
|
+
network: [],
|
|
565
|
+
nextToken: [],
|
|
566
|
+
sort: (_) => (0, import_smithy_client._json)(_),
|
|
567
|
+
timeFilter: (_) => se_TimeFilter(_, context),
|
|
568
|
+
voutFilter: (_) => (0, import_smithy_client._json)(_)
|
|
569
|
+
})
|
|
570
|
+
);
|
|
571
|
+
b.m("POST").h(headers).b(body);
|
|
572
|
+
return b.build();
|
|
573
|
+
}, "se_ListFilteredTransactionEventsCommand");
|
|
543
574
|
var se_ListTokenBalancesCommand = /* @__PURE__ */ __name(async (input, context) => {
|
|
544
575
|
const b = (0, import_core.requestBuilder)(input, context);
|
|
545
576
|
const headers = {
|
|
@@ -570,7 +601,8 @@ var se_ListTransactionEventsCommand = /* @__PURE__ */ __name(async (input, conte
|
|
|
570
601
|
maxResults: [],
|
|
571
602
|
network: [],
|
|
572
603
|
nextToken: [],
|
|
573
|
-
transactionHash: []
|
|
604
|
+
transactionHash: [],
|
|
605
|
+
transactionId: []
|
|
574
606
|
})
|
|
575
607
|
);
|
|
576
608
|
b.m("POST").h(headers).b(body);
|
|
@@ -677,6 +709,21 @@ var de_ListAssetContractsCommand = /* @__PURE__ */ __name(async (output, context
|
|
|
677
709
|
Object.assign(contents, doc);
|
|
678
710
|
return contents;
|
|
679
711
|
}, "de_ListAssetContractsCommand");
|
|
712
|
+
var de_ListFilteredTransactionEventsCommand = /* @__PURE__ */ __name(async (output, context) => {
|
|
713
|
+
if (output.statusCode !== 200 && output.statusCode >= 300) {
|
|
714
|
+
return de_CommandError(output, context);
|
|
715
|
+
}
|
|
716
|
+
const contents = (0, import_smithy_client.map)({
|
|
717
|
+
$metadata: deserializeMetadata(output)
|
|
718
|
+
});
|
|
719
|
+
const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body");
|
|
720
|
+
const doc = (0, import_smithy_client.take)(data, {
|
|
721
|
+
events: (_) => de_TransactionEventList(_, context),
|
|
722
|
+
nextToken: import_smithy_client.expectString
|
|
723
|
+
});
|
|
724
|
+
Object.assign(contents, doc);
|
|
725
|
+
return contents;
|
|
726
|
+
}, "de_ListFilteredTransactionEventsCommand");
|
|
680
727
|
var de_ListTokenBalancesCommand = /* @__PURE__ */ __name(async (output, context) => {
|
|
681
728
|
if (output.statusCode !== 200 && output.statusCode >= 300) {
|
|
682
729
|
return de_CommandError(output, context);
|
|
@@ -701,7 +748,7 @@ var de_ListTransactionEventsCommand = /* @__PURE__ */ __name(async (output, cont
|
|
|
701
748
|
});
|
|
702
749
|
const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body");
|
|
703
750
|
const doc = (0, import_smithy_client.take)(data, {
|
|
704
|
-
events:
|
|
751
|
+
events: (_) => de_TransactionEventList(_, context),
|
|
705
752
|
nextToken: import_smithy_client.expectString
|
|
706
753
|
});
|
|
707
754
|
Object.assign(contents, doc);
|
|
@@ -866,6 +913,12 @@ var se_GetTokenBalanceInputList = /* @__PURE__ */ __name((input, context) => {
|
|
|
866
913
|
return se_BatchGetTokenBalanceInputItem(entry, context);
|
|
867
914
|
});
|
|
868
915
|
}, "se_GetTokenBalanceInputList");
|
|
916
|
+
var se_TimeFilter = /* @__PURE__ */ __name((input, context) => {
|
|
917
|
+
return (0, import_smithy_client.take)(input, {
|
|
918
|
+
from: (_) => se_BlockchainInstant(_, context),
|
|
919
|
+
to: (_) => se_BlockchainInstant(_, context)
|
|
920
|
+
});
|
|
921
|
+
}, "se_TimeFilter");
|
|
869
922
|
var de_BatchGetTokenBalanceErrorItem = /* @__PURE__ */ __name((output, context) => {
|
|
870
923
|
return (0, import_smithy_client.take)(output, {
|
|
871
924
|
atBlockchainInstant: (_) => de_BlockchainInstant(_, context),
|
|
@@ -941,6 +994,32 @@ var de_Transaction = /* @__PURE__ */ __name((output, context) => {
|
|
|
941
994
|
transactionTimestamp: (_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseEpochTimestamp)((0, import_smithy_client.expectNumber)(_)))
|
|
942
995
|
});
|
|
943
996
|
}, "de_Transaction");
|
|
997
|
+
var de_TransactionEvent = /* @__PURE__ */ __name((output, context) => {
|
|
998
|
+
return (0, import_smithy_client.take)(output, {
|
|
999
|
+
blockchainInstant: (_) => de_BlockchainInstant(_, context),
|
|
1000
|
+
confirmationStatus: import_smithy_client.expectString,
|
|
1001
|
+
contractAddress: import_smithy_client.expectString,
|
|
1002
|
+
eventType: import_smithy_client.expectString,
|
|
1003
|
+
from: import_smithy_client.expectString,
|
|
1004
|
+
network: import_smithy_client.expectString,
|
|
1005
|
+
spentVoutIndex: import_smithy_client.expectInt32,
|
|
1006
|
+
spentVoutTransactionHash: import_smithy_client.expectString,
|
|
1007
|
+
spentVoutTransactionId: import_smithy_client.expectString,
|
|
1008
|
+
to: import_smithy_client.expectString,
|
|
1009
|
+
tokenId: import_smithy_client.expectString,
|
|
1010
|
+
transactionHash: import_smithy_client.expectString,
|
|
1011
|
+
transactionId: import_smithy_client.expectString,
|
|
1012
|
+
value: import_smithy_client.expectString,
|
|
1013
|
+
voutIndex: import_smithy_client.expectInt32,
|
|
1014
|
+
voutSpent: import_smithy_client.expectBoolean
|
|
1015
|
+
});
|
|
1016
|
+
}, "de_TransactionEvent");
|
|
1017
|
+
var de_TransactionEventList = /* @__PURE__ */ __name((output, context) => {
|
|
1018
|
+
const retVal = (output || []).filter((e) => e != null).map((entry) => {
|
|
1019
|
+
return de_TransactionEvent(entry, context);
|
|
1020
|
+
});
|
|
1021
|
+
return retVal;
|
|
1022
|
+
}, "de_TransactionEventList");
|
|
944
1023
|
var de_TransactionOutputItem = /* @__PURE__ */ __name((output, context) => {
|
|
945
1024
|
return (0, import_smithy_client.take)(output, {
|
|
946
1025
|
confirmationStatus: import_smithy_client.expectString,
|
|
@@ -1045,6 +1124,23 @@ var _ListAssetContractsCommand = class _ListAssetContractsCommand extends import
|
|
|
1045
1124
|
__name(_ListAssetContractsCommand, "ListAssetContractsCommand");
|
|
1046
1125
|
var ListAssetContractsCommand = _ListAssetContractsCommand;
|
|
1047
1126
|
|
|
1127
|
+
// src/commands/ListFilteredTransactionEventsCommand.ts
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
|
|
1131
|
+
|
|
1132
|
+
var _ListFilteredTransactionEventsCommand = class _ListFilteredTransactionEventsCommand extends import_smithy_client.Command.classBuilder().ep({
|
|
1133
|
+
...commonParams
|
|
1134
|
+
}).m(function(Command, cs, config, o) {
|
|
1135
|
+
return [
|
|
1136
|
+
(0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),
|
|
1137
|
+
(0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())
|
|
1138
|
+
];
|
|
1139
|
+
}).s("TietonChainQueryService", "ListFilteredTransactionEvents", {}).n("ManagedBlockchainQueryClient", "ListFilteredTransactionEventsCommand").f(void 0, void 0).ser(se_ListFilteredTransactionEventsCommand).de(de_ListFilteredTransactionEventsCommand).build() {
|
|
1140
|
+
};
|
|
1141
|
+
__name(_ListFilteredTransactionEventsCommand, "ListFilteredTransactionEventsCommand");
|
|
1142
|
+
var ListFilteredTransactionEventsCommand = _ListFilteredTransactionEventsCommand;
|
|
1143
|
+
|
|
1048
1144
|
// src/commands/ListTokenBalancesCommand.ts
|
|
1049
1145
|
|
|
1050
1146
|
|
|
@@ -1103,6 +1199,7 @@ var commands = {
|
|
|
1103
1199
|
GetTokenBalanceCommand,
|
|
1104
1200
|
GetTransactionCommand,
|
|
1105
1201
|
ListAssetContractsCommand,
|
|
1202
|
+
ListFilteredTransactionEventsCommand,
|
|
1106
1203
|
ListTokenBalancesCommand,
|
|
1107
1204
|
ListTransactionEventsCommand,
|
|
1108
1205
|
ListTransactionsCommand
|
|
@@ -1117,6 +1214,10 @@ var ManagedBlockchainQuery = _ManagedBlockchainQuery;
|
|
|
1117
1214
|
|
|
1118
1215
|
var paginateListAssetContracts = (0, import_core.createPaginator)(ManagedBlockchainQueryClient, ListAssetContractsCommand, "nextToken", "nextToken", "maxResults");
|
|
1119
1216
|
|
|
1217
|
+
// src/pagination/ListFilteredTransactionEventsPaginator.ts
|
|
1218
|
+
|
|
1219
|
+
var paginateListFilteredTransactionEvents = (0, import_core.createPaginator)(ManagedBlockchainQueryClient, ListFilteredTransactionEventsCommand, "nextToken", "nextToken", "maxResults");
|
|
1220
|
+
|
|
1120
1221
|
// src/pagination/ListTokenBalancesPaginator.ts
|
|
1121
1222
|
|
|
1122
1223
|
var paginateListTokenBalances = (0, import_core.createPaginator)(ManagedBlockchainQueryClient, ListTokenBalancesCommand, "nextToken", "nextToken", "maxResults");
|
|
@@ -1144,10 +1245,12 @@ var import_util_endpoints = require("@aws-sdk/util-endpoints");
|
|
|
1144
1245
|
GetTokenBalanceCommand,
|
|
1145
1246
|
GetTransactionCommand,
|
|
1146
1247
|
ListAssetContractsCommand,
|
|
1248
|
+
ListFilteredTransactionEventsCommand,
|
|
1147
1249
|
ListTokenBalancesCommand,
|
|
1148
1250
|
ListTransactionEventsCommand,
|
|
1149
1251
|
ListTransactionsCommand,
|
|
1150
1252
|
paginateListAssetContracts,
|
|
1253
|
+
paginateListFilteredTransactionEvents,
|
|
1151
1254
|
paginateListTokenBalances,
|
|
1152
1255
|
paginateListTransactionEvents,
|
|
1153
1256
|
paginateListTransactions,
|
|
@@ -1164,8 +1267,9 @@ var import_util_endpoints = require("@aws-sdk/util-endpoints");
|
|
|
1164
1267
|
ValidationException,
|
|
1165
1268
|
ConfirmationStatus,
|
|
1166
1269
|
ExecutionStatus,
|
|
1270
|
+
ListFilteredTransactionEventsSortBy,
|
|
1271
|
+
SortOrder,
|
|
1167
1272
|
QueryTransactionEventType,
|
|
1168
|
-
ListTransactionsSortBy
|
|
1169
|
-
SortOrder
|
|
1273
|
+
ListTransactionsSortBy
|
|
1170
1274
|
});
|
|
1171
1275
|
|
|
@@ -4,6 +4,7 @@ import { GetAssetContractCommand, } from "./commands/GetAssetContractCommand";
|
|
|
4
4
|
import { GetTokenBalanceCommand, } from "./commands/GetTokenBalanceCommand";
|
|
5
5
|
import { GetTransactionCommand, } from "./commands/GetTransactionCommand";
|
|
6
6
|
import { ListAssetContractsCommand, } from "./commands/ListAssetContractsCommand";
|
|
7
|
+
import { ListFilteredTransactionEventsCommand, } from "./commands/ListFilteredTransactionEventsCommand";
|
|
7
8
|
import { ListTokenBalancesCommand, } from "./commands/ListTokenBalancesCommand";
|
|
8
9
|
import { ListTransactionEventsCommand, } from "./commands/ListTransactionEventsCommand";
|
|
9
10
|
import { ListTransactionsCommand, } from "./commands/ListTransactionsCommand";
|
|
@@ -14,6 +15,7 @@ const commands = {
|
|
|
14
15
|
GetTokenBalanceCommand,
|
|
15
16
|
GetTransactionCommand,
|
|
16
17
|
ListAssetContractsCommand,
|
|
18
|
+
ListFilteredTransactionEventsCommand,
|
|
17
19
|
ListTokenBalancesCommand,
|
|
18
20
|
ListTransactionEventsCommand,
|
|
19
21
|
ListTransactionsCommand,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
|
|
2
|
+
import { getSerdePlugin } from "@smithy/middleware-serde";
|
|
3
|
+
import { Command as $Command } from "@smithy/smithy-client";
|
|
4
|
+
import { commonParams } from "../endpoint/EndpointParameters";
|
|
5
|
+
import { de_ListFilteredTransactionEventsCommand, se_ListFilteredTransactionEventsCommand, } from "../protocols/Aws_restJson1";
|
|
6
|
+
export { $Command };
|
|
7
|
+
export class ListFilteredTransactionEventsCommand extends $Command
|
|
8
|
+
.classBuilder()
|
|
9
|
+
.ep({
|
|
10
|
+
...commonParams,
|
|
11
|
+
})
|
|
12
|
+
.m(function (Command, cs, config, o) {
|
|
13
|
+
return [
|
|
14
|
+
getSerdePlugin(config, this.serialize, this.deserialize),
|
|
15
|
+
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
|
|
16
|
+
];
|
|
17
|
+
})
|
|
18
|
+
.s("TietonChainQueryService", "ListFilteredTransactionEvents", {})
|
|
19
|
+
.n("ManagedBlockchainQueryClient", "ListFilteredTransactionEventsCommand")
|
|
20
|
+
.f(void 0, void 0)
|
|
21
|
+
.ser(se_ListFilteredTransactionEventsCommand)
|
|
22
|
+
.de(de_ListFilteredTransactionEventsCommand)
|
|
23
|
+
.build() {
|
|
24
|
+
}
|
|
@@ -3,6 +3,7 @@ export * from "./GetAssetContractCommand";
|
|
|
3
3
|
export * from "./GetTokenBalanceCommand";
|
|
4
4
|
export * from "./GetTransactionCommand";
|
|
5
5
|
export * from "./ListAssetContractsCommand";
|
|
6
|
+
export * from "./ListFilteredTransactionEventsCommand";
|
|
6
7
|
export * from "./ListTokenBalancesCommand";
|
|
7
8
|
export * from "./ListTransactionEventsCommand";
|
|
8
9
|
export * from "./ListTransactionsCommand";
|
|
@@ -119,6 +119,13 @@ export const ExecutionStatus = {
|
|
|
119
119
|
FAILED: "FAILED",
|
|
120
120
|
SUCCEEDED: "SUCCEEDED",
|
|
121
121
|
};
|
|
122
|
+
export const ListFilteredTransactionEventsSortBy = {
|
|
123
|
+
blockchainInstant: "blockchainInstant",
|
|
124
|
+
};
|
|
125
|
+
export const SortOrder = {
|
|
126
|
+
ASCENDING: "ASCENDING",
|
|
127
|
+
DESCENDING: "DESCENDING",
|
|
128
|
+
};
|
|
122
129
|
export const QueryTransactionEventType = {
|
|
123
130
|
BITCOIN_VIN: "BITCOIN_VIN",
|
|
124
131
|
BITCOIN_VOUT: "BITCOIN_VOUT",
|
|
@@ -135,7 +142,3 @@ export const QueryTransactionEventType = {
|
|
|
135
142
|
export const ListTransactionsSortBy = {
|
|
136
143
|
TRANSACTION_TIMESTAMP: "TRANSACTION_TIMESTAMP",
|
|
137
144
|
};
|
|
138
|
-
export const SortOrder = {
|
|
139
|
-
ASCENDING: "ASCENDING",
|
|
140
|
-
DESCENDING: "DESCENDING",
|
|
141
|
-
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createPaginator } from "@smithy/core";
|
|
2
|
+
import { ListFilteredTransactionEventsCommand, } from "../commands/ListFilteredTransactionEventsCommand";
|
|
3
|
+
import { ManagedBlockchainQueryClient } from "../ManagedBlockchainQueryClient";
|
|
4
|
+
export const paginateListFilteredTransactionEvents = createPaginator(ManagedBlockchainQueryClient, ListFilteredTransactionEventsCommand, "nextToken", "nextToken", "maxResults");
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./Interfaces";
|
|
2
2
|
export * from "./ListAssetContractsPaginator";
|
|
3
|
+
export * from "./ListFilteredTransactionEventsPaginator";
|
|
3
4
|
export * from "./ListTokenBalancesPaginator";
|
|
4
5
|
export * from "./ListTransactionEventsPaginator";
|
|
5
6
|
export * from "./ListTransactionsPaginator";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadRestJsonErrorCode, parseJsonBody as parseBody, parseJsonErrorBody as parseErrorBody } from "@aws-sdk/core";
|
|
2
2
|
import { requestBuilder as rb } from "@smithy/core";
|
|
3
|
-
import { _json, collectBody, decorateServiceException as __decorateServiceException, expectInt32 as __expectInt32, expectLong as __expectLong, expectNonNull as __expectNonNull, expectNumber as __expectNumber, expectObject as __expectObject, expectString as __expectString, map, parseEpochTimestamp as __parseEpochTimestamp, strictParseInt32 as __strictParseInt32, take, withBaseException, } from "@smithy/smithy-client";
|
|
3
|
+
import { _json, collectBody, decorateServiceException as __decorateServiceException, expectBoolean as __expectBoolean, expectInt32 as __expectInt32, expectLong as __expectLong, expectNonNull as __expectNonNull, expectNumber as __expectNumber, expectObject as __expectObject, expectString as __expectString, map, parseEpochTimestamp as __parseEpochTimestamp, strictParseInt32 as __strictParseInt32, take, withBaseException, } from "@smithy/smithy-client";
|
|
4
4
|
import { ManagedBlockchainQueryServiceException as __BaseException } from "../models/ManagedBlockchainQueryServiceException";
|
|
5
5
|
import { AccessDeniedException, InternalServerException, ResourceNotFoundException, ServiceQuotaExceededException, ThrottlingException, ValidationException, } from "../models/models_0";
|
|
6
6
|
export const se_BatchGetTokenBalanceCommand = async (input, context) => {
|
|
@@ -73,6 +73,26 @@ export const se_ListAssetContractsCommand = async (input, context) => {
|
|
|
73
73
|
b.m("POST").h(headers).b(body);
|
|
74
74
|
return b.build();
|
|
75
75
|
};
|
|
76
|
+
export const se_ListFilteredTransactionEventsCommand = async (input, context) => {
|
|
77
|
+
const b = rb(input, context);
|
|
78
|
+
const headers = {
|
|
79
|
+
"content-type": "application/json",
|
|
80
|
+
};
|
|
81
|
+
b.bp("/list-filtered-transaction-events");
|
|
82
|
+
let body;
|
|
83
|
+
body = JSON.stringify(take(input, {
|
|
84
|
+
addressIdentifierFilter: (_) => _json(_),
|
|
85
|
+
confirmationStatusFilter: (_) => _json(_),
|
|
86
|
+
maxResults: [],
|
|
87
|
+
network: [],
|
|
88
|
+
nextToken: [],
|
|
89
|
+
sort: (_) => _json(_),
|
|
90
|
+
timeFilter: (_) => se_TimeFilter(_, context),
|
|
91
|
+
voutFilter: (_) => _json(_),
|
|
92
|
+
}));
|
|
93
|
+
b.m("POST").h(headers).b(body);
|
|
94
|
+
return b.build();
|
|
95
|
+
};
|
|
76
96
|
export const se_ListTokenBalancesCommand = async (input, context) => {
|
|
77
97
|
const b = rb(input, context);
|
|
78
98
|
const headers = {
|
|
@@ -101,6 +121,7 @@ export const se_ListTransactionEventsCommand = async (input, context) => {
|
|
|
101
121
|
network: [],
|
|
102
122
|
nextToken: [],
|
|
103
123
|
transactionHash: [],
|
|
124
|
+
transactionId: [],
|
|
104
125
|
}));
|
|
105
126
|
b.m("POST").h(headers).b(body);
|
|
106
127
|
return b.build();
|
|
@@ -204,6 +225,21 @@ export const de_ListAssetContractsCommand = async (output, context) => {
|
|
|
204
225
|
Object.assign(contents, doc);
|
|
205
226
|
return contents;
|
|
206
227
|
};
|
|
228
|
+
export const de_ListFilteredTransactionEventsCommand = async (output, context) => {
|
|
229
|
+
if (output.statusCode !== 200 && output.statusCode >= 300) {
|
|
230
|
+
return de_CommandError(output, context);
|
|
231
|
+
}
|
|
232
|
+
const contents = map({
|
|
233
|
+
$metadata: deserializeMetadata(output),
|
|
234
|
+
});
|
|
235
|
+
const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
|
|
236
|
+
const doc = take(data, {
|
|
237
|
+
events: (_) => de_TransactionEventList(_, context),
|
|
238
|
+
nextToken: __expectString,
|
|
239
|
+
});
|
|
240
|
+
Object.assign(contents, doc);
|
|
241
|
+
return contents;
|
|
242
|
+
};
|
|
207
243
|
export const de_ListTokenBalancesCommand = async (output, context) => {
|
|
208
244
|
if (output.statusCode !== 200 && output.statusCode >= 300) {
|
|
209
245
|
return de_CommandError(output, context);
|
|
@@ -228,7 +264,7 @@ export const de_ListTransactionEventsCommand = async (output, context) => {
|
|
|
228
264
|
});
|
|
229
265
|
const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
|
|
230
266
|
const doc = take(data, {
|
|
231
|
-
events:
|
|
267
|
+
events: (_) => de_TransactionEventList(_, context),
|
|
232
268
|
nextToken: __expectString,
|
|
233
269
|
});
|
|
234
270
|
Object.assign(contents, doc);
|
|
@@ -395,6 +431,12 @@ const se_GetTokenBalanceInputList = (input, context) => {
|
|
|
395
431
|
return se_BatchGetTokenBalanceInputItem(entry, context);
|
|
396
432
|
});
|
|
397
433
|
};
|
|
434
|
+
const se_TimeFilter = (input, context) => {
|
|
435
|
+
return take(input, {
|
|
436
|
+
from: (_) => se_BlockchainInstant(_, context),
|
|
437
|
+
to: (_) => se_BlockchainInstant(_, context),
|
|
438
|
+
});
|
|
439
|
+
};
|
|
398
440
|
const de_BatchGetTokenBalanceErrorItem = (output, context) => {
|
|
399
441
|
return take(output, {
|
|
400
442
|
atBlockchainInstant: (_) => de_BlockchainInstant(_, context),
|
|
@@ -476,6 +518,34 @@ const de_Transaction = (output, context) => {
|
|
|
476
518
|
transactionTimestamp: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
|
|
477
519
|
});
|
|
478
520
|
};
|
|
521
|
+
const de_TransactionEvent = (output, context) => {
|
|
522
|
+
return take(output, {
|
|
523
|
+
blockchainInstant: (_) => de_BlockchainInstant(_, context),
|
|
524
|
+
confirmationStatus: __expectString,
|
|
525
|
+
contractAddress: __expectString,
|
|
526
|
+
eventType: __expectString,
|
|
527
|
+
from: __expectString,
|
|
528
|
+
network: __expectString,
|
|
529
|
+
spentVoutIndex: __expectInt32,
|
|
530
|
+
spentVoutTransactionHash: __expectString,
|
|
531
|
+
spentVoutTransactionId: __expectString,
|
|
532
|
+
to: __expectString,
|
|
533
|
+
tokenId: __expectString,
|
|
534
|
+
transactionHash: __expectString,
|
|
535
|
+
transactionId: __expectString,
|
|
536
|
+
value: __expectString,
|
|
537
|
+
voutIndex: __expectInt32,
|
|
538
|
+
voutSpent: __expectBoolean,
|
|
539
|
+
});
|
|
540
|
+
};
|
|
541
|
+
const de_TransactionEventList = (output, context) => {
|
|
542
|
+
const retVal = (output || [])
|
|
543
|
+
.filter((e) => e != null)
|
|
544
|
+
.map((entry) => {
|
|
545
|
+
return de_TransactionEvent(entry, context);
|
|
546
|
+
});
|
|
547
|
+
return retVal;
|
|
548
|
+
};
|
|
479
549
|
const de_TransactionOutputItem = (output, context) => {
|
|
480
550
|
return take(output, {
|
|
481
551
|
confirmationStatus: __expectString,
|
|
@@ -4,6 +4,7 @@ import { GetAssetContractCommandInput, GetAssetContractCommandOutput } from "./c
|
|
|
4
4
|
import { GetTokenBalanceCommandInput, GetTokenBalanceCommandOutput } from "./commands/GetTokenBalanceCommand";
|
|
5
5
|
import { GetTransactionCommandInput, GetTransactionCommandOutput } from "./commands/GetTransactionCommand";
|
|
6
6
|
import { ListAssetContractsCommandInput, ListAssetContractsCommandOutput } from "./commands/ListAssetContractsCommand";
|
|
7
|
+
import { ListFilteredTransactionEventsCommandInput, ListFilteredTransactionEventsCommandOutput } from "./commands/ListFilteredTransactionEventsCommand";
|
|
7
8
|
import { ListTokenBalancesCommandInput, ListTokenBalancesCommandOutput } from "./commands/ListTokenBalancesCommand";
|
|
8
9
|
import { ListTransactionEventsCommandInput, ListTransactionEventsCommandOutput } from "./commands/ListTransactionEventsCommand";
|
|
9
10
|
import { ListTransactionsCommandInput, ListTransactionsCommandOutput } from "./commands/ListTransactionsCommand";
|
|
@@ -40,6 +41,12 @@ export interface ManagedBlockchainQuery {
|
|
|
40
41
|
listAssetContracts(args: ListAssetContractsCommandInput, options?: __HttpHandlerOptions): Promise<ListAssetContractsCommandOutput>;
|
|
41
42
|
listAssetContracts(args: ListAssetContractsCommandInput, cb: (err: any, data?: ListAssetContractsCommandOutput) => void): void;
|
|
42
43
|
listAssetContracts(args: ListAssetContractsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListAssetContractsCommandOutput) => void): void;
|
|
44
|
+
/**
|
|
45
|
+
* @see {@link ListFilteredTransactionEventsCommand}
|
|
46
|
+
*/
|
|
47
|
+
listFilteredTransactionEvents(args: ListFilteredTransactionEventsCommandInput, options?: __HttpHandlerOptions): Promise<ListFilteredTransactionEventsCommandOutput>;
|
|
48
|
+
listFilteredTransactionEvents(args: ListFilteredTransactionEventsCommandInput, cb: (err: any, data?: ListFilteredTransactionEventsCommandOutput) => void): void;
|
|
49
|
+
listFilteredTransactionEvents(args: ListFilteredTransactionEventsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListFilteredTransactionEventsCommandOutput) => void): void;
|
|
43
50
|
/**
|
|
44
51
|
* @see {@link ListTokenBalancesCommand}
|
|
45
52
|
*/
|
|
@@ -12,6 +12,7 @@ import { GetAssetContractCommandInput, GetAssetContractCommandOutput } from "./c
|
|
|
12
12
|
import { GetTokenBalanceCommandInput, GetTokenBalanceCommandOutput } from "./commands/GetTokenBalanceCommand";
|
|
13
13
|
import { GetTransactionCommandInput, GetTransactionCommandOutput } from "./commands/GetTransactionCommand";
|
|
14
14
|
import { ListAssetContractsCommandInput, ListAssetContractsCommandOutput } from "./commands/ListAssetContractsCommand";
|
|
15
|
+
import { ListFilteredTransactionEventsCommandInput, ListFilteredTransactionEventsCommandOutput } from "./commands/ListFilteredTransactionEventsCommand";
|
|
15
16
|
import { ListTokenBalancesCommandInput, ListTokenBalancesCommandOutput } from "./commands/ListTokenBalancesCommand";
|
|
16
17
|
import { ListTransactionEventsCommandInput, ListTransactionEventsCommandOutput } from "./commands/ListTransactionEventsCommand";
|
|
17
18
|
import { ListTransactionsCommandInput, ListTransactionsCommandOutput } from "./commands/ListTransactionsCommand";
|
|
@@ -21,11 +22,11 @@ export { __Client };
|
|
|
21
22
|
/**
|
|
22
23
|
* @public
|
|
23
24
|
*/
|
|
24
|
-
export type ServiceInputTypes = BatchGetTokenBalanceCommandInput | GetAssetContractCommandInput | GetTokenBalanceCommandInput | GetTransactionCommandInput | ListAssetContractsCommandInput | ListTokenBalancesCommandInput | ListTransactionEventsCommandInput | ListTransactionsCommandInput;
|
|
25
|
+
export type ServiceInputTypes = BatchGetTokenBalanceCommandInput | GetAssetContractCommandInput | GetTokenBalanceCommandInput | GetTransactionCommandInput | ListAssetContractsCommandInput | ListFilteredTransactionEventsCommandInput | ListTokenBalancesCommandInput | ListTransactionEventsCommandInput | ListTransactionsCommandInput;
|
|
25
26
|
/**
|
|
26
27
|
* @public
|
|
27
28
|
*/
|
|
28
|
-
export type ServiceOutputTypes = BatchGetTokenBalanceCommandOutput | GetAssetContractCommandOutput | GetTokenBalanceCommandOutput | GetTransactionCommandOutput | ListAssetContractsCommandOutput | ListTokenBalancesCommandOutput | ListTransactionEventsCommandOutput | ListTransactionsCommandOutput;
|
|
29
|
+
export type ServiceOutputTypes = BatchGetTokenBalanceCommandOutput | GetAssetContractCommandOutput | GetTokenBalanceCommandOutput | GetTransactionCommandOutput | ListAssetContractsCommandOutput | ListFilteredTransactionEventsCommandOutput | ListTokenBalancesCommandOutput | ListTransactionEventsCommandOutput | ListTransactionsCommandOutput;
|
|
29
30
|
/**
|
|
30
31
|
* @public
|
|
31
32
|
*/
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Command as $Command } from "@smithy/smithy-client";
|
|
2
|
+
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
|
|
3
|
+
import { ManagedBlockchainQueryClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ManagedBlockchainQueryClient";
|
|
4
|
+
import { ListFilteredTransactionEventsInput, ListFilteredTransactionEventsOutput } from "../models/models_0";
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export { __MetadataBearer, $Command };
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*
|
|
12
|
+
* The input for {@link ListFilteredTransactionEventsCommand}.
|
|
13
|
+
*/
|
|
14
|
+
export interface ListFilteredTransactionEventsCommandInput extends ListFilteredTransactionEventsInput {
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*
|
|
19
|
+
* The output of {@link ListFilteredTransactionEventsCommand}.
|
|
20
|
+
*/
|
|
21
|
+
export interface ListFilteredTransactionEventsCommandOutput extends ListFilteredTransactionEventsOutput, __MetadataBearer {
|
|
22
|
+
}
|
|
23
|
+
declare const ListFilteredTransactionEventsCommand_base: {
|
|
24
|
+
new (input: ListFilteredTransactionEventsCommandInput): import("@smithy/smithy-client").CommandImpl<ListFilteredTransactionEventsCommandInput, ListFilteredTransactionEventsCommandOutput, ManagedBlockchainQueryClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
|
|
25
|
+
new (__0_0: ListFilteredTransactionEventsCommandInput): import("@smithy/smithy-client").CommandImpl<ListFilteredTransactionEventsCommandInput, ListFilteredTransactionEventsCommandOutput, ManagedBlockchainQueryClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
|
|
26
|
+
getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* <p>Lists all the transaction events for an address on the blockchain.</p>
|
|
30
|
+
* <note>
|
|
31
|
+
* <p>This operation is only supported on the Bitcoin networks.</p>
|
|
32
|
+
* </note>
|
|
33
|
+
* @example
|
|
34
|
+
* Use a bare-bones client and the command you need to make an API call.
|
|
35
|
+
* ```javascript
|
|
36
|
+
* import { ManagedBlockchainQueryClient, ListFilteredTransactionEventsCommand } from "@aws-sdk/client-managedblockchain-query"; // ES Modules import
|
|
37
|
+
* // const { ManagedBlockchainQueryClient, ListFilteredTransactionEventsCommand } = require("@aws-sdk/client-managedblockchain-query"); // CommonJS import
|
|
38
|
+
* const client = new ManagedBlockchainQueryClient(config);
|
|
39
|
+
* const input = { // ListFilteredTransactionEventsInput
|
|
40
|
+
* network: "STRING_VALUE", // required
|
|
41
|
+
* addressIdentifierFilter: { // AddressIdentifierFilter
|
|
42
|
+
* transactionEventToAddress: [ // ChainAddresses // required
|
|
43
|
+
* "STRING_VALUE",
|
|
44
|
+
* ],
|
|
45
|
+
* },
|
|
46
|
+
* timeFilter: { // TimeFilter
|
|
47
|
+
* from: { // BlockchainInstant
|
|
48
|
+
* time: new Date("TIMESTAMP"),
|
|
49
|
+
* },
|
|
50
|
+
* to: {
|
|
51
|
+
* time: new Date("TIMESTAMP"),
|
|
52
|
+
* },
|
|
53
|
+
* },
|
|
54
|
+
* voutFilter: { // VoutFilter
|
|
55
|
+
* voutSpent: true || false, // required
|
|
56
|
+
* },
|
|
57
|
+
* confirmationStatusFilter: { // ConfirmationStatusFilter
|
|
58
|
+
* include: [ // ConfirmationStatusIncludeList // required
|
|
59
|
+
* "STRING_VALUE",
|
|
60
|
+
* ],
|
|
61
|
+
* },
|
|
62
|
+
* sort: { // ListFilteredTransactionEventsSort
|
|
63
|
+
* sortBy: "STRING_VALUE",
|
|
64
|
+
* sortOrder: "STRING_VALUE",
|
|
65
|
+
* },
|
|
66
|
+
* nextToken: "STRING_VALUE",
|
|
67
|
+
* maxResults: Number("int"),
|
|
68
|
+
* };
|
|
69
|
+
* const command = new ListFilteredTransactionEventsCommand(input);
|
|
70
|
+
* const response = await client.send(command);
|
|
71
|
+
* // { // ListFilteredTransactionEventsOutput
|
|
72
|
+
* // events: [ // TransactionEventList // required
|
|
73
|
+
* // { // TransactionEvent
|
|
74
|
+
* // network: "STRING_VALUE", // required
|
|
75
|
+
* // transactionHash: "STRING_VALUE", // required
|
|
76
|
+
* // eventType: "STRING_VALUE", // required
|
|
77
|
+
* // from: "STRING_VALUE",
|
|
78
|
+
* // to: "STRING_VALUE",
|
|
79
|
+
* // value: "STRING_VALUE",
|
|
80
|
+
* // contractAddress: "STRING_VALUE",
|
|
81
|
+
* // tokenId: "STRING_VALUE",
|
|
82
|
+
* // transactionId: "STRING_VALUE",
|
|
83
|
+
* // voutIndex: Number("int"),
|
|
84
|
+
* // voutSpent: true || false,
|
|
85
|
+
* // spentVoutTransactionId: "STRING_VALUE",
|
|
86
|
+
* // spentVoutTransactionHash: "STRING_VALUE",
|
|
87
|
+
* // spentVoutIndex: Number("int"),
|
|
88
|
+
* // blockchainInstant: { // BlockchainInstant
|
|
89
|
+
* // time: new Date("TIMESTAMP"),
|
|
90
|
+
* // },
|
|
91
|
+
* // confirmationStatus: "STRING_VALUE",
|
|
92
|
+
* // },
|
|
93
|
+
* // ],
|
|
94
|
+
* // nextToken: "STRING_VALUE",
|
|
95
|
+
* // };
|
|
96
|
+
*
|
|
97
|
+
* ```
|
|
98
|
+
*
|
|
99
|
+
* @param ListFilteredTransactionEventsCommandInput - {@link ListFilteredTransactionEventsCommandInput}
|
|
100
|
+
* @returns {@link ListFilteredTransactionEventsCommandOutput}
|
|
101
|
+
* @see {@link ListFilteredTransactionEventsCommandInput} for command's `input` shape.
|
|
102
|
+
* @see {@link ListFilteredTransactionEventsCommandOutput} for command's `response` shape.
|
|
103
|
+
* @see {@link ManagedBlockchainQueryClientResolvedConfig | config} for ManagedBlockchainQueryClient's `config` shape.
|
|
104
|
+
*
|
|
105
|
+
* @throws {@link AccessDeniedException} (client fault)
|
|
106
|
+
* <p>The Amazon Web Services account doesn’t have access to this resource. </p>
|
|
107
|
+
*
|
|
108
|
+
* @throws {@link InternalServerException} (server fault)
|
|
109
|
+
* <p>The request processing has failed because of an internal error in the service.</p>
|
|
110
|
+
*
|
|
111
|
+
* @throws {@link ServiceQuotaExceededException} (client fault)
|
|
112
|
+
* <p>The service quota has been exceeded for this resource.</p>
|
|
113
|
+
*
|
|
114
|
+
* @throws {@link ThrottlingException} (client fault)
|
|
115
|
+
* <p>The request or operation couldn't be performed because a service is throttling
|
|
116
|
+
* requests. The most common source of throttling errors is when you create resources
|
|
117
|
+
* that exceed your service limit for this resource type. Request a limit increase or
|
|
118
|
+
* delete unused resources, if possible.</p>
|
|
119
|
+
*
|
|
120
|
+
* @throws {@link ValidationException} (client fault)
|
|
121
|
+
* <p>The resource passed is invalid.</p>
|
|
122
|
+
*
|
|
123
|
+
* @throws {@link ManagedBlockchainQueryServiceException}
|
|
124
|
+
* <p>Base exception class for all service exceptions from ManagedBlockchainQuery service.</p>
|
|
125
|
+
*
|
|
126
|
+
* @public
|
|
127
|
+
*/
|
|
128
|
+
export declare class ListFilteredTransactionEventsCommand extends ListFilteredTransactionEventsCommand_base {
|
|
129
|
+
}
|