cli-zeropool
v0.0.1
Published
## Description ZeroPoolNetwork is a pure JavaScript library for iterating with ZeroPool Ethereum smart contract.
Downloads
2
Readme
ZeroPoolNetwork
Description
ZeroPoolNetwork is a pure JavaScript library for iterating with ZeroPool Ethereum smart contract.
Installation
todo
Usage
const zp = new ZeroPoolNetwork(contractAddress, ethPrivateKey, zpMnemonic);
Deposit
const token = "0x0000000000000000000000000000000000000000";
const amount = 10000002;
zp.deposit(token, amount)
.then(console.log)
/*
{
deposit_blocknumber: 105,
proof:
[ 10618278091481595704348122510710872038636087287541195770304448240179433487922n,
6820251732637745465222229593186089075846105382438918454582995391188310250557n,
7977764039042320623077421308147012660708782524110320576507395364490330869445n,
14953914461711728287547527200248050087041701094087376838307292254072088741940n,
10460258403696081901780263923490850849732816570038643292297476947390988200706n,
2718212615333563440564856193714672454221088851454469820813074089369347359171n,
6789030152397715455983892498661851461827682830031328466936460904369117556271n,
93232926217065064018980471662218186714626644362117158630381502078378084215n ],
message1:
[ 19042329244453370110898339843660190389989373460564000794295392891117279937833n,
6701703612611537740033634303587792786233045263257223542047708984594501958898n,
4502765180101631898944396485550403933458001779181488619404817317480060242672n,
20578363314024645901478243055996495230838830878598425421289539242010094358932n ],
message2:
[ 13181868285613862887915925816963627993565093851737515661429695741209044531872n,
14767233887671425842194198584424922539547194182969602793970424698396606394403n,
15238398247937055560286424375738635418404127500824945360619249482836884226062n,
34666902582085039256491828860506714807643371907628932397069673737056369511552n ],
owner: '0x5c526bc400c619Ca631619F52C58545ad56a0F19',
delta: 10000002n,
token: '0x0000000000000000000000000000000000000000',
utxo:
[ 5927196335330132757957966971520035472662937622288203020448836932640305357500n,
6675163126093257903099739234723449784990797034507726406515264335056294826463n ],
nullifier:
[ 15405626329718232127705544346089433941806776316312070447688218215139210550700n,
14693442481534138816492462133958000852601574444227129873663807305026644958164n ],
rootptr: 0,
new_root:
17970794380061284616596800972425971487597130002759127715876732862858270648168n
}
*/
My Deposits
zp.myDeposits()
.then(console.log)
/*
[
{
deposit: {
token: '0x0000000000000000000000000000000000000000',
amount: '10000002',
txhash:
'0x626b9a6681dae7ec6776d083f08c42fba7c0d1f68bbead511478235ca5afc257',
owner: '0x5c526bc400c619Ca631619F52C58545ad56a0F19',
blocknumber: 105
},
isExists: true,
isSpent: false,
spentInTx: 0
}
]
*/
Cancel Deposit
const deposit = {
token: '0x0000000000000000000000000000000000000000',
amount: '10000002',
txhash: '0x626b9a6681dae7ec6776d083f08c42fba7c0d1f68bbead511478235ca5afc257',
owner: '0x5c526bc400c619Ca631619F52C58545ad56a0F19',
blocknumber: 105
};
zp.depositCancel(deposit)
.then(console.log)
Publish blocks
const block = {
deposit_blocknumber: 105,
proof:
[ 10618278091481595704348122510710872038636087287541195770304448240179433487922n,
6820251732637745465222229593186089075846105382438918454582995391188310250557n,
7977764039042320623077421308147012660708782524110320576507395364490330869445n,
14953914461711728287547527200248050087041701094087376838307292254072088741940n,
10460258403696081901780263923490850849732816570038643292297476947390988200706n,
2718212615333563440564856193714672454221088851454469820813074089369347359171n,
6789030152397715455983892498661851461827682830031328466936460904369117556271n,
93232926217065064018980471662218186714626644362117158630381502078378084215n ],
message1:
[ 19042329244453370110898339843660190389989373460564000794295392891117279937833n,
6701703612611537740033634303587792786233045263257223542047708984594501958898n,
4502765180101631898944396485550403933458001779181488619404817317480060242672n,
20578363314024645901478243055996495230838830878598425421289539242010094358932n ],
message2:
[ 13181868285613862887915925816963627993565093851737515661429695741209044531872n,
14767233887671425842194198584424922539547194182969602793970424698396606394403n,
15238398247937055560286424375738635418404127500824945360619249482836884226062n,
34666902582085039256491828860506714807643371907628932397069673737056369511552n ],
owner: '0x5c526bc400c619Ca631619F52C58545ad56a0F19',
delta: 10000002n,
token: '0x0000000000000000000000000000000000000000',
utxo:
[ 5927196335330132757957966971520035472662937622288203020448836932640305357500n,
6675163126093257903099739234723449784990797034507726406515264335056294826463n ],
nullifier:
[ 15405626329718232127705544346089433941806776316312070447688218215139210550700n,
14693442481534138816492462133958000852601574444227129873663807305026644958164n ],
rootptr: 0,
new_root:
17970794380061284616596800972425971487597130002759127715876732862858270648168n
};
const blocks = [block];
const blocknumber_expires = 500;
zp.publishBlockItems(blocks, blocknumber_expires)
.then(console.log)
Find own UTXO
zp.myUtxos()
.then(console.log)
/*
[
{ token: 0n,
amount: 10000002n,
pubkey:
12123946667276826336013985323462868612130966473467100169422703722373267055672n,
blinding:
18782047853899156349418357931391833619305251468979533390192400340875930082397n,
mp_sibling:
[ 6675163126093257903099739234723449784990797034507726406515264335056294826463n,
9885323406998500013793438129556536303224276963647976814508482533349574357385n,
17325516636655203304685357446470211555866789883064202373892151823301208051968n,
15362496748596162224562673039646463735701166694902230246191366360084089741808n,
3171421283011099678172213181064215781395844368275901880503819278767032266053n,
811463681839953651777473541765908085536220022209428190504815069489494010885n,
13064558374208152162708697998995611495305529433229206948157197076451175327959n,
7311503910832266130755624400428811561405414443392140543102318211775248233362n,
17002201217364759451217610853591697968986488295235380974427951403550807321707n,
3500442693561461904038125704341979247251580107582557078642280160477539792818n,
10501656479781836719197170875200353438080615205837812789201747535798868006609n,
12914839239293365621585921068127683428941648179795690273965418411181646964415n,
12492880136601929540904754914885001782263519525598738093563325262150635302360n,
17936846559010455689227552817658893787011739602623722562423495781781027896246n,
13121683564499582125450586031954700642263221699331733123771659586379936915090n,
2151306395078888140082390342396672064177601520918049536222458442287316625149n,
973981158916562824715210270245787078520087699511931306830353220473866989272n,
12898540022437736719586872477129837513582070640020546314181205384805761992552n,
10735091884781591299635655521928651084111810461354093711649475411912469649843n,
13327530160302227271697984708670609451674249054901805775401956241509057418700n,
15986313087792016329347698116251406749758077340959961537937482287420481099813n,
21663645665006187845941287869331227818803254029633093035761111206856504590873n,
6894123801651624732464317171894904979383696323335879951392387189806360479396n,
3143742548657777282352720086119375615149853609086256306717859951072208904762n,
11576922831286256560284620841077464395695347730830789665177223146385642313483n,
19618776947554247327503805715555642544618369397629233982225982437668900848680n,
2957506134981379138072587707549241847260360051372092991593286757652107999695n,
5535857054133359989943183856109469945469070067054831224622465697587699586741n,
21754553799146747998207416465892208719427900803102670069027925178357742398193n,
19775312519358466453604956678080879392589515452908593006741652198244393197561n,
13238170592610231769082643290569709711316545507151657257788487738181309369115n,
414462044381848533880208748926423808039968765845791454432677987651222650587n ],
mp_path: 0
}
]
*/
Get Balance
zp.getBalance()
.then(console.log)
/*
{ '0x0': 100020 }
*/
Get UTXO Root Hash
zp.utxoRootHash()
.then(console.log)
/*
17970794380061284616596800972425971487597130002759127715876732862858270648168n
*/
Transfer
const token = "0x0000000000000000000000000000000000000000";
const destPubKey = "0x8aba319d7609671a719e30fee2b7c74631ac2ebbb19676510268f64bcae27e8";
const amount = 10002;
zp.transfer(token, destPubKey, amount)
.then(console.log)
/*
{
deposit_blocknumber: '0x0',
proof: [
'0xbc0de2bb5c64ced80dc13711c1b93590cddab7b3b6b1c14fe3a10d139008f93',
'0x2ac4eebf15b882a05c13cd04f3b1aa22880273e82d05732e32d34a64d53ee0db',
'0x2da1714d2833657b2947ee84c54101b5eda3cac6a7714fd28762ee2d8c242539',
'0x4e864c5c780d46dc1481587206cc73183d5e989c4f70ec3acb680677f153e6f',
'0x9e7429c7ed962d1d872581edc26c5d9fdf36c811ae902d902dfd51d27e411c',
'0xedd17246b810febc50a6ab68955d933e6bed4c0418a5b2a8753074768637b12',
'0x11c9f1331e99549364bc8bb6d4ae6e17651a1c73851298d97b821b53472f1e9e',
'0x227826b37a9f8e75880aa638945cdb2e3357947f870d112e02fdab598340d99'
],
message1: [
'0x186de6179698a83a56146038d1f9e5acc4e8a84c5ceca4a2348af5843b2978d2',
'0x2232a8f14876d62545cb640fa89fa94c42265d384a4bf822cd11180018fabe6b',
'0x23427ee7c9cf062f9dde80c4f5d116a3c417dcf6f3915dfcde1ee45919efb4b7',
'0x1e7a41884a62ca6d76b0ea017675b31b377f951e7ed6f1e4230a27b3a3ec9a9c'
],
message2: [
'0x62c9add0a739438ed41217c91bea0b1f7d2f321ef508912d56b629650a53784',
'0x1662000a99028e6eed10ea6f4528238811638428d19c89b22f8b9e7a4cc31cc4',
'0x22676943dc916d852421b883110ce84289a98d51366bce0ccf1940c5015ac7bb',
'0x4d8c69ac13afa256cf9fa77ece69ab2aaccf0a02772667c357f6fdc5975c6589'
],
owner: '0x0000000000000000000000000000000000000000',
delta: '0x0',
token: '0x0000000000000000000000000000000000000000',
utxo: [
'0x18d2c431c0d9252a3d1ff0bf66b29576d1fcaa6fc25b4792064274304c398e1',
'0x21c09f80d474695957affb76d1e9d545c5b4651d610b2a7c4fd8a7095e95b0e7'
],
nullifier: [
'0x2e3ed970064b1c6a89bc6ebcc29d38435e0207e8d0b2b5f4285679fbc4018c4a',
'0xefe35d367ecdb5da9e3b5a48292c58078a25a8c4de9e7f0860ad385257061a6'
],
rootptr: '0xa',
new_root:
'0x1b825f30e484930c34885de46e32a4844a8705956e62e87b500b4ca4269acccc'
}
*/
Prepare withdraw
const token = "0x0000000000000000000000000000000000000000";
const numberOfUtxo = 1;
zp.prepareWithdraw(token, numberOfUtxo)
.then(console.log)
/*
{
deposit_blocknumber: '0x0',
proof:
[ '0x2c845ff87b32298ec0bf00edcdd1c68e2bf7138731e19e487cb94ee2060ed8eb',
'0x2e1493a39a304de70aa49e5641bd423c00b4c2be67833d8ad06437c96d6e05ec',
'0x23e67ebe363e617058033f09931d489f99c0bc59c471984a4c8d593f2551b77b',
'0x2bb921e46736d45e54ef6be1c104ca6d8d54f4b0b698fdc0730fb9f2367bc850',
'0x2f97d73833b4e75d9fb14cfdbe298ff0cc0e34c4fbad4a21ece030b4babb5d57',
'0x24cf80d6bb73532b0585b205d50b21fa1f85190e8322fe0d8c31205162cb6814',
'0x7332e8a4dda326fedbca01e6948774aeee6e219ebe8abb4b4e99687780fdc87',
'0x20813c966d5ae9708c77bc27987aa52ff8ad5d28c604ca2aacaddc6cd6510442' ],
message1:
[ '0xe7ddb23ce6ce2dcf4fdea047fd71ed04f6f88a05f5ee0cbf268e624ab0a6d6b',
'0x15af8d51e96217e0b7c93b4be09a154cc58f53b9a7e0efd3f76f06a01477af1d',
'0x2563056781cf263b1f14795f1950d99d97bbdf875514fd6b7eb2d0cb50c8f49c',
'0x2f2b7d3dd91d78faf0eb90cf128a8f3502830bd3cf3fe6f477cb5e790bb53d09' ],
message2:
[ '0x122cfbae9923c20ed0d03e292b5cc19b8842112dfad71ae6643217d0db26428',
'0x4ebb71be1677cfeaf75c9a7f92982fb1253e3c88f6ee20340912d3e891fb7b9',
'0xc69c65a503fdef1c5f459cd012a3a7ad94a42ec225ca7f2bd3802831af0b6f6',
'0x35e55318020fc5cc17e92ec50105b9556560bf80c5bf5fa8c75df1ac86437edd' ],
owner: '0x5c526bc400c619Ca631619F52C58545ad56a0F19',
delta:
'0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effe79c7',
token: '0x0000000000000000000000000000000000000000',
utxo:
[ '0x51101e56d94dfac800d52f6a163a73fd9ab93c0fef6000f3391204cb2359b1e',
'0x28b9a4feace9b01fde53b37b3a51915eab2d90fddaad331629a795c1b2e28d71' ],
nullifier:
[ '0x2e3ed970064b1c6a89bc6ebcc29d38435e0207e8d0b2b5f4285679fbc4018c4a',
'0xbd7b1f2ac575a7f5621ed8ad2f67922d424c5d077e8c0200feaaeb19ef26cca' ],
rootptr: '0xa',
new_root:
'0x201a8de61a4a0fa3278ece76cfe0265f4ccc1f60b9d1aef02d1cc9bb8e633e9c',
tx_hash:
'0xc68eca23f89667fd80105d1d7e9c7a087297a7ce701d11e50109e5dd66d9ad98'
}
*/
Withdraw
const token = "0x0000000000000000000000000000000000000000";
zp.withdraw({
token,
amount: 10 ** 5,
owner: zp.ethAddress,
blocknumber: 168,
txhash: "0xc68eca23f89667fd80105d1d7e9c7a087297a7ce701d11e50109e5dd66d9ad98"
}).then(console.log);