Skip to content

Commit

Permalink
feat: stellar contracts final (#8)
Browse files Browse the repository at this point in the history
* inittial commit

* restructure, rlp integration and xcall integration

* unit test happy cases completed

* panic case unit test completed

* storate and extend ttl updates

* cleanups

* unused variables cleanup

* integer data types update in unittest

* alloc feature removed from asset manager as that is not required and giving issue

* removed duplicate reading

* points changed to 10k, verify limit on withdraw commented for testing

* commit for testing

* commit for testig

* commit for testing

* commit for tesitng

* u64 to u128 conversion approach changed

* timestamp issue fixed

* balanced dollar message withdraw_to in network address

* decode length check enabled

* number type conversion update

* sender params added to handle_call_message method

* bnusd cross trasfer revert from param update

* string address validation

* unit test added for invalid adddress

* check valid address for Bytes

* asset manager rate_limit calc update, bnusd invalid address unittest added

* reentrancy issue fix

* error handling fixes

* bnusd code optimization

* code optimization

* verify protocal return type issue fixed

* code optimize for protocal verification

* reentrancy on asset manager fixed

* [dev_dependencies] to [dev-dependencies]

* xcall wasm removed from gitignore, for CI build

* ci: add cicd

* internal audit issues fixes

* ci: add codecov bandge

* ci: configure condecov

* version updated and tested

* token unittests for balanced dollar updated and enabled

* xcall param removed from handle call message of bnUSD and xcall manager

* balanced messages separated from rlp lib

* stellar deviation doc added

* rlp decoder issue fixed for empty byte array

* token data data structure optimized and tested

* test events removed, token data saved

* storage type mismatch issue fixed, ttl_extend verification on unit test

* cross_transfer and cross_transfer_data methods merged

* the readme document added

* xcall address validation issue and verify_protocols issue fixed, tests added

* re-entry issue fixed

* mint method removed and tests updated

* Initial commit

* ci: add hygiene ci checks

* ci: add pull request template

* docs: add Codecov badges

* ci: upgrade rust toolchain version to 1.79.0

* rate limit default value set

* burn method removed -> token interface removed

* rlp issue fix

* chore: configure upgrade authority for upgrading contracts

* fix: test setup

---------

Co-authored-by: sagar sapkota <sapkotasagar51@yahoo.com>
Co-authored-by: Deepak Bomjan <dpaktamang@gmail.com>
Co-authored-by: Fez <107530591+FezBox@users.noreply.github.com>
Co-authored-by: DeepakBomjan <44976635+DeepakBomjan@users.noreply.github.com>
Co-authored-by: bishalbikram <contact.bishalbikram@gmail.com>
  • Loading branch information
6 people authored Sep 23, 2024
1 parent 3bf3d45 commit c0c1645
Show file tree
Hide file tree
Showing 64 changed files with 4,689 additions and 207 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve
title: ''
labels:
labels: iBriz
assignees: ''

---
Expand All @@ -21,4 +21,4 @@ Steps to reproduce the behavior:
A clear and concise description of what you expected to happen.

**Additional context**
Add any other context about the problem here.
Add any other context about the problem here.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Feature request
about: Suggest an idea for this project
title: ''
labels:
labels: iBriz
assignees: ''

---
Expand All @@ -17,4 +17,4 @@ A clear and concise description of what you want to happen.
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
Add any other context or screenshots about the feature request here.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/task-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Task Template
about: New tasks created should consist of the following information
title: ''
labels:
labels: iBriz
assignees: ''

---
Expand All @@ -24,4 +24,4 @@ Ex: When restarting the relay, synchronization picks up from the most recently s

### Additional Information

Describe anything relevant that hasn't been mentioned yet.
Describe anything relevant that hasn't been mentioned yet.
11 changes: 11 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cicd:
- '.github/workflows/*'

scripts:
- 'scripts/*'

test:
- 'test/**'

documentation:
- '**/*.md'
35 changes: 35 additions & 0 deletions .github/workflows/build-test-soroban-contracts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Build
on:
push:
branches:
- '**'
pull_request:
branches:
- main

jobs:
Build:
name: Build Soroban Contracts
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
submodules: true

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.79.0
target: wasm32-unknown-unknown
override: true
profile: minimal

- name: Install wasm32
run: |
rustup target add wasm32-unknown-unknown
cargo install --locked soroban-cli
- name: Build & Test soroban Contracts
run: |
soroban contract build
43 changes: 43 additions & 0 deletions .github/workflows/soroban-codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Soroban contracts Codecov

on:
pull_request:
branches:
- "main"
push:
branches:
- "**"

jobs:
code-coverage:
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Install Rust
run: rustup update stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Install wasm32
run: |
rustup target add wasm32-unknown-unknown
cargo install --locked soroban-cli
- name: Build & Test soroban Contracts
run: |
soroban contract build
- name: Generate code coverage
run:
cargo llvm-cov --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
flags: rust
fail_ci_if_error: true
211 changes: 10 additions & 201 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,205 +1,14 @@
### Java ###
# Compiled class file
*.class
target
.soroban

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

.idea

.gradle
**/build/
!gradle-wrapper.jar

gradle.properties

.project
.classpath
.settings
**/bin/
**/pkg/

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

### Rust ###
# Generated by Cargo
# will have compiled files and executables
debug/
target/
artifacts/*

report/**

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
#Cargo.lock
artifacts

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

### Solidity ###
# Logs
logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
# environment variables
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# Code Coverage
lcov.info

# vscode files
.vscode

**/.DS_Store


vendor/**
scripts/download_buf.sh
.env.production

test/e2e-demo/ibc-config/**
# macOS-specific files
.DS_Store
Cargo.lock
test_snapshots
.VSCodeCounter

.xcall-multi
artifacts/
24 changes: 24 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[workspace]
resolver = "2"
members = [
"contracts/*",
"libs/*"
]

[workspace.dependencies]
soroban-sdk = "21.6.0"

[profile.release]
opt-level = "z"
overflow-checks = true
debug = 0
strip = "symbols"
debug-assertions = false
panic = "abort"
codegen-units = 1
lto = true

# For more information about this profile see https://soroban.stellar.org/docs/basic-tutorials/logging#cargotoml-profile
[profile.release-with-logs]
inherits = "release"
debug-assertions = true
Loading

0 comments on commit c0c1645

Please sign in to comment.