Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge rc 1 7 next into esdt prefix 23 aug 2024 #6404

Draft
wants to merge 64 commits into
base: feat/esdt-prefix
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
baa6266
fixed fee field for guardian operations
sstanculeanu Jul 26, 2024
8b4fb3a
new endpoint
miiu96 Aug 5, 2024
2bad2a7
fix
miiu96 Aug 5, 2024
792f6a7
fix endpoint
miiu96 Aug 5, 2024
6539ea4
fix tests
miiu96 Aug 6, 2024
fb55c68
Merge branch 'rc/v1.7.next1' into new-endpoint-scrs-by-tx-hash
miiu96 Aug 6, 2024
708e08e
unit tests
miiu96 Aug 6, 2024
e291094
Merge remote-tracking branch 'origin/new-endpoint-scrs-by-tx-hash' in…
miiu96 Aug 6, 2024
d8f0a12
pre-final version. Add gh-action yml that build mx-chain-simulator-go…
btc-fan Aug 6, 2024
b60aa52
fix PR comments. Remove go Tidy from action and move it to the python…
btc-fan Aug 7, 2024
75cb695
added fix for relayed move balance to non payables
sstanculeanu Aug 8, 2024
35008c7
Merge branch 'rc/v1.7.next1' into fix_relayed_movebalance_to_nonpayable
sstanculeanu Aug 9, 2024
f35ea49
Merge branch 'rc/v1.7.next1' of https://github.com/multiversx/mx-chai…
sstanculeanu Aug 9, 2024
f289f70
updated core-go after merge
sstanculeanu Aug 9, 2024
dab6bcd
rename the action
btc-fan Aug 9, 2024
ffa43f7
fix CS script path
btc-fan Aug 9, 2024
db3bb47
rename step
btc-fan Aug 9, 2024
87cae3b
fixes after review
sstanculeanu Aug 9, 2024
0d54a93
Merge branch 'rc/v1.7.next1' into integrate-sys-tests-ci2
miiu96 Aug 9, 2024
7d0ea86
fixed test after fixes
sstanculeanu Aug 9, 2024
760583c
missing fix
sstanculeanu Aug 9, 2024
970a776
fix fee field for other relayed cases
sstanculeanu Aug 9, 2024
8fd9fe8
fix some tests and add more checks
BeniaminDrasovean Aug 9, 2024
43599ee
Merge remote-tracking branch 'origin/rc/v1.7.next1' into fix-esdt-met…
BeniaminDrasovean Aug 12, 2024
3a16b1b
update go mo
BeniaminDrasovean Aug 12, 2024
1494445
linter fixes
BeniaminDrasovean Aug 12, 2024
1ba9613
Merge branch 'rc/v1.7.next1' into new-endpoint-scrs-by-tx-hash
miiu96 Aug 12, 2024
a9e2b8f
update go mod
BeniaminDrasovean Aug 12, 2024
42bf1a3
fixes after review
sstanculeanu Aug 12, 2024
dd05764
fixes after review
miiu96 Aug 12, 2024
75b2aaa
small fix
miiu96 Aug 12, 2024
1745d47
comment
miiu96 Aug 12, 2024
07626af
Merge pull request #6377 from multiversx/integrate-sys-tests-ci2
btc-fan Aug 12, 2024
02057fe
Merge branch 'rc/v1.7.next1' into fix_relayed_movebalance_to_nonpayable
sstanculeanu Aug 13, 2024
a10c86d
Merge branch 'rc/v1.7.next1' into fix_fee_field
sstanculeanu Aug 13, 2024
3cbcc0c
Merge branch 'rc/v1.7.next1' into new-endpoint-scrs-by-tx-hash
miiu96 Aug 13, 2024
a7a39d3
further fixes after review-testing
sstanculeanu Aug 13, 2024
e8f7d9f
fix gh action
btc-fan Aug 13, 2024
d7e5ef8
reverted fix for guarded operations, not needed
sstanculeanu Aug 13, 2024
fc27372
further reverts
sstanculeanu Aug 13, 2024
4fa8c2d
Merge pull request #6373 from multiversx/new-endpoint-scrs-by-tx-hash
miiu96 Aug 14, 2024
8eaa7e3
Merge branch 'rc/v1.7.next1' into fix-esdt-metaData-in-system-account
ssd04 Aug 14, 2024
5214871
Merge branch 'rc/v1.7.next1' into fix_relayed_movebalance_to_nonpayable
sstanculeanu Aug 14, 2024
3e29afe
Merge branch 'rc/v1.7.next1' into fix_fee_field
sstanculeanu Aug 14, 2024
29f6aee
Merge branch 'rc/v1.7.next1' into integrate-sys-tests-ci2
miiu96 Aug 14, 2024
cab29d2
switch log level
sstanculeanu Aug 14, 2024
ae7b021
Merge pull request #6387 from multiversx/integrate-sys-tests-ci2
btc-fan Aug 16, 2024
fd45b7c
Merge branch 'rc/v1.7.next1' into log_trace_transactionsv2
sstanculeanu Aug 16, 2024
53ab845
Merge branch 'rc/v1.7.next1' into fix_fee_field
sstanculeanu Aug 16, 2024
110838b
Merge branch 'rc/v1.7.next1' into fix-esdt-metaData-in-system-account
ssd04 Aug 16, 2024
d2b858d
Merge pull request #6390 from multiversx/log_trace_transactionsv2
sstanculeanu Aug 16, 2024
e88633b
Merge branch 'rc/v1.7.next1' into fix-esdt-metaData-in-system-account
ssd04 Aug 16, 2024
bcfafbc
Merge pull request #6383 from multiversx/fix-esdt-metaData-in-system-…
ssd04 Aug 16, 2024
2a3b331
Merge branch 'rc/v1.7.next1' into fix_relayed_movebalance_to_nonpayable
sstanculeanu Aug 16, 2024
2474c88
Merge pull request #6382 from multiversx/fix_relayed_movebalance_to_n…
elvisboghiu Aug 17, 2024
37b5eea
Merge branch 'rc/v1.7.next1' into fix_fee_field
sstanculeanu Aug 17, 2024
6cec9ed
fix test after merge
sstanculeanu Aug 19, 2024
0123471
latest indexer version
miiu96 Aug 19, 2024
a79a79c
Merge pull request #6335 from multiversx/fix_fee_field
sstanculeanu Aug 20, 2024
8840334
Merge branch 'rc/v1.7.next1' into latest-indexer-version
miiu96 Aug 20, 2024
49fc4cc
Merge pull request #6395 from multiversx/latest-indexer-version
miiu96 Aug 20, 2024
d30f207
Merge branch 'rc/v1.7.next1' into merge-rc-1-7-next-into-esdt-prefix-…
axenteoctavian Aug 23, 2024
a335997
go.mod from ESDT prefix
axenteoctavian Aug 23, 2024
dfa7be3
go.mod from ESDT prefix
axenteoctavian Aug 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,316 @@
name: Chain Simulator Build and Integration Test

