Use Embark's contract addresses

This commit is contained in:
Richard Ramos 2021-01-18 12:38:52 -04:00
parent 4c9cfacfdf
commit c4cf9a0094
No known key found for this signature in database
GPG Key ID: 80D4B01265FDFE8F
9 changed files with 35 additions and 125 deletions

View File

@ -7,6 +7,7 @@
"build": "",
"start": "nodemon server.js",
"start:dev": "node ./server.js",
"start:testnet": "node ./server.js",
"start:prod": "node ./server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},

View File

@ -7,7 +7,8 @@
"build:testnet": "embark build testnet",
"build:development": "embark build development",
"build": "embark build livenet",
"start:dev": "yarn build:testnet",
"start:dev": "yarn build:development",
"start:testnet": "embark build testnet",
"start:prod": "yarn build",
"slither": "slither . --exclude naming-convention --filter-paths token"
},

View File

@ -1,8 +1,4 @@
INFURA_KEY=8675214b97b44e96b70d05326c61fd6a
MAINNET_SNT=0x744d70fdbe2ba4cf95131626614a1763df805b9e
ROPSTEN_SNT=0xc55cf4b03948d7ebc8b9e8bad92643703811d162
MAINNET_DISCOVER=0x5bCF2767F86f14eDd82053bfBfd5069F68C2C5F8
ROPSTEN_DISCOVER=0x7B064fc5FDc4BACf2147A262881374d22d0fF23B
API_HOST=localhost:4000
API_SCHEMA=http

View File

