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}`);