on:
pull_request:
branches:
- 'main'
- 'master'
- 'rc/*'
workflow_dispatch:
issue_comment:
types: [created]

permissions:
issues: write
pull-requests: write
contents: read

jobs:
build-and-test:
if: |
github.event_name == 'pull_request' ||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, 'Run Tests:')) ||
github.event_name == 'workflow_dispatch'

strategy:
matrix:
#TODO Include Macos support later on
runs-on: [ubuntu-latest]
runs-on: ${{ matrix.runs-on }}
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
TARGET_BRANCH: ""
MX_CHAIN_GO_TARGET_BRANCH: ""
MX_CHAIN_SIMULATOR_TARGET_BRANCH: ""
MX_CHAIN_TESTING_SUITE_TARGET_BRANCH: ""

steps:
- name: Determine Target Branches
id: target_branch
run: |
echo "CURRENT_BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}" >> $GITHUB_ENV

# Default target branches based on the PR base branch
if [[ "${{ github.event.pull_request.base.ref }}" == "main" ]]; then
echo "MX_CHAIN_SIMULATOR_TARGET_BRANCH=main" >> $GITHUB_ENV
echo "MX_CHAIN_TESTING_SUITE_TARGET_BRANCH=main" >> $GITHUB_ENV
elif [[ "${{ github.event.pull_request.base.ref }}" == "master" ]]; then
echo "MX_CHAIN_SIMULATOR_TARGET_BRANCH=main" >> $GITHUB_ENV
echo "MX_CHAIN_TESTING_SUITE_TARGET_BRANCH=main" >> $GITHUB_ENV
else
echo "MX_CHAIN_SIMULATOR_TARGET_BRANCH=${{ github.event.pull_request.base.ref }}" >> $GITHUB_ENV
echo "MX_CHAIN_TESTING_SUITE_TARGET_BRANCH=${{ github.event.pull_request.base.ref }}" >> $GITHUB_ENV
fi

