| 
									
										
										
										
											2015-06-08 10:23:54 +02:00
										 |  |  | package api | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-09 10:59:44 +02:00
										 |  |  | import ( | 
					
						
							|  |  |  | 	"strings" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/ethereum/go-ethereum/rpc/shared" | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2015-06-08 10:23:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-08 11:01:02 +02:00
										 |  |  | const ( | 
					
						
							| 
									
										
										
										
											2015-06-09 16:06:51 +02:00
										 |  |  | 	AdminApiName    = "admin" | 
					
						
							| 
									
										
										
										
											2015-06-09 10:59:44 +02:00
										 |  |  | 	EthApiName      = "eth" | 
					
						
							|  |  |  | 	DebugApiName    = "debug" | 
					
						
							|  |  |  | 	MergedApiName   = "merged" | 
					
						
							|  |  |  | 	MinerApiName    = "miner" | 
					
						
							|  |  |  | 	NetApiName      = "net" | 
					
						
							| 
									
										
										
										
											2015-06-10 12:35:12 +02:00
										 |  |  | 	ShhApiName      = "shh" | 
					
						
							|  |  |  | 	TxPoolApiName   = "txpool" | 
					
						
							| 
									
										
										
										
											2015-06-09 10:59:44 +02:00
										 |  |  | 	PersonalApiName = "personal" | 
					
						
							|  |  |  | 	Web3ApiName     = "web3" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var ( | 
					
						
							| 
									
										
										
										
											2015-06-08 11:01:02 +02:00
										 |  |  | 	// List with all API's which are offered over the IPC interface by default | 
					
						
							| 
									
										
										
										
											2015-06-09 10:59:44 +02:00
										 |  |  | 	DefaultIpcApis = strings.Join([]string{ | 
					
						
							| 
									
										
										
										
											2015-06-10 12:35:12 +02:00
										 |  |  | 		AdminApiName, EthApiName, DebugApiName, MinerApiName, NetApiName, | 
					
						
							|  |  |  | 		ShhApiName, TxPoolApiName, PersonalApiName, Web3ApiName, | 
					
						
							| 
									
										
										
										
											2015-06-09 10:59:44 +02:00
										 |  |  | 	}, ",") | 
					
						
							| 
									
										
										
										
											2015-06-08 11:01:02 +02:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-08 10:23:54 +02:00
										 |  |  | // Ethereum RPC API interface | 
					
						
							|  |  |  | type EthereumApi interface { | 
					
						
							| 
									
										
										
										
											2015-06-08 12:43:58 +02:00
										 |  |  | 	// API identifier | 
					
						
							|  |  |  | 	Name() string | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-08 10:23:54 +02:00
										 |  |  | 	// API version | 
					
						
							|  |  |  | 	ApiVersion() string | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-08 10:23:54 +02:00
										 |  |  | 	// Execute the given request and returns the response or an error | 
					
						
							|  |  |  | 	Execute(*shared.Request) (interface{}, error) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// List of supported RCP methods this API provides | 
					
						
							|  |  |  | 	Methods() []string | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2015-06-08 12:43:58 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Merge multiple API's to a single API instance | 
					
						
							|  |  |  | func Merge(apis ...EthereumApi) EthereumApi { | 
					
						
							|  |  |  | 	return newMergedApi(apis...) | 
					
						
							|  |  |  | } |