Ethereum & EVM compatible
getEthereumSignedTransaction
The DCENT Android SDK provides functions for signing transaction of coins.
This function is for:
ETHEREUM(ETH) - ethereumETH_CLASSIC(ETC) - ethereum classicETHEREUM_GOERLI(ETHt) - ethereum goerliFLARE_COSTON(CFLR) - flare network costonRSK(RBTC)- rsk smart bitcoinRSK_TESTNET(RBTCt) - rsk smart bitcoin testnetXDC(XDC) - xdc networkXDC_APOTHEM(XDCt) - xdc apothemBSC(BNB) - binance smart chainBSC_TESTNET(BNBt) - binance smart chain testnetPOLYGON(MATIC) - polygonPOLYGON_TESTNET(MATICt) - polygon testnetETH_CHAIN- other evm networks
Parameters
| Parameter | Type | Description |
|---|---|---|
| coinType | CoinType | ethereum coin type. |
| transaction | EthereumTransanction | ethereum transaction parameters. |
class EthereumTransanction
| Name | Type | Description |
|---|---|---|
| hdKeyPath | Bip44KeyPath | sign key path for ethereum transaction |
| nonce | String | account nonce for ethereum transaction |
| toAddr | String | recipient's address of ethereum transaction |
| amount | String | amount of ether to be sent. ( WEI unit value ) |
| gasLimit | String | gas limit value of ethereum transaction |
| gasPrice | String | gas price for ethereum transaction |
| data | String | transaction data of ethereum transaction |
| chainId | String | chain id |
| symbol | String | symbol of contract for ethereum transaction |
| tx_type | byte | (optional)Type of ethereum transaction |
| max_priority_fpg | String | (optional)max_priority_fpg of ethereum transaction |
| max_fee_per_gas | String | (optional)max_fee_per gas of ethereum transaction |
| access_list | String | (optional)access_list of ethereum transaction |
Returns
String - signed transaction.
Requirements
- Refer to "D`CENT Firmware Update History" to determine which DCENT Biometric Wallet versions are supported on each network.
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 tokenETC_ERC20- ethereum classic erc20 tokenERC20_KOVAN- ethereum kovan erc20 tokenERC20_ROPSTEN- ethereum ropsten erc20 tokenERC20_GOERLI- ethereum goerli erc20 tokenERC20_RINKEBY- ethereum rinkeby erc20 tokenFRC20_COSTON- flare network coston tokenRRC20- rsk smart bitcoin tokenRRC20_TESTNET- rsk smart bitcoin testnet tokenXRC20- xdc xrc20 tokenXRC20_APOTHEM- xdc apothem xrc20 tokenBSC_BEP20- binance smart chain bep20 tokenBSC_BEP20_TESTNET- binance smart chain bep20 testnet tokenPOLYGON_ERC20- polygon erc20 tokenPOLYGON_ERC20_TESTNET- polygon erc20 testnet tokenECH_ERC20- other evm erc20 token
Parameters
| Parameter | Type | Description |
|---|---|---|
| coinType | CoinType | erc20 type. |
| transaction | TokenTransaction | token transaction parameters. |
class TokenTransaction
| Name | Type | Description |
|---|---|---|
| hdKeyPath | Bip44KeyPath | sign key path for ethereum transaction |
| nonce | String | account nonce for ethereum transaction |
| toAddr | String | address to send |
| amount | String | amount of ETH to send |
| gasLimit | String | gas limit value |
| gasPrice | String | gas price for ethereum transaction |
| tokenName | String | token name of contract for ERC20 transaction |
| contractAddress | String | address of contract for ERC20 transaction |
| decimals | String | decimals of contract for ERC20 transaction |
| symbol | String | symbol of contract for ERC20 transaction |
| chainId | String | chain id |
| feeSymbol | String | symbol of fee Account for ERC20 transaction |
Returns
String - signed transaction.
Requirements
- Refer to "D`CENT Firmware Update History" to determine which DCENT Biometric Wallet versions are supported on each network.
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) - ethereumETHEREUM_GOERLI(ETHt) - ethereum goerliRSK(RBTC)- rsk smart bitcoinRSK_TESTNET(RBTCt) - rsk smart bitcoin testnetXDC(XDC) - xdc networkXDC_APOTHEM(XDCt) - xdc apothemBSC(BNB) - binance smart chainBSC_TESTNET(BNBt) - binance smart chain testnetPOLYGON(MATIC) - polygonPOLYGON_TESTNET(MATICt) - polygon testnetETH_CHAIN- other evm networksKLAYTN(KLAY) - klaytnKLAY_BAOBAB(KLAYt) - klaytn baobab
Parameters
| Parameter | Type | Description |
|---|---|---|
| coinType | CoinType | coin type. |
| transaction | EthMesageSignData | ethereum message sign data parameters. |
| command | String | data 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
| Name | Type | Description |
|---|---|---|
| hdKeyPath | Bip44KeyPath | sign key path for ethereum sign data transaction |
| data | String | message 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");