Best JavaScript code snippet using synthetixio-synpress
deploy.js
Source:deploy.js
1// We require the Hardhat Runtime Environment explicitly here. This is optional2// but useful for running the script in a standalone fashion through `node <script>`.3//4// When running the script with `npx hardhat run <script>` you'll find the Hardhat5// Runtime Environment's members available in the global scope.6const hre = require("hardhat");7const ethers = require("ethers");8const path = require('path');9require("dotenv").config({ path: path.resolve(`${__dirname}/../../.env.${process.env.NODE_ENV}`), override: true});10const {11 CHAINLINK,12 ZERO_ADDRESS,13 SYNTHETIX_TOTAL_SUPPLY,14} = require("../../utils");15const owner = process.env.OWNER;16const deployerAccount = process.env.DEPLOYER_ACCOUNT;17const oracle = process.env.ORACLE;18const feeAuthority = process.env.FEE_AUTHORITY;19const fundsWallet = process.env.FUNDS_WALLET;20const network = process.env.NETWORK;21async function main() {22 // Hardhat always runs the compile task when running scripts with its command23 // line interface.24 //25 // If this script is run directly using `node` you may want to call compile26 // manually to make sure everything is compiled27 // await hre.run('compile');28 // We get the contract to deploy29 // ----------------30 // Owned31 // ----------------32 const Owned = await hre.ethers.getContractFactory("Owned");33 const owned = await Owned.deploy(owner);34 await owned.deployed();35 console.log("Owned deployed to:", owned.address);36 // ----------------37 // Safe Decimal Math library38 // ----------------39 const SafeDecimalMath = await hre.ethers.getContractFactory(40 "SafeDecimalMath"41 );42 const safeDecimalMath = await SafeDecimalMath.deploy();43 await safeDecimalMath.deployed();44 console.log("SafeDecimalMath deployed to:", safeDecimalMath.address);45 // ----------------46 // Exchange Rates47 // ----------------48 const ExchangeRates = await hre.ethers.getContractFactory("ExchangeRates", {49 libraries: {50 SafeDecimalMath: safeDecimalMath.address,51 },52 });53 const exchangeRates = await ExchangeRates.deploy(54 owner,55 oracle, // DVDXOracle; TODO56 [ethers.utils.hexDataSlice(ethers.utils.formatBytes32String("DVDX"), 0, 4)],57 [ethers.utils.parseEther("0.00386548")], // chainlink props58 ["derived"],59 CHAINLINK[network].linkToken,60 CHAINLINK[network].oracle,61 ethers.utils.hexZeroPad(CHAINLINK[network].jobId, 32)62 );63 await exchangeRates.deployed();64 console.log("ExchangeRates deployed to:", exchangeRates.address);65 // ----------------66 // Escrow67 // ----------------68 const SynthetixEscrow = await hre.ethers.getContractFactory(69 "contracts/SynthetixEscrow.sol:SynthetixEscrow"70 );71 const synthetixEscrow = await SynthetixEscrow.deploy(72 owner,73 ZERO_ADDRESS // ISynthetix; TODO - Done74 );75 await synthetixEscrow.deployed();76 console.log("SynthetixEscrow deployed to:", synthetixEscrow.address);77 const RewardEscrow = await hre.ethers.getContractFactory("RewardEscrow");78 const rewardEscrow = await RewardEscrow.deploy(79 owner,80 ZERO_ADDRESS, // ISynthetix; TODO - Done81 ZERO_ADDRESS // IFeePool; TODO - Done82 );83 await rewardEscrow.deployed();84 console.log("RewardEscrow deployed to:", rewardEscrow.address);85 // ----------------86 // Synthetix State87 // ----------------88 // SynthetixState Contract89 const SynthetixState = await hre.ethers.getContractFactory("SynthetixState", {90 libraries: {91 SafeDecimalMath: safeDecimalMath.address,92 },93 });94 const synthetixState = await SynthetixState.deploy(owner, ZERO_ADDRESS);95 await synthetixState.deployed();96 console.log("SynthetixState deployed to:", synthetixState.address);97 // ----------------98 // Fee Pool - Delegate Approval99 // ----------------100 const DelegateApprovals = await hre.ethers.getContractFactory(101 "DelegateApprovals"102 );103 const delegateApprovals = await DelegateApprovals.deploy(104 owner,105 ZERO_ADDRESS // associated account; TODO106 );107 await delegateApprovals.deployed();108 console.log("DelegateApprovals deployed to:", delegateApprovals.address);109 // ----------------110 // Fee Pool111 // ----------------112 // FeePoolProxy Contract113 const FeePoolProxy = await hre.ethers.getContractFactory("Proxy");114 const feePoolProxy = await FeePoolProxy.deploy(owner);115 await feePoolProxy.deployed();116 console.log("FeePoolProxy deployed to:", feePoolProxy.address);117 // FeePoolState contract118 const FeePoolState = await hre.ethers.getContractFactory("FeePoolState");119 const feePoolState = await FeePoolState.deploy(120 owner,121 ZERO_ADDRESS // IFeePool; TODO122 );123 await feePoolState.deployed();124 console.log("FeePoolState deployed to:", feePoolState.address);125 // FeePoolEternalStorage contract126 const FeePoolEternalStorage = await hre.ethers.getContractFactory(127 "FeePoolEternalStorage"128 );129 const feePoolEternalStorage = await FeePoolEternalStorage.deploy(130 owner,131 ZERO_ADDRESS // _feePool address; TODO132 );133 await feePoolEternalStorage.deployed();134 console.log(135 "FeePoolEternalStorage deployed to:",136 feePoolEternalStorage.address137 );138 // FeePool Contract139 const FeePool = await hre.ethers.getContractFactory("FeePool", {140 libraries: {141 SafeDecimalMath: safeDecimalMath.address,142 },143 });144 const feePool = await FeePool.deploy(145 feePoolProxy.address,146 owner,147 ZERO_ADDRESS, // Synthetix; TODO148 feePoolState.address,149 feePoolEternalStorage.address,150 synthetixState.address,151 rewardEscrow.address,152 feeAuthority, // _feeAuthority; TODO153 ethers.utils.parseUnits("0.0015"),154 ethers.utils.parseUnits("0.0030")155 );156 await feePool.deployed();157 console.log("FeePool deployed to:", feePool.address);158 // set target in feePool Proxy159 await feePoolProxy.setTarget(feePool.address);160 // Set feePool on feePoolState & rewardEscrow161 await feePoolState.setFeePool(feePool.address);162 await rewardEscrow.setFeePool(feePool.address);163 // Set delegate approval on feePool164 // Set feePool as associatedContract on delegateApprovals & feePoolEternalStorage165 await feePool.setDelegateApprovals(delegateApprovals.address);166 await delegateApprovals.setAssociatedContract(feePool.address);167 await feePoolEternalStorage.setAssociatedContract(feePool.address);168 // ----------------169 // Synthetix170 // ----------------171 // SupplySchedule Contract172 const SupplySchedule = await hre.ethers.getContractFactory("SupplySchedule", {173 libraries: {174 SafeDecimalMath: safeDecimalMath.address,175 },176 });177 const supplySchedule = await SupplySchedule.deploy(owner);178 await supplySchedule.deployed();179 console.log("SupplySchedule deployed to:", supplySchedule.address);180 // Synthetix Proxy contract181 const SynthetixProxy = await hre.ethers.getContractFactory("Proxy");182 const synthetixProxy = await SynthetixProxy.deploy(owner);183 await synthetixProxy.deployed();184 console.log("SynthetixProxy deployed to:", synthetixProxy.address);185 // SynthetixTokenState186 const SynthetixTokenState = await hre.ethers.getContractFactory("TokenState");187 const synthetixTokenState = await SynthetixTokenState.deploy(188 owner,189 deployerAccount190 );191 await synthetixTokenState.deployed();192 console.log("SynthetixTokenState deployed to:", synthetixTokenState.address);193 // Synthetix Contract194 const Synthetix = await hre.ethers.getContractFactory("Synthetix", {195 libraries: {196 SafeDecimalMath: safeDecimalMath.address,197 },198 });199 const synthetix = await Synthetix.deploy(200 synthetixProxy.address,201 synthetixTokenState.address,202 synthetixState.address,203 owner,204 exchangeRates.address,205 feePool.address, // IFeePool; TODO - Done206 supplySchedule.address,207 rewardEscrow.address,208 synthetixEscrow.address,209 SYNTHETIX_TOTAL_SUPPLY210 );211 await synthetix.deployed();212 console.log("Synthetix deployed to:", synthetix.address);213 // ----------------------214 // Connect Token State215 // ----------------------216 // Set initial balance for the owner to have all Havvens.217 await synthetixTokenState.setBalanceOf(218 owner,219 ethers.utils.parseEther("100000000")220 );221 await synthetixTokenState.setAssociatedContract(synthetix.address);222 // ----------------------223 // Connect Synthetix State224 // ----------------------225 await synthetixState.setAssociatedContract(synthetix.address);226 // ----------------------227 // Connect Proxy228 // ----------------------229 await synthetixProxy.setTarget(synthetix.address);230 // ----------------------231 // Connect Escrow to Synthetix232 // ----------------------233 await synthetixEscrow.setSynthetix(synthetix.address);234 await rewardEscrow.setSynthetix(synthetix.address);235 // ----------------------236 // Connect FeePool237 // ----------------------238 await feePool.setSynthetix(synthetix.address);239 // ----------------------240 // Connect InflationarySupply241 // ----------------------242 await supplySchedule.setSynthetix(synthetix.address);243 // ----------------244 // Synths245 // ----------------246 const currencyKeys = ["XDR", "USDx", "dBTC", "dETH", "dBNB"];247 const synths = [];248 const PurgeableSynth = await hre.ethers.getContractFactory("PurgeableSynth", {249 libraries: {250 SafeDecimalMath: safeDecimalMath.address,251 },252 });253 for (const currencyKey of currencyKeys) {254 const TokenState = await hre.ethers.getContractFactory("TokenState");255 const tokenState = await TokenState.deploy(256 owner,257 ZERO_ADDRESS // associated account; TODO258 );259 await tokenState.deployed();260 console.log(`TokenState ${currencyKey} deployed to:`, tokenState.address);261 const Proxy = await hre.ethers.getContractFactory("Proxy");262 const proxy = await Proxy.deploy(owner);263 await proxy.deployed();264 console.log(`Proxy ${currencyKey} deployed to:`, proxy.address);265 // Synth contract266 const Synth = await hre.ethers.getContractFactory("Synth");267 const synth = await Synth.deploy(268 proxy.address,269 tokenState.address,270 synthetix.address,271 feePool.address,272 `Synth ${currencyKey}`,273 currencyKey,274 owner,275 ethers.utils.hexDataSlice(276 ethers.utils.formatBytes32String(currencyKey),277 0,278 4279 )280 );281 await synth.deployed();282 console.log(`Synth ${currencyKey} deployed to:`, synth.address);283 // set associated contract for synth currencyKey token state284 await tokenState.setAssociatedContract(synth.address);285 // set proxy target for synth currencyKey proxy286 await proxy.setTarget(synth.address);287 // ----------------------288 // Connect Synthetix to Synth289 // ----------------------290 await synthetix.addSynth(synth.address);291 synths.push({292 currencyKey,293 tokenState,294 proxy,295 synth,296 });297 }298 // Initial prices299 const { timestamp } = await hre.ethers.provider.getBlock("latest");300 // sAUD: 0.5 USD301 // sEUR: 1.25 USD302 // SNX: 0.1 USD303 // sBTC: 5000 USD304 // iBTC: 4000 USD305 await exchangeRates.updateRates(306 currencyKeys307 .filter((currency) => currency !== "USDx")308 .concat(["DVDX"])309 .map((currency) =>310 ethers.utils.hexDataSlice(311 ethers.utils.formatBytes32String(currency),312 0,313 4314 )315 ),316 ["1", "37018", "2668", "369", "0.00386548"].map((number) =>317 ethers.utils.parseEther(number)318 ),319 timestamp320 );321 await exchangeRates.updateAssets(322 currencyKeys323 .filter((currency) => currency !== "USDx" && currency !== "XDR")324 .concat(["DVDX"])325 .map((currency) =>326 ethers.utils.hexDataSlice(327 ethers.utils.formatBytes32String(currency),328 0,329 4330 )331 ),332 ["bitcoin", "ethereum", "binancecoin", "derived"]333 );334 // --------------------335 // Depot336 // --------------------337 const USDxSynth = synths.find((synth) => synth.currencyKey === "USDx");338 const Depot = await hre.ethers.getContractFactory("Depot", {339 libraries: {340 SafeDecimalMath: safeDecimalMath.address,341 },342 });343 const depot = await Depot.deploy(344 owner,345 fundsWallet, // funds wallet; TODO346 synthetix.address,347 USDxSynth.synth.address,348 feePool.address,349 oracle, // oracle; TODO350 ethers.utils.parseEther("500"),351 ethers.utils.parseEther(".10")352 );353 await depot.deployed();354 console.log("Depot deployed to:", depot.address);355 // ----------------356 // Self Destructible357 // ----------------358 const SelfDestructible = await hre.ethers.getContractFactory(359 "SelfDestructible"360 );361 const selfDestructible = await SelfDestructible.deploy(owner);362 await selfDestructible.deployed();363 console.log("SelfDestructible deployed to:", selfDestructible.address);364}365// We recommend this pattern to be able to use async/await everywhere366// and properly handle errors.367main()368 .then(() => process.exit(0))369 .catch((error) => {370 console.error(error);371 process.exit(1);...
SynthetixProtocol.js
Source:SynthetixProtocol.js
1const {2 BN, // Big Number support3 expectEvent, // Assertions for emitted events4 expectRevert, // Assertions for transactions that should fail5 balance,6 ether7} = require('@openzeppelin/test-helpers');8const MockContract = artifacts.require("MockContract");9const MockSynthetixStaking = artifacts.require('MockSynthetixStaking');10const MockInstaMapping = artifacts.require('MockInstaMapping');11const erc20ABI = require("./abi/erc20.js");12const synthetixStaking = require("./abi/synthetixStaking.json");13contract('ConnectSynthetixStaking', async accounts => {14 const [sender, receiver] = accounts;15 let mock, mockSynthetixStaking, stakingContract, token;16 let instaMapping;17 before(async function () {18 mock = await MockContract.new();19 mockInstaMapping = await MockInstaMapping.new();20 mockSynthetixStaking = await MockSynthetixStaking.new(mock.address, mockInstaMapping.address);21 stakingContract = new web3.eth.Contract(synthetixStaking, mock.address);22 token = new web3.eth.Contract(erc20ABI, mock.address);23 mockInstaMapping.addStakingMapping('snx', mock.address, mock.address);24 // mocking balanceOf25 let balanceOf = await token.methods.balanceOf(mockSynthetixStaking.address).encodeABI();26 await mock.givenMethodReturnUint(balanceOf, 10000000);27 // mocking approve28 let approve = await token.methods.approve(mockSynthetixStaking.address, 10000000).encodeABI();29 await mock.givenMethodReturnBool(approve, "true");30 })31 it('can deposit', async function() {32 // mocking stake33 let stake = await stakingContract.methods.stake(10000000).encodeABI();34 await mock.givenMethodReturnBool(stake, "true");35 const tx = await mockSynthetixStaking.deposit(36 "snx",37 10000000,38 0,39 040 )41 expectEvent(tx, "LogDeposit");42 });43 it('can withdraw', async function() {44 // mocking withdraw45 let withdraw = await stakingContract.methods.withdraw(10000000).encodeABI();46 await mock.givenMethodReturnBool(withdraw, "true");47 // mocking getReward48 let reward = await stakingContract.methods.getReward().encodeABI();49 await mock.givenMethodReturnBool(reward, "true");50 const tx = await mockSynthetixStaking.withdraw(51 "snx",52 10000000,53 0,54 111,55 11256 )57 expectEvent(tx, "LogWithdraw");58 expectEvent(tx, "LogClaimedReward");59 });60 it('can claim reward', async function() {61 // mocking getReward62 let reward = await stakingContract.methods.getReward().encodeABI();63 await mock.givenMethodReturnBool(reward, "true");64 const tx = await mockSynthetixStaking.claimReward(65 "snx",66 11267 )68 expectEvent(tx, "LogClaimedReward");69 });70 it('cannot deposit if pool removed', async function() {71 mockInstaMapping.removeStakingMapping('snx', mock.address);72 // mocking stake73 let stake = await stakingContract.methods.stake(10000000).encodeABI();74 await mock.givenMethodReturnBool(stake, "true");75 const tx = mockSynthetixStaking.deposit(76 "snx",77 10000000,78 0,79 080 )81 expectRevert(tx, "Wrong Staking Name");82 });...
2_deploy_connector.js
Source:2_deploy_connector.js
1// const CurveProtocol = artifacts.require("CurveProtocol");2// const ConnectSBTCCurve = artifacts.require("ConnectSBTCCurve");3// const MockContract = artifacts.require("MockContract");4// const MockSynthetixStaking = artifacts.require("MockSynthetixStaking");5// const ConnectSynthetixStaking = artifacts.require("ConnectSynthetixStaking");6// const connectorsABI = require("../test/abi/connectors.json");7// let connectorsAddr = "0xD6A602C01a023B98Ecfb29Df02FBA380d3B21E0c";8// let connectorInstance = new web3.eth.Contract(connectorsABI, connectorsAddr);9module.exports = async function(deployer) {10 // deployer.deploy(CurveProtocol);11 // let connectorLength = await connectorInstance.methods.connectorLength().call();12 // deployer.deploy(MockContract).then(function () {13 // // return deployer.deploy(MockSynthetixStaking, MockContract.address, 1, +connectorLength + 1);14 // // return deployer.deploy(ConnectSynthetixStaking, MockContract.address);15 // return deployer.deploy(MockSynthetixStaking, MockContract.address);16 // });...
Using AI Code Generation
1const synthetix = require('synthetixio-synpress');2const synthetix = require('synthetixio-synpress');3const synthetix = require('synthetixio-synpress');4const synthetix = require('synthetixio-synpress');5const synthetix = require('synthetixio-synpress');6const synthetix = require('synthetixio-synpress');7const synthetix = require('synthetixio-synpress');8const synthetix = require('synthetixio-synpress');9const synthetix = require('synthetixio-synpress');10const synthetix = require('synthetixio-synpress');11const synthetix = require('synthetixio-synpress');12const synthetix = require('synthetixio-synpress');13const synthetix = require('synthetixio-synpress');14const synthetix = require('synthetixio-synpress');15const synthetix = require('synthetixio-synpress');
Using AI Code Generation
1const { SynthetixJs } = require('synthetix-js');2const { SynthetixJs } = require('synthetix-js');3const synthetix = new SynthetixJs({4});5const synthetix = new SynthetixJs({6});7const getSynthetix = async () => {8 const { SynthetixJs } = require('synthetix-js');9 const synthetix = new SynthetixJs({10 });11 const { SynthetixJs } = require('synthetix-js');12 const synthetix = new SynthetixJs({13 });14 const getSynthetix = async () => {15 const { SynthetixJs } = require('synthetix-js');16 const synthetix = new SynthetixJs({17 });18 const { SynthetixJs } = require('synthetix-js');19 const synthetix = new SynthetixJs({20 });21 const getSynthetix = async () => {22 const { SynthetixJs } = require('synthetix-js');23 const synthetix = new SynthetixJs({24 });25 const { SynthetixJs } = require('synthetix-js');26 const synthetix = new SynthetixJs({
Using AI Code Generation
1const synthetix = require('synthetixio-synpress');2const synthetix = require('synthetixio-synpress');3const synthetix = require('synthetixio-synpress');4const synthetix = require('synthetixio-synpress');5const synthetix = require('synthetixio-synpress');6const synthetix = require('synthetixio-synpress');7const synthetix = require('synthetixio-synpress');8const synthetix = require('synthetixio-synpress');9const synthetix = require('synthetixio-synpress');10const synthetix = require('synthetixio-synpress');
Using AI Code Generation
1const synthetix = require('synthetixio-synpress');2const synth = synthetix.synthetix;3const { assert } = synthetix;4describe('Synthetix', () => {5 before('Setup', async () => {6 await synthetix.connect({ network: 'kovan' });7 });8 it('should issue sUSD', async () => {9 await synthetix.issueSynths({ amount: 100, currencyKey: 'sUSD' });10 });11 it('should exchange sUSD to sETH', async () => {12 await synthetix.exchangeSynths({ amount: 100, fromCurrencyKey: 'sUSD', toCurrencyKey: 'sETH' });13 });14 it('should exchange sETH to sUSD', async () => {15 await synthetix.exchangeSynths({ amount: 100, fromCurrencyKey: 'sETH', toCurrencyKey: 'sUSD' });16 });17 it('should burn sUSD', async () => {18 await synthetix.burnSynths({ amount: 100, currencyKey: 'sUSD' });19 });20});21module.exports = {22 default: {23 },24 networks: {25 kovan: {
Using AI Code Generation
1const { SynthetixJs } = require('synthetix-js');2const { providers, utils } = require('ethers');3const main = async () => {4 const provider = new providers.InfuraProvider(networkId);5 const synthetix = new SynthetixJs({ networkId, provider });6 const exchangeRate = await synthetix.sUSD.exchangeRate();7 const price = utils.formatEther(exchangeRate);8 console.log(`sUSD price is ${price}`);9};10main();11const synthetix = new SynthetixJs({ networkId, provider });12{13 "dependencies": {14 },
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!