Observed since 20 Oct, 22:06 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@0confirmation/sdk
0confirmation sdk
The flagship 0confirmation product. Imports all relevant modules to capture any sort of logic you would need for building 0confirmation enabled apps.
Instantiate a Zero instance:
const ethers = require('ethers');
const Zero = require('@0confirmation/sdk');
const makePrivateKeyWeb3Provider = require('@0confirmation/providers/private-key-or-seed') // truffle HDWalletProvider doesn't correctly handle personal_sign, but this provider will!
const web3ProviderFromEthersProvider = require('@0confirmation/providers/from-ethers'); // converts an ethers.js provider to a web3 provider
const provider = makePrivateKeyWeb3Provider('a000000000000000000000000000000000000000000000000000000000000000', web3ProviderFromEthersProvider(new ethers.providers.InfuraProvider('mainnet'));
const zero = new Zero(provider, 'mainnet');
await zero.initializeDriver(); // instantiates a WebRTC connection to the network via lendnet.0confirmation.com
// instantiate Zero instance
const { makeManagerClass } = require('@0confirmation/eth-manager');
const ERC20 = makeManagerClass(require('@0confirmation/sol/build/DAI')) // will make an ethers.js wrapper compatible with DAI, which is a mock token that exports the ERC20 ABI
const environments = require('@0confirmation/sdk/environments');
const mainnet = environments.getAddresses('mainnet');
const renbtc = new ERC20(mainnet.renbtc, zero.getProvider().asEthers());
const zeroBTC = await zero.getLiquidityTokenFor(mainnet.renbtc);
const liquidityPoolRenBTCHoldings = await renbtc.balanceOf(zeroBTC.address);
console.log(String(liquidityPoolRenBTCHoldings));
await zero.approveLiquidityToken(mainnet.renbtc)
await (
await zero.addLiquidity(ethers.utils.parseUnits('10', 8))
).wait(); // lets add 10 renbtc to the pool
await (
await zero.approvePool(mainnet.renbtc)
).wait();
const randomBytes = require('random-bytes').sync;
const liquidityRequest = zero.createLiquidityRequest({
amount: ethers.utils.parseUnits('0.05', 8),
gasRequested: ethers.utils.parseEther('0.05'), // request some gas to use your btc with, optional
nonce: '0x' + randomBytes(32).toString('hex'),
token: mainnet.renbtc
});
const liquidityRequestParcel = await liquidityRequest.sign();
console.log(liquidityRequestParcel.depositAddress) // outputs the BTC deposit address to initiate the shift
await liquidityRequestParcel.broadcast();
const depositedLiquidityRequestParcel = await liquidityRequestParcel.waitForDeposit();
while (true) {
const borrowProxy = await depositedLiquidityRequestParcel.getBorrowProxy();
if (borrowProxy) {
// can call await borrowProxy.proxy(someContractAddress, calldata, value) to pilot the borrow proxy through supported modules
} else {
await new Promise((resolve) => setTimeout(resolve, 5000));
}
}
To run transaction scripts with a borrow, you can either pass an array as follows:
const liquidityRequest = zero.createLiquidityRequest({
amount: someAmount,
nonce: someNonce,
gasRequested: '0',
token: mainnet.renbtc,
actions: [{
to: uniswapRouter,
calldata: new ethers.utils.Interface(UniswapV2Router01.abi).functions.tokenToTokenSwapInput.encode(...someParameters)
}]
});
Or for examples of how to use a thunk to preprocess a transaction payload, check the 0confirmation-swap-react for usage of Zero.staticPreprocessor to dynamically assemble bytecode for contract creation code which will be executed in a sandbox to compute a list of transactions to execute.
Refer to 0confirmation-sol/contracts/preprocessors/V2SwapAndDrop.sol for an example of a thunk
Running a keeper, for now refer to 0confirmation-keeper for example code
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
@0confirmation/eth-managerEnvironment{
"local_name": "@0confirmation/eth-manager",
"alias": false,
"peer_metadata": null
} | ^0.1.6 | runtime |
@0confirmation/p2pEnvironment{
"local_name": "@0confirmation/p2p",
"alias": false,
"peer_metadata": null
} | ^0.1.6 | runtime |
@0confirmation/providersEnvironment{
"local_name": "@0confirmation/providers",
"alias": false,
"peer_metadata": null
} | ^0.1.8 | runtime |
@0confirmation/renvmEnvironment{
"local_name": "@0confirmation/renvm",
"alias": false,
"peer_metadata": null
} | ^0.1.6 | runtime |
@0confirmation/solEnvironment{
"local_name": "@0confirmation/sol",
"alias": false,
"peer_metadata": null
} | ^0.1.12 | runtime |
@babel/coreEnvironment{
"local_name": "@babel/core",
"alias": false,
"peer_metadata": null
} | ^7.9.0 | runtime |
@babel/plugin-transform-modules-commonjsEnvironment{
"local_name": "@babel/plugin-transform-modules-commonjs",
"alias": false,
"peer_metadata": null
} | ^7.9.0 | runtime |
@babel/preset-envEnvironment{
"local_name": "@babel/preset-env",
"alias": false,
"peer_metadata": null
} | ^7.9.0 | runtime |
@nodeutils/defaults-deepEnvironment{
"local_name": "@nodeutils/defaults-deep",
"alias": false,
"peer_metadata": null
} | ^1.1.0 | runtime |
@renproject/renEnvironment{
"local_name": "@renproject/ren",
"alias": false,
"peer_metadata": null
} | ^1.0.2 | runtime |
@truffle/hdwallet-providerEnvironment{
"local_name": "@truffle/hdwallet-provider",
"alias": false,
"peer_metadata": null
} | ^1.0.32 | runtime |
@truffle/workflow-compileEnvironment{
"local_name": "@truffle/workflow-compile",
"alias": false,
"peer_metadata": null
} | ^2.1.24 | runtime |
@uniswap/sdkEnvironment{
"local_name": "@uniswap/sdk",
"alias": false,
"peer_metadata": null
} | ^2.0.5 | runtime |
babel-loaderEnvironment{
"local_name": "babel-loader",
"alias": false,
"peer_metadata": null
} | ^8.1.0 | runtime |
bitcoin-coreEnvironment{
"local_name": "bitcoin-core",
"alias": false,
"peer_metadata": null
} | ^3.0.0 | runtime |
bitcore-libEnvironment{
"local_name": "bitcore-lib",
"alias": false,
"peer_metadata": null
} | ^8.16.0 | runtime |
bluebirdEnvironment{
"local_name": "bluebird",
"alias": false,
"peer_metadata": null
} | ^3.5.4 | runtime |
bn.jsEnvironment{
"local_name": "bn.js",
"alias": false,
"peer_metadata": null
} | ^5.1.1 | runtime |
bufferutilEnvironment{
"local_name": "bufferutil",
"alias": false,
"peer_metadata": null
} | ^4.0.1 | runtime |
chaiEnvironment{
"local_name": "chai",
"alias": false,
"peer_metadata": null
} | ^4.2.0 | runtime |
cross-envEnvironment{
"local_name": "cross-env",
"alias": false,
"peer_metadata": null
} | ^7.0.0 | runtime |
emasmEnvironment{
"local_name": "emasm",
"alias": false,
"peer_metadata": null
} | git+https://bitbucket.org/raypulver/emasm.git | runtime |
ethereumjs-vmEnvironment{
"local_name": "ethereumjs-vm",
"alias": false,
"peer_metadata": null
} | ^4.1.3 | runtime |
ethersEnvironment{
"local_name": "ethers",
"alias": false,
"peer_metadata": null
} | ^4.0.47 | runtime |
fs-extraEnvironment{
"local_name": "fs-extra",
"alias": false,
"peer_metadata": null
} | ^8.1.0 | runtime |
ganache-cliEnvironment{
"local_name": "ganache-cli",
"alias": false,
"peer_metadata": null
} | ^6.9.1 | runtime |
libp2pEnvironment{
"local_name": "libp2p",
"alias": false,
"peer_metadata": null
} | ^0.27.0-rc.0 | runtime |
libp2p-bootstrapEnvironment{
"local_name": "libp2p-bootstrap",
"alias": false,
"peer_metadata": null
} | ^0.10.4 | runtime |
libp2p-kad-dhtEnvironment{
"local_name": "libp2p-kad-dht",
"alias": false,
"peer_metadata": null
} | ^0.18.5 | runtime |
libp2p-mdnsEnvironment{
"local_name": "libp2p-mdns",
"alias": false,
"peer_metadata": null
} | ^0.13.3 | runtime |
libp2p-secioEnvironment{
"local_name": "libp2p-secio",
"alias": false,
"peer_metadata": null
} | ^0.12.3 | runtime |
libp2p-spdyEnvironment{
"local_name": "libp2p-spdy",
"alias": false,
"peer_metadata": null
} | ^0.13.3 | runtime |
libp2p-tcpEnvironment{
"local_name": "libp2p-tcp",
"alias": false,
"peer_metadata": null
} | ^0.14.4 | runtime |
libp2p-websocket-starEnvironment{
"local_name": "libp2p-websocket-star",
"alias": false,
"peer_metadata": null
} | ^0.10.2 | runtime |
libp2p-websocketsEnvironment{
"local_name": "libp2p-websockets",
"alias": false,
"peer_metadata": null
} | ^0.13.5 | runtime |
mochaEnvironment{
"local_name": "mocha",
"alias": false,
"peer_metadata": null
} | ^7.1.0 | runtime |
netEnvironment{
"local_name": "net",
"alias": false,
"peer_metadata": null
} | ^1.0.2 | runtime |
npm-run-allEnvironment{
"local_name": "npm-run-all",
"alias": false,
"peer_metadata": null
} | ^4.1.5 | runtime |
peer-infoEnvironment{
"local_name": "peer-info",
"alias": false,
"peer_metadata": null
} | ^0.17.0 | runtime |
promise-retryEnvironment{
"local_name": "promise-retry",
"alias": false,
"peer_metadata": null
} | ^1.1.1 | runtime |
pull-streamEnvironment{
"local_name": "pull-stream",
"alias": false,
"peer_metadata": null
} | ^3.6.9 | runtime |
random-bytesEnvironment{
"local_name": "random-bytes",
"alias": false,
"peer_metadata": null
} | ^1.0.0 | runtime |
safe-bufferEnvironment{
"local_name": "safe-buffer",
"alias": false,
"peer_metadata": null
} | ^5.2.0 | runtime |
scrypt-jsEnvironment{
"local_name": "scrypt-js",
"alias": false,
"peer_metadata": null
} | ^3.0.0 | runtime |
send-cryptoEnvironment{
"local_name": "send-crypto",
"alias": false,
"peer_metadata": null
} | ^0.2.3 | runtime |
tlsEnvironment{
"local_name": "tls",
"alias": false,
"peer_metadata": null
} | ^0.0.1 | runtime |
utf-8-validateEnvironment{
"local_name": "utf-8-validate",
"alias": false,
"peer_metadata": null
} | ^5.0.2 | runtime |
uuidEnvironment{
"local_name": "uuid",
"alias": false,
"peer_metadata": null
} | ^3.3.3 | runtime |
web3-utilsEnvironment{
"local_name": "web3-utils",
"alias": false,
"peer_metadata": null
} | ^1.2.6 | runtime |
webpackEnvironment{
"local_name": "webpack",
"alias": false,
"peer_metadata": null
} | ^4.42.1 | runtime |
webpack-cliEnvironment{
"local_name": "webpack-cli",
"alias": false,
"peer_metadata": null
} | ^3.3.11 | runtime |
webpack-node-externalsEnvironment{
"local_name": "webpack-node-externals",
"alias": false,
"peer_metadata": null
} | ^1.7.2 | runtime |
Source distribution
{
"integrity": "sha512-ZgNgiOAMiJiCIk/St/humB70gltRuHreUyrQccMSr72bofyabjtoSqhmtEVaxXq+sRMN4zfpEeCPa0348C4e3g==",
"shasum": "e0fd490ce97321a43245dfe35c3932d08bdfa132",
"tarball": "https://registry.npmjs.org/@0confirmation/sdk/-/sdk-0.2.1.tgz",
"fileCount": 54,
"unpackedSize": 32032610,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/gLzCRA9TVsSAnZWagAA6UwP/R8x9+LuSOPbTeOkL/4w\nBWfC05KS4Pm7+wJSft66D/NDMEyqaV68lASKMDEkYDMBveQ4klMJrptH/gvn\n2ZFlwZ+GWrGASP+kFUSStXQf/2AXov6/+bIbLP8I21pI+ZEatqgcglbkJ84U\n0dfljruyYFjAOS/h4z5AT525VxPR1+1WcuslR9lnvE50/9YafBonO7dgpkN+\noosfIP/1tRDOPLd6qMTUSXL5VqRWnplRshfjnS6L+n2iXrlnHj9+jdoAmmTA\nIm93dLjAe1X/+3pG2lBgDt0YlpDxSzAFNCrH65ERMqEWCoqxXNuKpJOXqVRG\nFh65s7IqFZ7J72s+DaQMJm77m8Q7DDyvzOCw5Yigbw7Xpmx0uaeqH35JhQJ0\nZGt0ZAgyEq6wZDEdN4W2/k86i+qVFBlY9P7vksaKjSqO6muAiGGnYZPwF3hB\nNP6zV6IFP6frEPQ3r9n0J6ZT5poUBJZMrsV5Y6wHJKetNC6wP4MrzLtKwF3p\nGXBid68/Kxv29HC/ZXkir+x59liyQ4kbrXqoZ3Rd6UqphiS2pyNRzpcxVGNB\nV+YiTOoToHMRR6+7/W/cia0Hf01ipNMheKRlNhNxDRVTNKSCuRwvIV17Wf8H\ntzpNuiMSAIO6CN0yDya2mjH7K2b1YsIOtCfp5kPkTQ0rj461daUdsELy5TMn\nje9c\r\n=iIi2\r\n-----END PGP SIGNATURE-----\r\n",
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEMCHx3mnMQnaI3LU4Hp6p9d+pQky2IahMhkc//akfiCtC8CIHvq0hkNyJs3Eiya/hmyXBL8gfvX+/FYQ/IL9RPdCKn+"
}
]
}Shared repository data · GitHub
Observed since 20 Oct, 22:06 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:dbee2bc48a18bccfbfd82a753b5b7c814c5a564818c0af7f9a4e67be285a7d46