| 
									
										
										
										
											2017-03-27 11:52:39 +02:00
										 |  |  | // Code generated by github.com/fjl/gencodec. DO NOT EDIT. | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | package core | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"encoding/json" | 
					
						
							|  |  |  | 	"errors" | 
					
						
							|  |  |  | 	"math/big" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/ethereum/go-ethereum/common" | 
					
						
							|  |  |  | 	"github.com/ethereum/go-ethereum/common/hexutil" | 
					
						
							|  |  |  | 	"github.com/ethereum/go-ethereum/common/math" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | var _ = (*genesisAccountMarshaling)(nil) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-27 11:52:39 +02:00
										 |  |  | func (g GenesisAccount) MarshalJSON() ([]byte, error) { | 
					
						
							| 
									
										
										
										
											2017-04-06 10:38:21 +02:00
										 |  |  | 	type GenesisAccount struct { | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | 		Code       hexutil.Bytes               `json:"code,omitempty"` | 
					
						
							|  |  |  | 		Storage    map[storageJSON]storageJSON `json:"storage,omitempty"` | 
					
						
							|  |  |  | 		Balance    *math.HexOrDecimal256       `json:"balance" gencodec:"required"` | 
					
						
							|  |  |  | 		Nonce      math.HexOrDecimal64         `json:"nonce,omitempty"` | 
					
						
							|  |  |  | 		PrivateKey hexutil.Bytes               `json:"secretKey,omitempty"` | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-04-06 10:38:21 +02:00
										 |  |  | 	var enc GenesisAccount | 
					
						
							| 
									
										
										
										
											2017-03-27 11:52:39 +02:00
										 |  |  | 	enc.Code = g.Code | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | 	if g.Storage != nil { | 
					
						
							|  |  |  | 		enc.Storage = make(map[storageJSON]storageJSON, len(g.Storage)) | 
					
						
							|  |  |  | 		for k, v := range g.Storage { | 
					
						
							|  |  |  | 			enc.Storage[storageJSON(k)] = storageJSON(v) | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	enc.Balance = (*math.HexOrDecimal256)(g.Balance) | 
					
						
							| 
									
										
										
										
											2017-03-27 11:52:39 +02:00
										 |  |  | 	enc.Nonce = math.HexOrDecimal64(g.Nonce) | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | 	enc.PrivateKey = g.PrivateKey | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	return json.Marshal(&enc) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (g *GenesisAccount) UnmarshalJSON(input []byte) error { | 
					
						
							| 
									
										
										
										
											2017-04-06 10:38:21 +02:00
										 |  |  | 	type GenesisAccount struct { | 
					
						
							| 
									
										
										
										
											2018-01-08 14:13:22 +01:00
										 |  |  | 		Code       *hexutil.Bytes              `json:"code,omitempty"` | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | 		Storage    map[storageJSON]storageJSON `json:"storage,omitempty"` | 
					
						
							|  |  |  | 		Balance    *math.HexOrDecimal256       `json:"balance" gencodec:"required"` | 
					
						
							|  |  |  | 		Nonce      *math.HexOrDecimal64        `json:"nonce,omitempty"` | 
					
						
							| 
									
										
										
										
											2018-01-08 14:13:22 +01:00
										 |  |  | 		PrivateKey *hexutil.Bytes              `json:"secretKey,omitempty"` | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-04-06 10:38:21 +02:00
										 |  |  | 	var dec GenesisAccount | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	if err := json.Unmarshal(input, &dec); err != nil { | 
					
						
							|  |  |  | 		return err | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	if dec.Code != nil { | 
					
						
							| 
									
										
										
										
											2018-01-08 14:13:22 +01:00
										 |  |  | 		g.Code = *dec.Code | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	if dec.Storage != nil { | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | 		g.Storage = make(map[common.Hash]common.Hash, len(dec.Storage)) | 
					
						
							|  |  |  | 		for k, v := range dec.Storage { | 
					
						
							|  |  |  | 			g.Storage[common.Hash(k)] = common.Hash(v) | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	if dec.Balance == nil { | 
					
						
							|  |  |  | 		return errors.New("missing required field 'balance' for GenesisAccount") | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-04-06 10:38:21 +02:00
										 |  |  | 	g.Balance = (*big.Int)(dec.Balance) | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	if dec.Nonce != nil { | 
					
						
							| 
									
										
										
										
											2017-04-06 10:38:21 +02:00
										 |  |  | 		g.Nonce = uint64(*dec.Nonce) | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | 	if dec.PrivateKey != nil { | 
					
						
							| 
									
										
										
										
											2018-01-08 14:13:22 +01:00
										 |  |  | 		g.PrivateKey = *dec.PrivateKey | 
					
						
							| 
									
										
										
										
											2017-07-11 13:49:14 +02:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-03-02 14:03:33 +01:00
										 |  |  | 	return nil | 
					
						
							|  |  |  | } |