func (self *StateObject) Copy() *StateObject { stateObject := NewStateObject(self.Address(), self.db) stateObject.balance.Set(self.balance) stateObject.codeHash = common.CopyBytes(self.codeHash) stateObject.nonce = self.nonce stateObject.trie = self.trie stateObject.code = common.CopyBytes(self.code) stateObject.initCode = common.CopyBytes(self.initCode) stateObject.storage = self.storage.Copy() stateObject.remove = self.remove stateObject.dirty = self.dirty stateObject.deleted = self.deleted return stateObject }
func (db *MemDatabase) Put(key []byte, value []byte) error { db.lock.Lock() defer db.lock.Unlock() db.db[string(key)] = common.CopyBytes(value) return nil }
func (b *memBatch) Put(key, value []byte) error { b.lock.Lock() defer b.lock.Unlock() b.writes = append(b.writes, kv{key, common.CopyBytes(value)}) return nil }
func NewTransaction(nonce uint64, to common.Address, amount, gasLimit, gasPrice *big.Int, data []byte) *Transaction { if len(data) > 0 { data = common.CopyBytes(data) } d := txdata{ AccountNonce: nonce, Recipient: &to, Payload: data, Amount: new(big.Int), GasLimit: new(big.Int), Price: new(big.Int), R: new(big.Int), S: new(big.Int), } if amount != nil { d.Amount.Set(amount) } if gasLimit != nil { d.GasLimit.Set(gasLimit) } if gasPrice != nil { d.Price.Set(gasPrice) } return &Transaction{data: d} }
func NewContractCreation(nonce uint64, amount, gasLimit, gasPrice *big.Int, data []byte) *Transaction { if len(data) > 0 { data = common.CopyBytes(data) } return &Transaction{data: txdata{ AccountNonce: nonce, Recipient: nil, Amount: new(big.Int).Set(amount), GasLimit: new(big.Int).Set(gasLimit), Price: new(big.Int).Set(gasPrice), Payload: data, R: new(big.Int), S: new(big.Int), }} }
func (tx *Transaction) Data() []byte { return common.CopyBytes(tx.data.Payload) }
func (b *Block) Extra() []byte { return common.CopyBytes(b.header.Extra) }
// NewReceipt creates a barebone transaction receipt, copying the init fields. func NewReceipt(root []byte, cumulativeGasUsed *big.Int) *Receipt { return &Receipt{PostState: common.CopyBytes(root), CumulativeGasUsed: new(big.Int).Set(cumulativeGasUsed)} }