Implemented rpc server method GetRawTransaction (#135)
* Added utility function GetVarSize * 1) Added Size method: this implied that Fixed8 implements now the serializable interface. 2) Added few arithmetic operation (Add, Sub, div): this will be used to calculated networkfeeand feePerByte. Changed return value of the Value() method to int instead of int64. Modified fixed8_test accordingly. * Implemented Size or MarshalJSON method. - Structs accepting the Size method implement the serializable interface. - Structs accepting the MarshalJSON method implements the customized json marshaller interface. * Added fee calculation * Implemented rcp server method GetRawTransaction * Updated Tests * Fixed: 1) NewFixed8 will accept as input int64 2) race condition affecting configDeafault, blockchainDefault * Simplified Size calculation * 1) Removed global variable blockchainDefault, configDefault 2) Extended Blockchainer interface to include the methods: References, FeePerByte, SystemFee, NetworkFee 3) Deleted fee_test.go, fee.go. Moved corresponding methods to blockchain_test.go and blockchain.go respectively 4) Amended tx_raw_output.go * Simplified GetVarSize Method * Replaced ValueAtAndType with ValueWithType * Cosmetic changes + Added test case getrawtransaction_7 * Clean up Print statement * Filled up keys * Aligned verbose logic with the C#-neo implementation * Implemented @Kim requests Refactor server_test.go * Small fixes * Fixed verbose logic Added more tests Cosmetic changes * Replaced assert.NoError with require.NoError * Fixed tests by adding context.Background() as argument * Fixed tests
This commit is contained in:
parent
20bb05b335
commit
19201dcf52
23 changed files with 859 additions and 151 deletions
|
@ -41,14 +41,19 @@ func (f Fixed8) String() string {
|
|||
|
||||
// Value returns the original value representing the Fixed8.
|
||||
func (f Fixed8) Value() int64 {
|
||||
return int64(f) / int64(decimals)
|
||||
return int64(f) / decimals
|
||||
}
|
||||
|
||||
// NewFixed8 return a new Fixed8 type multiplied by decimals.
|
||||
func NewFixed8(val int) Fixed8 {
|
||||
// NewFixed8 returns a new Fixed8 type multiplied by decimals.
|
||||
func NewFixed8(val int64) Fixed8 {
|
||||
return Fixed8(decimals * val)
|
||||
}
|
||||
|
||||
// NewFixed8FromFloat returns a new Fixed8 type multiplied by decimals.
|
||||
func NewFixed8FromFloat(val float64) Fixed8 {
|
||||
return Fixed8(int64(decimals * val))
|
||||
}
|
||||
|
||||
// Fixed8DecodeString parses s which must be a fixed point number
|
||||
// with precision up to 10^-8
|
||||
func Fixed8DecodeString(s string) (Fixed8, error) {
|
||||
|
@ -94,7 +99,32 @@ func (f *Fixed8) UnmarshalJSON(data []byte) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// Size returns the size in number of bytes of Fixed8.
|
||||
func (f *Fixed8) Size() int {
|
||||
return 8
|
||||
}
|
||||
|
||||
// MarshalJSON implements the json marshaller interface.
|
||||
func (f Fixed8) MarshalJSON() ([]byte, error) {
|
||||
return []byte(`"` + f.String() + `"`), nil
|
||||
}
|
||||
|
||||
// Satoshi defines the value of a 'Satoshi'.
|
||||
func Satoshi() Fixed8 {
|
||||
return NewFixed8(1)
|
||||
}
|
||||
|
||||
// Div implements Fixd8 division operator.
|
||||
func (f Fixed8) Div(i int64) Fixed8 {
|
||||
return NewFixed8(f.Value() / i)
|
||||
}
|
||||
|
||||
// Add implements Fixd8 addition operator.
|
||||
func (f Fixed8) Add(g Fixed8) Fixed8 {
|
||||
return NewFixed8(f.Value() + g.Value())
|
||||
}
|
||||
|
||||
// Sub implements Fixd8 subtraction operator.
|
||||
func (f Fixed8) Sub(g Fixed8) Fixed8 {
|
||||
return NewFixed8(f.Value() - g.Value())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue