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

SmartContract as trait #446

Merged

Conversation

Maar-io
Copy link
Member

@Maar-io Maar-io commented Sep 29, 2021

@akru @Dinonard

please take a look at this commit.
The implementation of trait IsContract is placed in runtime in order to reach EVM module.
But now the visibility of fn is_contract in pallet-dapps-staking is moved as well and compiler complains with:
no variant or associated item namedis_contractfound for enumtraits::SmartContractin the current scope

please advice what would be the best approach to solve this

Copy link
Member

@akru akru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Maar-io Maar-io force-pushed the feature/enable_evm_is_contract branch from afae438 to 7c325d4 Compare October 2, 2021 16:25
@Maar-io
Copy link
Member Author

Maar-io commented Oct 2, 2021

@akru @Dinonard please have another look. Changes:

  • updated Shibuya runtime
  • rebased to feature/dapp-staking-pallet
  • changed Shibuya configurable constants
  • fix bug with registrationDeposit amount
  • removed some unused code and comments
  • HistoryDepth set initially to be 30 days

@Maar-io Maar-io marked this pull request as ready for review October 2, 2021 20:46
/// EVM smart contract instance.
Evm(sp_core::H160),
/// Wasm smart contract instance.
Wasm(AccountId),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shibuya have no wasm contracts now, let’s guard users of errors

Copy link
Member

@akru akru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but please fix shibuya runtime

