| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import 'dotenv/config';
- // import axios from "axios";
- import { HttpsProxyAgent } from "https-proxy-agent";
- import { BuilderConfig } from "@polymarket/builder-signing-sdk";
- import { RelayClient } from "@polymarket/builder-relayer-client";
- import { createWalletClient, http } from "viem";
- import { privateKeyToAccount } from "viem/accounts";
- import { polygon } from "viem/chains";
- const NODE_HTTP_PROXY = process.env.NODE_HTTP_PROXY;
- const proxyAgent = NODE_HTTP_PROXY ? new HttpsProxyAgent(NODE_HTTP_PROXY) : undefined;
- // if (NODE_HTTP_PROXY) {
- // axios.defaults.proxy = false;
- // axios.defaults.httpAgent = proxyAgent;
- // axios.defaults.httpsAgent = proxyAgent;
- // }
- const getRequiredEnv = (key) => {
- const value = process.env[key];
- if (!value) {
- throw new Error(`${key} is required`);
- }
- return value;
- }
- const normalizePrivateKey = (privateKey) => {
- return privateKey.startsWith("0x") ? privateKey : `0x${privateKey}`;
- }
- const relayerUrl = process.env.POLYMARKET_RELAYER_URL || "https://relayer-v2.polymarket.com";
- const account = privateKeyToAccount(normalizePrivateKey(getRequiredEnv("POLYMARKET_PRIVATE_KEY")));
- const signer = createWalletClient({ account, chain: polygon, transport: http() });
- const builderConfig = new BuilderConfig({
- localBuilderCreds: {
- key: getRequiredEnv("POLYMARKET_BUILDER_API_KEY"),
- secret: getRequiredEnv("POLYMARKET_BUILDER_SECRET"),
- passphrase: getRequiredEnv("POLYMARKET_BUILDER_PASS_PHRASE"),
- },
- });
- const relayer = new RelayClient(relayerUrl, 137, signer, builderConfig);
- if (proxyAgent) {
- relayer.httpClient.instance.defaults.proxy = false;
- relayer.httpClient.instance.defaults.httpAgent = proxyAgent;
- relayer.httpClient.instance.defaults.httpsAgent = proxyAgent;
- }
- const result = {
- address: await relayer.deriveDepositWalletAddress(),
- owner: account.address,
- relayerUrl,
- };
- const response = await relayer.deployDepositWallet();
- const confirmed = await response.wait();
- console.log(confirmed);
- console.log(JSON.stringify(result, null, 2));
- console.log(`POLYMARKET_DEPOSIT_WALLET_ADDRESS=${result.address}`);
|