Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
synthetix-js
Advanced tools
Synthetix JS Library - access Synthetix smart contracts from browser and Node.js
The Synthetix-JS Library provides a simple pre-packaged API to communicate with the Synthetix payment engine on ethereum. You can use it to build your own dApp that needs to work with payments using a stablecoin.
This is particularly useful for hackathon teams to quickly npm install synthetix-js
and have stable payments integrated into their dApp in just a few minutes.
Under the hood, SynthetixJs uses ethers.js library and its concept of providers and transaction signers.
The two main packages to do stable payments with are:
Some other packages for hacking with:
Anything you can think of with programmable money. We provide the stability-as-a-service and fx (foreign exchange).
We’ve come up with some thought starters for dApps you could create by integrating Synthetix's stable payments into your projects.
npm install synthetix-js
const { SynthetixJs } = require('synthetix-js');
const snxjs = new SynthetixJs(); //uses default ContractSettings - ethers.js default provider, mainnet
(async function() {
const totalSUSD = await snxjs.sUSD.totalSupply();
const totalSUSDSupply = snxjs.utils.formatEther(totalSUSD);
console.log('sUSDTotalSupply', totalSUSDSupply);
})();
Default settings don't use any signer. That means that constants can be viewed from the contract but executing a transaction will fail. To execute transactions, set up signer.
4 signers are included in the library - Metamask (compatible with Dapp browsers), Trezor, Ledger and PrivateKey. Custom ethers.js compatible signers can be used too.
const { SynthetixJs } = require('synthetix-js');
const metaMaskSigner = new SynthetixJs.signers.Metamask();
const snxjs = new SynthetixJs({ signer: metaMaskSigner }); //uses Metamask signer and default infura.io provider on mainnet
Obtain test ETH from a faucet https://gitter.im/kovan-testnet/faucet
const txObj = await snxjs.IssuanceController.exchangeEtherForSynths({
value: snxjs.util.parseEther('0.123'),
});
//Transfer stablecoins to any ethereum address, wallet or smart contract
const txObj = await snxjs.StablePayments.transfer(
'0x5C545CA7f9D34857664FDCe6aDC22edcF1D5061f',
nUSDReceived
);
const { SynthetixJs } = require('synthetix-js');
//parameters: default provider, default networkId, private key as a string
const signer = new SynthetixJs.signers.PrivateKey(
null,
0,
'0x0123456789012345678901234567890123456789012345678901234567890123'
);
const snxjs = new SynthetixJs({ signer });
const sUSD = snxjs.utils.toUtf8Bytes('sUSD');
async function run() {
const totalSupply = await snxjs.Synthetix.totalSupply();
const snxTotalSupply = snxjs.utils.formatEther(totalSupply);
console.log('snxTotalSupply', snxTotalSupply);
//issue 100 synths (will throw if insufficient funds for gas)
try {
const txObj = await snxjs.Synthetix.issueSynths(sUSD, snxjs.util.parseEther('100')); //execute transaction (requires gas)
console.log('transaction hash', txObj.hash);
} catch (e) {
console.log(e);
}
}
run();
See /__tests__ folder for more examples.
To understand the Synthetix payments engine see more at developer.synthetix.io
Join our dev community on Discord: https://discord.gg/S5WmKUp
FAQs
Synthetix JS Library - access Synthetix smart contracts from browser and Node.js
We found that synthetix-js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.