Skip to content
This repository has been archived by the owner on Nov 16, 2022. It is now read-only.

Commit

Permalink
Merge pull request #2175 from bandprotocol/upgrade-bridge-solidity-0.6.0
Browse files Browse the repository at this point in the history
bridge: upgraded to use solidity 0.6.11
  • Loading branch information
prin-r committed Jul 8, 2020
2 parents 6794c8d + 5afcf0d commit 5a259ad
Show file tree
Hide file tree
Showing 35 changed files with 266 additions and 73 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG_UNRELEASED.md
Expand Up @@ -23,10 +23,12 @@

### Bridges

- (impv) [\#67](https://github.com/bandprotocol/bandchain/pull/2175) Patched bridge contracts to use Solidity version 0.6.11

### Owasm

### Oracle Binary Encoding (OBI)

### Helpers

### MISC
### MISC
4 changes: 3 additions & 1 deletion bridges/evm/contracts/BandChainLib.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

library BandChainLib {
function toUint64List(bytes memory _data)
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/BlockHeaderMerkleParts.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
import {Utils} from "./Utils.sol";


Expand Down
7 changes: 5 additions & 2 deletions bridges/evm/contracts/Bridge.sol
@@ -1,9 +1,11 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;
import {BlockHeaderMerkleParts} from "./BlockHeaderMerkleParts.sol";
import {MultiStore} from "./MultiStore.sol";
import {SafeMath} from "openzeppelin-solidity/contracts/math/SafeMath.sol";
import {Ownable} from "openzeppelin-solidity/contracts/ownership/Ownable.sol";
import {Ownable} from "openzeppelin-solidity/contracts/access/Ownable.sol";
import {IAVLMerklePath} from "./IAVLMerklePath.sol";
import {TMSignature} from "./TMSignature.sol";
import {Utils} from "./Utils.sol";
Expand Down Expand Up @@ -157,6 +159,7 @@ contract Bridge is IBridge, Ownable {
/// @param _data The encoded data for oracle state relay and data verification.
function relayAndVerify(bytes calldata _data)
external
override
returns (RequestPacket memory, ResponsePacket memory)
{
(bytes memory relayData, bytes memory verifyData) = abi.decode(
Expand Down
5 changes: 4 additions & 1 deletion bridges/evm/contracts/BridgeWithCache.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {Packets} from "./Packets.sol";
Expand Down Expand Up @@ -34,6 +36,7 @@ contract BridgeWithCache is Bridge, IBridgeCache {
function getLatestResponse(RequestPacket memory _request)
public
view
override
returns (ResponsePacket memory)
{
ResponsePacket memory res = requestsCache[getRequestKey(_request)];
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/IAVLMerklePath.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
import {Utils} from "./Utils.sol";


Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/IBridge.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;


Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/IBridgeCache.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {IBridge} from "./Bridge.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/IBridgeV2.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {IBridge} from "./IBridge.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/Migrations.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

contract Migrations {
address public owner;
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/MultiStore.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
import {Utils} from "./Utils.sol";

// Computes Tendermint's application state hash at this given block. AppHash is actually a
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/Packets.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {Utils} from "./Utils.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/TMSignature.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

/// @dev Library for performing signer recovery for ECDSA secp256k1 signature. Note that the
/// library is written specifically for signature signed on Tendermint's precommit data, which
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/Utils.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

/// @dev Helper utility library for calculating Merkle proof and managing bytes.
library Utils {
Expand Down
6 changes: 4 additions & 2 deletions bridges/evm/contracts/example/DEX.sol
@@ -1,8 +1,10 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {SafeMath} from "openzeppelin-solidity/contracts/math/SafeMath.sol";
import {Ownable} from "openzeppelin-solidity/contracts/ownership/Ownable.sol";
import {Ownable} from "openzeppelin-solidity/contracts/access/Ownable.sol";
import {IBridge} from "../IBridge.sol";


Expand Down
8 changes: 5 additions & 3 deletions bridges/evm/contracts/example/LuckyNumber.sol
@@ -1,7 +1,9 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {Ownable} from "openzeppelin-solidity/contracts/ownership/Ownable.sol";
import {Ownable} from "openzeppelin-solidity/contracts/access/Ownable.sol";
import {IBridge} from "../IBridge.sol";


Expand Down Expand Up @@ -53,5 +55,5 @@ contract LuckyNumber is Ownable {
msg.sender.transfer(address(this).balance);
}

function() external payable {}
fallback() external payable {}
}
4 changes: 3 additions & 1 deletion bridges/evm/contracts/example/SimplePriceDatabase.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {BandChainLib} from "../BandChainLib.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/BandChainLibMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

import {BandChainLib} from "../BandChainLib.sol";

Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/BlockHeaderMerklePartsMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {BlockHeaderMerkleParts} from "../BlockHeaderMerkleParts.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/BridgeCacheConsumerMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;
import {IBridge} from "../Bridge.sol";
import {IBridgeCache} from "../IBridgeCache.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/BridgeMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;
import {Bridge, IBridge} from "../Bridge.sol";

Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/IAVLMerklePathMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {IAVLMerklePath} from "../IAVLMerklePath.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/MultiStoreMerklePartsMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {MultiStore} from "../MultiStore.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/PacketsMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {IBridge} from "../IBridge.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/TMSignatureMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {TMSignature} from "../TMSignature.sol";
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/mocks/UtilsMock.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
import {Utils} from "../Utils.sol";

contract UtilsMock {
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/obi/Obi.sol
@@ -1,4 +1,6 @@
pragma solidity ^0.5.0;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

import "openzeppelin-solidity/contracts/math/SafeMath.sol";

Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/obi/Result.sol
@@ -1,4 +1,6 @@
pragma solidity ^0.5.0;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

import "./Obi.sol";

Expand Down
6 changes: 4 additions & 2 deletions bridges/evm/contracts/obi/User.sol
@@ -1,4 +1,6 @@
pragma solidity ^0.5.0;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;
pragma experimental ABIEncoderV2;

import {Obi} from "./Obi.sol";
Expand All @@ -10,7 +12,7 @@ contract ObiUser {

function decode(bytes memory _data)
public
view
pure
returns (ResultDecoder.Result memory)
{
return _data.decodeResult();
Expand Down
4 changes: 3 additions & 1 deletion bridges/evm/contracts/reference/IPriceReference.sol
@@ -1,4 +1,6 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.6.11;

interface IPriceReference {
/// @dev Returns the number of times that the price has been updated.
Expand Down
16 changes: 9 additions & 7 deletions bridges/evm/contracts/reference/PriceReferenceProxy.sol
@@ -1,6 +1,8 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

import {Ownable} from "openzeppelin-solidity/contracts/ownership/Ownable.sol";
pragma solidity 0.6.11;

import {Ownable} from "openzeppelin-solidity/contracts/access/Ownable.sol";
import {IPriceReference} from "./IPriceReference.sol";

contract PriceReferenceProxy is IPriceReference, Ownable {
Expand All @@ -14,23 +16,23 @@ contract PriceReferenceProxy is IPriceReference, Ownable {
impl = _impl;
}

function latestRound() public view returns (uint256) {
function latestRound() public view override returns (uint256) {
return impl.latestRound();
}

function latestAnswer() public view returns (uint256) {
function latestAnswer() public view override returns (uint256) {
return impl.latestAnswer();
}

function latestTimestamp() public view returns (uint256) {
function latestTimestamp() public view override returns (uint256) {
return impl.latestTimestamp();
}

function getAnswer(uint256 _round) public view returns (uint256) {
function getAnswer(uint256 _round) public view override returns (uint256) {
return impl.getAnswer(_round);
}

function getTimestamp(uint256 _round) public view returns (uint256) {
function getTimestamp(uint256 _round) public view override returns (uint256) {
return impl.getTimestamp(_round);
}
}
16 changes: 9 additions & 7 deletions bridges/evm/contracts/reference/SimplePriceReference.sol
@@ -1,6 +1,8 @@
pragma solidity 0.5.14;
// SPDX-License-Identifier: Apache-2.0

import {Ownable} from "openzeppelin-solidity/contracts/ownership/Ownable.sol";
pragma solidity 0.6.11;

import {Ownable} from "openzeppelin-solidity/contracts/access/Ownable.sol";
import {IPriceReference} from "./IPriceReference.sol";

contract SimplePriceReference is IPriceReference, Ownable {
Expand All @@ -16,23 +18,23 @@ contract SimplePriceReference is IPriceReference, Ownable {
timestamps.push(block.timestamp);
}

function latestRound() public view returns (uint256) {
function latestRound() public view override returns (uint256) {
return prices.length;
}

function latestAnswer() public view returns (uint256) {
function latestAnswer() public view override returns (uint256) {
return getAnswer(latestRound());
}

function latestTimestamp() public view returns (uint256) {
function latestTimestamp() public view override returns (uint256) {
return getTimestamp(latestRound());
}

function getAnswer(uint256 _round) public view returns (uint256) {
function getAnswer(uint256 _round) public view override returns (uint256) {
return prices[_round - 1];
}

function getTimestamp(uint256 _round) public view returns (uint256) {
function getTimestamp(uint256 _round) public view override returns (uint256) {
return timestamps[_round - 1];
}
}
6 changes: 3 additions & 3 deletions bridges/evm/package.json
Expand Up @@ -13,11 +13,11 @@
"band"
],
"dependencies": {
"@openzeppelin/test-helpers": "^0.5.4",
"@openzeppelin/test-helpers": "^0.5.6",
"chai": "^4.2.0",
"openzeppelin-solidity": "^2.4.0",
"openzeppelin-solidity": "^3.1.0",
"openzeppelin-test-helpers": "^0.5.1",
"truffle": "^5.1.3",
"truffle": "^5.1.33",
"truffle-flattener": "^1.4.2"
},
"prettier": {
Expand Down

0 comments on commit 5a259ad

Please sign in to comment.