Created
May 19, 2022 14:45
-
-
Save critesjosh/1e11e2ea5e67ad1dce2b1701d1a2c1ae to your computer and use it in GitHub Desktop.
[WIP] broken setup script for the aztec sdk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { | |
| AccountId, | |
| AztecSdk, | |
| createAztecSdk, | |
| WalletProvider, | |
| EthersAdapter, | |
| EthAddress, | |
| EthereumProvider, | |
| SchnorrSigner, | |
| TxSettlementTime, | |
| Web3Signer, | |
| } from "@aztec/sdk"; | |
| import { JsonRpcProvider } from "@ethersproject/providers"; | |
| import { depositTokensToAztec, depositEthToAztec } from "./shield"; | |
| import { sendETH } from "./transfer"; | |
| import { ethers, Wallet, providers } from "ethers"; | |
| require("dotenv").config(); | |
| const createDebug = require("debug"); | |
| const debug = createDebug("bb:demo"); | |
| const ETHEREUM_ADDRESS = EthAddress.fromString( | |
| ethers.utils.computeAddress( | |
| Buffer.from(process.env.ETHEREUM_PRIVATE_KEY, "hex") | |
| ) | |
| ); | |
| const AZTEC_PRIVATE_KEY = Buffer.from(process.env.AZTEC_PRIVATE_KEY, "hex"); | |
| const ethersProvider = new JsonRpcProvider(process.env.MAINNET_FORK_RPC); | |
| const ethereumProvider: EthereumProvider = new EthersAdapter(ethersProvider); | |
| const walletProvider = new WalletProvider(ethereumProvider); | |
| walletProvider.addAccount(Buffer.from(process.env.ETHEREUM_PRIVATE_KEY, "hex")); | |
| let sdk: AztecSdk; | |
| const main = async () => { | |
| sdk = await createAztecSdk(walletProvider, { | |
| serverUrl: process.env.MAINNET_FORK_ROLLUP, | |
| pollInterval: 1000, | |
| memoryDb: true, | |
| minConfirmation: 1, // ETH block confirmations | |
| }); | |
| await sdk.run(); | |
| await sdk.awaitSynchronised(); | |
| const { privateKey } = await createSigningKeys(ethereumProvider, sdk); | |
| const user = await sdk.addUser(privateKey); | |
| const signer: SchnorrSigner = await sdk.createSchnorrSigner(privateKey); | |
| const depositTokenQuantity: bigint = ethers.utils | |
| .parseEther("0.01") | |
| .toBigInt(); | |
| const depositSettlementTime = TxSettlementTime.NEXT_ROLLUP; | |
| await depositEthToAztec( | |
| ETHEREUM_ADDRESS, | |
| user.id, | |
| depositTokenQuantity, | |
| depositSettlementTime, | |
| sdk, | |
| signer | |
| ); | |
| }; | |
| main(); | |
| const createSigningKeys = async ( | |
| provider: WalletProvider, | |
| sdk: AztecSdk | |
| ) => { | |
| const message = `Sign this message to generate your Aztec Spending Key. This key lets the application spend your funds on Aztec.\n\nIMPORTANT: Only sign this message if you trust the application.`; | |
| const ethAddress = provider.getAccount(0); | |
| // const signer = new Web3Signer(provider); | |
| // const privateKey = ( | |
| // await signer.signPersonalMessage(message, ethAddress) | |
| // ).slice(0, 32); | |
| const privateKey = ( | |
| await provider.request({ | |
| method: "personal_sign", | |
| params: [message, ethAddress], | |
| }) | |
| ).slice(0, 32); | |
| const publicKey = await sdk.derivePublicKey(privateKey); | |
| return { privateKey, publicKey }; | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment