Loading...
Searching...
No Matches
address_manager.cpp
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one
3
* or more contributor license agreements. See the NOTICE file
4
* distributed with this work for additional information
5
* regarding copyright ownership. The ASF licenses this file
6
* to you under the Apache License, Version 2.0 (the
7
* "License"); you may not use this file except in compliance
8
* with the License. You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing,
13
* software distributed under the License is distributed on an
14
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
* KIND, either express or implied. See the License for the
16
* specific language governing permissions and limitations
17
* under the License.
18
*/
19
20
#include "
executor/contract/manager/address_manager.h
"
21
22
#include <glog/logging.h>
23
24
#include "eEVM/util.h"
25
26
namespace
resdb
{
27
namespace
contract {
28
29
Address
AddressManager::CreateRandomAddress
() {
30
std::vector<uint8_t> raw(20);
31
std::generate(raw.begin(), raw.end(), []() { return rand(); });
32
Address
address = eevm::from_big_endian(raw.data(), raw.size());
33
users_.insert(address);
34
return
address;
35
}
36
37
bool
AddressManager::Exist
(
const
Address
& address) {
38
return
users_.find(address) != users_.end();
39
}
40
41
Address
AddressManager::CreateContractAddress
(
const
Address
& owner) {
42
return
eevm::generate_address(owner, 0u);
43
}
44
45
std::string
AddressManager::AddressToHex
(
const
Address
& address) {
46
return
eevm::to_hex_string(address);
47
}
48
49
Address
AddressManager::HexToAddress
(
const
std::string& address) {
50
return
eevm::to_uint256(address);
51
}
52
53
}
// namespace contract
54
}
// namespace resdb
address_manager.h
resdb::contract::AddressManager::AddressToHex
static std::string AddressToHex(const Address &address)
Definition
address_manager.cpp:45
resdb::contract::AddressManager::HexToAddress
static Address HexToAddress(const std::string &address)
Definition
address_manager.cpp:49
resdb::contract::AddressManager::CreateContractAddress
static Address CreateContractAddress(const Address &owner)
Definition
address_manager.cpp:41
resdb::contract::AddressManager::CreateRandomAddress
Address CreateRandomAddress()
Definition
address_manager.cpp:29
resdb::contract::AddressManager::Exist
bool Exist(const Address &address)
Definition
address_manager.cpp:37
resdb::contract::Address
eevm::Address Address
Definition
utils.h:27
resdb
Definition
chain_state.cpp:24
executor
contract
manager
address_manager.cpp
Generated by
1.9.8