Compare commits
8 Commits
dce54761a6
...
ipfs-defau
| Author | SHA1 | Date | |
|---|---|---|---|
| 077b6fb1c1 | |||
| 1c097f37a6 | |||
|
|
d3fb1010d5
|
||
| f390b5dff5 | |||
|
|
1e4f7be5cf
|
||
|
|
258c1cc755
|
||
|
|
f29054bc0b
|
||
| fd012d5359 |
@@ -18,7 +18,11 @@ contract Token is Initializable, ERC20Upgradeable {
|
|||||||
event KreditsMinted(address indexed recipient, uint256 amount);
|
event KreditsMinted(address indexed recipient, uint256 amount);
|
||||||
|
|
||||||
function initialize() public virtual initializer {
|
function initialize() public virtual initializer {
|
||||||
__ERC20_init('Kredits', 'KS');
|
__ERC20_init("Kredits", "KS");
|
||||||
|
}
|
||||||
|
|
||||||
|
function decimals() public view virtual override returns (uint8) {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setContributorContract(address contributor) public {
|
function setContributorContract(address contributor) public {
|
||||||
@@ -31,8 +35,7 @@ contract Token is Initializable, ERC20Upgradeable {
|
|||||||
require(contributorContractAddress == msg.sender, "Only Contributor");
|
require(contributorContractAddress == msg.sender, "Only Contributor");
|
||||||
require(amount > 0, "INVALID_AMOUNT");
|
require(amount > 0, "INVALID_AMOUNT");
|
||||||
|
|
||||||
uint256 amountInWei = amount.mul(1 ether);
|
_mint(contributorAccount, amount);
|
||||||
_mint(contributorAccount, amountInWei);
|
|
||||||
emit KreditsMinted(contributorAccount, amount);
|
emit KreditsMinted(contributorAccount, amount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -5,7 +5,7 @@ const fetch = require('node-fetch');
|
|||||||
class IPFS {
|
class IPFS {
|
||||||
constructor (config) {
|
constructor (config) {
|
||||||
if (!config) {
|
if (!config) {
|
||||||
config = { host: 'localhost', port: '5001', protocol: 'http' };
|
config = { host: 'ipfs.kosmos.org', port: '5444', protocol: 'https' };
|
||||||
}
|
}
|
||||||
this._config = config;
|
this._config = config;
|
||||||
this._ipfsAPI = ipfsClient.create(config);
|
this._ipfsAPI = ipfsClient.create(config);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ async function main() {
|
|||||||
console.log(`Using Contribution at: ${kredits.Contribution.contract.address}`);
|
console.log(`Using Contribution at: ${kredits.Contribution.contract.address}`);
|
||||||
|
|
||||||
const count = await kredits.Contribution.count;
|
const count = await kredits.Contribution.count;
|
||||||
const currentBlockHeight = await XMLHttpRequest.ethers.provider.getBlockNumber();
|
const currentBlockHeight = await hre.ethers.provider.getBlockNumber();
|
||||||
|
|
||||||
const backup = {};
|
const backup = {};
|
||||||
const promises = [];
|
const promises = [];
|
||||||
|
|||||||
39
scripts/import/contributions.js
Normal file
39
scripts/import/contributions.js
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const Kredits = require('../../lib/kredits');
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
kredits = new Kredits(hre.ethers.provider, hre.ethers.provider.getSigner())
|
||||||
|
await kredits.init();
|
||||||
|
|
||||||
|
console.log(`Using Contribution at: ${kredits.Contribution.contract.address}`);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const data = fs.readFileSync("./data/contributions.json");
|
||||||
|
const contributions = JSON.parse(data);
|
||||||
|
const ids = Object.keys(contributions)
|
||||||
|
.map(k => parseInt(k))
|
||||||
|
.sort(function(a, b){return a-b});
|
||||||
|
|
||||||
|
const currentBlockHeight = await kredits.provider.getBlockNumber();
|
||||||
|
const confirmationPeriod = 40320 // blocks
|
||||||
|
const unconfirmedHeight = currentBlockHeight + confirmationPeriod;
|
||||||
|
|
||||||
|
for (const contributionId of ids) {
|
||||||
|
const c = contributions[contributionId.toString()];
|
||||||
|
|
||||||
|
const confirmedAtBlock = c.confirmed ? currentBlockHeight : unconfirmedHeight;
|
||||||
|
|
||||||
|
const result = await kredits.Contribution.contract.add(
|
||||||
|
c.amount, c.contributorId,
|
||||||
|
c.hashDigest, c.hashFunction, c.hashSize,
|
||||||
|
confirmedAtBlock, c.vetoed
|
||||||
|
);
|
||||||
|
// await result.wait();
|
||||||
|
console.log(`Added contribution #${contributionId}: ${result.hash}`);
|
||||||
|
};
|
||||||
|
} catch(e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
@@ -95,7 +95,7 @@ describe("Contributor contract", async function () {
|
|||||||
expect(c['balance']).to.equal(0);
|
expect(c['balance']).to.equal(0);
|
||||||
await Contributor.connect(addr1).withdraw();
|
await Contributor.connect(addr1).withdraw();
|
||||||
c = await Contributor.getContributorById(2);
|
c = await Contributor.getContributorById(2);
|
||||||
expect(c['balance'].toString()).to.equal("6500000000000000000000");
|
expect(c['balance']).to.equal(6500);
|
||||||
expect(c['kreditsWithdrawn']).to.equal(6500);
|
expect(c['kreditsWithdrawn']).to.equal(6500);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user