# Always set MX_CHAIN_GO_TARGET_BRANCH based on the PR base branch
echo "MX_CHAIN_GO_TARGET_BRANCH=${{ github.event.pull_request.base.ref }}" >> $GITHUB_ENV


- name: Fetch and Parse Last Comment for Branches
uses: actions/github-script@v7
id: fetch_and_parse_last_comment
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
// Get the latest comment
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
});

const lastComment = comments.data.pop(); // Get the last comment

if (lastComment && lastComment.body.includes('Run Tests:')) {
const body = lastComment.body.trim();
core.setOutput('latest_comment', body);

// Parse the branches from the last comment
const simulatorBranchMatch = body.match(/mx-chain-simulator-go:\s*(\S+)/);
const testingSuiteBranchMatch = body.match(/mx-chain-testing-suite:\s*(\S+)/);

// Override the target branches if specified
if (simulatorBranchMatch) {
core.exportVariable('MX_CHAIN_SIMULATOR_TARGET_BRANCH', simulatorBranchMatch[1]);
}
if (testingSuiteBranchMatch) {
core.exportVariable('MX_CHAIN_TESTING_SUITE_TARGET_BRANCH', testingSuiteBranchMatch[1]);
}
} else {
core.info('The last comment does not contain "Run Tests:". Skipping branch override.');
}


- name: Print Target Branches
run: |
echo "Current branch mx-chain-go: ${{ env.CURRENT_BRANCH }}"
echo "mx-chain-go target branch: ${{ env.MX_CHAIN_GO_TARGET_BRANCH }}"
echo "mx-chain-simulator-go target branch: ${{ env.MX_CHAIN_SIMULATOR_TARGET_BRANCH }}"
echo "mx-chain-testing-suite target branch: ${{ env.MX_CHAIN_TESTING_SUITE_TARGET_BRANCH }}"

- name: Set up Go 1.20.7
uses: actions/setup-go@v3
with:
go-version: 1.20.7
id: go

- name: Checkout mx-chain-go
uses: actions/checkout@v4
with:
repository: 'multiversx/mx-chain-go'
ref: ${{ github.head_ref }}
fetch-depth: 0
path: 'mx-chain-go'

- name: Get Latest mx-chain-go Commit Hash
run: |
cd mx-chain-go
current_branch=$(git symbolic-ref --short HEAD)
echo "CURRENT_BRANCH=${current_branch}" >> $GITHUB_ENV
git fetch origin ${current_branch} --prune
latest_commit_hash=$(git rev-parse origin/${current_branch})
echo "LATEST_COMMIT_HASH=${latest_commit_hash}" >> $GITHUB_ENV
echo "Latest commit hash: ${latest_commit_hash}"

- name: Checkout mx-chain-simulator-go
uses: actions/checkout@v4
with:
repository: 'multiversx/mx-chain-simulator-go'
ref: ${{ env.MX_CHAIN_SIMULATOR_TARGET_BRANCH || github.event.pull_request.base.ref }}
path: 'mx-chain-simulator-go'

- name: Set up Python 3.10
uses: actions/setup-python@v2
with:
python-version: '3.10'

