Skip to content

Commit

Permalink
Development Catchup (#420)
Browse files Browse the repository at this point in the history
* Removed unused directory

* [RES-16] Added update kernel message

* [RES-01] Added some module checks

* [RES-02] Added check that a module is an ADO on registration

* [RES-03] Removed remainder from amount sent to seller in exchange

* [RES-08] Added address validatin for app update_address

* [RES-11] Added token address authorisation to cw721 auction

* [RES-12] Added denom validation to cw721 auction

* [RES-19] Added check for app component length

* [RES-20] Added check for same token to token exchange

* [RES-21] Clarity for decimal returns in allowed_withdrawal_percent

* [RES-22] Added check for timestamp in past

* Added test for query withdrawal percent in lockdrop

* [RES-05] Removed lockdrop owner restriction on withdrawals

* Removed unused code

* New Ownership Process (#260)

* Updated ownership process

* Added expiring ownership offer

* Linting

* Fixed failing test

* [AND-01] Altered multichain app to use target chain instead of currchain

* [AND-01] Added test and fixed symlink references

* [AND-02] Added ensure check for ownership on restricted permissioning messages

* [AND-03] Removed App/ADO fee payments

* [AND-04] Added ensure check in validate_andr_addresses

* [ANDR-05] Added length check to username regex

* [AND-06] Added handling for case with multiple duplicate denoms in merge/deduct coins

* [AND-07] Improved funds handling in kernel local handling

* [AND-8] updated action fees to be associated to ado type

* [ANDR-09] Altered how paths are resolved

* Added TODO from AND-07/11

* [AND-12] Improved channel/chain two way mapping

* [AND-16] Added error handling for no channel info when sending ibc message

* Save ado_version.get_type() instead of ado_version in store_code_id and removed .clone() from it

* empty funds route to handle_ibc_hooks, funds route to handle_ibc_direct

* revert commit 5d44dde

* [RES-01] Default modules to empty vector on instantiation

* [RES-05] Removed deprecating withdrawal amount from lockdrop

* [RES-13] Added message to update token contract

* [RES-13] Added test for finding 13

* [RES-22] In marketplace user must provide exact payment

* Fixed failing test from [RES-22]

* [RES-22] Ensure provided amount is exact

* Linting

* component name can't be '.' AND-34

* usernames that are a valid CosmWasm address must be the same as info.sender's address + unit tests AND-41

* added underflow check for consume_use in permissioning AND-37

* removed tilde symbol check from resolve_lib_path

* ado type can no longer be empty or made of only spaces AND-32

* PATH_REGEX now includes paths that start with './'  + unit tests AND-31

* [AND-21] Added limit to path parts length

* [AND-22] Added validation on fee string

* Linting

* [AND-25] Inverted boolean check in handle ibc direct

* [AND-27] Added version checking in adodb publish

* [AND-17] Added asset validation method to ActionFee

* [AND-29] Fixed issue with vfs removing incorrect username

* [AND-30] Added check if username taken

* owner_or_operator checks for add_withdrawable_token and remove_withdrawable_token, and added documentation for them AND-39

* reply function for economics contract, exact behavior tbd AND-33

* [AND-23] Restricted AddParentPath to app contract and renamed it

* test_claim_ownership_all() now passes, execute_claim tests were already passing, cw20_staking replace unwrap() with ? AND-38

* [AND-27] Rewrote vfs path resolving to prevent loops

* updated test_reply_assign_app AND-38

* check if funds are empty before creating SubMsg in handle_local AND-38

* findings concerning vault balance check for test_crowdfund_app

* removed dated todos and unnecesssary check AND-38

* removed commented out todo from kernel execute.rs AND-38

* only verified ADOs can access the kernel's amp_receive AND-42

* test_handle_ibc_direct adjustment AND-42

* Linting

* replaced most addition operations of Uint128 with checked_add() AND-37

* replaced all subtraction operations with checked_sub() AND-37

* Unpublish function for ADODB with unit test and schema update AND-35

* linting

* additional safe math implementations AND-37

* additional checks in kernel integration test to see if Send is working as expected

* Added alphanumeric check to component name

* check for AMPReceive's verify address in the kernel

* linting

* adodb saves unpublished code ids, prevents republishing of unpublished code ids, includes unit test

* linting

* adodb keeps track of unpublished versions of corresponding ADO types, prevents their republishing. With unit test

* unpublished code ids and versions are now stored in a Map

* no longer overwriting the response in the kernel's amp_receive

* linting

* disabled cross chain components in the kernel's handler. Addresses #283

* Revert "disabled cross chain components in the kernel's handler. Addresses #283"

This reverts commit a769989.

* ibc_create_ado always errors and kernel's create() errors if a chain is provided. Addresses #283

* ADODB Unpublish changes and testing

* Fixed error passing for amp_receive

* Kernel Direct Send (#285)

* Added direct sending from kernel

* Linting

* Added check for funds in kernel routing

* Added a fix for dispersed coins in "has coins" check

* Linting

* Linting

* Linting

* Crate version update

* 268 cw20 exchange extended options in startsale struct (#272)

* added optional start time and duration + unit tests + schema update

* Addresses #269 added start_time in Sale for cw20-exchange

* linting

* save start_time as current block time + 1 instead of setting it as Never in case it isn't provided

* linting and comment adjustment

* Addresses #267 refund original token instead of sale token when cancelling sale

* changed claim ownership's new_owner field from Option<Addr> to Option<AndrAddr> with schema update

* removed unused commented code

* 270 marketplace021 extended options in startsale struct (#273)

* added start time and expiration for sale in marketplace with test adjustments

* linting

* added unit tests for start_time and duration, removed pending status

* guard against start times that are more than a second behind current block time

* Added attributes for execute_cancel and added more comments

* removed commented test. This branch addresses issue #270

* updated marketplace schema

* removed SaleNotStarted error, using SaleNotOpen instead

* prefixed test names with test_

* Bump version and updated schema

* Uncommented economics reply method code

* Paginated get_subdir query

* when unpublishing the latest version of an ADO type, its previous version(if available) will be set as the latest version

* test case where we're removing the only version of an ADO type

* linting

* check for is_none instead of is_error in unpublish unit test

* Fixed generics for execute_amp_receive

* combined ReplyIds, started using replyid::payfee instead of 9999 directly

* remove old direct and isc20 channels when new ones are provided for the same chain. AND-12

* fixed unit tests

* Altered ado_type_getter

* VFS uses smart query

* Added check for ':' in get_asset_string

* Added to_lowercase check on vfs

* Reverted ADO version change to use full version type

* All usernames/paths in VFS to lower case

* Removed unused code

* Adjusted ado types query limit

* renamed new_owner to potential_owner, OwernshipRequest query that returns potential owner's address. Resolves #306

* OS Base Queries (audit merge) (#308)

* added base queries to os contracts

* removed version from ADOContract and its related method

* started using ADOContract's methods directly for base queries in OS contracts, removed os_querrier.rs

* replaced unwrap() with ?

* added OwnershipRequest to andr_query, ContractPotentialOwnerResponse struct for OwnershipRequest. #306

* Resolved linting problems

* Removed IBC tests

* Fixed imports

* added permission attribute to execute_authorize_token_contract

* test allocated rewards with start time in the future, added check on the first staker's rewards

* [1.0.rc-1] os ownership messages, lockdrop fix, and marketplace query (#320)

* added ownership execute msg to OS contracts

* resolved issue #316

* added start_time and end_time to SaleStateResponse. Resolves #319

* [1.0.rc-1] Operators Removal (#318)

* removed operators from contracts

* linting

* [1.0.rc-1] Crowdfund End Sale (#324)

* allow ending of sale if the minimum tokens sold is met, but only the owner can end it in that case

* linting

* separated minimum sold and is owner into two variables for clarity

* [1.0.rc-1] Withdraw Feature Removal (#321)

* removed Withdraw and Deposit from Andromeda message, applied them to the vault contract's ExecuteMsg

* removed withdrawable_tokens from ADOContract, removed the withdraw feature, commented out withdraw.rs in ado_contract

* deleted withdraw.rs in ado_contract

* linting

* [RES-04] Made init timestamp non-optional

* Added test for RES-04 changes

* [1.0.rc-1] Cw721 extension removal (#327)

* removed CW721's Extenstion ExecuteMsg

* removed Cw721's Extension QueryMsg

* removed Extention from QueryMsg

* fixed spacing in BaseInstantiateMsg

* removed commented code

* Reinstated cw20-staking integration test

* Updated integration test for delayed allocation for staking

* VFS Regex Upgrades (#312)

* create AppContractResponse, added AppContract query to andr_query and AndromedaQuery (#332)

* Fixed typing errors

* added UpdateChainName and GetChainName methods (#334)

* added UpdateChainName and GetChainName methods

* update: updated GetChainName to ChainName & added custom response type to the query

* renamed get_chain_name function to chain_name function

* [1.0.rc-1] Unique Recipients for Splitter (#340)

* splitter validate returns () instead of bool since the bool was never used. validate now also checks for duplicate recipients

* linting

* fixed test and added case for duplicate recipients

* linting

* check percent_sum in every iteration of the loop

* Bump rc version (#344)

* [1.0.rc-1] Added call_action to Non-OS ADOs (#341)

* call_action function, implemented to Splitter

* implemented call_action to the contracts mentioned in #233

* linting

* added test case for duplicate recipients

* Revert "added test case for duplicate recipients"

This reverts commit f8161d0.

* added test for permissioning in auction integration test

* appended call_action's response to handle_execute's response. Made the corresponding unit test changes

* moved generate_economics_message to economics_msg file in andromeda-testing to reduce redundancy

* call set_conctract_version after cw20_instantiate since that function was overwriting the verison (#348)

* [1.0.rc-1] Time Standardization (#335)

* Basic milliseconds type

* Added Milliseconds to Crowdfund

* Added milliseconds to splitter

* Removed unused code

* Added Milliseconds to lockdrop

* Added milliseconds to timelock

* Added Milliseconds to Rate Limiting Withdrawals

* Added Milliseconds to cw20-staking

* Schema updates

* Added subtract seconds function

* Schema generation

* [1.0.rc-1] CosmWasm 1.5 Upgrade (#342)

* upgraded to cosmwasm 1.5, made the necessary adjustments

* upgraded cw20 and cw20-base, fmt fix

* uncommented denom validation, enabled cosmwasm 1.3 feature for auction to access query_denom_metadata

* updated cw-multi-test to 1.0.0, fixed auction integration test denom validation

* auction mock_querier adjustment

* linting after resolving merge conflicts

* took DenomMetadataResponse struct from cosmwasm_std and defined it locally

* minor adjustment to kernel integration test

* App schema changes

* [1.0.rc-1] Suspend Register User in VFS (#355)

* disabled RegisterUsername, adjusted unit tests, created TemporarilyDisabled ContractError

* linting

* adjusted mock.rs in andromeda-testing, crowdfund and kernel intergration tests

* linting

* used #[cfg(not(test))] for the TemoirarilyDisabled error, reverted unit test changes

* commented out AddressAndKey option, commented out unreachable code in instantiation (#361)

* [1.0.rc-1] VFS SubDir Query Change to Struct from Tuple (#362)

* replaced tuple with struct for VFS's SubDir

* renamed struct, updated schema

* removed Timestamp query from CW20-Staking (#366)

* [1.0.rc-1] WithdrawableBalance Removal from AndromedaQuery (#367)

* removed WithdrawableBalance query from AndromedaQuery, created PermissionedActionsResponse for Permissioned Actions query, temporarily disabled query_balance with startegy in Vault contract

* test fixes

* linting

* Instantiate2 and App ADO Creation Automation (#354)

* Added instantiate 2 [WIP]

* Added instantiate2 and fixed tests

* Added automation for app contract instantiated ADOs

* Fixed contract name and cw2 references

* Disabled Instantiate2 for non-new app components

* Do not register hidden app components

* Register symlinks before instantiation

* Updated handle add app component

* Change local reference resolution format

* Added Instantiate2 ContractError

* Added component event generation

* Improved instantiate attribute returns

* Fixed failing tests

* Fixed ado type in storage

* Fix prev commit

* Added temporary ADODB query

* ADODB uses string for ado type

* Fixed failing test

* Swapped VFS to use raw query

* Removed unused query

* Fixed contract name for addresslist and auction

* [1.0.rc-1] Optional Start Time for Sale in Crowdfund & Auction (#331)

* added optional start time for crowdund, changed expiration to duration for consistency

* fixed rate limiting withdrawals schema

* made start time optional in auction's start and update sale

* set start time when not provided as current time + 1 instead of current time like in cw20 exchange

* created get_and_validate_start_time to make the functions that use start_time more concise

* start_time defaults to current_time + 1, and duration has to be above 0 across cw20 exchange, auction, crowdfund and marketplace

* forwarded time in markeplace integration test to start sale

* used block time variable for current_time in assert_auction_created()

* replaced duration with expiration

* replaced duration with expiration in crowdfund integration test

* renamed expiration to end_time in State struct and StartSale msg

* generated schemas

* implemented Milliseconds to cw20-exchange, auction, crowdfund, and marketplace

* Removed balance query (#379)

* Albert/get addresses with names for symlink (#376)

* fixed app contract's add component function to update ado addresses when component is added with symlink

* add: added unit test with component add usecase

* updated integration test with valid symlink

* lint fixed

* updated integration test to refer app name with init msg result

* fixed lint

* [RC] Ownership Request Query Response Object (#380)

* Changed response object for ownership request query

* Added expiration to ownership request query response

* Schema generation

* [1.0.rc-1] Denom Validation Fix (#384)

* validate denom now returns the actual error instead of our ContractError

* validate_denom now uses query_supply instead of query_denom_metadata

* linting

* added match statement for BankQueries in mock_querier, removed commented code

* [1.0.rc-1] AndrAddr Recipient for SendNft in CW721 (#375)

* made contract_addr's type in execute_send_nft an AndrAddr

* get raw address of contract_addr before calling send_nft

* implemented AndrAddr for execute_send's contract in CW20

* use local vfs path instead of address in auction integration test

* Lint fix and schema build

* [1.0.rc-1] Crowdfund & Auction Adjustments (#386)

* Albert/make open auction an option and add a query (#364)

* adjusted auction contract to accept unauthorized cw721 based on the authorized_token_addresses provided by the instantiate msg

* addded query to get the authorized addressses for an auction

* added pagination to permissioned actors query

* fixed lint err

* removed unused state from storage

* resolved conflict with rc branch

* updated permission system pagination

* Fixed query permissioned actors

* Linting

---------

Co-authored-by: Connor Barr <[email protected]>

* STD + Macro version bump

* Version bump

* fixed add app component error (#389)

* fix cosmwasm_1_3 error in auction (#393)

* [Fix]: Local AMP Message Recipient (#396)

* Added local resolution to Recipient struct

* Added Recipient validation

* Fixed message validate logic order for splitter

* Update lockdrop incentive token (#390)

* updated lockdrop to use Addr for incentive token

* fixed linting err

* saved incentive token's AndrAddr directly instead of resolving it

* fixed bug in lockdrop contracT

* used base migrate function in all contracts (#394)

* used base migrate function in all contracts

* updated base migrate function logic for saving contract name

* fixed linting err:

* [1.0.rc-1] AndrAddr for Some CW20 & CW721 Messages (#398)

* implemented AndrAddr to recipient in Transfer, TransferFrom, and SendFrom in CW20

* implemented AndrAddr to TransferNft's recipient in cw721

* used some vfs paths instead of raw addresses in cw20 staking integration test

* replaced all instances of env: ExecuteContext with ctx: ExecuteContext

* Integration Test Improvements (#388)

* Added instantiate 2 [WIP]

* Added instantiate2 and fixed tests

* Added automation for app contract instantiated ADOs

* Fixed contract name and cw2 references

* Disabled Instantiate2 for non-new app components

* Do not register hidden app components

* Register symlinks before instantiation

* Updated handle add app component

* Change local reference resolution format

* Integration Testing Restructure (#264)

* Mock updates

* Linting

* Added STD version to root cargo file

* Updated auction to new testing setup

* Linting

* Updated crate versions

* Fixed failing test

* Linting

* Updated OS to use new structure in integration testing

* Linting

* Added message generics to mock structs for better type safety

* Removed testing feature

* Updated final tests to new integration test standard

* Create README.md

* Update README.md

* Update README.md

* Fixed tests

* Added Instantiate2 ContractError

* Added component event generation

* Improved instantiate attribute returns

* Fixed integration tests

* Fixed failing tests

* [WIP] Mock builder

* Upgraded unit-test scaffolding

* Fixed tests

* Fixed app test

* Updated testing readme

* Improved app integration test

* Fixed tests and removed cw2 dependencies

* Fixed imports

* Lock sha256 version

* Update auction and marketplace contracts

* Fixed module permissioning

* [RC]: Marketplace and Auction Recipients (#399)

* Added recipient field to auction

* Updated marketplace for recipient

* Fixed auction recipient

* Fixed failing tests

* Improved auction test

* Version bumps

* Fix version issues from previous commit

* Remove submodule

* Schema fixes

* [1.0.rc-1] MillisecondsDuration and MillisecondsExpiration types (#403)

* replaced Milliseconds with either MillisecondsDuration or MillisecondsExpiration

* Splitter struct's lock comment improvement and change to MillisecondsExpiration

* Test

* feat: Added git hooks

* fix: added conventional commits config

* [1.0.rc-1] CW20 Support for the Auction & Marketplace ADOs (#391)

* added valid_cw20_contract in auction's state, adjusted validate_denom to accept the valid cw20 contract

* execute_place_bid_cw20 for auction

* added support for cw20 in auction's execute_claim

* returned the original order of messages in the response

* cw20 support for claim, adjusted validate_denom, use permissioning system to set valid cw20

* added unit tests for cw20 support

* renamed cw20hookmsg's purchase to PlaceBid

* updated auction's schema

* changed ReceiveCw20 to Receive, integration test for auction with cw20

* updated auction's schema

* additional checks for auction_cw20 integration test

* improved error message for InvalidFunds

* unit test adjustment for new error message

* moved denom_validation to denom file in the common folder for easier implementation for other contracts

* added uses_cw20 in auction state

* cw20 support for marketplace ADO

* added unit tests for cw20 support in Marketplace

* added integration test for cw20-enabled marketplace, adjusted tax payments when buying with cw20

* stopped sending 0 funds when tax recipient and amount are None in Marketplace

* improved some error messages

* added denom validation for crowdfund

* changed whitelist to in AuctionState to a bool, validate whitelist in auction using permissioning system, whitelist is set per individual auction

* implemented new whitelist system to update_auction

* adjustments to denom.rs, auction, marketpalce, splitter and crowdfund

* fixed cw20 tax payments in auction, same implementation as marketplace

* fmt fix

* added recipient's address support for cw20 auction

* removed check that prevented open auctions

* added conditional statement for after tax payment in marketplace

* resolves #402

* added recipient address support for cw20 sales in Marketpalce

* added recipient to cw20 auction integration test

* added whitelist testing in auction integration test

* implemented genereate_msg_cw20 in marketplace and auction

* refactor: remove unncessary checks, improve error message, add same check for denom validation in update auction as in start auction

* added fund limit to the create batch (#404)

* added lower fund limit to the create batch

* added validation for maximum funds for batch creation

* fixed linting err

* fixed validation process error

* updated test case

* feat: Added MockVestingContract struct to Vesting Contract

* fix: Removed unused file

---------

Co-authored-by: Connor Barr <[email protected]>

* [RC]: Removed Expiration from Permissioning and UpdateOwner messages (#408)

* fix: Replaced Expiration with MillisecondsExpiration in UpdateOwner

Old messages will be incompatible with this change if they have an expiration field

* fix: Replaced Expiration with MillisecondsExpiration in permissioning messages

Old permissioning messages will be incompatible if they contained an expiration

* fix: Fixes cw20 validation in marketplace

* chore: ✅ Bumped all contract versions to 1.0.0

* chore: 📦️ Fixed crate version references for publishing

* chore: 🔧 Added descriptions for all contract packages

* fix: 🔧 Added license to Andromeda Ecosystem crate

* test: 🐛 Fixed failing cw20 staking integration test

* chore: resolve merge conflict issues

* test: ✅ Fixed failing test

* build: ⏪ Reverted rust version to 1.69.0 and removed unused code

* build: ⏪ Changed rust version to 1.75.0

* ci: Set binaryen version in CI

* ci: Added apt update to build CI

* feat: add ability to removereplace reward tokens to cw20 staking contract (#418)

* feat: allowed owner to remove reward token

* feat: allowed owner to replace reward token

* fix: fixed reward token operation to handle pending rewards

* fix: fixed claim reward logic to remove inactive reward token logic

* fix: improved readability & added additional attribute to remove token response to notify number of reward tokens after the operation

* fix: generated schema

* fix: optimized execute_add_reward_token->reward token validation logic

* feat: ADOBaseVersion Query for AndromedaQuery (#416)

* feat: add ADOBase Version query to AndromedaQuery

* refactor: update schemas

* feat: added binaryen install script to ci

* ci: 🎨 moved binaryen install order

---------

Co-authored-by: Joe Monem <[email protected]>
Co-authored-by: Anshudhar Kumar Singh <[email protected]>
Co-authored-by: Joe Monem <[email protected]>
Co-authored-by: Speed Demon <[email protected]>
Co-authored-by: Anshudhar Kumar Singh <[email protected]>
  • Loading branch information
6 people authored Apr 22, 2024
1 parent 676c983 commit 4907803
Show file tree
Hide file tree
Showing 485 changed files with 31,746 additions and 26,064 deletions.
7 changes: 7 additions & 0 deletions .git-hooks/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env sh

commit_message="$1"
# exit with a non zero exit code incase of an invalid commit message

# use git-conventional-commits, see https://github.com/qoomon/git-conventional-commits
npx git-conventional-commits commit-msg-hook "$commit_message"
19 changes: 14 additions & 5 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
fetch-depth: 1
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.69.0
toolchain: 1.75.0
components: rustfmt, clippy
profile: minimal
override: true
Expand All @@ -40,7 +40,7 @@ jobs:
fetch-depth: 1
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.69.0
toolchain: 1.75.0
profile: minimal
- run: cargo fetch --verbose
- run: cargo build
Expand All @@ -56,13 +56,16 @@ jobs:
name: Actions - build contracts and upload artifacts
needs: [contract-tests]
steps:
- run: sudo apt install binaryen
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.69.0
- run: rustup override set 1.69.0
toolchain: 1.75.0
- run: rustup override set 1.75.0
- run: rustup target add wasm32-unknown-unknown
- uses: actions/checkout@v2
- name: Install Binaryen
run: |
chmod +x "${GITHUB_WORKSPACE}/ci-scripts/install_binaryen.sh"
"${GITHUB_WORKSPACE}/ci-scripts/install_binaryen.sh" all
- name: Build
run: |
chmod +x "${GITHUB_WORKSPACE}/build.sh"
Expand Down Expand Up @@ -107,3 +110,9 @@ jobs:
run: |
chmod +x "${GITHUB_WORKSPACE}/build_schema.sh"
"${GITHUB_WORKSPACE}/build_schema.sh"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: schema
path: ./artifacts/
if-no-files-found: error
Loading

0 comments on commit 4907803

Please sign in to comment.