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

Adjust native contract fee #2331

Merged
merged 5 commits into from
Feb 15, 2021
Merged

Adjust native contract fee #2331

merged 5 commits into from
Feb 15, 2021

Conversation

erikzhang
Copy link
Member

No description provided.

@steven1227
Copy link
Member

When we call native contract, the fee is a fixed number now. Can we make this as a variable which can be adjusted by the Committee?

@erikzhang
Copy link
Member Author

Can we make this as a variable which can be adjusted by the Committee?

Now all fees are controlled by the committee.

@shargon
Copy link
Member

shargon commented Feb 12, 2021

Add storage fees to:

  • NeoToken.RegisterCandidate
  • NeoToken.Vote
  • OracleContract.Request
  • ContractManagement.Deploy
  • ContractManagement.Update

?

@roman-khimov
Copy link
Contributor

Add storage fees to:

I had a similar question, but

* NeoToken.RegisterCandidate

This becomes completely controlled with SetRegisterPrice.

* NeoToken.Vote

Probably the most interesting candidate, but it only uses some additional space on the first vote, then you can change the vote in any way but no additional space will be used.

* OracleContract.Request

This will have a price setting of its own (SetPrice).

* ContractManagement.Deploy
* ContractManagement.Update

These do their own price calculations according to contract/manifest sizes.

@shargon
Copy link
Member

shargon commented Feb 12, 2021

We have all of this methods free:

ContractManagement.setMinimumDeploymentFee
NeoToken.decimals
NeoToken.setGasPerBlock
NeoToken.setRegisterPrice
NeoToken.symbol
GasToken.decimals
GasToken.symbol
PolicyContract.blockAccount
PolicyContract.setExecFeeFactor
PolicyContract.setFeePerByte
PolicyContract.setMaxBlockSize
PolicyContract.setMaxBlockSystemFee
PolicyContract.setMaxTransactionsPerBlock
PolicyContract.setStoragePrice
PolicyContract.unblockAccount
RoleManagement.designateAsRole
OracleContract.finish
OracleContract.setPrice
NameService.addRoot
NameService.decimals
NameService.setPrice
NameService.symbol

I think that we should have a minimum fee although for the committee.

@erikzhang
Copy link
Member Author

I think that we should have a minimum fee although for the committee.

Why?

@shargon
Copy link
Member

shargon commented Feb 12, 2021

Why?

Because this fee will be burned, and I think that they need to contribute as anyone

@erikzhang
Copy link
Member Author

Because this fee will be burned, and I think that they need to contribute as anyone

Either is fine for me. @roman-khimov What do you think?

@roman-khimov
Copy link
Contributor

I don't have a strong opinion here, committee-signed transactions (mostly price setters) are rare and special, if they don't pay for this invocation it's fine for me, if they pay, well, it works for me too (it shouldn't be a problem for committee to arrange enough GAS on the appropriate account). Maybe the only thing that would differ in this case is that if these calls are free then anyone (non-committee) can invoke them and not pay for it (the transaction will fail of course, but with a slightly more overhead than was paid for), not a huge deal but maybe this makes having some price slightly more favorable.

@erikzhang
Copy link
Member Author

I think that we should have a minimum fee although for the committee.

Done.

@erikzhang
Copy link
Member Author

Go?

@cloud8little
Copy link
Contributor

Test passed, good to go.

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.

5 participants