@ -124,14 +124,13 @@ export const web3Keccak = (input: string) => {
let contracts = {};
// TODO investigate listeners
export const connectContract = async (Contract: any, address: string) => {
export const connectContract = async (Contract: any, address: string = "") => {
if(!address){
address = Contract.options.address;
}
if (!contracts[address]) {
const clonedContract = Contract.clone();
if (address) {
clonedContract.address = address;
clonedContract.options.address = address;
}
contracts[address] = clonedContract;
}

View File

@ -4,7 +4,6 @@ import {
getAccount,
defaultMultiplier,
broadcastContractFn,
ContractAddresses,
} from 'domain/App/blockchainUtils';
import DiscoverAbi from '../../../embarkArtifacts/contracts/Discover';
import { AddressZero } from 'ethers/constants';
@ -16,12 +15,7 @@ import { getIpfsHashFromBytes32 } from 'domain/App/sagas/metadata.saga';
// View methods
export const DiscoverUpVoteEffect = async (id: string, amount: number) => {
const tokenAmount = bigNumberify(amount);
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
await validateUpVoteEffect(id, amount);
return await DiscoverContract.methods
.upvoteEffect(id, tokenAmount.toString())
@ -31,24 +25,14 @@ export const DiscoverUpVoteEffect = async (id: string, amount: number) => {
export const DiscoverDownVoteCost = async (id: string) => {
const dapp = await DiscoverGetDAppById(id);
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
return await DiscoverContract.methods
.downvoteCost(dapp.id)
.call({ from: AddressZero });
};
export const DiscoverGetDAppById = async (id: string) => {
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
const dappExists = await DiscoverDappExists(id);
if (dappExists) {
@ -73,24 +57,14 @@ export const DiscoverGetDAppById = async (id: string) => {
};
export const DiscoverGetDAppsCount = async () => {
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
return parseInt(
await DiscoverContract.methods.getDAppsCount().call({ from: AddressZero }),
);
};
export const DiscoverGetDAppsMeta = async (id: number) => {
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
return await DiscoverContract.methods.dapps(id).call({ from: AddressZero });
};
@ -151,22 +125,12 @@ export const DiscoverHelperGetMeta = async (
};
export const DiscoverSafeMax = async () => {
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
return DiscoverContract.methods.safeMax().call({ from: AddressZero });
};
export const DiscoverDappExists = async (id: string) => {
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
return DiscoverContract.methods.existingIDs(id).call({ from: AddressZero });
};
@ -180,12 +144,7 @@ export const DiscoverCreateDApp = async (
if (account == AddressZero) {
throw 'Account not connected';
}
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
const callData = DiscoverContract.methods
.createDApp(dappId, tokenAmount.toString(), uploadedMetadata)
.encodeABI();
@ -198,12 +157,7 @@ export const DiscoverCreateDApp = async (
};
export const DiscoverUpVote = async (id: string, amount: number) => {
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
const tokenAmount = defaultMultiplier.mul(bigNumberify(amount));
const callData = DiscoverContract.methods
@ -217,12 +171,7 @@ export const DiscoverUpVote = async (id: string, amount: number) => {
};
export const DiscoverDownVote = async (id: string) => {
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
const dapp = await DiscoverGetDAppById(id);
const amount = (await DiscoverDownVoteCost(dapp.id)).c;
@ -243,12 +192,7 @@ export const DiscoverWithdraw = async (id: string, amount: number) => {
if (account == AddressZero) {
throw 'Account not connected';
}
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
const tokenAmount = defaultMultiplier.mul(bigNumberify(amount));
await validateWithdrawing(id, tokenAmount);
@ -267,12 +211,7 @@ export const DiscoverSetMetadata = async (id: string, metadataHash: string) => {
if (account == AddressZero) {
throw 'Account not connected';
}
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
try {
const tx = await broadcastContractFn(
@ -294,12 +233,8 @@ export const DiscoverWithdrawMax = async (dappId: string) => {
if (account == AddressZero) {
throw 'Account not connected';
}
const DiscoverContract = await connectContract(
DiscoverAbi,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)]
.DISCOVER,
// ContractAddresses[await getNetworkId()].DISCOVER,
);
const DiscoverContract = await connectContract(DiscoverAbi);
const decimals = 1000000;
const draw = await DiscoverContract.methods.withdrawMax(dappId).call({
from: account,

View File

@ -2,47 +2,29 @@ import SNTContract from '../../../embarkArtifacts/contracts/MiniMeToken';
import {
connectContract,
getAccount,
broadcastContractFn,
ContractAddresses,
broadcastContractFn
} from 'domain/App/blockchainUtils';
import { AddressZero } from 'ethers/constants';
import { BigNumber, bigNumberify } from 'ethers/utils';
// View functions will just use address zero
export const SNTallowance = async (from: string, to: string) => {
const SNTToken = await connectContract(
SNTContract,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)].SNT,
// ContractAddresses[await getNetworkId()].SNT,
);
const SNTToken = await connectContract(SNTContract);
return await SNTToken.methods.allowance(from, to).call({ from: AddressZero });
};
export const SNTbalanceOf = async (account: string) => {
const SNTToken = await connectContract(
SNTContract,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)].SNT,
// ContractAddresses[await getNetworkId()].SNT,
);
const SNTToken = await connectContract(SNTContract);
return await SNTToken.methods.balanceOf(account).call({ from: AddressZero });
};
export const SNTcontroller = async () => {
const SNTToken = await connectContract(
SNTContract,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)].SNT,
// ContractAddresses[await getNetworkId()].SNT,
);
const SNTToken = await connectContract(SNTContract);
return await SNTToken.methods.controller().call({ from: AddressZero });
};
export const SNTtransferable = async () => {
const SNTToken = await connectContract(
SNTContract,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)].SNT,
// ContractAddresses[await getNetworkId()].SNT,
);
const SNTToken = await connectContract(SNTContract);
return await SNTToken.methods.transfersEnabled().call({ from: AddressZero });
};
@ -79,11 +61,7 @@ export const SNTapproveAndCall = async (
if (account == AddressZero) {
throw 'Account not connected';
}
const SNTToken = await connectContract(
SNTContract,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)].SNT,
// ContractAddresses[await getNetworkId()].SNT,
);
const SNTToken = await connectContract(SNTContract);
if (await validateApproveAndCall(amount)) {
return await broadcastContractFn(
SNTToken.methods.approveAndCall(spender, amount.toString(), callData),
@ -100,11 +78,6 @@ export const SNTgenerateTokens = async () => {
if (account == AddressZero) {
throw 'Account not connected';
}
const SNTToken = await connectContract(
SNTContract,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)].SNT,
// ContractAddresses[await getNetworkId()].SNT,
);
const SNTToken = await connectContract(SNTContract);
await SNTToken.methods.generateTokens(account, 10000).send({ from: account });
};

View File

@ -6,6 +6,7 @@ import { RootState } from 'domain/App/types';
import { IDAppsToken } from '../types';
import { utils } from 'ethers';
import { ContractAddresses, getRpcUrl, getNetworkName } from 'domain/App/blockchainUtils';
import SNTContract from '../../../embarkArtifacts/contracts/MiniMeToken';
function* getBalancesSaga() {
while (true) {
@ -31,7 +32,7 @@ function* getBalancesSaga() {
account,
[
...tokenAddresses,
ContractAddresses[parseInt(process.env['TARGET_NETWORK'] as string)].SNT
SNTContract.options.address
],
),
);

View File

@ -26,6 +26,7 @@
"start": "cross-env NODE_ENV=development node server",
"start:dev": "cross-env NODE_ENV=development node server --display-error-details",
"start:tunnel": "cross-env NODE_ENV=development ENABLE_TUNNEL=true node server",
"start:testnet": "cross-env NODE_ENV=development node server --display-error-details",
"start:production": "yarn test && yarn build && yarn start:prod",
"start:prod": "cross-env NODE_ENV=production node server",
"clean:all": "yarn analyze:clean && yarn test:clean && yarn build:clean",

View File

@ -21,6 +21,9 @@
"start:dev-internal": "yarn wsrun --parallel --exclude-missing start:dev",
"start:dev": "dotenv yarn start:dev-internal",
"start:testnet-internal": "yarn wsrun --parallel --exclude-missing start:testnet",
"start:testnet": "dotenv yarn start:testnet-internal",
"start:prod-internal": "yarn wsrun --parallel --exclude-missing start:prod",
"start:prod": "dotenv yarn start:prod-internal",