diff --git a/migrations/2_deploy_connector.js b/migrations/2_deploy_connector.js index 18f5843..d046267 100644 --- a/migrations/2_deploy_connector.js +++ b/migrations/2_deploy_connector.js @@ -1,12 +1,10 @@ -const CurveProtocol = artifacts.require("CurveProtocol"); -const ConnectSBTCCurve = artifacts.require("ConnectSBTCCurve"); - -const connectorsABI = require("../test/abi/connectors.json"); -let connectorsAddr = "0xD6A602C01a023B98Ecfb29Df02FBA380d3B21E0c"; -let connectorInstance = new web3.eth.Contract(connectorsABI, connectorsAddr); +// const CurveProtocol = artifacts.require("CurveProtocol"); +// const ConnectSBTCCurve = artifacts.require("ConnectSBTCCurve"); +const MockContract = artifacts.require("MockContract"); module.exports = async function(deployer) { - deployer.deploy(CurveProtocol); - let connectorLength = await connectorInstance.methods.connectorLength().call(); - deployer.deploy(ConnectSBTCCurve, 1, +connectorLength + 1); + // deployer.deploy(CurveProtocol); + deployer.deploy(MockContract); + // let connectorLength = await connectorInstance.methods.connectorLength().call(); + // deployer.deploy(ConnectSBTCCurve, 1, +connectorLength + 1); }; diff --git a/test/SynthetixProtocol.js b/test/SynthetixProtocol.js index c24a8ec..676b7f7 100644 --- a/test/SynthetixProtocol.js +++ b/test/SynthetixProtocol.js @@ -6,23 +6,26 @@ const { ether } = require('@openzeppelin/test-helpers'); -const MockContract = artifacts.require("MockContract.sol") +const MockContract = artifacts.require("MockContract"); const ConnectSynthetixStaking = artifacts.require('ConnectSynthetixStaking'); const erc20ABI = require("./abi/erc20.js"); + contract('ConnectSynthetixStaking', async accounts => { const [sender, receiver] = accounts; + const mock = await MockContract.new(); + const crvRenWSBTCContract = new web3.eth.Contract(erc20ABI, mock.address); + before(async function () { - const mock = await MockContract.new() - const crvRenWSBTCContract = new web3.eth.Contract(erc20ABI, mock.address); - let methodId = await crvRenWSBTCContract.methods.banlanceOf.getData(0,0); - console.log("methodId: ", methodId); - await mock.givenMethodReturn(methodId, abi.rawEncode(['uint'], [10000000]).toString()); + let methodId = await crvRenWSBTCContract.methods.balanceOf(sender).encodeABI(); + await mock.givenMethodReturnUint(methodId, 10000000); let crvRenWSBTC = await crvRenWSBTCContract.methods.balanceOf(sender).call(); - console.log("Sender crvRenWSBTC Before: ", crvRenWSBTC.toString()); - expect(crvRenWSBTC).to.be(10000000); - // expect(wbtcAfter - wbtcBefore).to.be.at.least(10000000); + expect(crvRenWSBTC).to.equal("10000000"); }) + + it('can mock token', async function() { + // expect(wbtcAfter - wbtcBefore).to.be.at.least(10000000); + }); }) diff --git a/test/abi/crvRenWSBTC.json b/test/abi/crvRenWSBTC.json new file mode 100644 index 0000000..6c22102 --- /dev/null +++ b/test/abi/crvRenWSBTC.json @@ -0,0 +1 @@ +[{"name":"Transfer","inputs":[{"type":"address","name":"_from","indexed":true},{"type":"address","name":"_to","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"name":"Approval","inputs":[{"type":"address","name":"_owner","indexed":true},{"type":"address","name":"_spender","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"string","name":"_name"},{"type":"string","name":"_symbol"},{"type":"uint256","name":"_decimals"},{"type":"uint256","name":"_supply"}],"constant":false,"payable":false,"type":"constructor"},{"name":"set_minter","outputs":[],"inputs":[{"type":"address","name":"_minter"}],"constant":false,"payable":false,"type":"function","gas":36247},{"name":"totalSupply","outputs":[{"type":"uint256","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1181},{"name":"allowance","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"_owner"},{"type":"address","name":"_spender"}],"constant":true,"payable":false,"type":"function","gas":1519},{"name":"transfer","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":74802},{"name":"transferFrom","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_from"},{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":111953},{"name":"approve","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_spender"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":39012},{"name":"mint","outputs":[],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":75733},{"name":"burn","outputs":[],"inputs":[{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":76623},{"name":"burnFrom","outputs":[],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":76696},{"name":"name","outputs":[{"type":"string","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":7853},{"name":"symbol","outputs":[{"type":"string","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":6906},{"name":"decimals","outputs":[{"type":"uint256","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1511},{"name":"balanceOf","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1695}] diff --git a/truffle-config.js b/truffle-config.js index c1652ad..bf05086 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -1,40 +1,10 @@ -/** - * Use this file to configure your truffle project. It's seeded with some - * common settings for different networks and features like migrations, - * compilation and testing. Uncomment the ones you need or modify - * them to suit your project as necessary. - * - * More information about configuration can be found at: - * - * truffleframework.com/docs/advanced/configuration - * - * To deploy via Infura you'll need a wallet provider (like truffle-hdwallet-provider) - * to sign your transactions before they're sent to a remote public node. Infura accounts - * are available for free at: infura.io/register. - * - * You'll also need a mnemonic - the twelve word phrase the wallet uses to generate - * public/private key pairs. If you're publishing your code to GitHub make sure you load this - * phrase from a file you've .gitignored so it doesn't accidentally become public. - * - */ - const HDWalletProvider = require('truffle-hdwallet-provider'); const dotenv = require('dotenv'); dotenv.config(); const infuraKey = process.env.infura_key; -// const mnemonic = process.env.mnemonic_key; module.exports = { - /** - * Networks define how you connect to your ethereum client and let you set the - * defaults web3 uses to send transactions. If you don't specify one truffle - * will spin up a development blockchain for you on port 9545 when you - * run `develop` or `test`. You can ask a truffle command to use a specific - * network from the command line, e.g - * - * $ truffle test --network - */ plugins: [ 'truffle-plugin-verify', ], @@ -43,36 +13,18 @@ module.exports = { }, networks: { - // Useful for testing. The `development` name is special - truffle uses it by default - // if it's defined here and no other network is specified at the command line. - // You should run a client (like ganache-cli, geth or parity) in a separate terminal - // tab if you use this network and you must also set the `host`, `port` and `network_id` - // options below to some value. - // development: { - host: "127.0.0.1", // Localhost (default: none) - port: 8545, // Standard Ethereum port (default: none) - network_id: "*", // Any network (default: none) + host: "127.0.0.1", + port: 8545, + network_id: "*", }, - // Tenderly Proxy + proxy: { - host: "127.0.0.1", // Localhost (default: none) - port: 9545, // Standard Ethereum port (default: none) - network_id: "*", // Any network (default: none) + host: "127.0.0.1", + port: 9545, + network_id: "*", }, - // Another network with more advanced options... - // advanced: { - // port: 8777, // Custom port - // network_id: 1342, // Custom network - // gas: 8500000, // Gas sent with each transaction (default: ~6700000) - // gasPrice: 20000000000, // 20 gwei (in wei) (default: 100 gwei) - // from:
, // Account to send txs from (default: accounts[0]) - // websockets: true // Enable EventEmitter interface for web3 (default: false) - // }, - - // Useful for deploying to a public network. - // NB: It's important to wrap the provider as a function. live: { provider: () => new HDWalletProvider(mnemonic, `https://mainnet.infura.io/v3/${infuraKey}`), network_id: 1, @@ -97,13 +49,6 @@ module.exports = { timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50) skipDryRun: true // Skip dry run before migrations? (default: false for public nets ) }, - - // Useful for private networks - // private: { - // provider: () => new HDWalletProvider(mnemonic, `https://network.io`), - // network_id: 2111, // This network is yours, in the cloud. - // production: true // Treats this network as if it was a public net. (default: false) - // } }, // Set default mocha options here, use special reporters etc. @@ -114,15 +59,13 @@ module.exports = { // Configure your compilers compilers: { solc: { - version: "v0.6.2", // Fetch exact version from solc-bin (default: truffle's version) - // docker: true, // Use "0.5.1" you've installed locally with docker (default: false) - // settings: { // See the solidity docs for advice about optimization and evmVersion - // optimizer: { - enabled: false, - // runs: 200 - // }, - // evmVersion: "istanbul" - // } + version: "v0.6.2", + settings: { + optimizer: { + enabled: true, + }, + // evmVersion: "istanbul" + } } } }