@@ -35,6 +35,7 @@ public class AccountApiProvider extends BasicProvider implements IAccountApi {
3535 private static final String ACT_TX_INTERNAL_ACTION = ACT_PREFIX + "txlistinternal" ;
3636 private static final String ACT_TX_TOKEN_ACTION = ACT_PREFIX + "tokentx" ;
3737 private static final String ACT_TX_NFT_TOKEN_ACTION = ACT_PREFIX + "tokennfttx" ;
38+ private static final String ACT_TX_1155_TOKEN_ACTION = ACT_PREFIX + "token1155tx" ;
3839 private static final String ACT_MINED_ACTION = ACT_PREFIX + "getminedblocks" ;
3940
4041 private static final String BLOCK_TYPE_PARAM = "&blocktype=blocks" ;
@@ -265,4 +266,70 @@ public List<Block> minedBlocks(final String address) throws ApiException {
265266
266267 return getRequestUsingOffset (urlParams , BlockResponseTO .class );
267268 }
269+
270+ @ NotNull
271+ @ Override
272+ public List <TxErc20 > erc20Transfers (String address ) throws ApiException {
273+ return erc20Transfers (address , MIN_START_BLOCK );
274+ }
275+
276+ @ NotNull
277+ @ Override
278+ public List <TxErc20 > erc20Transfers (String address , long startBlock ) throws ApiException {
279+ return erc20Transfers (address , startBlock , MAX_END_BLOCK );
280+ }
281+
282+ @ NotNull
283+ @ Override
284+ public List <TxErc20 > erc20Transfers (String address , long startBlock , long endBlock ) throws ApiException {
285+ return getTokenTransfers (address , startBlock , endBlock , ACT_TX_TOKEN_ACTION , TxErc20ResponseTO .class );
286+ }
287+
288+ @ NotNull
289+ @ Override
290+ public List <TxErc721 > erc721Transfers (String address ) throws ApiException {
291+ return erc721Transfers (address , MIN_START_BLOCK );
292+ }
293+
294+ @ NotNull
295+ @ Override
296+ public List <TxErc721 > erc721Transfers (String address , long startBlock ) throws ApiException {
297+ return erc721Transfers (address , startBlock , MAX_END_BLOCK );
298+ }
299+
300+ @ NotNull
301+ @ Override
302+ public List <TxErc721 > erc721Transfers (String address , long startBlock , long endBlock ) throws ApiException {
303+ return getTokenTransfers (address , startBlock , endBlock , ACT_TX_NFT_TOKEN_ACTION , TxErc721ResponseTO .class );
304+ }
305+
306+ @ NotNull
307+ @ Override
308+ public List <TxErc1155 > erc1155Transfers (String address ) throws ApiException {
309+ return erc1155Transfers (address , MIN_START_BLOCK );
310+ }
311+
312+ @ NotNull
313+ @ Override
314+ public List <TxErc1155 > erc1155Transfers (String address , long startBlock ) throws ApiException {
315+ return erc1155Transfers (address , startBlock , MAX_END_BLOCK );
316+ }
317+
318+ @ NotNull
319+ @ Override
320+ public List <TxErc1155 > erc1155Transfers (String address , long startBlock , long endBlock ) throws ApiException {
321+ return getTokenTransfers (address , startBlock , endBlock , ACT_TX_1155_TOKEN_ACTION , TxErc1155ResponseTO .class );
322+ }
323+
324+ @ NotNull
325+ private <T extends BaseTxToken , R extends BaseListResponseTO <T >> List <T > getTokenTransfers (String address , long startBlock , long endBlock , String tokenAction , Class <R > responseTOClass ) throws ApiException {
326+ BasicUtils .validateAddress (address );
327+ final BlockParam blocks = BasicUtils .compensateBlocks (startBlock , endBlock );
328+
329+ final String offsetParam = PAGE_PARAM + "%s" + OFFSET_PARAM + OFFSET_MAX ;
330+ final String blockParam = START_BLOCK_PARAM + blocks .start () + END_BLOCK_PARAM + blocks .end ();
331+ final String urlParams = tokenAction + offsetParam + ADDRESS_PARAM + address + blockParam + SORT_ASC_PARAM ;
332+
333+ return getRequestUsingOffset (urlParams , responseTOClass );
334+ }
268335}
0 commit comments