Etherscan token_id -> token_ids

pull/6391/head
Qwerty5Uiop 2 years ago committed by Viktor Baranov
parent e0939f9e94
commit 1e41a03db8
  1. 12
      apps/block_scout_web/lib/block_scout_web/etherscan.ex
  2. 11
      apps/block_scout_web/lib/block_scout_web/views/api/rpc/address_view.ex
  3. 6
      apps/explorer/lib/explorer/etherscan.ex

@ -867,8 +867,20 @@ defmodule BlockScoutWeb.Etherscan do
definition: "The transferred amount.", definition: "The transferred amount.",
example: ~s("663046792267785498951364") example: ~s("663046792267785498951364")
}, },
values: %{
type: "array",
array_type: %{
type: "integer",
definition: "The transferred amount of particular token instance."
},
definition: "Transferred amounts of token instances in ERC-1155 batch transfer corresponding to tokenIDs field."
},
tokenName: @token_name_type, tokenName: @token_name_type,
tokenID: @token_id_type, tokenID: @token_id_type,
tokenIDs: %{
type: "array",
array_type: @token_id_type
},
tokenSymbol: @token_symbol_type, tokenSymbol: @token_symbol_type,
tokenDecimal: @token_decimal_type, tokenDecimal: @token_decimal_type,
transactionIndex: @transaction_index_type, transactionIndex: @transaction_index_type,

@ -171,13 +171,20 @@ defmodule BlockScoutWeb.API.RPC.AddressView do
defp prepare_token_transfer(%{token_type: "ERC-721"} = token_transfer) do defp prepare_token_transfer(%{token_type: "ERC-721"} = token_transfer) do
token_transfer token_transfer
|> prepare_common_token_transfer() |> prepare_common_token_transfer()
|> Map.put_new(:tokenID, token_transfer.token_id) |> Map.put_new(:tokenID, List.first(token_transfer.token_ids))
end
defp prepare_token_transfer(%{token_type: "ERC-1155", token_ids: [token_id]} = token_transfer) do
token_transfer
|> prepare_common_token_transfer()
|> Map.put_new(:tokenID, token_id)
end end
defp prepare_token_transfer(%{token_type: "ERC-1155"} = token_transfer) do defp prepare_token_transfer(%{token_type: "ERC-1155"} = token_transfer) do
token_transfer token_transfer
|> prepare_common_token_transfer() |> prepare_common_token_transfer()
|> Map.put_new(:tokenID, token_transfer.token_id) |> Map.put_new(:tokenIDs, token_transfer.token_ids)
|> Map.put_new(:values, token_transfer.amounts)
end end
defp prepare_token_transfer(%{token_type: "ERC-20"} = token_transfer) do defp prepare_token_transfer(%{token_type: "ERC-20"} = token_transfer) do

@ -439,6 +439,7 @@ defmodule Explorer.Etherscan do
from_address_hash from_address_hash
to_address_hash to_address_hash
amount amount
amounts
)a )a
defp list_token_transfers(address_hash, contract_address_hash, block_height, options) do defp list_token_transfers(address_hash, contract_address_hash, block_height, options) do
@ -453,7 +454,7 @@ defmodule Explorer.Etherscan do
offset: ^offset(options), offset: ^offset(options),
select: select:
merge(map(tt, ^@token_transfer_fields), %{ merge(map(tt, ^@token_transfer_fields), %{
token_id: tt.token_id, token_ids: tt.token_ids,
token_name: tkn.name, token_name: tkn.name,
token_symbol: tkn.symbol, token_symbol: tkn.symbol,
token_decimals: tkn.decimals, token_decimals: tkn.decimals,
@ -479,6 +480,7 @@ defmodule Explorer.Etherscan do
from_address_hash: tt.from_address_hash, from_address_hash: tt.from_address_hash,
to_address_hash: tt.to_address_hash, to_address_hash: tt.to_address_hash,
amount: tt.amount, amount: tt.amount,
amounts: tt.amounts,
transaction_nonce: t.nonce, transaction_nonce: t.nonce,
transaction_index: t.index, transaction_index: t.index,
transaction_gas: t.gas, transaction_gas: t.gas,
@ -490,7 +492,7 @@ defmodule Explorer.Etherscan do
block_number: b.number, block_number: b.number,
block_timestamp: b.timestamp, block_timestamp: b.timestamp,
confirmations: fragment("? - ?", ^block_height, t.block_number), confirmations: fragment("? - ?", ^block_height, t.block_number),
token_id: tt.token_id, token_ids: tt.token_ids,
token_name: tt.token_name, token_name: tt.token_name,
token_symbol: tt.token_symbol, token_symbol: tt.token_symbol,
token_decimals: tt.token_decimals, token_decimals: tt.token_decimals,

Loading…
Cancel
Save