aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-05-28 18:06:09 +0800
committerobscuren <geffobscura@gmail.com>2014-05-28 18:06:09 +0800
commit9988b1a04710e03ce7ed4b23393e2e90f06889f9 (patch)
tree82551f1c24a74c960ab65d6dcd2da492498f08fe /ethchain
parent73761f7af64432b6946934c3b1db646d8e99ef07 (diff)
downloaddexon-9988b1a04710e03ce7ed4b23393e2e90f06889f9.tar.gz
dexon-9988b1a04710e03ce7ed4b23393e2e90f06889f9.tar.zst
dexon-9988b1a04710e03ce7ed4b23393e2e90f06889f9.zip
Sort transactions based on the nonce
* Added a transaction sorter
Diffstat (limited to 'ethchain')
-rw-r--r--ethchain/transaction.go28
1 files changed, 12 insertions, 16 deletions
diff --git a/ethchain/transaction.go b/ethchain/transaction.go
index 2c5615f99..2cb946b3b 100644
--- a/ethchain/transaction.go
+++ b/ethchain/transaction.go
@@ -147,22 +147,6 @@ func (tx *Transaction) RlpValueDecode(decoder *ethutil.Value) {
if len(tx.Recipient) == 0 {
tx.contractCreation = true
}
-
- /*
- // If the list is of length 10 it's a contract creation tx
- if decoder.Len() == 10 {
- tx.contractCreation = true
- tx.Init = decoder.Get(6).Bytes()
-
- tx.v = byte(decoder.Get(7).Uint())
- tx.r = decoder.Get(8).Bytes()
- tx.s = decoder.Get(9).Bytes()
- } else {
- tx.v = byte(decoder.Get(6).Uint())
- tx.r = decoder.Get(7).Bytes()
- tx.s = decoder.Get(8).Bytes()
- }
- */
}
func (tx *Transaction) String() string {
@@ -228,3 +212,15 @@ func (self *Receipt) String() string {
self.PostState,
self.CumulativeGasUsed)
}
+
+// Transaction slice type for basic sorting
+type Transactions []*Transaction
+
+func (s Transactions) Len() int { return len(s) }
+func (s Transactions) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+
+type TxByNonce struct{ Transactions }
+
+func (s TxByNonce) Less(i, j int) bool {
+ return s.Transactions[i].Nonce < s.Transactions[j].Nonce
+}