/
sell_coin.go
48 lines (39 loc) 路 1.12 KB
/
sell_coin.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package transaction
import (
"github.com/ethereum/go-ethereum/rlp"
"math/big"
)
// Transaction for selling one coin (owned by sender) in favour of another coin in a system.
// CoinToSell - Symbol of a coin to give. ValueToSell - Amount of CoinToSell to give.
// CoinToBuy - Symbol of a coin to get. MinimumValueToBuy - Minimum value of coins to get.
type SellCoinData struct {
CoinToSell Coin
ValueToSell *big.Int
CoinToBuy Coin
MinimumValueToBuy *big.Int
}
func NewSellCoinData() *SellCoinData {
return &SellCoinData{}
}
func (d *SellCoinData) SetCoinToSell(symbol string) *SellCoinData {
copy(d.CoinToSell[:], symbol)
return d
}
func (d *SellCoinData) SetCoinToBuy(symbol string) *SellCoinData {
copy(d.CoinToBuy[:], symbol)
return d
}
func (d *SellCoinData) SetValueToSell(value *big.Int) *SellCoinData {
d.ValueToSell = value
return d
}
func (d *SellCoinData) SetMinimumValueToBuy(value *big.Int) *SellCoinData {
d.MinimumValueToBuy = value
return d
}
func (d *SellCoinData) encode() ([]byte, error) {
return rlp.EncodeToBytes(d)
}
func (d *SellCoinData) fee() fee {
return feeTypeSellCoin
}