From 822be5335243b7834d6c89fbed6a205044a06df4 Mon Sep 17 00:00:00 2001 From: Hammad-Mubeen Date: Fri, 10 Dec 2021 20:24:57 +0500 Subject: [PATCH] code updated --- .env | 38 +- JsClients/ERC20/keys/public_key.pem | 2 +- JsClients/ERC20/keys/public_key_hex | 2 +- JsClients/ERC20/keys/secret_key.pem | 2 +- JsClients/ERC20/src/constants.ts | 2 +- JsClients/ERC20/src/erc20.ts | 37 +- JsClients/ERC20/test/install.ts | 26 +- JsClients/ERC20/test/installed.ts | 52 +- JsClients/ERC20/test/utils.ts | 5 +- JsClients/ERC20/wasm/erc20-token.wasm | Bin 387619 -> 390358 bytes JsClients/ERC20/wasm/erc20-tokenevents.wasm | Bin 380200 -> 0 bytes JsClients/FACTORY/keys/public_key.pem | 2 +- JsClients/FACTORY/keys/public_key_hex | 2 +- JsClients/FACTORY/keys/secret_key.pem | 2 +- JsClients/FACTORY/test/utils.ts | 2 +- JsClients/PAIR/keys/public_key.pem | 2 +- JsClients/PAIR/keys/public_key_hex | 2 +- JsClients/PAIR/keys/secret_key.pem | 2 +- JsClients/PAIR/test/utils.ts | 4 +- JsClients/PAIR/wasm/pair-token.wasm | Bin 467302 -> 470041 bytes JsClients/ROUTER/keys/public_key.pem | 2 +- JsClients/ROUTER/keys/public_key_hex | 2 +- JsClients/ROUTER/keys/secret_key.pem | 2 +- JsClients/ROUTER/src/uniswap-router-client.ts | 218 +++--- JsClients/ROUTER/test/installed.ts | 678 +++++++++++------- JsClients/ROUTER/wasm/uniswap-v2-router.wasm | Bin 403848 -> 403848 bytes 26 files changed, 630 insertions(+), 456 deletions(-) delete mode 100644 JsClients/ERC20/wasm/erc20-tokenevents.wasm diff --git a/.env b/.env index 377fd30a..dfb245a8 100644 --- a/.env +++ b/.env @@ -2,18 +2,19 @@ NODE_MODE=deployed DATABASE_URL_LOCAL=mongodb://localhost:27017/V2-graphQL DATABASE_URL_ONLINE=mongodb+srv://admin:scytalelabs@cluster0-9yop5.mongodb.net/V2-graphQL-backend-demo?retryWrites=true&w=majority -FACTORY_CONTRACT=A1536f887a6dFB2B2fa00C9beAc21324AaD0F880d36926010e355A1F4C1616ee -PAIR_CONTRACT=8A56313004fFa242eB9D197A232aFf6eE19507847F3151064e5ff334935cf02D -PAIR_CONTRACT_PACKAGE=57f8a52b960485c9c5111b33660cdF29FB543A754ec341caB5829CC49EB644c3 +FACTORY_CONTRACT=46505F2A814CC8Ee77E963a9dB101bEE4C9f96b47acAD65eE1084588b3e8e822 +PAIR_CONTRACT=83c4d036f0912794cfb5896210298E6E9F228BE41626ddcf74583D16a26D7eD6 +PAIR_CONTRACT_PACKAGE=984C671dF3c19563B760AF45586e913ab3C3C649BD8AFddbfd60807325803EAD CALLEE_CONTRACT=fbfeda8b97f056f526f20c2fc2b486d9bdbfb3e46b9a164527e57c0c86e68612 -TOKEN0_CONTRACT=39cc3cEE8D8Be3A1B0cDE77d857cAa1d28f3061A54c053da2585CfDFF486b0E1 -TOKEN1_CONTRACT=464AB6d2Fad52DB31cD2e11D7F30Ce4E998bd37b4321243925D9846011e0b13B -TOKEN1_CONTRACT_PACKAGE=7D379F70A50458Bd1593E9c1317A7110B1AebBd926E331618f45bFbd4e119B0B +TOKEN0_CONTRACT=7387033a0A3619caf217d8dF5E78D0814Fe6e3fa5Bd5DCfCe98C201851a97725 +TOKEN0_CONTRACT_PACKAGE=03356D719373cB3E5A83c10548fED58919E7B4AFF23C7449d97b17e89d7D8727 +TOKEN1_CONTRACT=f2dF436817e881ca2D9e945FD62680C546591A6ecb4E3b9Ec05E6e4BC2385B23 +TOKEN1_CONTRACT_PACKAGE=6c2Fe8b6728Ce1C0320bF92867236e9d94aC41FD6997492B25422e4baa0E3c3f GRAPHQL=http://localhost:3000/graphql CHAIN_NAME=casper-test -NODE_ADDRESS=http://159.65.118.250:7777/rpc -EVENT_STREAM_ADDRESS=http://159.65.118.250:9999/events/main +NODE_ADDRESS=http://65.21.237.153:7777/rpc +EVENT_STREAM_ADDRESS=http://65.21.237.153:9999/events/main RECEIVER_ACCOUNT_ONE=017e82abcc9539a01cfd9d63ae8c9c8b3a752a6f75ba1ab148714eea03e9be69a7 ERC20_WASM_PATH=JsClients/ERC20/wasm/erc20-token.wasm @@ -40,12 +41,12 @@ PAIR_TOTAL_SUPPLY=0 FACTORY_CONTRACT_NAME=Factory -ERC20_INSTALL_PAYMENT_AMOUNT=170000000000 +ERC20_INSTALL_PAYMENT_AMOUNT=200000000000 FACTORY_INSTALL_PAYMENT_AMOUNT=110000000000 -PAIR_INSTALL_PAYMENT_AMOUNT=300000000000 +PAIR_INSTALL_PAYMENT_AMOUNT=350000000000 MINT_PAYMENT_AMOUNT=5000000000 -MINT_AMOUNT=1000 +MINT_AMOUNT=2000 BURN_PAYMENT_AMOUNT=5000000000 BURN_AMOUNT=5 @@ -79,13 +80,13 @@ TOKEN_NAME=uniswap-router TOKEN_SYMBOL=DRAG TOKEN_META=origin fire,lifetime infinite -FACTORY=A1536f887a6dFB2B2fa00C9beAc21324AaD0F880d36926010e355A1F4C1616ee +FACTORY=46505F2A814CC8Ee77E963a9dB101bEE4C9f96b47acAD65eE1084588b3e8e822 WCSPR=bA8f6a73B6D548E2CAe2d572aA2F824BC46A3C06a3BBA10e3d12B015931D3f85 LIBRARY=e0Dae7571C3dc5C957a36422c56BA0ccb8AECEC833F35e32874b75A8Ea8Ac4Db CONTRACT_NAME=UniSwapRouter -CONTRACT_HASH=2634C8f75Db583C65b9Beb55aBf8339294F2728Cf05c478fe13B239E7916aa36 -PACKAGE_HASH=B51E1CE9a31f948119e5699D24C943Bc16024C81caD1A7dFD9119aFD791eD5C5 +CONTRACT_HASH=58e35630F1ef3797C28dc93a8e6Fb3F5980154e4793ee142D47eE95Cd48Feb62 +PACKAGE_HASH=3b401aAfC1CCd3707DEaB6B39a3Bb42670487130c9EAB0b5BaCb2248900A88CA INSTALL_PAYMENT_AMOUNT=200000000000 MINT_ONE_PAYMENT_AMOUNT=2000000000 MINT_COPIES_PAYMENT_AMOUNT=100000000000 @@ -96,13 +97,12 @@ MINT_COPIES_COUNT=20 MINT_MANY_META_SIZE=5 MINT_MANY_META_COUNT=5 -TO = 39cc3cEE8D8Be3A1B0cDE77d857cAa1d28f3061A54c053da2585CfDFF486b0E1 -DEADLINE = 1638974538161 - +TO = 7387033a0A3619caf217d8dF5E78D0814Fe6e3fa5Bd5DCfCe98C201851a97725 +DEADLINE = 1699140435324 # add_liquidity -TOKEN_A = 39cc3cEE8D8Be3A1B0cDE77d857cAa1d28f3061A54c053da2585CfDFF486b0E1 -TOKEN_B = 464AB6d2Fad52DB31cD2e11D7F30Ce4E998bd37b4321243925D9846011e0b13B +TOKEN_A = 7387033a0A3619caf217d8dF5E78D0814Fe6e3fa5Bd5DCfCe98C201851a97725 +TOKEN_B = f2dF436817e881ca2D9e945FD62680C546591A6ecb4E3b9Ec05E6e4BC2385B23 AMOUNT_A_DESIRED = 500 AMOUNT_B_DESIRED = 600 AMOUNT_A_MIN = 250 diff --git a/JsClients/ERC20/keys/public_key.pem b/JsClients/ERC20/keys/public_key.pem index fa54c859..f7d405dd 100644 --- a/JsClients/ERC20/keys/public_key.pem +++ b/JsClients/ERC20/keys/public_key.pem @@ -1,3 +1,3 @@ -----BEGIN PUBLIC KEY----- -MCowBQYDK2VwAyEA9iX2/XqEmzD9Oxj78Pgk5No8MMtqPOVslG73VeXB7wA= +MCowBQYDK2VwAyEA+Gwj5LQ3PmnfmVjkxFcmZnD6FktIUMI0JRu823ZRpnE= -----END PUBLIC KEY----- diff --git a/JsClients/ERC20/keys/public_key_hex b/JsClients/ERC20/keys/public_key_hex index 5c1e875c..ae3c3a30 100644 --- a/JsClients/ERC20/keys/public_key_hex +++ b/JsClients/ERC20/keys/public_key_hex @@ -1 +1 @@ -01f625f6fd7a849b30fd3b18fbf0f824e4da3c30cb6a3ce56c946ef755e5c1ef00 \ No newline at end of file +01f86c23e4b4373e69df9958e4c457266670fa164b4850c234251bbcdb7651a671 \ No newline at end of file diff --git a/JsClients/ERC20/keys/secret_key.pem b/JsClients/ERC20/keys/secret_key.pem index 94c511d3..0df3c5ed 100644 --- a/JsClients/ERC20/keys/secret_key.pem +++ b/JsClients/ERC20/keys/secret_key.pem @@ -1,3 +1,3 @@ -----BEGIN PRIVATE KEY----- -MC4CAQAwBQYDK2VwBCIEIN7jOxtBNk251SUMGNb3UScLr35+K9ehtphiKYPqaxDW +MC4CAQAwBQYDK2VwBCIEILXBMhV7E1w2R3bgTAbiYmAju2yKUF5ZUuS2I0moHO2I -----END PRIVATE KEY----- diff --git a/JsClients/ERC20/src/constants.ts b/JsClients/ERC20/src/constants.ts index 4333ab63..7817c7d2 100644 --- a/JsClients/ERC20/src/constants.ts +++ b/JsClients/ERC20/src/constants.ts @@ -1,5 +1,5 @@ export enum ERC20Events { Approval="approve", - Transfer="transfer" + Transfer="erc20_transfer" } diff --git a/JsClients/ERC20/src/erc20.ts b/JsClients/ERC20/src/erc20.ts index 92ca2840..e1897992 100644 --- a/JsClients/ERC20/src/erc20.ts +++ b/JsClients/ERC20/src/erc20.ts @@ -304,17 +304,16 @@ class ERC20Client { } public async mint( keys: Keys.AsymmetricKey, - to: string, + to: RecipientType, amount: string, paymentAmount: string ) { - const tobytearray = new CLByteArray(Uint8Array.from(Buffer.from(to, 'hex'))); + const runtimeArgs = RuntimeArgs.fromMap({ - to: CLValueBuilder.key(tobytearray), + to:utils.createRecipientAddress(to), amount: CLValueBuilder.u256(amount) }); - const deployHash = await contractCall({ chainName: this.chainName, contractHash: this.contractHash, @@ -332,6 +331,36 @@ class ERC20Client { throw Error("Invalid Deploy"); } } + // public async mint( + // keys: Keys.AsymmetricKey, + // to: string, + // amount: string, + // paymentAmount: string + // ) { + // const tobytearray = new CLByteArray(Uint8Array.from(Buffer.from(to, 'hex'))); + // const runtimeArgs = RuntimeArgs.fromMap({ + // to: CLValueBuilder.key(tobytearray), + // amount: CLValueBuilder.u256(amount) + // }); + + + // const deployHash = await contractCall({ + // chainName: this.chainName, + // contractHash: this.contractHash, + // entryPoint: "mint", + // keys, + // nodeAddress: this.nodeAddress, + // paymentAmount, + // runtimeArgs, + // }); + + // if (deployHash !== null) { + // this.addPendingDeploy(ERC20Events.Transfer, deployHash); + // return deployHash; + // } else { + // throw Error("Invalid Deploy"); + // } + // } public async burn( keys: Keys.AsymmetricKey, from: RecipientType, diff --git a/JsClients/ERC20/test/install.ts b/JsClients/ERC20/test/install.ts index 1b2a01c7..e255c423 100644 --- a/JsClients/ERC20/test/install.ts +++ b/JsClients/ERC20/test/install.ts @@ -33,22 +33,22 @@ const test = async () => { EVENT_STREAM_ADDRESS! ); - // const installDeployHash = await erc20.install( - // KEYS, - // ERC20_TOKEN_NAME!, - // ERC20_TOKEN_SYMBOL!, - // ERC20_DECIMALS!, - // ERC20_TOTAL_SUPPLY!, - // ERC20_CONTRACT_NAME!, - // ERC20_INSTALL_PAYMENT_AMOUNT!, - // ERC20_WASM_PATH! - // ); + const installDeployHash = await erc20.install( + KEYS, + ERC20_TOKEN_NAME!, + ERC20_TOKEN_SYMBOL!, + ERC20_DECIMALS!, + ERC20_TOTAL_SUPPLY!, + ERC20_CONTRACT_NAME!, + ERC20_INSTALL_PAYMENT_AMOUNT!, + ERC20_WASM_PATH! + ); - // console.log(`... Contract installation deployHash: ${installDeployHash}`); + console.log(`... Contract installation deployHash: ${installDeployHash}`); - // await getDeploy(NODE_ADDRESS!, installDeployHash); + await getDeploy(NODE_ADDRESS!, installDeployHash); - // console.log(`... Contract installed successfully.`); + console.log(`... Contract installed successfully.`); let accountInfo = await utils.getAccountInfo(NODE_ADDRESS!, KEYS.publicKey); diff --git a/JsClients/ERC20/test/installed.ts b/JsClients/ERC20/test/installed.ts index 968e01c2..56c8c2b0 100644 --- a/JsClients/ERC20/test/installed.ts +++ b/JsClients/ERC20/test/installed.ts @@ -36,7 +36,9 @@ const { PAIR_CONTRACT, PACKAGE_HASH, AMOUNT_A_DESIRED, - AMOUNT_B_DESIRED + AMOUNT_B_DESIRED, + MASTER_KEY_PAIR_PATH, + PAIR_CONTRACT_PACKAGE } = process.env; @@ -45,6 +47,11 @@ const KEYS = Keys.Ed25519.parseKeyFiles( `${ERC20_MASTER_KEY_PAIR_PATH}/secret_key.pem` ); +const ROUTERKEYS = Keys.Ed25519.parseKeyFiles( + `${MASTER_KEY_PAIR_PATH}/public_key.pem`, + `${MASTER_KEY_PAIR_PATH}/secret_key.pem` +); + const erc20 = new ERC20Client( NODE_ADDRESS!, CHAIN_NAME!, @@ -99,8 +106,8 @@ const test = async () => { console.log(`... Contract Hash: ${contractHash}`); // // We don't need hash- prefix so i'm removing it - // //await erc20.setContractHash(contractHash.slice(5)); - await erc20.setContractHash(TOKEN0_CONTRACT!); + //await erc20.setContractHash(contractHash.slice(5)); + await erc20.setContractHash(TOKEN1_CONTRACT!); // // //name // // const name = await erc20.name(); @@ -132,16 +139,17 @@ const test = async () => { // // // console.log(`... Allowance: ${allowance}`); //mint - const mintDeployHash = await erc20.mint( - KEYS, - PACKAGE_HASH!, - MINT_AMOUNT!, - MINT_PAYMENT_AMOUNT! - ); - console.log("... Mint deploy hash: ", mintDeployHash); + // const mintDeployHash = await erc20.mint( + // ROUTERKEYS, + // ROUTERKEYS.publicKey, + // MINT_AMOUNT!, + // MINT_PAYMENT_AMOUNT! + // ); + // console.log("... Mint deploy hash: ", mintDeployHash); + + // await getDeploy(NODE_ADDRESS!, mintDeployHash); + // console.log("... Token minted successfully."); - await getDeploy(NODE_ADDRESS!, mintDeployHash); - //balanceof // let balance = await erc20.balanceOfcontract(PAIR_CONTRACT!); // console.log(`... Balance: ${balance}`); @@ -163,16 +171,16 @@ const test = async () => { // // console.log(`... Total supply: ${totalSupply}`); //approve - // const approveDeployHash = await erc20.approve( - // KEYS, - // PACKAGE_HASH!, - // AMOUNT_B_DESIRED!, - // APPROVE_PAYMENT_AMOUNT! - // ); - // console.log("... Approve deploy hash: ", approveDeployHash); + const approveDeployHash = await erc20.approve( + ROUTERKEYS, + PACKAGE_HASH!, + AMOUNT_B_DESIRED!, + APPROVE_PAYMENT_AMOUNT! + ); + console.log("... Approve deploy hash: ", approveDeployHash); - // await getDeploy(NODE_ADDRESS!, approveDeployHash); - // console.log("... Token approved successfully"); + await getDeploy(NODE_ADDRESS!, approveDeployHash); + console.log("... Token approved successfully"); // // //transfer // // const transferDeployHash = await erc20.transfer( @@ -201,7 +209,7 @@ const test = async () => { }; -//test(); +test(); export const getName = async (contractHash:string) => { diff --git a/JsClients/ERC20/test/utils.ts b/JsClients/ERC20/test/utils.ts index b00e42d7..54870037 100644 --- a/JsClients/ERC20/test/utils.ts +++ b/JsClients/ERC20/test/utils.ts @@ -11,14 +11,15 @@ export const sleep = (ms: number) => { export const getDeploy = async (NODE_URL: string, deployHash: string) => { const client = new CasperClient(NODE_URL); - let i = 1000; + let i = 300; while (i != 0) { + //console.log("i: ",i); const [deploy, raw] = await client.getDeploy(deployHash); if (raw.execution_results.length !== 0){ // @ts-ignore if (raw.execution_results[0].result.Success) { - return [deploy.header.timestamp,deploy.header.gasPrice,raw.execution_results[0].block_hash]; + return [deploy.header.timestamp,raw.execution_results[0].block_hash]; } else { // @ts-ignore throw Error("Contract execution: " + raw.execution_results[0].result.Failure.error_message); diff --git a/JsClients/ERC20/wasm/erc20-token.wasm b/JsClients/ERC20/wasm/erc20-token.wasm index f5a5d7a8c659e0abd68402889529bebd53f50d0e..3cbdaee52f015af549e36180668b75f6016dd587 100755 GIT binary patch delta 18171 zcmeHvdwdi{+HQ4M&7?aslT0!Rxe_K<5=gjTRRW1X0J#KFLwDV6_3h7|#M^=*94`wf=Xqn-4znq5bAVxQy%?^>Zdg2(WfZy zx15Zyr$nEvcjpKQuh6SxE5b4a(VYDWH5f*;e~;ncXxBn} zi_IKYSw>joAZ7<)9j#q(mGC)ybpa+1i4k9r>_Q5_8o zIZxz8gF+43sO2G81AO7QFm5o=$28<8KP02%qS4EA%a{S1czRdDL&gHUPy1Sf7<>F;IDiV$lTc#=~ z^Wws$EXV^02Mw%g7`kC!cYY^+(2HB}-8vEYG+Y{WC7f$`c4T`c!d7n^>XYuJ%zY z+%^#%vU3)bO$}mrP&AAy0;~+xavi>}I%gXU)P@OVT()Z$jZdptPxMeFegkRmT z2k7?0%mz==!c$D^qHCQc4vU}OWbp%sX}8Hb8(XxRth2-+I*scrhM&H`+TkgkLF3XD zHQ|aH`(07P4c>I3-3db7?zoIiv>4H@iFTd#A1B&ob}`ZZN5hzCVfa5yw9O3vM!S|= zt-p#oUfyzufL#A+86;lLYq%Ao6IgUsBVMj}#H-B?JdbH@e0Tnpj5*fo=my{{>px8r z4V-31%e?`p=dsn87JAnPfcUd*0Em~(BYoF;OuTF!@l6+GTL0@gB8&B(T49k2#v#@v z6msnVh)=J{qe+8uT-y%H3D)F!V>zyRDM!{zC7RZ|jCbd9XEs-M8zUISG1*yaVJp@b z@?1C$s~MM*DA|ymjs_<$;6#OTqEV6I$xCRG6OD@uP+p?Sp~!rt$*#+7QJ9A*NcG&R z34YSJbUrMX5w&zeVI%eta`BADy@5nIy*CEEVy8p8w!(WH(lwm+JEXI@9*sffu&(K0 z9muBh1$g@;qxF*59|MgxyZzP-5b&l-hXE|J#uF^9=J{$VBhyRZ|f=57>lXd=_X^c&}%4UP@(^d6_Ny*aZ0_m z-M)J>&k1>U=q!^|*J~lO1{VW&*w1a|E&tdW8Pr)VMQ>}&;EXB4yje4S^Ux26n4=~8 zGJ}k@MG-WCc?W1gzu_X{KIX~Hml0sBKUAoH-ocv3{{f8j-(h!rlZUN|$XJbxxTC0w zvAUNZX6y){eWRI`DDh|Hqq9u=LGu`YhfXbsBqGjeW?-3%Fb|r6y^!mnK;AZ=9+*&v z3r8NA;5*`yz2me%qLr20sNv6nfMjfknHOQE2!eK63j|(p5$366S?{`7L(Er`WxcO8 ztJjfZ^(tA`OVtulKrM~c8~hTr`~xIB$jmLR@XtYXeeaIQZCm&inm*aKcf5t+^rWpZ zj8K*^N-Hof_c5l3)Hif9V7Q2sYm&^<@r??JLZ==Ye}m34Sm~s!yyYU2?(vy{pIk(8 zX;NTGqio;Nz+3d(gyJ3)PrBAf4emj%B3fLW3L2G+LEAGHYBClH@U>Yj3H!|kKHMro zh79YLP=KOZ2Dv3lX1+VQ9jXRsn$NYi{GQy*G9&@#}B0IB@Om~BRpqRNki0$p~-rR z|KV|rDI(=1ugUz|u4Ak-RA>$j{aFwA%Ry9upoWB|>OtSfAjT_VhMq2sjBl_v9N{hX z+Z*gpkMI(!UMchzA!ei@rmMkp!L1VNAp-tZsCOL*3P5P6@cT-kTkAX-9LGegg4#zP6m!Qf((N-h$Fg(){#3~SI2Max; zw=_OPn_mO*7wYB;J;}T*MtG^FP*>qMJ_qyBKkV{vadZ7sm34d+*s8NmZXcz9XyT&+ z5VAhyqm>|FlQ}+e2<0P1I6jIIjXqkr)&Bfj_^8i2I!hs2&+17&^1vVvbi9hkpWIPID30WtNgFMAZg;j@GiE;F! zXe6YMMz{zXMpZ63)xPi;&(OELV~;(CMePhMw^e-MAm zA`DzPnV(<9aU7HjhfXqM(}*!E?5N%mwjl@ z0-UXr@1PuiKxyUd~><6nsbS2`jXb~vMZ6s1UnSn*&MmaRXGfpVV<=R*fT7ixdp)`47F_gh zqOt&e9|;EUvKTi!1;%IS@ogaJ-sQJ>lFh%uNR;S{yT#OTKNwW%2`Jr5N=dO&+U{nh zh=8Ihv<-g0e7Al68D5fq6SAnCL7$!zJd7F~ViWDHS!h--`~EY$hxJ}BEgG*1PrmU0 ze4&W6gL*q-1s;eTVuhY&OvHdzL?%7!jes#lWZ+q^$|W1oXFc@ir7&Y(p{5-ev>Y|X ztsp{Y?2&TOBIR&-^g&K`-e`?Roa*(+c+uM8$RPIz+9U+Vq2_qV?)WDXv0cqhfWuZq)OPaW;nF&XBOx&(a^hlB><|-5A zxzfVZ%`7;wV_}uDP@bAqgGOQIVu9ZFgPKUQjv;R|8kjOWF>o>R9J#~{QkO|4r;w9K zPUx+%G})o33vwX4o#x0+?S;^wdsexiH)QF=9xVgos$lZcW+oijF)>=1=#eBFH5D?R zc37Z1S9*DFZ@WepIiYpn2Z87PJxRv<=*_y`cC9Y5TE88uB5iA;xgJ$2IkU4y3kEZD zTBB4S`%_(9pFFNl(=LtcV_(WeN!}RnbVI27T*>M_AJfOK=OXQrInXPjR$T7sDW@Ps zs3}OvY6?;^O+j)7QiPg;=Jc_B0webEW-U;%YJrkdIu)RPgW|OmMQ8%?U1PxAF~S`% zQjjuvJDTJK@eO!6L0lf2Acj;FM8~o-uMDYh-C4|_8N#lxKMh_zIK{u6Ypzt(aLewR9#`4uGLCne_~o6H@u&fIZbKdUSc>V050!ev&MhJ#n|60wq_F z4u&a-fhCYD?A(u06UbTHFPPDbkt2t{0w!@Y2#%HKe$-Fww zG#8-viYP76Fg60~L0#3XjFO!)ig1;g)~rlSwwO~$X}Ah4X;w(dP8mhG%KW`q86`Vq z6d}v>N7wTYp$OJOraZT6NzAQdWp^n%jBGwOO}faDm5UBlM=mzSKQ(>QK)bh3jMWbf zwCj8#tKi7M=!3f21voO@KjuByfBihr{>&$`t)xL*&QfK)TA1+~P7-6XaW@W)1KTi8 zbHUJAXjz|R<8_yu7{(F!DmQVIj=%%`aQ}8h8T_!aikvvQ!Gl=Q<8!n^d2>@{95ShK z>9j|22-&(iw6516d!Aop=g)>J8pX=eJuI*e8Bc@IiNLlc9rM@IgY2DtQDJ=!o+e4v zVMmrGpF_#xF;nraa7P9wV5oa8ingQd3J>O?C(x7DV7#!>4zCD|3E@T}@qAApc(sdY zpCzZ{l%trxH~N`9Hz3+2k3?~z)dW8BB70{*l=fc<9?v!`{YEX(d=e#yAjR~4n%`)Z zk0k&EJp`l=z@ZTBCx{>)rH{tTiYiIil?mc5zRBSBh6It(?~uXS3izh^@=n2TQ%9s9VvLM}H2`0C*6GfL{Pnlfqu}kMA$&8mE z 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 delta 15587 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 R4A(}JMtZo%`=088{{j3MqD}w+ diff --git a/JsClients/ERC20/wasm/erc20-tokenevents.wasm b/JsClients/ERC20/wasm/erc20-tokenevents.wasm deleted file mode 100644 index 08105c65b6755ba763b6b9ef77150daa03f0a554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380200 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 { export const getDeploy = async (NODE_URL: string, deployHash: string) => { const client = new CasperClient(NODE_URL); - let i = 1000; + let i = 300; while (i != 0) { const [deploy, raw] = await client.getDeploy(deployHash); diff --git a/JsClients/PAIR/keys/public_key.pem b/JsClients/PAIR/keys/public_key.pem index 93f801b5..1b0a23f4 100644 --- a/JsClients/PAIR/keys/public_key.pem +++ b/JsClients/PAIR/keys/public_key.pem @@ -1,3 +1,3 @@ -----BEGIN PUBLIC KEY----- -MCowBQYDK2VwAyEAf7CfmFUXqAUKP1jtrY+nll9XKMTN+a5iJ7sWX+90Hqo= +MCowBQYDK2VwAyEAMfyQQNEYSp6VQcd9N2GpRmGcx+1+Wl6myTehyxbCLP4= -----END PUBLIC KEY----- diff --git a/JsClients/PAIR/keys/public_key_hex b/JsClients/PAIR/keys/public_key_hex index 62ad2e86..553e3132 100644 --- a/JsClients/PAIR/keys/public_key_hex +++ b/JsClients/PAIR/keys/public_key_hex @@ -1 +1 @@ -017fb09f985517a8050a3f58edad8fa7965f5728c4cdf9ae6227bb165fef741eaa \ No newline at end of file +0131fc9040d1184a9e9541c77d3761a946619cc7ed7e5a5ea6c937a1cb16c22cfe \ No newline at end of file diff --git a/JsClients/PAIR/keys/secret_key.pem b/JsClients/PAIR/keys/secret_key.pem index 618c182c..bc1e2856 100644 --- a/JsClients/PAIR/keys/secret_key.pem +++ b/JsClients/PAIR/keys/secret_key.pem @@ -1,3 +1,3 @@ -----BEGIN PRIVATE KEY----- -MC4CAQAwBQYDK2VwBCIEIAHoAFym+7OvRR4bQuiQqFrY8C7uninSLGgJk9rq6dCV +MC4CAQAwBQYDK2VwBCIEIO4zMC4Rx+Mnh5sCLc0E5jhAhLZDPmHN1JDC0NGTD8ti -----END PRIVATE KEY----- diff --git a/JsClients/PAIR/test/utils.ts b/JsClients/PAIR/test/utils.ts index 6361ac83..2046a920 100644 --- a/JsClients/PAIR/test/utils.ts +++ b/JsClients/PAIR/test/utils.ts @@ -11,9 +11,9 @@ export const sleep = (ms: number) => { export const getDeploy = async (NODE_URL: string, deployHash: string) => { const client = new CasperClient(NODE_URL); - let i = 1000; + let i = 300; while (i != 0) { - console.log("i: ",i); + //console.log("i: ",i); const [deploy, raw] = await client.getDeploy(deployHash); if (raw.execution_results.length !== 0) { // @ts-ignore diff --git a/JsClients/PAIR/wasm/pair-token.wasm b/JsClients/PAIR/wasm/pair-token.wasm index 4edc4bea06323ec160df331c7b2bec77da36c119..a756d3dc69055a0939deefb003d8648b83faf4dd 100755 GIT binary patch delta 18463 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 diff --git a/JsClients/ROUTER/keys/public_key.pem b/JsClients/ROUTER/keys/public_key.pem index 3284ec13..ef71a6fb 100644 --- a/JsClients/ROUTER/keys/public_key.pem +++ b/JsClients/ROUTER/keys/public_key.pem @@ -1,3 +1,3 @@ -----BEGIN PUBLIC KEY----- -MCowBQYDK2VwAyEAthNmFRj3BJMomJHAxiMgeSxjVjCUIWeyYhJ7lmQAEVA= +MCowBQYDK2VwAyEAOx2Lh372bKru6Ob727qg2J+53UC1VQOAo3flgNWTXY8= -----END PUBLIC KEY----- diff --git a/JsClients/ROUTER/keys/public_key_hex b/JsClients/ROUTER/keys/public_key_hex index ab6c1294..3c562076 100644 --- a/JsClients/ROUTER/keys/public_key_hex +++ b/JsClients/ROUTER/keys/public_key_hex @@ -1 +1 @@ -01b613661518f70493289891c0c62320792c635630942167b262127b9664001150 \ No newline at end of file +013b1d8b877ef66caaeee8e6fbdbbaa0d89fb9dd40b5550380a377e580d5935d8f \ No newline at end of file diff --git a/JsClients/ROUTER/keys/secret_key.pem b/JsClients/ROUTER/keys/secret_key.pem index cd75b517..ecfe7bf5 100644 --- a/JsClients/ROUTER/keys/secret_key.pem +++ b/JsClients/ROUTER/keys/secret_key.pem @@ -1,3 +1,3 @@ -----BEGIN PRIVATE KEY----- -MC4CAQAwBQYDK2VwBCIEIN8sMjQ9ZVBJcdk/Gvx/HK+pj14d/5XhrTYk8ZxrGB2J +MC4CAQAwBQYDK2VwBCIEINHgUlwQkPmO7tZIxmYxz0fUcSxJ9GpDl54v+YPm4zWy -----END PRIVATE KEY----- diff --git a/JsClients/ROUTER/src/uniswap-router-client.ts b/JsClients/ROUTER/src/uniswap-router-client.ts index 3e0badd4..d3848f2c 100644 --- a/JsClients/ROUTER/src/uniswap-router-client.ts +++ b/JsClients/ROUTER/src/uniswap-router-client.ts @@ -100,34 +100,36 @@ class UniswapRouterClient { public async setContractHash(hash: string) { const stateRootHash = await utils.getStateRootHash(this.nodeAddress); - const contractData = await utils.getContractData( - this.nodeAddress, - stateRootHash, - hash + this.nodeAddress, + stateRootHash, + hash ); - + const { contractPackageHash, namedKeys } = contractData.Contract!; this.contractHash = hash; this.contractPackageHash = contractPackageHash.replace( - "contract-package-wasm", - "" + "contract-package-wasm", + "" ); const LIST_OF_NAMED_KEYS = [ - `${this.contractName}_package_hash`, - `${this.contractName}_package_hash_wrapped`, - `${this.contractName}_contract_hash`, - `${this.contractName}_contract_hash_wrapped`, - `${this.contractName}_package_access_token`, + 'balances', + 'nonces', + 'allowances', + `${this.contractName}_package_hash`, + `${this.contractName}_package_hash_wrapped`, + `${this.contractName}_contract_hash`, + `${this.contractName}_contract_hash_wrapped`, + `${this.contractName}_package_access_token`, ]; // @ts-ignore this.namedKeys = namedKeys.reduce((acc, val) => { - if (LIST_OF_NAMED_KEYS.includes(val.name)) { - return { ...acc, [utils.camelCased(val.name)]: val.key }; - } - return acc; + if (LIST_OF_NAMED_KEYS.includes(val.name)) { + return { ...acc, [utils.camelCased(val.name)]: val.key }; + } + return acc; }, {}); - } + } // using string instead of 'number' because number is 64 bit in TS, we need 256 bits public async add_liquidity( @@ -180,6 +182,10 @@ class UniswapRouterClient { if (deployHash !== null) { this.addPendingDeploy(RouterEvents.PairCreated, deployHash); this.addPendingDeploy(RouterEvents.Erc20Transfer, deployHash); + this.addPendingDeploy(RouterEvents.Approval, deployHash); + this.addPendingDeploy(RouterEvents.Erc20Transfer, deployHash); + this.addPendingDeploy(RouterEvents.Approval, deployHash); + this.addPendingDeploy(RouterEvents.Transfer, deployHash); this.addPendingDeploy(RouterEvents.Transfer, deployHash); this.addPendingDeploy(RouterEvents.Sync, deployHash); this.addPendingDeploy(RouterEvents.Mint, deployHash); @@ -719,110 +725,110 @@ class UniswapRouterClient { public onEvent( eventNames: RouterEvents[], callback: ( - eventName: RouterEvents, - deployStatus: { - deployHash: string; - success: boolean; - error: string | null; - }, - result: any | null + eventName: RouterEvents, + deployStatus: { + deployHash: string; + success: boolean; + error: string | null; + }, + result: any | null ) => void - ): any { + ): any { if (!this.eventStreamAddress) { - throw Error("Please set eventStreamAddress before!"); + throw Error("Please set eventStreamAddress before!"); } if (this.isListening) { - throw Error( - "Only one event listener can be create at a time. Remove the previous one and start new." - ); + throw Error( + "Only one event listener can be create at a time. Remove the previous one and start new." + ); } const es = new EventStream(this.eventStreamAddress); this.isListening = true; - + es.subscribe(EventName.DeployProcessed, (value: any) => { - const deployHash = value.body.DeployProcessed.deploy_hash; - - const pendingDeploy = this.pendingDeploys.find( - (pending) => pending.deployHash === deployHash + const deployHash = value.body.DeployProcessed.deploy_hash; + + const pendingDeploy = this.pendingDeploys.find( + (pending) => pending.deployHash === deployHash + ); + + if (!pendingDeploy) { + return; + } + + if ( + !value.body.DeployProcessed.execution_result.Success && + value.body.DeployProcessed.execution_result.Failure + ) { + callback( + pendingDeploy.deployType, + { + deployHash, + error: + value.body.DeployProcessed.execution_result.Failure.error_message, + success: false, + }, + null ); - - if (!pendingDeploy) { - return; - } - - if ( - !value.body.DeployProcessed.execution_result.Success && - value.body.DeployProcessed.execution_result.Failure - ) { - callback( - pendingDeploy.deployType, - { - deployHash, - error: - value.body.DeployProcessed.execution_result.Failure.error_message, - success: false, - }, - null + } else { + const { transforms } = + value.body.DeployProcessed.execution_result.Success.effect; + + const RouterEvents = transforms.reduce((acc: any, val: any) => { + if ( + val.transform.hasOwnProperty("WriteCLValue") && + typeof val.transform.WriteCLValue.parsed === "object" && + val.transform.WriteCLValue.parsed !== null + ) { + const maybeCLValue = CLValueParsers.fromJSON( + val.transform.WriteCLValue ); - } else { - const { transforms } = - value.body.DeployProcessed.execution_result.Success.effect; - - const cep47Events = transforms.reduce((acc: any, val: any) => { - if ( - val.transform.hasOwnProperty("WriteCLValue") && - typeof val.transform.WriteCLValue.parsed === "object" && - val.transform.WriteCLValue.parsed !== null - ) { - const maybeCLValue = CLValueParsers.fromJSON( - val.transform.WriteCLValue - ); - const clValue = maybeCLValue.unwrap(); - if (clValue && clValue instanceof CLMap) { - const hash = clValue.get( - CLValueBuilder.string("contract_package_hash") - ); - const event = clValue.get(CLValueBuilder.string("event_type")); - if ( - hash && - // NOTE: Calling toLowerCase() because current JS-SDK doesn't support checksumed hashes and returns all lower case value - // Remove it after updating SDK - hash.value() === this.contractPackageHash.toLowerCase() && - event && - eventNames.includes(event.value()) - ) { - acc = [...acc, { name: event.value(), clValue }]; - } - } - } - return acc; - }, []); - - cep47Events.forEach((d: any) => - callback( - d.name, - { deployHash, error: null, success: true }, - d.clValue - ) - ); - } - - this.pendingDeploys = this.pendingDeploys.filter( - (pending) => pending.deployHash !== deployHash + const clValue = maybeCLValue.unwrap(); + if (clValue && clValue instanceof CLMap) { + const hash = clValue.get( + CLValueBuilder.string("contract_package_hash") + ); + const event = clValue.get(CLValueBuilder.string("event_type")); + if ( + hash && + // NOTE: Calling toLowerCase() because current JS-SDK doesn't support checksumed hashes and returns all lower case value + // Remove it after updating SDK + hash.value() === this.contractPackageHash.toLowerCase() && + event && + eventNames.includes(event.value()) + ) { + acc = [...acc, { name: event.value(), clValue }]; + } + } + } + return acc; + }, []); + + RouterEvents.forEach((d: any) => + callback( + d.name, + { deployHash, error: null, success: true }, + d.clValue + ) ); + } + + this.pendingDeploys = this.pendingDeploys.filter( + (pending) => pending.deployHash !== deployHash + ); }); es.start(); - + return { - stopListening: () => { - es.unsubscribe(EventName.DeployProcessed); - es.stop(); - this.isListening = false; - this.pendingDeploys = []; - }, + stopListening: () => { + es.unsubscribe(EventName.DeployProcessed); + es.stop(); + this.isListening = false; + this.pendingDeploys = []; + }, }; - } - + } + private addPendingDeploy(deployType: RouterEvents, deployHash: string) { this.pendingDeploys = [...this.pendingDeploys, { deployHash, deployType }]; } diff --git a/JsClients/ROUTER/test/installed.ts b/JsClients/ROUTER/test/installed.ts index 0fe2523f..beba8f73 100644 --- a/JsClients/ROUTER/test/installed.ts +++ b/JsClients/ROUTER/test/installed.ts @@ -328,7 +328,7 @@ const add_liquidity = async (uniswapRouter: UniswapRouterClient) => { console.log(`... add_liquidity deployHash: ${installDeployHash}\n`); await getDeploy(NODE_ADDRESS!, installDeployHash); - console.log(`add_liquidity function called successfully`); + console.log("add_liquidity function called successfully."); }; const add_liquidity_cspr = async (uniswapRouter: UniswapRouterClient) => { @@ -476,295 +476,406 @@ function splitdata(data:string) return result[0]; } -const test = async () => { - const uniswapRouter = new UniswapRouterClient( - NODE_ADDRESS!, - CHAIN_NAME!, - EVENT_STREAM_ADDRESS! - ); +const uniswapRouter = new UniswapRouterClient( + NODE_ADDRESS!, + CHAIN_NAME!, + EVENT_STREAM_ADDRESS! +); - const listener = uniswapRouter.onEvent( - [ - RouterEvents.PairCreated, - RouterEvents.Erc20Transfer, - RouterEvents.Transfer, - RouterEvents.Approval, - RouterEvents.Mint, - RouterEvents.Burn, - RouterEvents.Sync, - RouterEvents.Swap - ], - async (eventName, deploy, result) => { - if (deploy.success) { - console.log(`Successfull deploy of: ${eventName}, deployHash: ${deploy.deployHash}`); - const [timestamp,block_hash]= await getDeploy(NODE_ADDRESS!, deploy.deployHash); - console.log("... Deployhash: ", deploy.deployHash); - console.log("... Timestamp: ", timestamp); - console.log("... Block hash: ", block_hash); - console.log("result.value(): ",result.value()); - let newData = JSON.parse(JSON.stringify(result.value())); - - if(eventName =="pair_created") - { - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); - console.log(newData[5][0].data + " = " + newData[5][1].data); +// const test1 = async () => { + +// const listener = uniswapRouter.onEvent( +// [ +// RouterEvents.PairCreated, +// RouterEvents.Erc20Transfer, +// RouterEvents.Transfer, +// RouterEvents.Approval, +// RouterEvents.Mint, +// RouterEvents.Burn, +// RouterEvents.Sync, +// RouterEvents.Swap +// ], +// async (eventName, deploy, result) => { +// if (deploy.success) { +// console.log(`Successfull deploy of event : ${eventName}, deployHash: ${deploy.deployHash}`); +// // const [timestamp,block_hash]= await getDeploy(NODE_ADDRESS!, deploy.deployHash); +// // console.log("... Deployhash: ", deploy.deployHash); +// // console.log("... Timestamp: ", timestamp); +// // console.log("... Block hash: ", block_hash); +// // console.log("result.value(): ",result.value()); +// // let newData = JSON.parse(JSON.stringify(result.value())); + +// // if(eventName =="pair_created") +// // { +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); +// // console.log(newData[5][0].data + " = " + newData[5][1].data); - var allpairslength=parseInt(newData[0][1].data); - var pair=splitdata(newData[3][1].data); - var token0=splitdata(newData[4][1].data); - var token1=splitdata(newData[5][1].data); +// // var allpairslength=parseInt(newData[0][1].data); +// // var pair=splitdata(newData[3][1].data); +// // var token0=splitdata(newData[4][1].data); +// // var token1=splitdata(newData[5][1].data); - console.log("allpairslength: ", allpairslength); - console.log("pair splited: ", pair); - console.log("token0 splited: ", token0); - console.log("token1 splited: ", token1); - - request(GRAPHQL!, - `mutation handleNewPair( $token0: String!, $token1: String!, $pair: String!, $all_pairs_length: Int!, $timeStamp: String!, $blockHash: String!){ - handleNewPair( token0: $token0, token1: $token1, pair: $pair, all_pairs_length: $all_pairs_length, timeStamp: $timeStamp, blockHash: $blockHash) { - result - } +// // console.log("allpairslength: ", allpairslength); +// // console.log("pair splited: ", pair); +// // console.log("token0 splited: ", token0); +// // console.log("token1 splited: ", token1); + +// // request(GRAPHQL!, +// // `mutation handleNewPair( $token0: String!, $token1: String!, $pair: String!, $all_pairs_length: Int!, $timeStamp: String!, $blockHash: String!){ +// // handleNewPair( token0: $token0, token1: $token1, pair: $pair, all_pairs_length: $all_pairs_length, timeStamp: $timeStamp, blockHash: $blockHash) { +// // result +// // } - }`, - {token0:token0, token1:token1, pair: pair, all_pairs_length: allpairslength, timeStamp:timestamp.toString(), blockHash:block_hash}) - .then(data => console.log(data)) - .catch(error => console.error(error)); - } - else if(eventName=="approve") - { - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); - } - else if(eventName=="erc20_transfer") - { - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); +// // }`, +// // {token0:token0, token1:token1, pair: pair, all_pairs_length: allpairslength, timeStamp:timestamp.toString(), blockHash:block_hash}) +// // .then(data => console.log(data)) +// // .catch(error => console.error(error)); +// // } +// // else if(eventName=="approve") +// // { +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); +// // } +// // else if(eventName=="erc20_transfer") +// // { +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); + +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); - var flag=0; - var temp=(newData[3][1].data).split('('); - console.log("temp[0]: ",temp[0]); - if(temp[0] == "Key::Account(") - { - flag=1; - } - var from=splitdata(newData[2][1].data); - var to=splitdata(newData[3][1].data); - var value=parseInt(newData[4][1].data); - - console.log("from: ", from); - console.log("to: ", to); - console.log("value: ",value); +// // var flag=0; +// // var temp=(newData[3][1].data).split('('); +// // console.log("temp[0]: ",temp[0]); +// // if(temp[0] == "Key::Account(") +// // { +// // flag=1; +// // } +// // var from=splitdata(newData[2][1].data); +// // var to=splitdata(newData[3][1].data); +// // var value=parseInt(newData[4][1].data); + +// // console.log("from: ", from); +// // console.log("to: ", to); +// // console.log("value: ",value); - if(flag==0) - { - request(GRAPHQL!, - `mutation handleTransfer( $from: String!, $to: String!, $value: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ - handleTransfer( from: $from, to: $to, value: $value, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { - result - } +// // if(flag==0) +// // { +// // request(GRAPHQL!, +// // `mutation handleTransfer( $from: String!, $to: String!, $value: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ +// // handleTransfer( from: $from, to: $to, value: $value, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { +// // result +// // } - }`, - {from:from, to: to, value: value, pairAddress: to, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) - .then(data => console.log(data)) - .catch(error => console.error(error)); - } +// // }`, +// // {from:from, to: to, value: value, pairAddress: to, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) +// // .then(data => console.log(data)) +// // .catch(error => console.error(error)); +// // } - } - else if(eventName=="transfer") - { - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); - console.log(newData[5][0].data + " = " + newData[5][1].data); - - var from=splitdata(newData[2][1].data); - var to=splitdata(newData[4][1].data); - var value=parseInt(newData[5][1].data); - var pair=splitdata(newData[3][1].data); - - console.log("from: ", from); - console.log("to: ", to); - console.log("value: ",value); - console.log("pair: ", pair); - - request(GRAPHQL!, - `mutation handleTransfer( $from: String!, $to: String!, $value: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ - handleTransfer( from: $from, to: $to, value: $value, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { - result - } +// // } +// // else if(eventName=="transfer") +// // { +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); + +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); +// // console.log(newData[5][0].data + " = " + newData[5][1].data); + +// // var from=splitdata(newData[2][1].data); +// // var to=splitdata(newData[4][1].data); +// // var value=parseInt(newData[5][1].data); +// // var pair=splitdata(newData[3][1].data); + +// // console.log("from: ", from); +// // console.log("to: ", to); +// // console.log("value: ",value); +// // console.log("pair: ", pair); + +// // request(GRAPHQL!, +// // `mutation handleTransfer( $from: String!, $to: String!, $value: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ +// // handleTransfer( from: $from, to: $to, value: $value, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { +// // result +// // } - }`, - {from:from, to: to, value: value, pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) - .then(data => console.log(data)) - .catch(error => console.error(error)); - } - else if (eventName=="mint") - { - - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); - console.log(newData[5][0].data + " = " + newData[5][1].data); - - var amount0=parseInt(newData[0][1].data); - var amount1=parseInt(newData[1][1].data); - var pair=splitdata(newData[4][1].data); - var sender=splitdata(newData[5][1].data); - - console.log("amount0: ", amount0); - console.log("amount1: ", amount1); - console.log("pair: ",pair); - console.log("sender: ", sender); - - request(GRAPHQL!, - `mutation handleMint( $amount0: Int!, $amount1: Int!, $sender: String!,$logIndex: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ - handleMint( amount0: $amount0, amount1: $amount1, sender: $sender, logIndex: $logIndex, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { - result - } +// // }`, +// // {from:from, to: to, value: value, pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) +// // .then(data => console.log(data)) +// // .catch(error => console.error(error)); +// // } +// // else if (eventName=="mint") +// // { + +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); +// // console.log(newData[5][0].data + " = " + newData[5][1].data); + +// // var amount0=parseInt(newData[0][1].data); +// // var amount1=parseInt(newData[1][1].data); +// // var pair=splitdata(newData[4][1].data); +// // var sender=splitdata(newData[5][1].data); + +// // console.log("amount0: ", amount0); +// // console.log("amount1: ", amount1); +// // console.log("pair: ",pair); +// // console.log("sender: ", sender); + +// // request(GRAPHQL!, +// // `mutation handleMint( $amount0: Int!, $amount1: Int!, $sender: String!,$logIndex: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ +// // handleMint( amount0: $amount0, amount1: $amount1, sender: $sender, logIndex: $logIndex, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { +// // result +// // } - }`, - {amount0:amount0, amount1: amount1, sender: sender,logIndex:0, pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) - .then(data => console.log(data)) - .catch(error => console.error(error)); - } - else if (eventName=="burn") - { - - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); - console.log(newData[5][0].data + " = " + newData[5][1].data); - console.log(newData[6][0].data + " = " + newData[6][1].data); +// // }`, +// // {amount0:amount0, amount1: amount1, sender: sender,logIndex:0, pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) +// // .then(data => console.log(data)) +// // .catch(error => console.error(error)); +// // } +// // else if (eventName=="burn") +// // { + +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); +// // console.log(newData[5][0].data + " = " + newData[5][1].data); +// // console.log(newData[6][0].data + " = " + newData[6][1].data); - var amount0=parseInt(newData[0][1].data); - var amount1=parseInt(newData[1][1].data); - var pair=splitdata(newData[4][1].data); - var sender=splitdata(newData[5][1].data); - var to=splitdata(newData[6][1].data); - - console.log("amount0: ", amount0); - console.log("amount1: ", amount1); - console.log("pair: ",pair); - console.log("sender: ", sender); - console.log("to: ", to); - - request(GRAPHQL!, - `mutation handleBurn( $amount0: Int!, $amount1: Int!, $sender: String!,$logIndex: Int!,$to: String!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ - handleBurn( amount0: $amount0, amount1: $amount1, sender: $sender, logIndex: $logIndex, to:$to, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { - result - } +// // var amount0=parseInt(newData[0][1].data); +// // var amount1=parseInt(newData[1][1].data); +// // var pair=splitdata(newData[4][1].data); +// // var sender=splitdata(newData[5][1].data); +// // var to=splitdata(newData[6][1].data); + +// // console.log("amount0: ", amount0); +// // console.log("amount1: ", amount1); +// // console.log("pair: ",pair); +// // console.log("sender: ", sender); +// // console.log("to: ", to); + +// // request(GRAPHQL!, +// // `mutation handleBurn( $amount0: Int!, $amount1: Int!, $sender: String!,$logIndex: Int!,$to: String!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ +// // handleBurn( amount0: $amount0, amount1: $amount1, sender: $sender, logIndex: $logIndex, to:$to, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { +// // result +// // } - }`, - {amount0:amount0, amount1: amount1, sender: sender,logIndex:0, to:to,pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) - .then(data => console.log(data)) - .catch(error => console.error(error)); - } - else if (eventName=="sync") - { - - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); - - var reserve0=parseInt(newData[3][1].data); - var reserve1=parseInt(newData[4][1].data); - var pair=splitdata(newData[2][1].data); - - console.log("reserve0: ", reserve0); - console.log("reserve1: ", reserve1); - console.log("pair: ",pair); +// // }`, +// // {amount0:amount0, amount1: amount1, sender: sender,logIndex:0, to:to,pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) +// // .then(data => console.log(data)) +// // .catch(error => console.error(error)); +// // } +// // else if (eventName=="sync") +// // { + +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); + +// // var reserve0=parseInt(newData[3][1].data); +// // var reserve1=parseInt(newData[4][1].data); +// // var pair=splitdata(newData[2][1].data); + +// // console.log("reserve0: ", reserve0); +// // console.log("reserve1: ", reserve1); +// // console.log("pair: ",pair); - request(GRAPHQL!, - `mutation handleSync( $reserve0: Int!, $reserve1: Int!, $pairAddress: String!){ - handleSync( reserve0: $reserve0, reserve1: $reserve1, pairAddress: $pairAddress) { - result - } +// // request(GRAPHQL!, +// // `mutation handleSync( $reserve0: Int!, $reserve1: Int!, $pairAddress: String!){ +// // handleSync( reserve0: $reserve0, reserve1: $reserve1, pairAddress: $pairAddress) { +// // result +// // } - }`, - {reserve0:reserve0, reserve1: reserve1, pairAddress: pair}) - .then(data => console.log(data)) - .catch(error => console.error(error)); - } - else if (eventName=="swap") - { - - console.log(eventName+ " Event result: "); - console.log(newData[0][0].data + " = " + newData[0][1].data); - console.log(newData[1][0].data + " = " + newData[1][1].data); - console.log(newData[2][0].data + " = " + newData[2][1].data); - console.log(newData[3][0].data + " = " + newData[3][1].data); - console.log(newData[4][0].data + " = " + newData[4][1].data); - console.log(newData[5][0].data + " = " + newData[5][1].data); - console.log(newData[6][0].data + " = " + newData[6][1].data); - console.log(newData[7][0].data + " = " + newData[7][1].data); - console.log(newData[8][0].data + " = " + newData[8][1].data); - console.log(newData[9][0].data + " = " + newData[9][1].data); - - var amount0In=parseInt(newData[0][1].data); - var amount1In=parseInt(newData[1][1].data); - var amount0Out=parseInt(newData[2][1].data); - var amount1Out=parseInt(newData[3][1].data); - var from=splitdata(newData[6][1].data); - var pair=splitdata(newData[7][1].data); - var sender=splitdata(newData[8][1].data); - var to=splitdata(newData[9][1].data); - - console.log("amount0In: ", amount0In); - console.log("amount1In: ", amount1In); - console.log("amount0Out: ", amount0Out); - console.log("amount1Out: ", amount1Out); - console.log("from: ",from); - console.log("pair: ",pair); - console.log("sender: ", sender); - console.log("to: ", to); - - request(GRAPHQL!, - `mutation handleSwap( $amount0In: Int!, $amount1In: Int!, $amount0Out: Int!, $amount1Out: Int!, $to: String!,$from: String!,$sender: String!,$logIndex: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ - handleSwap( amount0In: $amount0In, amount1In: $amount1In, amount0Out: $amount0Out, amount1Out: $amount1Out, to:$to, from:$from,sender: $sender,logIndex: $logIndex, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { - result - } +// // }`, +// // {reserve0:reserve0, reserve1: reserve1, pairAddress: pair}) +// // .then(data => console.log(data)) +// // .catch(error => console.error(error)); +// // } +// // else if (eventName=="swap") +// // { + +// // console.log(eventName+ " Event result: "); +// // console.log(newData[0][0].data + " = " + newData[0][1].data); +// // console.log(newData[1][0].data + " = " + newData[1][1].data); +// // console.log(newData[2][0].data + " = " + newData[2][1].data); +// // console.log(newData[3][0].data + " = " + newData[3][1].data); +// // console.log(newData[4][0].data + " = " + newData[4][1].data); +// // console.log(newData[5][0].data + " = " + newData[5][1].data); +// // console.log(newData[6][0].data + " = " + newData[6][1].data); +// // console.log(newData[7][0].data + " = " + newData[7][1].data); +// // console.log(newData[8][0].data + " = " + newData[8][1].data); +// // console.log(newData[9][0].data + " = " + newData[9][1].data); + +// // var amount0In=parseInt(newData[0][1].data); +// // var amount1In=parseInt(newData[1][1].data); +// // var amount0Out=parseInt(newData[2][1].data); +// // var amount1Out=parseInt(newData[3][1].data); +// // var from=splitdata(newData[6][1].data); +// // var pair=splitdata(newData[7][1].data); +// // var sender=splitdata(newData[8][1].data); +// // var to=splitdata(newData[9][1].data); + +// // console.log("amount0In: ", amount0In); +// // console.log("amount1In: ", amount1In); +// // console.log("amount0Out: ", amount0Out); +// // console.log("amount1Out: ", amount1Out); +// // console.log("from: ",from); +// // console.log("pair: ",pair); +// // console.log("sender: ", sender); +// // console.log("to: ", to); + +// // request(GRAPHQL!, +// // `mutation handleSwap( $amount0In: Int!, $amount1In: Int!, $amount0Out: Int!, $amount1Out: Int!, $to: String!,$from: String!,$sender: String!,$logIndex: Int!, $pairAddress: String!, $deployHash: String!, $timeStamp: String!, $blockHash: String!){ +// // handleSwap( amount0In: $amount0In, amount1In: $amount1In, amount0Out: $amount0Out, amount1Out: $amount1Out, to:$to, from:$from,sender: $sender,logIndex: $logIndex, pairAddress: $pairAddress, deployHash: $deployHash, timeStamp: $timeStamp, blockHash: $blockHash) { +// // result +// // } - }`, - {amount0In:amount0In, amount1In: amount1In,amount0Out:amount0Out, amount1Out: amount1Out,to:to,from:from, sender: sender,logIndex:0,pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) - .then(data => console.log(data)) - .catch(error => console.error(error)); - } - } else { - console.log( - `Failed deploy of ${eventName}, deployHash: ${deploy.deployHash}` - ); - console.log(`Error: ${deploy.error}`); - } +// // }`, +// // {amount0In:amount0In, amount1In: amount1In,amount0Out:amount0Out, amount1Out: amount1Out,to:to,from:from, sender: sender,logIndex:0,pairAddress: pair, deployHash:deploy.deployHash,timeStamp:timestamp.toString(), blockHash:block_hash}) +// // .then(data => console.log(data)) +// // .catch(error => console.error(error)); +// // } +// } else { +// console.log( +// `Failed deploy of event ${eventName}, deployHash: ${deploy.deployHash}` +// ); +// console.log(`Error: ${deploy.error}`); +// } +// } +// ); +// console.log("listener: ",listener); + +// await sleep(5 * 1000); + +// let accountInfo = await utils.getAccountInfo(NODE_ADDRESS!, KEYS.publicKey); + +// console.log(`... Account Info: `); +// console.log(JSON.stringify(accountInfo, null, 2)); + +// const contractHash = await utils.getAccountNamedKeyValue( +// accountInfo, +// "UniSwapRouter_contract_hash" +// ); + +// console.log(`... Contract Hash: ${contractHash}`); + +// //await uniswapRouter.setContractHash(contractHash.slice(5)); +// await uniswapRouter.setContractHash(CONTRACT_HASH!); + +// // Test add_liquidity +// //await add_liquidity(uniswapRouter); +// // const addLiquidityDeployHash = await uniswapRouter.add_liquidity( +// // KEYS, +// // TOKEN_A!, +// // TOKEN_B!, +// // AMOUNT_A_DESIRED!, +// // AMOUNT_B_DESIRED!, +// // AMOUNT_A_MIN!, +// // AMOUNT_B_MIN!, +// // TO!, +// // DEADLINE!, +// // PAIR_CONTRACT!, +// // ADD_LIQUIDITY_PAYMENT_AMOUNT! +// // ); +// // console.log("... Add Liquidity deploy hash: ", addLiquidityDeployHash); + +// // await getDeploy(NODE_ADDRESS!, addLiquidityDeployHash); +// // console.log("... Add Liquidity successfully called."); + +// // Test add_liquidity_cspr +// //add_liquidity_cspr(uniswapRouter); + +// // Test remove_liquidity +// // remove_liquidity(uniswapRouter); + +// // Test remove_liquidity_cspr +// //remove_liquidity_cspr(uniswapRouter); + +// // Test remove_liquidity_with_permit +// //remove_liquidity_with_permit(uniswapRouter); + +// // Test remove_liquidity_cspr_with_permit +// //remove_liquidity_cspr_with_permit(uniswapRouter); + +// // Test swap_exact_tokens_for_tokens +// //swap_exact_tokens_for_tokens(uniswapRouter); + +// // Test swap_tokens_for_exact_tokens +// //swap_tokens_for_exact_tokens(uniswapRouter); + +// // Test swap_exact_cspr_for_tokens +// //swap_exact_cspr_for_tokens(uniswapRouter); + +// // Test swap_tokens_for_exact_cspr +// //swap_tokens_for_exact_cspr(uniswapRouter); + +// // Test swap_exact_tokens_for_cspr +// //swap_exact_tokens_for_cspr(uniswapRouter); + +// //Test swap_cspr_for_exact_tokens +// // swap_cspr_for_exact_tokens(uniswapRouter); + +// // let register = await uniswapRouter.registerWebHook( +// // "http://localhost:5000/", +// // "http://localhost:5000/mockserver" +// // ); +// // console.log(`... Register Endpoint: ${register}`); + +// // let createPair = await uniswapRouter.CreatePairApi( +// // "c9d0268ecea8c57ed456bf56e4fba4bf285a4588fd817832230b8fd86b71c30f", +// // "fbfeda8b97f056f526f20c2fc2b486d9bdbfb3e46b9a164527e57c0c86e68612" +// // ); +// // console.log(`... Create Pair Endpoint: ${createPair}`); +// }; + +const test = async () => { + + const listener =uniswapRouter.onEvent( + [ + RouterEvents.PairCreated, + RouterEvents.Erc20Transfer, + RouterEvents.Transfer, + RouterEvents.Approval, + RouterEvents.Mint, + RouterEvents.Burn, + RouterEvents.Sync, + RouterEvents.Swap + ], + async (eventName, deploy, result) => { + if (deploy.success) { + console.log(`Successfull deploy of: ${eventName}, deployHash: ${deploy.deployHash}`); + + } else { + console.log(`Failed deploy of ${eventName}, deployHash: ${deploy.deployHash}`); + console.log(`Error: ${deploy.error}`); } + } ); + console.log("listener: ",listener); + await sleep(5 * 1000); let accountInfo = await utils.getAccountInfo(NODE_ADDRESS!, KEYS.publicKey); @@ -783,7 +894,24 @@ const test = async () => { await uniswapRouter.setContractHash(CONTRACT_HASH!); // Test add_liquidity - add_liquidity(uniswapRouter); + //await add_liquidity(uniswapRouter); + const addLiquidityDeployHash = await uniswapRouter.add_liquidity( + KEYS, + TOKEN_A!, + TOKEN_B!, + AMOUNT_A_DESIRED!, + AMOUNT_B_DESIRED!, + AMOUNT_A_MIN!, + AMOUNT_B_MIN!, + TO!, + DEADLINE!, + PAIR_CONTRACT!, + ADD_LIQUIDITY_PAYMENT_AMOUNT! + ); + console.log("... Add Liquidity deploy hash: ", addLiquidityDeployHash); + + await getDeploy(NODE_ADDRESS!, addLiquidityDeployHash); + console.log("... Add Liquidity successfully called."); // Test add_liquidity_cspr //add_liquidity_cspr(uniswapRouter); @@ -829,6 +957,8 @@ const test = async () => { // "fbfeda8b97f056f526f20c2fc2b486d9bdbfb3e46b9a164527e57c0c86e68612" // ); // console.log(`... Create Pair Endpoint: ${createPair}`); + }; -//test(); +test(); +//test1(); diff --git a/JsClients/ROUTER/wasm/uniswap-v2-router.wasm b/JsClients/ROUTER/wasm/uniswap-v2-router.wasm index e71bd0b10f9e26e90f26b55f08e8568baee10b0d..eb85f5e324be7b0a8ac6694c6326d72e55d5a958 100644 GIT binary patch delta 145 zcmeCUEYWdUVngsMtp!Zx%nS-#ju#lR92K&Fj0H?tjuKg#%nS%|39$I&+EwC=3np`} ymD{{|6(5rxs!k;qTzZvQK{AuyuaRV2(9F5EopUWC5HkTWGZ3?E=UmHLUjqQGWGQ?A delta 145 zcmeCUEYWdUVngsMtp+A@W(EZ=#|sQujtW^oMgvopqePY_GXp|g0xUkcc9l3|!(`62 xa+^1=;$zZ7)v3gSORo|uNM`c;HIj@C&75o7IoC1*F%u9o12M~X&b6%dH2_}ZD0~0_