19 lines
		
	
	
		
			356 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			19 lines
		
	
	
		
			356 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package native
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "github.com/ethereum/go-ethereum/core/vm"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								type Constructor func() vm.Tracer
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var tracers map[string]Constructor = make(map[string]Constructor)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func Register(name string, fn Constructor) {
							 | 
						||
| 
								 | 
							
									tracers[name] = fn
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func New(name string) (vm.Tracer, bool) {
							 | 
						||
| 
								 | 
							
									if fn, ok := tracers[name]; ok {
							 | 
						||
| 
								 | 
							
										return fn(), true
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									return nil, false
							 | 
						||
| 
								 | 
							
								}
							 |