当前位置: 首页>>代码示例>>Golang>>正文


Golang ethutil.Bytes2Hex函数代码示例

本文整理汇总了Golang中github.com/ethereum/eth-go/ethutil.Bytes2Hex函数的典型用法代码示例。如果您正苦于以下问题:Golang Bytes2Hex函数的具体用法?Golang Bytes2Hex怎么用?Golang Bytes2Hex使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了Bytes2Hex函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: mainLoop

func (self *JSRE) mainLoop() {
	// Subscribe to events
	reactor := self.ethereum.Reactor()
	reactor.Subscribe("newBlock", self.blockChan)

out:
	for {
		select {
		case <-self.quitChan:
			break out
		case block := <-self.blockChan:
			if _, ok := block.Resource.(*ethchain.Block); ok {
			}
		case object := <-self.changeChan:
			if stateObject, ok := object.Resource.(*ethchain.StateObject); ok {
				for _, cb := range self.objectCb[ethutil.Bytes2Hex(stateObject.Address())] {
					val, _ := self.vm.ToValue(ethpub.NewPStateObject(stateObject))
					cb.Call(cb, val)
				}
			} else if storageObject, ok := object.Resource.(*ethchain.StorageState); ok {
				for _, cb := range self.objectCb[ethutil.Bytes2Hex(storageObject.StateAddress)+ethutil.Bytes2Hex(storageObject.Address)] {
					val, _ := self.vm.ToValue(ethpub.NewPStorageState(storageObject))
					cb.Call(cb, val)
				}
			}
		}
	}
}
开发者ID:R15T3,项目名称:go-ethereum,代码行数:28,代码来源:javascript_runtime.go

示例2: Dump

