maxonrow / maxonrow-go

Maxonrow Blockchain
https://www.maxonrow.com/
5 stars 6 forks source link

NonFungible Token requires the default feeCollector. #204

Closed ghost closed 3 years ago

ghost commented 3 years ago

When I try to create an NFT token, mxwd throws the following error

'{"codespace":"sdk","code":7,"message":"Fee collector invalid."}'

so i created a interface for query feeCollector of NFT. and the return is nil.

image

So, I looked for the interface to set up the feeCollector.

image

I Found that SetFeeCollectorAddresses is only called in the MaintainerProposal

If the gov module does not create a corresponding Proposal, the user can never use the NFT token feature Should we provide a default feeCollector for NFT by hard-coding ?

b00f commented 3 years ago

Maintainer module is in charge of setting Fee multiplier and fee collector.

Default fee collector address can't be hard coded because it changes from chain to chain. Another place is adding default fee collector inside genesis. In this case we need to add a new parameter to genesis doc.

However the main reason we don't have any default value for fee_collector is to control the NFT/FT module. If the maintainer doesn't want to support NFT module, he simply he can let fee collector empty.

yenkhoon commented 3 years ago

@PandaTea This is a govern blockchain. If you were to test it out our nft, I suggest you run our test case in go test environment and copy that state and run the blockchain. The keys are stored inside the test folder as well.

We do not hardcoded any addresses, because we practice the maintainers should take care of this. Also @b00f made a good statement about the reason.

Additionally, the maintainers module, is a module made for the governors base on the governing purposes. Any proposal made, it needs 3 agreements to be approved or rejected.

ghost commented 3 years ago

@PandaTea This is a govern blockchain. If you were to test it out our nft, I suggest you run our test case in go test environment and copy that state and run the blockchain. The keys are stored inside the test folder as well.

We do not hardcoded any addresses, because we practice the maintainers should take care of this. Also @b00f made a good statement about the reason.

Additionally, the maintainers module, is a module made for the governors base on the governing purposes. Any proposal made, it needs 3 agreements to be approved or rejected.

thank you,i got it.

ghost commented 3 years ago

Maintainer module is in charge of setting Fee multiplier and fee collector.

Default fee collector address can't be hard coded because it changes from chain to chain. Another place is adding default fee collector inside genesis. In this case we need to add a new parameter to genesis doc.

However the main reason we don't have any default value for fee_collector is to control the NFT/FT module. If the maintainer doesn't want to support NFT module, he simply he can let fee collector empty.

i got it, thanks for your answer