- name: Install Python Dependencies and Update go.mod
run: |
cd mx-chain-simulator-go
pip install -r scripts/update-go-mod/requirements.txt
python scripts/update-go-mod/update-go-mod.py $LATEST_COMMIT_HASH

- name: Run go build
run: |
cd mx-chain-simulator-go/cmd/chainsimulator
go build
echo "CHAIN_SIMULATOR_BUILD_PATH=$(pwd)" >> $GITHUB_ENV

- name: Checkout mx-chain-testing-suite
uses: actions/checkout@v4
with:
repository: 'multiversx/mx-chain-testing-suite'
path: 'mx-chain-testing-suite'
fetch-depth: 0
ref: ${{ env.MX_CHAIN_TESTING_SUITE_TARGET_BRANCH || github.event.pull_request.base.ref }}
token: ${{ secrets.MVX_TESTER_GH_TOKEN }}

- name: Install Dependencies
run: |
pip install -r mx-chain-testing-suite/requirements.txt
echo "PYTHONPATH=mx-chain-testing-suite" >> $GITHUB_ENV


- name: Run tests and generate HTML report
run: |
set +e
pytest mx-chain-testing-suite/scenarios/ --html=report.html --self-contained-html --continue-on-collection-errors
PYTEST_EXIT_CODE=$?
set -e
echo "PYTEST_EXIT_CODE=$PYTEST_EXIT_CODE" >> $GITHUB_ENV
echo "Pytest exit code: $PYTEST_EXIT_CODE"
if [ -f "report.html" ]; then
echo "Report generated successfully."
mkdir -p ./reports
mv report.html ./reports/
else
echo "Report not found."
fi

- name: Upload test report
if: always()
uses: actions/upload-artifact@v2
with:
name: pytest-report-${{ github.run_id }}
path: reports/report.html

- name: Deploy Report to GitHub Pages
if: always()
id: deploy_report
run: |
# Navigate to the mx-chain-testing-suite directory
cd mx-chain-testing-suite

# Configure Git user
git config user.name "GitHub Action"
git config user.email "action@github.com"

# Check if the report exists
if [ -f "../reports/report.html" ]; then
# Ensure we're on the 'gh-pages' branch and up to date
git fetch --all
git checkout gh-pages || git checkout --orphan gh-pages

# Create a new directory for the report based on the current timestamp
TIMESTAMP=$(date +'%d%m%Y-%H%M%S')
echo "TIMESTAMP=$TIMESTAMP" >> $GITHUB_ENV
REPORT_DIR="reports/${BRANCH_NAME}/${TIMESTAMP}"
mkdir -p $REPORT_DIR

# Move the report into the new directory
cp ../reports/report.html $REPORT_DIR/index.html

# Add and commit only the new report
git add $REPORT_DIR/index.html
git commit -m "Deploy Test Report at $BRANCH_NAME/$TIMESTAMP"

# Set remote URL with authentication token
git remote set-url origin https://x-access-token:${{ secrets.MVX_TESTER_GH_TOKEN }}@github.com/multiversx/mx-chain-testing-suite.git

# Push changes to the remote 'gh-pages' branch
git push --force origin gh-pages
else
echo "Report file not found, skipping deployment."
fi


- name: Update Index Page
if: always()
run: |
cd mx-chain-testing-suite
git fetch --all
git checkout gh-pages || git checkout --orphan gh-pages
if [ -d "docs" ]; then
cd docs
echo "<html><body><h1>Test Reports</h1><ul>" > index.html
for report in $(ls ../reports); do
echo "<li><a href='../reports/$report/index.html'>Report - $report</a></li>" >> index.html
done
echo "</ul></body></html>" >> index.html
git add index.html
git commit -m "Update Index of Reports"
git push origin gh-pages --force
else
mkdir -p docs
cd docs
echo "<html><body><h1>Test Reports</h1><ul>" > index.html
echo "</ul></body></html>" >> index.html
echo "Docs directory was not found and has been created."
fi

