Sending Transactions
Sending Transactions
Transactions are a formal action on a blockchain. They are always initiated in OneKey Browser Extension with a call to the eth_sendTransaction
method. They can involve a simple sending of ether, may result in sending tokens, creating a new smart contract, or changing state on the blockchain in any number of ways. They are always initiated by a signature from an external account, or a simple key pair.
In OneKey Browser Extension, using the onekey.request
method directly, sending a transaction will involve composing an options object like this:
Transaction Parameters
Many transaction parameters are handled for you by OneKey Browser Extension, but it's good to know what all the parameters do.
Nonce [ignored]
This field is ignored by OneKey Browser Extension.
In Ethereum every transaction has a nonce. This is so that each transaction can only be processed by the blockchain once. Additionally, to be a valid transaction, the nonce must either be 0
, or a transaction with the previous number must have already been processed.
That means that transactions are always processed in order for a given account, and so incrementing nonces is a very sensitive matter that is easy to mess up, especially when a user is interacting with multiple applications with pending transactions using the same account, potentially across multiple devices.
For these reasons, OneKey Browser Extension currently does not provide application developers any way to customize the nonce of transactions it suggests, and instead assists the user in managing their transaction queue themselves.
Gas Price [optional]
Optional parameter - best used on private blockchains.
In Ethereum, the pool of pending transactions offer their gas price as a sort of auction bid to the validators to include this transaction in a block in exchange for a transaction fee. That means high gas prices can mean faster processing, but also more expensive transactions.
OneKey Browser Extension helps users select a competitive gas price on the Ethereum Main Network and popular test networks. We make requests to an API maintained by our friends at MyCrypto and allow users to choose between "slow," "medium," and "fast" options for their gas price.
We cannot know about the gas market on all blockchains because it requires some deep analysis. For this reason, while you can safely ignore this parameter on our main hosted networks, you may want to suggest a gas price in situations where your application knows more about the target network than we do.
Gas Limit [optional]
Optional parameter. Rarely useful to Dapp developers.
Gas limit is a highly optional parameter, and we automatically calculate a reasonable price for it. You will probably know that your smart contract benefits from a custom gas limit if it ever does for some reason.
To [semi-optional]
A hex-encoded Ethereum address. Required for transactions with a recipient (all transactions except for contract creation).
Contract creation occurs when there is no to
value but there is a data
value.
Value [optional]
Data [semi-optional]
Required for smart contract creation.
Chain ID [currently ignored]
Chain ID is currently derived by the user's current selected network at onekey.networkVersion
. In the future we will probably allow a way to connect to multiple networks at once, at which point this parameter will become important, so it may be useful to be in the habit of including now.
Last updated
Was this helpful?