func (self *State) Dump() []byte {
	world := World{
		Root:     ethutil.Bytes2Hex(self.Trie.Root.([]byte)),
		Accounts: make(map[string]Account),
	}

	self.Trie.NewIterator().Each(func(key string, value *ethutil.Value) {
		stateObject := NewStateObjectFromBytes([]byte(key), value.Bytes())

		account := Account{Balance: stateObject.Balance.String(), Nonce: stateObject.Nonce, CodeHash: ethutil.Bytes2Hex(stateObject.CodeHash)}
		account.Storage = make(map[string]string)

		stateObject.EachStorage(func(key string, value *ethutil.Value) {
			value.Decode()
			account.Storage[ethutil.Bytes2Hex([]byte(key))] = ethutil.Bytes2Hex(value.Bytes())
		})
		world.Accounts[ethutil.Bytes2Hex([]byte(key))] = account
	})

	json, err := json.MarshalIndent(world, "", "    ")
	if err != nil {
		fmt.Println("dump err", err)
	}

	return json
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:26,代码来源:dump.go

示例3: NewJSReciept

func NewJSReciept(contractCreation bool, creationAddress, hash, address []byte) *JSReceipt {
	return &JSReceipt{
		contractCreation,
		ethutil.Bytes2Hex(creationAddress),
		ethutil.Bytes2Hex(hash),
		ethutil.Bytes2Hex(address),
	}
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:8,代码来源:js_types.go

示例4: Transact

func (gui *Gui) Transact(recipient, value, gas, gasPrice, d string) (*ethpipe.JSReceipt, error) {
	var data string
	if len(recipient) == 0 {
		code, err := ethutil.Compile(d, false)
		if err != nil {
			return nil, err
		}
		data = ethutil.Bytes2Hex(code)
	} else {
		data = ethutil.Bytes2Hex(utils.FormatTransactionData(d))
	}

	return gui.pipe.Transact(gui.privateKey(), recipient, value, gas, gasPrice, data)
}
开发者ID:JosephGoulden,项目名称:go-ethereum,代码行数:14,代码来源:gui.go

示例5: EachStorage

func (self *JSPipe) EachStorage(addr string) string {
	var values []KeyVal
	object := self.World().SafeGet(ethutil.Hex2Bytes(addr))
	object.EachStorage(func(name string, value *ethutil.Value) {
		value.Decode()
		values = append(values, KeyVal{ethutil.Bytes2Hex([]byte(name)), ethutil.Bytes2Hex(value.Bytes())})
	})

	valuesJson, err := json.Marshal(values)
	if err != nil {
		return ""
	}

	return string(valuesJson)
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:15,代码来源:js_pipe.go

示例6: ValidateBlock

// Validates the current block. Returns an error if the block was invalid,
// an uncle or anything that isn't on the current block chain.
// Validation validates easy over difficult (dagger takes longer time = difficult)
func (sm *StateManager) ValidateBlock(block *Block) error {
	// TODO
	// 2. Check if the difficulty is correct

	// Check each uncle's previous hash. In order for it to be valid
	// is if it has the same block hash as the current
	previousBlock := sm.bc.GetBlock(block.PrevHash)
	for _, uncle := range block.Uncles {
		if bytes.Compare(uncle.PrevHash, previousBlock.PrevHash) != 0 {
			return ValidationError("Mismatch uncle's previous hash. Expected %x, got %x", previousBlock.PrevHash, uncle.PrevHash)
		}
	}

	diff := block.Time - previousBlock.Time
	if diff < 0 {
		return ValidationError("Block timestamp less then prev block %v (%v - %v)", diff, block.Time, sm.bc.CurrentBlock.Time)
	}

	/* XXX
	// New blocks must be within the 15 minute range of the last block.
	if diff > int64(15*time.Minute) {
		return ValidationError("Block is too far in the future of last block (> 15 minutes)")
	}
	*/

	// Verify the nonce of the block. Return an error if it's not valid
	if !sm.Pow.Verify(block.HashNoNonce(), block.Difficulty, block.Nonce) {
		return ValidationError("Block's nonce is invalid (= %v)", ethutil.Bytes2Hex(block.Nonce))
	}

	return nil
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:35,代码来源:state_manager.go

示例7: SecretToAddress

func (self *JSPipe) SecretToAddress(key string) string {
	pair, err := ethcrypto.NewKeyPairFromSec(ethutil.Hex2Bytes(key))
	if err != nil {
		return ""
	}

	return ethutil.Bytes2Hex(pair.Address())
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:8,代码来源:js_pipe.go

示例8: CompileMutan

func (self *JSPipe) CompileMutan(code string) string {
	data, err := self.Pipe.CompileMutan(code)
	if err != nil {
		return err.Error()
	}

	return ethutil.Bytes2Hex(data)
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:8,代码来源:js_pipe.go

示例9: Save

func (k *FileKeyStore) Save(session string, keyRing *KeyRing) error {
	var content []byte
	var err error
	var privateKeys []string
	var publicKeys []string
	var mnemonics []string
	var addresses []string
	keyRing.Each(func(keyPair *KeyPair) {
		privateKeys = append(privateKeys, ethutil.Bytes2Hex(keyPair.PrivateKey))
		publicKeys = append(publicKeys, ethutil.Bytes2Hex(keyPair.PublicKey))
		addresses = append(addresses, ethutil.Bytes2Hex(keyPair.Address()))
		mnemonics = append(mnemonics, keyPair.Mnemonic())
	})

	basename := session
	if session == "" {
		basename = "default"
	}

	path := path.Join(k.basedir, basename)
	content = []byte(strings.Join(privateKeys, "\n"))
	err = ioutil.WriteFile(path+".prv", content, 0600)
	if err != nil {
		return err
	}

	content = []byte(strings.Join(publicKeys, "\n"))
	err = ioutil.WriteFile(path+".pub", content, 0644)
	if err != nil {
		return err
	}

	content = []byte(strings.Join(addresses, "\n"))
	err = ioutil.WriteFile(path+".addr", content, 0644)
	if err != nil {
		return err
	}

	content = []byte(strings.Join(mnemonics, "\n"))
	err = ioutil.WriteFile(path+".mne", content, 0600)
	if err != nil {
		return err
	}

	return nil
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:46,代码来源:key_store.go

示例10: insertTransaction

func (gui *Gui) insertTransaction(window string, tx *ethchain.Transaction) {
	nameReg := ethpipe.New(gui.eth).World().Config().Get("NameReg")
	addr := gui.address()

	var inout string
	if bytes.Compare(tx.Sender(), addr) == 0 {
		inout = "send"
	} else {
		inout = "recv"
	}

	var (
		ptx  = ethpipe.NewJSTx(tx)
		send = nameReg.Storage(tx.Sender())
		rec  = nameReg.Storage(tx.Recipient)
		s, r string
	)

	if tx.CreatesContract() {
		rec = nameReg.Storage(tx.CreationAddress())
	}

	if send.Len() != 0 {
		s = strings.Trim(send.Str(), "\x00")
	} else {
		s = ethutil.Bytes2Hex(tx.Sender())
	}
	if rec.Len() != 0 {
		r = strings.Trim(rec.Str(), "\x00")
	} else {
		if tx.CreatesContract() {
			r = ethutil.Bytes2Hex(tx.CreationAddress())
		} else {
			r = ethutil.Bytes2Hex(tx.Recipient)
		}
	}
	ptx.Sender = s
	ptx.Address = r

	if window == "post" {
		gui.getObjectByName("transactionView").Call("addTx", ptx, inout)
	} else {
		gui.getObjectByName("pendingTxView").Call("addTx", ptx, inout)
	}
}
开发者ID:JosephGoulden,项目名称:go-ethereum,代码行数:45,代码来源:gui.go

示例11: NewJSTx

func NewJSTx(tx *ethchain.Transaction) *JSTransaction {
	hash := ethutil.Bytes2Hex(tx.Hash())
	receiver := ethutil.Bytes2Hex(tx.Recipient)
	if receiver == "0000000000000000000000000000000000000000" {
		receiver = ethutil.Bytes2Hex(tx.CreationAddress())
	}
	sender := ethutil.Bytes2Hex(tx.Sender())
	createsContract := tx.CreatesContract()

	var data string
	if tx.CreatesContract() {
		data = strings.Join(ethchain.Disassemble(tx.Data), "\n")
	} else {
		data = ethutil.Bytes2Hex(tx.Data)
	}

	return &JSTransaction{ref: tx, Hash: hash, Value: ethutil.CurrencyToString(tx.Value), Address: receiver, Contract: tx.CreatesContract(), Gas: tx.Gas.String(), GasPrice: tx.GasPrice.String(), Data: data, Sender: sender, CreatesContract: createsContract, RawData: ethutil.Bytes2Hex(tx.Data)}
}
开发者ID:vmatekole,项目名称:eth-go,代码行数:18,代码来源:js_types.go

示例12: EachStorage

func (self *JSStateObject) EachStorage(call otto.FunctionCall) otto.Value {
	cb := call.Argument(0)
	self.JSObject.EachStorage(func(key string, value *ethutil.Value) {
		value.Decode()

		cb.Call(self.eth.toVal(self), self.eth.toVal(key), self.eth.toVal(ethutil.Bytes2Hex(value.Bytes())))
	})

	return otto.UndefinedValue()
}
开发者ID:JosephGoulden,项目名称:go-ethereum,代码行数:10,代码来源:types.go

示例13: StartDbWithContractAndData

func (self *UiLib) StartDbWithContractAndData(contractHash, data string) {
	dbWindow := NewDebuggerWindow(self)
	object := self.eth.StateManager().CurrentState().GetStateObject(ethutil.Hex2Bytes(contractHash))
	if len(object.Code) > 0 {
		dbWindow.SetCode("0x" + ethutil.Bytes2Hex(object.Code))
	}
	dbWindow.SetData("0x" + data)

	dbWindow.Show()
}
开发者ID:JosephGoulden,项目名称:go-ethereum,代码行数:10,代码来源:ui_lib.go

示例14: loadAddressBook

func (gui *Gui) loadAddressBook() {
	gui.win.Root().Call("clearAddress")

	nameReg := ethpub.EthereumConfig(gui.eth.StateManager()).NameReg()
	if nameReg != nil {
		nameReg.State().EachStorage(func(name string, value *ethutil.Value) {
			if name[0] != 0 {
				gui.win.Root().Call("addAddress", struct{ Name, Address string }{name, ethutil.Bytes2Hex(value.Bytes())})
			}
		})
	}
}
开发者ID:R15T3,项目名称:go-ethereum,代码行数:12,代码来源:gui.go

示例15: loadAddressBook

func (gui *Gui) loadAddressBook() {
	view := gui.getObjectByName("infoView")
	view.Call("clearAddress")

	nameReg := gui.pipe.World().Config().Get("NameReg")
	if nameReg != nil {
		nameReg.EachStorage(func(name string, value *ethutil.Value) {
			if name[0] != 0 {
				value.Decode()

				view.Call("addAddress", struct{ Name, Address string }{name, ethutil.Bytes2Hex(value.Bytes())})
			}
		})
	}
}
开发者ID:JosephGoulden,项目名称:go-ethereum,代码行数:15,代码来源:gui.go


注:本文中的github.com/ethereum/eth-go/ethutil.Bytes2Hex函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。