vegaprotocol / MultisigControl

Solidity contracts for the Ethereum <-> Vega bridge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Update whitelist/blacklist

ashleyvega opened this issue · comments

There is some removal of whitelist/blacklist to be done.

As @C0deMunk33 mentions:

  • whitelist -> list_asset, Asset_Listed
  • blacklist -> remove_asset, Asset_Removed

Removed all “black/white” mention
New functions are “list_asset” and “remove_asset”
New events are “Asset_Listed” and “Asset_Removed”

There are still references to whitelist and blacklist:

./in_progress_contracts/Vega_Bridge_ETH_MultiSigControl.sol

18:        //ETH is automatically whitelisted
19:        Asset_Whitelisted(address(0), 0);
22:    function whitelist_asset(address asset_source, uint256 asset_id, uint256 nonce, bytes memory signatures) public {
27:    function blacklist_asset(address asset_source, uint256 asset_id, uint256 nonce, bytes memory signatures) public {
66:    function is_asset_whitelisted(address asset_source, uint256 asset_id) public view returns(uint256) {

./contracts/Vega_Bridge_ERC20.sol

15:    mapping(address => bool) whitelisted_tokens;
19:    function whitelist_asset_admin(address asset_source, uint256 asset_id, bytes32 vega_id) public onlyOwner {
21:        require(!whitelisted_tokens[asset_source], "asset already whitelisted");
22:        whitelisted_tokens[asset_source] = true;
25:        emit Asset_Whitelisted(asset_source, 0, vega_id,  uint256(asset_source) + block.number);
27:    function blacklist_asset_admin(address asset_source, uint256 asset_id) public onlyOwner {
29:        require(whitelisted_tokens[asset_source], "asset not whitelisted");
30:        whitelisted_tokens[asset_source] = false;
31:        emit Asset_Blacklisted(asset_source, 0,  uint256(asset_source) + block.number);
47:    function whitelist_asset(address asset_source, uint256 asset_id, bytes32 vega_id, uint256 nonce, bytes memory signatures) public {
49:        require(!whitelisted_tokens[asset_source], "asset already whitelisted");
50:        bytes memory message = abi.encode(asset_source, asset_id, vega_id, nonce, 'whitelist_asset');
52:        whitelisted_tokens[asset_source] = true;
55:        emit Asset_Whitelisted(asset_source, 0, vega_id, nonce);
57:    function blacklist_asset(address asset_source, uint256 asset_id, uint256 nonce, bytes memory signatures) public {
59:        require(whitelisted_tokens[asset_source], "asset not whitelisted");
60:        bytes memory message = abi.encode(asset_source, asset_id, nonce, 'blacklist_asset');
62:        whitelisted_tokens[asset_source] = false;
63:        emit Asset_Blacklisted(asset_source, 0, nonce);
67:        require(whitelisted_tokens[asset_source], "asset not whitelisted");
77:        require(whitelisted_tokens[asset_source], "asset not whitelisted");
89:        require(whitelisted_tokens[asset_source], "asset not whitelisted");
101:    function is_asset_whitelisted(address asset_source, uint256 asset_id) public view returns(bool){
102:        return whitelisted_tokens[asset_source] && asset_id == 0;

./contracts/IVega_Bridge.sol

9:    event Asset_Whitelisted(address indexed asset_source, uint256 indexed asset_id, bytes32 indexed vega_id, uint256 nonce);
10:    event Asset_Blacklisted(address indexed asset_source, uint256 indexed asset_id, uint256 nonce);
13:    function whitelist_asset(address asset_source, uint256 asset_id, bytes32 vega_id, uint256 nonce, bytes memory signatures) public;
14:    function blacklist_asset(address asset_source, uint256 asset_id, uint256 nonce, bytes memory signatures) public;
21:    function is_asset_whitelisted(address asset_source, uint256 asset_id) public view returns(bool);

./TESTNET_ASSET_DEPLOYMENT/contracts/IVega_Bridge.sol

9:    event Asset_Whitelisted(address indexed asset_source, uint256 indexed asset_id, bytes32 indexed vega_id, uint256 nonce);
10:    event Asset_Blacklisted(address indexed asset_source, uint256 indexed asset_id, uint256 nonce);
13:    function whitelist_asset(address asset_source, uint256 asset_id, bytes32 vega_id, uint256 nonce, bytes memory signatures) public;
14:    function blacklist_asset(address asset_source, uint256 asset_id, uint256 nonce, bytes memory signatures) public;
21:    function is_asset_whitelisted(address asset_source, uint256 asset_id) public view returns(bool);
30:    function whitelist_asset_admin(address asset_source, uint256 asset_id, bytes32 vega_id) public;
31:    function blacklist_asset_admin(address asset_source, uint256 asset_id) public;

cmd

find -name '*.sol' -print0 | xargs -0 grep -inE '(white|black)list'

As I explained before, apparently not in this thread, sorry.

As these changes require a full redeploy of the bridges, this has been added to branch erc20_asset_pool_breakout since those changes come with the next redeploy.