@@ -0,0 +1,3 @@
pub trait IsContract {
fn is_contract(&self) -> bool;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Imo, this should just be in the mod.rs of the pallet.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is no fast rule on where the traits should be defined. We can do it either way

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I commented since it's 3 lines of code.
You could re-export it as something from pallet_dapps_staking::trait if you want to use trait.

But it's fine like this too.

Now that I wrote the comment above, I realized there's no documentation on the method :P

@Dinonard Dinonard merged commit cbe838b into feature/dapp-staking-pallet Oct 3, 2021
@Dinonard Dinonard deleted the feature/enable_evm_is_contract branch October 3, 2021 13:24
@Dinonard
Copy link
Member

Dinonard commented Oct 3, 2021

Change request resolved in Slack.

Dinonard pushed a commit that referenced this pull request Oct 4, 2021
* SmartContract as trait

* contract_id.is_contract() changes

* changed SmartContract to trait

* more rebase fixes

* runtime updates for shibuya and local

* changing Shibuya parameters, delete unused code

* default HistoryDepth set to 30

* fixing reserved amount for registration

* minor comment fix
hoonsubin added a commit that referenced this pull request Oct 4, 2021
* re fork

* remove recursive limit

* add bond() bond_extra() set_controller()

* formatting fix

* Feature/dapp step1 (#407)

* dapps-staking step1. (#405)

* added unbond() withraw_unbonded()

* dapp_staking_bond_test_wip

* add EraFinder mock and test bonding not_ok

Co-authored-by: Dinonard <dino.pacandi@gmail.com>

* Expanded UT for bond()
Added UT for bond_extra() and set_controller()
Left some TODOs to discuss in review

* add unbond() UT

* withdraw_unbonded() UT

* UT granularization, various improvements

Co-authored-by: Mar.io <34627453+Maar-io@users.noreply.github.com>

* Feature/dapp step2 (#409)

* dapps-staking step1. (#405)

* added unbond() withraw_unbonded()

* dapp_staking_bond_test_wip

* add EraFinder mock and test bonding not_ok

Co-authored-by: Dinonard <dino.pacandi@gmail.com>

* Expanded UT for bond()
Added UT for bond_extra() and set_controller()
Left some TODOs to discuss in review

* add unbond() UT

* withdraw_unbonded() UT

* UT granularization, various improvements

* resolving some merge issues

* Feature/dapps register (#408)

* register + test

* added SmartContract struct

* removed ContractFinder trait

* Feature/dapp step1 (#407)

* dapps-staking step1. (#405)

* added unbond() withraw_unbonded()

* dapp_staking_bond_test_wip

* add EraFinder mock and test bonding not_ok

Co-authored-by: Dinonard <dino.pacandi@gmail.com>

* Expanded UT for bond()
Added UT for bond_extra() and set_controller()
Left some TODOs to discuss in review

* add unbond() UT

* withdraw_unbonded() UT

* UT granularization, various improvements

Co-authored-by: Mar.io <34627453+Maar-io@users.noreply.github.com>

* register + test

* added SmartContract struct

* removed ContractFinder trait

* add to runtime

* resolvimg merge issues

* fmt fix

Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>

* review fixes. Added support for AlreadyUsedDeveloperAccount

* fmt fix

* moved helper register() on top

* fmt test file

* fmt fix after merge

Co-authored-by: Dinonard <dino.pacandi@gmail.com>
Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>

* dapps-staking Era handling (#410)

* era handling and ForceEra

* remove reward distribution from on_initialize

* added new storage maps (#413)

* added new storage maps

* added comment for PalletEraRewards

* Dapps-staking register() refactoring (#414)

* register() refactoring

* updateds after review
register() updated with initial:
  ContractLastClaimed
  ContractLastStaked

* not needed empty insert for ContractLastClaimed and Staked

* Update Cargo.toml (#420) with license

* Feature/bond and stake (#415)

* Initial stake and unbond

* Initial implementation of bond and stake

* Finished bond_and_stake, start with UT

* UT update & staked era bug fix

* Added era reward struct

* Pallet constants for staking, bug fixes, new UTs

* Finalized unit test, ready for review

* fix compilation error for runtime

* documentation fixes

* addressing review comments

Weight calculation will be implemented in a follow-up PR.

* License move to dapps (#421)

* Feature/unbond unstake and withdraw (#424)

* unbond,unstake&withdraw initial commit

* additional UTs for unbond_and_withdraw

* more UTs and bug fixes

* added test utils, minor modifications

* dapps staking claim (#422)

* initial claim() function

* fmt fix and license info

* added clearing of storage until claim era

* UT with several staking for a contract

* sceleton for payour_stakers()

* more checks on claim()

* fixes after running UT

* review fixes

* more review fixesž

* optimize storage use during payout

* minor comment fix

* added UT for 2 contracts

* minor merge fix

* claim() review updates

* use map instead of vec of vec, plus fmt

* renaming and adding comments to claim algorithm

* remove unnecessary cloning

* implemented accumulator for era rewards

* Feature/dapp shiden15 (#429)

* Added DealWithFees handler for tx fees (#391)

* Temporary disable custom signatures pallet (#401)

* Temporary disable custom signatures pallet

* Bump version

* Fix custom signatures pallet (#402)

* Added stale transaction traction
* Added constant transaction fee

* EVM contracts integration (#397)

* Added EVM into runtime

* Added EVM support into collator

* Enabled Ethereum-compatible RPC
* Added Frontier consensus middleware

* Fix frontier consensus

* Fix frontier invalid transaction bug

* Added Shibuya testnet

* Fix EVM gas fee charge (#411)

* Fix pallet custom signatures issues (#412)

* Fix pallet custom signatures issues

* Update Cargo.lock

* Development chain with EVM and Ink contracts (#423)

* Development chain with EVM and Ink contracts

* Fix code formatting

* Added local chain properties

* Enable EVM withdraws & customsig fixes (#419)

* Enable EVM withdraws & customsig fixes

* Enable customsig pallet for shiden

* Fix EVM native tx conversion (#426)

* Fix EVM native tx conversion

* Increase Alice development endowment

* Update Cargo.lock

* Added staking EVM precompiles (#425)

* re fork

* remove recursive limit

* add bond() bond_extra() set_controller()

* formatting fix

* Feature/dapp step1 (#407)

* dapps-staking step1. (#405)

* added unbond() withraw_unbonded()

* dapp_staking_bond_test_wip

* add EraFinder mock and test bonding not_ok

Co-authored-by: Dinonard <dino.pacandi@gmail.com>

* Expanded UT for bond()
Added UT for bond_extra() and set_controller()
Left some TODOs to discuss in review

* add unbond() UT

* withdraw_unbonded() UT

* UT granularization, various improvements

Co-authored-by: Mar.io <34627453+Maar-io@users.noreply.github.com>

* Feature/dapp step2 (#409)

* dapps-staking step1. (#405)

* added unbond() withraw_unbonded()

* dapp_staking_bond_test_wip

* add EraFinder mock and test bonding not_ok

Co-authored-by: Dinonard <dino.pacandi@gmail.com>

* Expanded UT for bond()
Added UT for bond_extra() and set_controller()
Left some TODOs to discuss in review

* add unbond() UT

* withdraw_unbonded() UT

* UT granularization, various improvements

* resolving some merge issues

* Feature/dapps register (#408)

* register + test

* added SmartContract struct

* removed ContractFinder trait

* Feature/dapp step1 (#407)

* dapps-staking step1. (#405)

* added unbond() withraw_unbonded()

* dapp_staking_bond_test_wip

* add EraFinder mock and test bonding not_ok

Co-authored-by: Dinonard <dino.pacandi@gmail.com>

* Expanded UT for bond()
Added UT for bond_extra() and set_controller()
Left some TODOs to discuss in review

* add unbond() UT

* withdraw_unbonded() UT

* UT granularization, various improvements

Co-authored-by: Mar.io <34627453+Maar-io@users.noreply.github.com>

* register + test

* added SmartContract struct

* removed ContractFinder trait

* add to runtime

* resolvimg merge issues

* fmt fix

Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>

* review fixes. Added support for AlreadyUsedDeveloperAccount

* fmt fix

* moved helper register() on top

* fmt test file

* fmt fix after merge

Co-authored-by: Dinonard <dino.pacandi@gmail.com>
Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>

* dapps-staking Era handling (#410)

* era handling and ForceEra

* remove reward distribution from on_initialize

* added new storage maps (#413)

* added new storage maps

* added comment for PalletEraRewards

* Dapps-staking register() refactoring (#414)

* register() refactoring

* updateds after review
register() updated with initial:
  ContractLastClaimed
  ContractLastStaked

* not needed empty insert for ContractLastClaimed and Staked

* Update Cargo.toml (#420) with license

* Feature/bond and stake (#415)

* Initial stake and unbond

* Initial implementation of bond and stake

* Finished bond_and_stake, start with UT

* UT update & staked era bug fix

* Added era reward struct

* Pallet constants for staking, bug fixes, new UTs

* Finalized unit test, ready for review

* fix compilation error for runtime

* documentation fixes

* addressing review comments

Weight calculation will be implemented in a follow-up PR.

* License move to dapps (#421)

* Feature/unbond unstake and withdraw (#424)

* unbond,unstake&withdraw initial commit

* additional UTs for unbond_and_withdraw

* more UTs and bug fixes

* added test utils, minor modifications

* dapps staking claim (#422)

* initial claim() function

* fmt fix and license info

* added clearing of storage until claim era

* UT with several staking for a contract

* sceleton for payour_stakers()

* more checks on claim()

* fixes after running UT

* review fixes

* more review fixesž

* optimize storage use during payout

* minor comment fix

* added UT for 2 contracts

* minor merge fix

* claim() review updates

* use map instead of vec of vec, plus fmt

* renaming and adding comments to claim algorithm

* remove unnecessary cloning

* implemented accumulator for era rewards

* moved pallet-dapps-staking to local runtime

* megre conflict and fmt

Co-authored-by: Aleksandr Krupenkin <mail@akru.me>
Co-authored-by: satellitex <s.a.t.e.3.ths@gmail.com>
Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>
Co-authored-by: Dinonard <dino.pacandi@gmail.com>
Co-authored-by: Sota Watanabe <w.souta.s.life@gmail.com>

* test failing due to wrong name (#430)

* wrong era to read EraRewardsAndStakes (#431)

Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>

* Feature/dapps staking cleanup (#437)

* Initial dapps staking cleanup

* Dapps staking cleanup 2nd part

* Dapps staking cleanup part3

* Improved empty current era handling

* Era reward bug fix

* Revert some fixes

* Addressed comments

* Fixed issue with era staking and reward. 3 more UTs need to be changed

* Claim UTs few fixes, more remains to be done

* refactoring claim UTs (#438)

* Feature/dapps staking claim refactor (#439)

* Refactored claim method to handle eras beyond history depth. Added unclaimed reward accumulation

* Rebase and some improvements

* Comment update

* registration with pre-approved list of contracts (#442)

* registration with preapproved list of contracts

* format fix

* renaming and using append

* Inject rewards into dapps staking pallet (#448)

* Inject rewards into dapps staking pallet

* local-runtime uses OnTimestamp

* Use of OnUnbalanced trait

* Aura and BLockReward tuple

* added counter for individual rewards (#450)

* added counter for individual rewards

* update claim UT

* added counter for rewards paid out to contract

* review rework

* review rework2

* Added register deposit function (#451)

* Added register deposit function

* Fix code formatting

* rebase updates

Co-authored-by: Dinonard <dino.pacandi@gmail.com>

* SmartContract as trait (#446)

* SmartContract as trait

* contract_id.is_contract() changes

* changed SmartContract to trait

* more rebase fixes

* runtime updates for shibuya and local

* changing Shibuya parameters, delete unused code

* default HistoryDepth set to 30

* fixing reserved amount for registration

* minor comment fix

* enable developer as the key for preapproval (#455)

* enable developer as the key for preapproval

* use StorageMap instead of Vec for preapproved devs

* adding Vesting pallet (#459)

* Feature/dapps staking unregister (#458)

* use secure hasher

* Unregister implementation

* Unregister unit tests

* Addressed review comments

* Use safe hasher

* Rebase to latest

* Adding README.md for pallet-dapps-staking (#460)

* added README.md

* Some updates, added unregister documentation

Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>

Co-authored-by: satellitex <s.a.t.e.3.ths@gmail.com>
Co-authored-by: Mar.io <mario@stake.co.jp>
Co-authored-by: Dinonard <3002868+Dinonard@users.noreply.github.com>
Co-authored-by: Mar.io <34627453+Maar-io@users.noreply.github.com>
Co-authored-by: Dinonard <dino.pacandi@gmail.com>
Co-authored-by: Sota Watanabe <w.souta.s.life@gmail.com>
Co-authored-by: Aleksandr Krupenkin <mail@akru.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants