Эх сурвалжийг харах

Remove gpl files (#1616)

Fixes https://github.com/hyperledger/solang/issues/1598

Signed-off-by: Sean Young <sean@mess.org>
Sean Young 1 жил өмнө
parent
commit
00bcabb6b9
17 өөрчлөгдсөн 2 нэмэгдсэн , 452 устгасан
  1. 1 1
      .github/workflows/release.yml
  2. 1 1
      .github/workflows/test.yml
  3. 0 145
      examples/polkadot/ballot.sol
  4. 0 16
      testdata/solang_import_resolution_tests/01_solang_remap_target/contracts/Contract.sol
  5. 0 16
      testdata/solang_import_resolution_tests/01_solang_remap_target/contracts/Contract2.sol
  6. 0 11
      testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/Ambiguous.sol
  7. 0 10
      testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/contracts/Ambiguous.sol
  8. 0 9
      testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/contracts/Contract.sol
  9. 0 12
      testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/resources/node_modules/lib/Ambiguous.sol
  10. 0 11
      testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/Ambiguous.sol
  11. 0 9
      testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/contracts/Ambiguous.sol
  12. 0 18
      testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/contracts/Contract.sol
  13. 0 11
      testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/resources/node_modules/lib/Ambiguous.sol
  14. 0 15
      testdata/solang_import_resolution_tests/04_multiple_map_path_segments/contracts/Contract.sol
  15. 0 11
      testdata/solang_import_resolution_tests/05_import_path_order_should_not_matter/contracts/Contract.sol
  16. 0 16
      testdata/solang_import_resolution_tests/06_redundant_remaps/contracts/Contract.sol
  17. 0 140
      tests/solang_import_resolution_tests.rs

+ 1 - 1
.github/workflows/release.yml

@@ -162,7 +162,7 @@ jobs:
       uses: actions/checkout@v3
     - run: |
         echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
-        docker build . \
+        docker buildx build . \
           --push \
           --tag ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_REF/refs\/tags\//} \
           --label org.opencontainers.image.description="Solidity Compiler for Solana and Polkadot version $(git describe --tags)"

+ 1 - 1
.github/workflows/test.yml

@@ -242,7 +242,7 @@ jobs:
       if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
     - run: |
         echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
-        docker build . \
+        docker buildx build . \
           ${{steps.push.outputs.push}} \
           --tag ghcr.io/${GITHUB_REPOSITORY}:latest \
           --label org.opencontainers.image.description="Solidity Compiler for Solana and Polkadot version $(git describe --tags)"

+ 0 - 145
examples/polkadot/ballot.sol

@@ -1,145 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0
-pragma solidity >=0.7.0 <0.9.0; // Ignored on solang
-
-/// @title Voting with delegation.
-contract Ballot {
-    // This declares a new complex type which will
-    // be used for variables later.
-    // It will represent a single voter.
-    struct Voter {
-        uint256 weight; // weight is accumulated by delegation
-        bool voted; // if true, that person already voted
-        address delegate; // person delegated to
-        uint256 vote; // index of the voted proposal
-    }
-
-    // This is a type for a single proposal.
-    struct Proposal {
-        bytes32 name; // short name (up to 32 bytes)
-        uint256 voteCount; // number of accumulated votes
-    }
-
-    address public chairperson;
-
-    // This declares a state variable that
-    // stores a `Voter` struct for each possible address.
-    mapping(address => Voter) public voters;
-
-    // A dynamically-sized array of `Proposal` structs.
-    Proposal[] public proposals;
-
-    /// Create a new ballot to choose one of `proposalNames`.
-    constructor(bytes32[] memory proposalNames) {
-        chairperson = msg.sender;
-        voters[chairperson].weight = 1;
-
-        // For each of the provided proposal names,
-        // create a new proposal object and add it
-        // to the end of the array.
-        for (uint256 i = 0; i < proposalNames.length; i++) {
-            // `Proposal({...})` creates a temporary
-            // Proposal object and `proposals.push(...)`
-            // appends it to the end of `proposals`.
-            proposals.push(Proposal({name: proposalNames[i], voteCount: 0}));
-        }
-    }
-
-    // Give `voter` the right to vote on this ballot.
-    // May only be called by `chairperson`.
-    function giveRightToVote(address voter) external {
-        // If the first argument of `require` evaluates
-        // to `false`, execution terminates and all
-        // changes to the state and to account balances
-        // are reverted.
-        // It is often a good idea to use `require` to check if
-        // functions are called correctly.
-        // As a second argument, you can also provide an
-        // explanation about what went wrong.
-        require(
-            msg.sender == chairperson,
-            "Only chairperson can give right to vote."
-        );
-        require(!voters[voter].voted, "The voter already voted.");
-        require(voters[voter].weight == 0);
-        voters[voter].weight = 1;
-    }
-
-    /// Delegate your vote to the voter `to`.
-    function delegate(address to) external {
-        // assigns reference
-        Voter storage sender = voters[msg.sender];
-        require(sender.weight != 0, "You have no right to vote");
-        require(!sender.voted, "You already voted.");
-
-        require(to != msg.sender, "Self-delegation is disallowed.");
-
-        // Forward the delegation as long as
-        // `to` also delegated.
-        // In general, such loops are very dangerous,
-        // because if they run too long, they might
-        // need more gas than is available in a block.
-        // In this case, the delegation will not be executed,
-        // but in other situations, such loops might
-        // cause a contract to get "stuck" completely.
-        while (voters[to].delegate != address(0)) {
-            to = voters[to].delegate;
-
-            // We found a loop in the delegation, not allowed.
-            require(to != msg.sender, "Found loop in delegation.");
-        }
-
-        Voter storage delegate_ = voters[to];
-
-        // Voters cannot delegate to accounts that cannot vote.
-        require(delegate_.weight >= 1);
-
-        // Since `sender` is a reference, this
-        // modifies `voters[msg.sender]`.
-        sender.voted = true;
-        sender.delegate = to;
-
-        if (delegate_.voted) {
-            // If the delegate already voted,
-            // directly add to the number of votes
-            proposals[delegate_.vote].voteCount += sender.weight;
-        } else {
-            // If the delegate did not vote yet,
-            // add to her weight.
-            delegate_.weight += sender.weight;
-        }
-    }
-
-    /// Give your vote (including votes delegated to you)
-    /// to proposal `proposals[proposal].name`.
-    function vote(uint256 proposal) external {
-        Voter storage sender = voters[msg.sender];
-        require(sender.weight != 0, "Has no right to vote");
-        require(!sender.voted, "Already voted.");
-        sender.voted = true;
-        sender.vote = proposal;
-
-        // If `proposal` is out of the range of the array,
-        // this will throw automatically and revert all
-        // changes.
-        proposals[proposal].voteCount += sender.weight;
-    }
-
-    /// @dev Computes the winning proposal taking all
-    /// previous votes into account.
-    function winningProposal() public view returns (uint256 winningProposal_) {
-        uint256 winningVoteCount = 0;
-        for (uint256 p = 0; p < proposals.length; p++) {
-            if (proposals[p].voteCount > winningVoteCount) {
-                winningVoteCount = proposals[p].voteCount;
-                winningProposal_ = p;
-            }
-        }
-    }
-
-    // Calls winningProposal() function to get the index
-    // of the winner contained in the proposals array and then
-    // returns the name of the winner
-    function winnerName() external view returns (bytes32 winnerName_) {
-        winnerName_ = proposals[winningProposal()].name;
-    }
-}

+ 0 - 16
testdata/solang_import_resolution_tests/01_solang_remap_target/contracts/Contract.sol

@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-import "lib/Lib.sol";
-
-
-contract Contract {
-    using Lib for Lib.Item;
-
-    Lib.Item internal x;
-
-    function addSigner(uint256 account) external {
-        x.add(account);
-    }
-}

+ 0 - 16
testdata/solang_import_resolution_tests/01_solang_remap_target/contracts/Contract2.sol

@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-// Like before, but we want to have multiple remappings fire
-import "node_modules/lib/Lib.sol";
-
-contract Contract {
-    using Lib for Lib.Item;
-
-    Lib.Item internal x;
-
-    function addSigner(uint256 account) external {
-        x.add(account);
-    }
-}

+ 0 - 11
testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/Ambiguous.sol

@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-
-contract Ambiguous {
-
-    function identity(uint256 x) pure external returns (uint256) {
-      return x;
-    }
-}

+ 0 - 10
testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/contracts/Ambiguous.sol

@@ -1,10 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-import "Error: contracts/Ambiguous.sol should not be imported";
-
-contract Ambiguous {
-    function identity(uint256 x) external pure returns (uint256) {
-        return x;
-    }
-}

+ 0 - 9
testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/contracts/Contract.sol

@@ -1,9 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-// NOTE: This should be imported from the root of this example; that is,
-// this import should be resolved to `02_solang_incorrect_direct_imports/Ambiguous.sol`
-import "Ambiguous.sol";
-
-contract Contract {}

+ 0 - 12
testdata/solang_import_resolution_tests/02_solang_incorrect_direct_imports/resources/node_modules/lib/Ambiguous.sol

@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-import "Error: resources/node_modules/lib/Ambiguous.sol should not be imported";
-
-
-contract Ambiguous {
-
-    function identity(uint256 x) external returns (uint256) {
-      return x;
-    }
-}

+ 0 - 11
testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/Ambiguous.sol

@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-import "This should not be imported";
-
-contract Ambiguous {
-    function identity(uint256 x) external pure returns (uint256) {
-        return x;
-    }
-}

+ 0 - 9
testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/contracts/Ambiguous.sol

@@ -1,9 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-contract Ambiguous {
-    function identity(uint256 x) external pure returns (uint256) {
-        return x;
-    }
-}

+ 0 - 18
testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/contracts/Contract.sol

@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-import "lib/Lib.sol";
-// NOTE: This should be imported from the root of this example; that is,
-// this import should be resolved to `02_solang_incorrect_direct_imports/Ambiguous.sol`
-import "Ambiguous.sol";
-
-contract Contract {
-    using Lib for Lib.Item;
-
-    Lib.Item internal x;
-
-    function addSigner(uint256 account) external {
-        x.add(account);
-    }
-}

+ 0 - 11
testdata/solang_import_resolution_tests/03_ambiguous_imports_should_fail/resources/node_modules/lib/Ambiguous.sol

@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-
-contract Ambiguous {
-
-    function identity(uint256 x) external returns (uint256) {
-      return x;
-    }
-}

+ 0 - 15
testdata/solang_import_resolution_tests/04_multiple_map_path_segments/contracts/Contract.sol

@@ -1,15 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-import "lib/nested/Lib.sol";
-
-contract Contract {
-    using Lib for Lib.Item;
-
-    Lib.Item internal x;
-
-    function addSigner(uint256 account) external {
-        x.add(account);
-    }
-}

+ 0 - 11
testdata/solang_import_resolution_tests/05_import_path_order_should_not_matter/contracts/Contract.sol

@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-import "A.sol";
-
-contract Contract {
-    function use_a(A a) public pure {
-        a.add(1, 1);
-    }
-}

+ 0 - 16
testdata/solang_import_resolution_tests/06_redundant_remaps/contracts/Contract.sol

@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-
-pragma solidity ^0.8.0;
-
-// Like before, but we want to have multiple remappings fire
-import "node_modules/lib/Lib.sol";
-
-contract Contract {
-    using Lib for Lib.Item;
-
-    Lib.Item internal x;
-
-    function addSigner(uint256 account) external {
-        x.add(account);
-    }
-}

+ 0 - 140
tests/solang_import_resolution_tests.rs

@@ -17,94 +17,6 @@ fn make_run(dir: &str) -> Command {
     cmd
 }
 
-#[test]
-fn import_test_01_solang_remap_target() {
-    // Command 1
-    let mut cmd = make_run("01_solang_remap_target");
-    let run = cmd.arg("contracts/Contract.sol").env("exit", "1").assert();
-
-    let stderr = String::from_utf8_lossy(&run.get_output().stderr);
-    println!("stderr: {stderr}");
-    assert!(stderr.contains("file not found 'lib/Lib.sol'"));
-    assert!(stderr.contains("'Lib' not foun"));
-    assert!(stderr.contains("'x' not found"));
-
-    // Command 2
-    let mut cmd = make_run("01_solang_remap_target");
-    let run = cmd
-        .arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("lib=node_modules/lib")
-        .assert()
-        .failure();
-    let stderr = String::from_utf8_lossy(&run.get_output().stderr);
-    println!("stderr: {stderr}");
-    assert!(stderr.contains("file not found 'lib/Lib.sol'"));
-    assert!(stderr.contains("'Lib' not foun"));
-    assert!(stderr.contains("'x' not found"));
-
-    // Command 3
-    let mut cmd = make_run("01_solang_remap_target");
-    let run = cmd
-        .arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("lib=node_modules/lib")
-        .arg("--importpath")
-        .arg(".")
-        .assert()
-        .failure();
-    let stderr = String::from_utf8_lossy(&run.get_output().stderr);
-    println!("stderr: {stderr}");
-    assert!(stderr.contains("file not found 'lib/Lib.sol'"));
-    assert!(stderr.contains("'Lib' not foun"));
-    assert!(stderr.contains("'x' not found"));
-
-    // Command 4
-    let mut cmd = make_run("01_solang_remap_target");
-    let run = cmd
-        .arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("lib=node_modules/lib")
-        .arg("--importpath")
-        .arg(".")
-        .arg("--importpath")
-        .arg("resources/node_modules")
-        .assert()
-        .failure();
-    let stderr = String::from_utf8_lossy(&run.get_output().stderr);
-    println!("stderr: {stderr}");
-    assert!(stderr.contains("file not found 'lib/Lib.sol'"));
-    assert!(stderr.contains("'Lib' not foun"));
-    assert!(stderr.contains("'x' not found"));
-
-    // Command 5
-    let mut cmd = make_run("01_solang_remap_target");
-    cmd.arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("lib=node_modules/lib")
-        .arg("--importpath")
-        .arg(".")
-        .arg("--importpath")
-        .arg("resources")
-        .assert()
-        .success();
-}
-
-#[test]
-fn import_test_02_solang_incorrect_direct_imports() {
-    // Command 1
-    let mut cmd = make_run("02_solang_incorrect_direct_imports");
-    cmd.arg("contracts/Contract.sol").env("exit", "0").assert();
-
-    // Command 2
-    let mut cmd = make_run("02_solang_incorrect_direct_imports");
-    cmd.arg("contracts/Contract.sol")
-        .arg("--importpath")
-        .arg(".")
-        .assert()
-        .success();
-}
-
 #[test]
 fn import_test_03_ambiguous_imports_should_fail() {
     // Command 1
@@ -119,55 +31,3 @@ fn import_test_03_ambiguous_imports_should_fail() {
         .assert()
         .failure();
 }
-
-#[test]
-fn import_test_04_multiple_path_map_segments() {
-    // Command 1
-    let mut cmd = make_run("04_multiple_map_path_segments");
-    cmd.arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("lib/nested=resources/node_modules/lib/nested")
-        .arg("--importpath")
-        .arg(".")
-        .assert()
-        .success();
-}
-
-#[test]
-fn import_test_06_redundant_remaps() {
-    // Command 1
-    let mut cmd = make_run("06_redundant_remaps");
-    cmd.arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("node_modules=resources/node_modules")
-        .arg("--importmap")
-        .arg("node_modules=node_modules")
-        .arg("--importpath")
-        .arg("resources")
-        .assert()
-        .success();
-
-    let mut cmd = make_run("06_redundant_remaps");
-    cmd.arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("node_modules=node_modules")
-        .arg("--importmap")
-        .arg("node_modules=resources/node_modules")
-        .arg("--importpath")
-        .arg("resources")
-        .assert()
-        .failure();
-
-    let mut cmd = make_run("06_redundant_remaps");
-    cmd.arg("contracts/Contract.sol")
-        .arg("--importmap")
-        .arg("node_modules=node_modules")
-        .arg("--importmap")
-        .arg("node_modules=resources/node_modules")
-        .arg("--importmap")
-        .arg("node_modules=node_modules")
-        .arg("--importpath")
-        .arg("resources")
-        .assert()
-        .success();
-}