Skip to main content

Ethereum & EVM compatible

getEthereumSignedTransaction

The DCENT Android SDK provides functions for signing transaction of coins.

This function is for:

  • ETHEREUM (ETH) - ethereum
  • ETH_CLASSIC (ETC) - ethereum classic
  • ETHEREUM_GOERLI (ETHt) - ethereum goerli
  • FLARE_COSTON (CFLR) - flare network coston
  • RSK (RBTC)- rsk smart bitcoin
  • RSK_TESTNET (RBTCt) - rsk smart bitcoin testnet
  • XDC (XDC) - xdc network
  • XDC_APOTHEM (XDCt) - xdc apothem
  • BSC (BNB) - binance smart chain
  • BSC_TESTNET (BNBt) - binance smart chain testnet
  • POLYGON (MATIC) - polygon
  • POLYGON_TESTNET (MATICt) - polygon testnet
  • ETH_CHAIN - other evm networks

Parameters

ParameterTypeDescription
coinTypeCoinTypeethereum coin type.
transactionEthereumTransanctionethereum transaction parameters.

class EthereumTransanction

NameTypeDescription
hdKeyPathBip44KeyPathsign key path for ethereum transaction
nonceStringaccount nonce for ethereum transaction
toAddrStringrecipient's address of ethereum transaction
amountStringamount of ether to be sent. ( WEI unit value )
gasLimitStringgas limit value of ethereum transaction
gasPriceStringgas price for ethereum transaction
dataStringtransaction data of ethereum transaction
chainIdStringchain id
symbolStringsymbol of contract for ethereum transaction
tx_typebyte(optional)Type of ethereum transaction
max_priority_fpgString(optional)max_priority_fpg of ethereum transaction
max_fee_per_gasString(optional)max_fee_per gas of ethereum transaction
access_listString(optional)access_list of ethereum transaction

Returns

String - signed transaction.

Requirements

Example

EthereumTransanction ethereumTransanction;
ethereumTransanction = new EthereumTransanction.Builder()
.keyPath(Bip44KeyPath.valueOf("m/44'/60'/0'/0/0"))
.nonce("14")
.toAddr("0xe5c23dAa6480e45141647E5AeB321832150a28D4")
.amount("500000000000000")
.gasLimit("21000")
.gasPrice("6000000000")
.data("0x")
.chainId("1")
.symbol("ETH")
.build();
String response = mDcentmanager.getEthereumSignedTransaction(CoinType.ETHEREUM, ethereumTransanction);

getTokenSignedTransaction

This function is for:

  • ERC20 - ethereum erc20 token
  • ETC_ERC20 - ethereum classic erc20 token
  • ERC20_KOVAN - ethereum kovan erc20 token
  • ERC20_ROPSTEN - ethereum ropsten erc20 token
  • ERC20_GOERLI - ethereum goerli erc20 token
  • ERC20_RINKEBY - ethereum rinkeby erc20 token
  • FRC20_COSTON - flare network coston token
  • RRC20 - rsk smart bitcoin token
  • RRC20_TESTNET - rsk smart bitcoin testnet token
  • XRC20 - xdc xrc20 token
  • XRC20_APOTHEM - xdc apothem xrc20 token
  • BSC_BEP20 - binance smart chain bep20 token
  • BSC_BEP20_TESTNET - binance smart chain bep20 testnet token
  • POLYGON_ERC20 - polygon erc20 token
  • POLYGON_ERC20_TESTNET - polygon erc20 testnet token
  • ECH_ERC20 - other evm erc20 token

Parameters

ParameterTypeDescription
coinTypeCoinTypeerc20 type.
transactionTokenTransactiontoken transaction parameters.

class TokenTransaction

NameTypeDescription
hdKeyPathBip44KeyPathsign key path for ethereum transaction
nonceStringaccount nonce for ethereum transaction
toAddrStringaddress to send
amountStringamount of ETH to send
gasLimitStringgas limit value
gasPriceStringgas price for ethereum transaction
tokenNameStringtoken name of contract for ERC20 transaction
contractAddressStringaddress of contract for ERC20 transaction
decimalsStringdecimals of contract for ERC20 transaction
symbolStringsymbol of contract for ERC20 transaction
chainIdStringchain id
feeSymbolStringsymbol of fee Account for ERC20 transaction

Returns

String - signed transaction.

Requirements

Example

TokenTransaction erc20transaction;
erc20transaction = new TokenTransaction.Builder()
.keyPath(Bip44KeyPath.valueOf("m/44'/60'/0'/0/0"))
.nonce("14")
.toAddr("0xe5c23dAa6480e45141647E5AeB321832150a28D4")
.amount("60000000000000000")
.gasLimit("70000")
.gasPrice("3000000000")
.tokenName("OmiseGO")
.contractAddress("0xd26114cd6ee289accf82350c8d8487fedb8a0c07")
.decimals("18")
.symbol("OMG")
.chainId("1")
.feeSymbol("ETH")
.build();

String response = mDcentmanager.getTokenSignedTransaction(CoinType.ERC20, erc20transaction)

getEthereumMessageSigned

Get the sign value of "EVM" message sign(personal_sign & signTypedData).

This function is for:

  • ETHEREUM (ETH) - ethereum
  • ETHEREUM_GOERLI (ETHt) - ethereum goerli
  • RSK (RBTC)- rsk smart bitcoin
  • RSK_TESTNET (RBTCt) - rsk smart bitcoin testnet
  • XDC (XDC) - xdc network
  • XDC_APOTHEM (XDCt) - xdc apothem
  • BSC (BNB) - binance smart chain
  • BSC_TESTNET (BNBt) - binance smart chain testnet
  • POLYGON (MATIC) - polygon
  • POLYGON_TESTNET (MATICt) - polygon testnet
  • ETH_CHAIN - other evm networks
  • KLAYTN (KLAY) - klaytn
  • KLAY_BAOBAB (KLAYt) - klaytn baobab

Parameters

ParameterTypeDescription
coinTypeCoinTypecoin type.
transactionEthMesageSignDataethereum message sign data parameters.
commandStringdata sign command.("msg_sign" | "sign_data")
- "msg_sign" for personal_sign or 'eth_sign' of EVM
- "sign_data" for signTypedData(EIP-712) of EVM

class EthMesageSignData

NameTypeDescription
hdKeyPathBip44KeyPathsign key path for ethereum sign data transaction
dataStringmessage for signing

Returns

HashMap<String, String> - signedData{address,sign}

Requirements

  • DCENT Biometric Wallet version 1.3.0. or higher is required.
    • (for EIP-712) version 2.11.1. or higher is required.

Example(ethereum personal_sign)

EthMesageSignData ethMesageSignData;
ethMesageSignData = new EthMesageSignData.Builder()
.keyPath(Bip44KeyPath.valueOf("m/44'/60'/0'/0/0"))
.data("Message Sign TEST")
.build();
HashMap<String, String> response = mDcentmanager.getEthereumMessageSigned(CoinType.ETHEREUM, ethMesageSignData, "msg_sign");
String address = response.get("address");
String sign = response.get("sign");