-
Notifications
You must be signed in to change notification settings - Fork 22
/
transfer.html
41 lines (41 loc) · 2.25 KB
/
transfer.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<html><body><head>
<script type="text/javascript" src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/zksync/dist/main.js"></script>
</head>
<h2>ZKSync (Rinkeby)</h2>
<pre id="log" style="width:100%;height:200px"></pre>
<script type="text/javascript">
function log(logstr) {
document.getElementById("log").innerHTML +=logstr+"\n";
}
async function f() {
await zksync.crypto.loadZkSyncCrypto();
const provider = new ethers.providers.Web3Provider(window.ethereum)
await window.ethereum.enable();
let accounts = await provider.listAccounts()
const signer = provider.getSigner()
const bcnetwork = await provider.getNetwork();
if (bcnetwork.chainId !=4) {log("Select Rinkeby");return; }
const zksProvider = await zksync.getDefaultProvider("rinkeby");
const SyncWallet = await zksync.Wallet.fromEthSigner(signer, zksProvider); // login (by signing a message)
if (!await SyncWallet.isSigningKeySet()) {
if ((await SyncWallet.getAccountId()) == undefined) { log('Unknown account');return; }
const changePubkey = await SyncWallet.setSigningKey({ feeToken: 'ETH' }); // requires fee
const receipt = await changePubkey.awaitReceipt(); // Wait till transaction is committed
}
log(`L2 ETH balance: ${ethers.utils.formatEther(await SyncWallet.getBalance("ETH" ))}`);
var transfer={
to: "0x6c728716a68499d486cDA1701AB13C7b57f30aA0",
token: "0x0000000000000000000000000000000000000000", //ETH
amount: ethers.utils.parseEther("0.001"),
fee: ethers.utils.parseEther("0.001")
}
log(`Sending ${ethers.utils.formatEther(transfer.amount)} ETH<br>from: ${accounts[0]}<br>to: ${transfer.to}`)
const transferTransaction = await SyncWallet.syncTransfer(transfer)
const transactionReceipt = await transferTransaction.awaitReceipt();
log(`L2 ETH balance: ${ethers.utils.formatEther(await SyncWallet.getBalance("ETH" ))}`);
}
f(); // https://rinkeby.zksync.io/account https://rinkeby.zkscan.io/explorer
</script>
</body>
</html>