kowala-tech / kcoin

A stable cryptocurrency that algorithmically targets $1 USD using the Kowala Protocol
https://www.kowala.tech/
Other
18 stars 16 forks source link

Support for large-scale token minting #840

Closed yourheropaul closed 5 years ago

yourheropaul commented 5 years ago

The problem

The existing minting tools are okay for one-off minting, but not ideal for minting tokens to many different people. The process is arduous and seems different even for fairly technical people.

Non-technical people are finding the minting process challenging, and it's causing problems because they wont engage with it.

There are a large number of required mint operations coming up, and John is becoming the bottleneck for processing them.

Also, tokens are sold in whole numbers (ie, not in tokenWei) and the process is necessarily complicated by having to convert the numbers via web3.toWei().

Possible solutions

We need a less techy and fiddly solution for proposing and confirming mint operations. I can think of two possible solutions:

1. Better JavaScript support in the console

For example, have mtoken.mint() return the sequential multsig ID (at the moment it just outputs the transaction ID) and provide some JavaScript that can help automate the process.

For batch operations, this could be a simple as hand-written .js file with a single variable that is an array of all the addresses and amounts to mint, which can then be executed in the console.

2. Web interface over IPC

This could be a list of all pending and confirmed mints, a form to propose a new mint, and maybe even basic search.

A web interface will allow more, no-technical people to mint tokens without getting scared.

Considerations

acroca commented 5 years ago

I think there's a preference of doing a web interface instead of a better JS tools, right? Last time, before building the current console tools, I tried the web interface but I'm not too sure what was the reason to give up and use JS instead. I think there were problems signing transactions, I couldn't find a way to create a transaction and send it to the node to be signed, since this seemed to be the only way to do it because the IPC clients don't have private keys IIRC. I'm gonna give it a 2nd chance to the external IPC client (web) and see if it works.