fix nftFactory && test ing
This commit is contained in:
@@ -67,9 +67,9 @@ module.exports = {
|
||||
Fragment: "0x36ed21f19B0cf0c1E571A8C3A6953a5778E48B5a",
|
||||
NFTCollateralVault: "0x78B7AFf2E5fA95B1E7E16679645FB65a850ed6AB",
|
||||
|
||||
InitializableERC721: "0xBF243C5626A0766031d57269c01F6eFd57B603fc",
|
||||
InitializableERC1155: "0x33221F3aFC8b5F7eEB1bf6e836ECB0bA6a78759b",
|
||||
NFTTokenFactory: "0x57d7A27e9E7206F28fe98D0A0228a03afF5b6e77",
|
||||
InitializableERC721: "",
|
||||
InitializableERC1155: "",
|
||||
NFTTokenFactory: "",
|
||||
|
||||
DODONFTRegistry: "0xF405372b7808363DCfbb5Eb81204889B7a69Aa3e",
|
||||
DODONFTProxy: "0x41Eb1FFC3d6474Ee4f4Aaf335a09cD411ADDDf1f",
|
||||
|
||||
@@ -49,7 +49,7 @@ contract NFTTokenFactory {
|
||||
string memory baseUrl
|
||||
) external returns (address newERC721) {
|
||||
newERC721 = ICloneFactory(_CLONE_FACTORY_).clone(_ERC721_TEMPLATE_);
|
||||
InitializableERC721(newERC721).init("DODONFT", "DODONFT", baseUrl);
|
||||
InitializableERC721(newERC721).init(msg.sender, "DODONFT", "DODONFT", baseUrl);
|
||||
_USER_ERC721_REGISTRY_[msg.sender].push(newERC721);
|
||||
emit NewERC721(newERC721, msg.sender);
|
||||
}
|
||||
@@ -59,7 +59,7 @@ contract NFTTokenFactory {
|
||||
string memory baseUrl
|
||||
) external returns (address newERC1155) {
|
||||
newERC1155 = ICloneFactory(_CLONE_FACTORY_).clone(_ERC1155_TEMPLATE_);
|
||||
InitializableERC1155(newERC1155).init(amount, baseUrl);
|
||||
InitializableERC1155(newERC1155).init(msg.sender, amount, baseUrl);
|
||||
_USER_ERC1155_REGISTRY_[msg.sender].push(newERC1155);
|
||||
emit NewERC1155(newERC1155, msg.sender);
|
||||
}
|
||||
|
||||
@@ -24,13 +24,13 @@ contract InitializableERC1155 is IERC165, IERC1155, IERC1155MetadataURI {
|
||||
|
||||
string private _uri;
|
||||
|
||||
|
||||
function init(
|
||||
address creator,
|
||||
uint256 amount,
|
||||
string memory baseUrI
|
||||
) public {
|
||||
_setURI(baseUrI);
|
||||
_mint(msg.sender, 0, amount ,"");
|
||||
_mint(creator, 0, amount ,"");
|
||||
}
|
||||
|
||||
function supportsInterface(bytes4 interfaceId) public view override returns (bool) {
|
||||
|
||||
@@ -43,6 +43,7 @@ contract InitializableERC721 is IERC165, IERC721, IERC721Metadata {
|
||||
|
||||
|
||||
function init(
|
||||
address creator,
|
||||
string memory name,
|
||||
string memory symbol,
|
||||
string memory baseUrI
|
||||
@@ -50,7 +51,7 @@ contract InitializableERC721 is IERC165, IERC721, IERC721Metadata {
|
||||
_name = name;
|
||||
_symbol = symbol;
|
||||
_baseURI = baseUrI;
|
||||
_safeMint(msg.sender, 0);
|
||||
_mint(creator, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
120
test/DODONFT/nftMainFlow.test.ts
Normal file
120
test/DODONFT/nftMainFlow.test.ts
Normal file
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
|
||||
Copyright 2020 DODO ZOO.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
*/
|
||||
import { decimalStr, mweiStr } from '../utils/Converter';
|
||||
import { logGas } from '../utils/Log';
|
||||
import { NFTContext, getDODONftContext } from '../utils/NFTContext';
|
||||
import { assert } from 'chai';
|
||||
import * as contracts from '../utils/Contracts';
|
||||
import { Contract } from 'web3-eth-contract';
|
||||
|
||||
let author: string;
|
||||
let user1: string;
|
||||
let user2: string;
|
||||
|
||||
async function init(ctx: NFTContext): Promise<void> {
|
||||
author = ctx.SpareAccounts[1];
|
||||
user1 = ctx.SpareAccounts[2];
|
||||
user2 = ctx.SpareAccounts[3];
|
||||
|
||||
await ctx.mintTestToken(user1, ctx.USDT, mweiStr("10000"));
|
||||
await ctx.mintTestToken(user2, ctx.USDT, mweiStr("10000"));
|
||||
|
||||
await ctx.approveProxy(user1);
|
||||
await ctx.approveProxy(user2);
|
||||
}
|
||||
|
||||
async function createNFTVault(ctx: NFTContext) {
|
||||
var tx = await ctx.NFTProxy.methods.createNFTCollateralVault(
|
||||
"DODONFT",
|
||||
"https://app.dodoex.io"
|
||||
).send(ctx.sendParam(author));
|
||||
|
||||
return tx.events['CreateNFTCollateralVault']['returnValues']['vault'];
|
||||
}
|
||||
|
||||
async function createERC721(ctx:NFTContext) {
|
||||
var tx = await ctx.NFTTokenFacotry.methods.createERC721(
|
||||
"https://app.dodoex.io"
|
||||
).send(ctx.sendParam(author));
|
||||
return tx.events['NewERC721']['returnValues']['erc721'];
|
||||
}
|
||||
|
||||
|
||||
describe("DODONFT", () => {
|
||||
let snapshotId: string;
|
||||
let ctx: NFTContext;
|
||||
|
||||
|
||||
before(async () => {
|
||||
let ETH = await contracts.newContract(
|
||||
contracts.WETH_CONTRACT_NAME
|
||||
);
|
||||
ctx = await getDODONftContext(ETH.options.address);
|
||||
await init(ctx);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
snapshotId = await ctx.EVM.snapshot();
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await ctx.EVM.reset(snapshotId);
|
||||
});
|
||||
|
||||
describe("DODONFTMainFlow", () => {
|
||||
it("createNFTVault", async () => {
|
||||
await logGas(await ctx.NFTProxy.methods.createNFTCollateralVault(
|
||||
"DODOVault",
|
||||
"https://app.dodoex.io"
|
||||
), ctx.sendParam(author), "createNFTVault");
|
||||
});
|
||||
|
||||
it("createTokenAndTransferToVault", async () => {
|
||||
var erc721Address = await createERC721(ctx);
|
||||
var vaultAddress = await createNFTVault(ctx);
|
||||
var nftVaultInstance = contracts.getContractWithAddress(contracts.NFT_VAULT, vaultAddress);
|
||||
var erc721Instance = contracts.getContractWithAddress(contracts.ERC721, erc721Address);
|
||||
await erc721Instance.methods.safeTransferFrom(author, vaultAddress, 0).send(ctx.sendParam(author));
|
||||
var nftIndex = await nftVaultInstance.methods.getIdByTokenIdAndAddr(erc721Address,0).call();
|
||||
var nftInfo = await nftVaultInstance.methods.getNftInfoById(nftIndex).call();
|
||||
assert(nftInfo.amount, '1')
|
||||
assert(nftInfo.tokenId, '0')
|
||||
});
|
||||
|
||||
it("createFragment", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("stakeToFeeDistributor", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("dvm-trade", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("claim", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("unstake", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("buyout", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("redeem", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("withdrawNFTFromVault", async () => {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -1,69 +0,0 @@
|
||||
/*
|
||||
|
||||
Copyright 2020 DODO ZOO.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
*/
|
||||
import { decimalStr, mweiStr } from '../utils/Converter';
|
||||
import { logGas } from '../utils/Log';
|
||||
import { NFTContext, getDODONftContext } from '../utils/NFTContext';
|
||||
import { assert } from 'chai';
|
||||
import * as contracts from '../utils/Contracts';
|
||||
import { Contract } from 'web3-eth-contract';
|
||||
|
||||
let author: string;
|
||||
let user1: string;
|
||||
let user2: string;
|
||||
|
||||
async function init(ctx: NFTContext): Promise<void> {
|
||||
author = ctx.SpareAccounts[1];
|
||||
user1 = ctx.SpareAccounts[2];
|
||||
user2 = ctx.SpareAccounts[3];
|
||||
|
||||
await ctx.mintTestToken(user1, ctx.USDT, mweiStr("10000"));
|
||||
await ctx.mintTestToken(user2, ctx.USDT, mweiStr("10000"));
|
||||
|
||||
await ctx.approveProxy(user1);
|
||||
await ctx.approveProxy(user2);
|
||||
}
|
||||
|
||||
|
||||
describe("DODONFTProxy", () => {
|
||||
let snapshotId: string;
|
||||
let ctx: NFTContext;
|
||||
|
||||
|
||||
before(async () => {
|
||||
let ETH = await contracts.newContract(
|
||||
contracts.WETH_CONTRACT_NAME
|
||||
);
|
||||
ctx = await getDODONftContext(ETH.options.address);
|
||||
await init(ctx);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
snapshotId = await ctx.EVM.snapshot();
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await ctx.EVM.reset(snapshotId);
|
||||
});
|
||||
|
||||
describe("DODONFTProxy", () => {
|
||||
it("createNFTVault", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("buyout", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("AddLiquidity", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("AddLiquidity", async () => {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -56,6 +56,12 @@ then
|
||||
truffle test ./test/DODOMineV2/vDODOMine.test.ts
|
||||
fi
|
||||
|
||||
if [ "$1"x = "nft"x ]
|
||||
then
|
||||
truffle test ./test/DODONFT/nftMainFlow.test.ts
|
||||
fi
|
||||
|
||||
|
||||
# if [ "$1"x = "route-incentive"x ]
|
||||
# then
|
||||
# truffle test ./test/Route/Incentive.test.ts
|
||||
|
||||
Reference in New Issue
Block a user