- name: Comment PR with report link or error message
if: always()
uses: actions/github-script@v7
env:
TIMESTAMP: ${{ env.TIMESTAMP }}
BRANCH_NAME: ${{ env.BRANCH_NAME }}
CURRENT_BRANCH: ${{ env.CURRENT_BRANCH }}
MX_CHAIN_GO_TARGET_BRANCH: ${{ env.MX_CHAIN_GO_TARGET_BRANCH }}
MX_CHAIN_SIMULATOR_TARGET_BRANCH: ${{ env.MX_CHAIN_SIMULATOR_TARGET_BRANCH }}
MX_CHAIN_TESTING_SUITE_TARGET_BRANCH: ${{ env.MX_CHAIN_TESTING_SUITE_TARGET_BRANCH }}
LATEST_COMMIT_HASH: ${{ env.LATEST_COMMIT_HASH }}
PYTEST_EXIT_CODE: ${{ env.PYTEST_EXIT_CODE }}

with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const timestamp = process.env.TIMESTAMP;
const branchName = process.env.BRANCH_NAME;
const currentBranch = process.env.CURRENT_BRANCH;
const goTargetBranch = process.env.MX_CHAIN_GO_TARGET_BRANCH;
const simulatorTargetBranch = process.env.MX_CHAIN_SIMULATOR_TARGET_BRANCH;
const testingSuiteTargetBranch = process.env.MX_CHAIN_TESTING_SUITE_TARGET_BRANCH;
const commitHash = process.env.LATEST_COMMIT_HASH;
const exitCode = process.env.PYTEST_EXIT_CODE;
const issue_number = context.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
let message;

if (timestamp && branchName && timestamp !== "" && branchName !== "") {
const reportUrl = `https://multiversx.github.io/mx-chain-testing-suite/reports/${branchName}/${timestamp}/index.html`;
message = `
📊 **MultiversX Automated Test Report:** [View Report](${reportUrl})

🔄 **Build Details:**
- **mx-chain-go Commit Hash:** \`${commitHash}\`
- **Current Branch:** \`${currentBranch}\`
- **mx-chain-go Target Branch:** \`${goTargetBranch}\`
- **mx-chain-simulator-go Target Branch:** \`${simulatorTargetBranch}\`
- **mx-chain-testing-suite Target Branch:** \`${testingSuiteTargetBranch}\`

🚀 **Environment Variables:**
- **TIMESTAMP:** \`${timestamp}\`
- **PYTEST_EXIT_CODE:** \`${exitCode}\`
🎉 **MultiversX CI/CD Workflow Complete!**
`;
} else {
message = "⚠️ No report was generated due to an error or cancellation of the process.\nPlease checkout gh action logs for details";
}

github.rest.issues.createComment({
issue_number: issue_number,
owner: owner,
repo: repo,
body: message
});

- name: Fail job if tests failed
if: always()
run: |
if [ "${{ env.PYTEST_EXIT_CODE }}" != "0" ]; then
echo "Tests failed with exit code ${{ env.PYTEST_EXIT_CODE }}"
exit 1
else
echo "Tests passed successfully."
fi
6 changes: 6 additions & 0 deletions api/errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ var ErrTxGenerationFailed = errors.New("transaction generation failed")
// ErrValidationEmptyTxHash signals that an empty tx hash was provided
var ErrValidationEmptyTxHash = errors.New("TxHash is empty")

// ErrValidationEmptySCRHash signals that provided smart contract result hash is empty
var ErrValidationEmptySCRHash = errors.New("SCRHash is empty")

// ErrInvalidBlockNonce signals that an invalid block nonce was provided
var ErrInvalidBlockNonce = errors.New("invalid block nonce")

Expand All @@ -79,6 +82,9 @@ var ErrValidationEmptyBlockHash = errors.New("block hash is empty")
// ErrGetTransaction signals an error happening when trying to fetch a transaction
var ErrGetTransaction = errors.New("getting transaction failed")

// ErrGetSmartContractResults signals an error happening when trying to fetch smart contract results
var ErrGetSmartContractResults = errors.New("getting smart contract results failed")

// ErrGetBlock signals an error happening when trying to fetch a block
var ErrGetBlock = errors.New("getting block failed")

Expand Down
Loading
Loading