@polymarket/relayer-client 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
1
  export * from "./proxy";
2
2
  export * from "./safe";
3
3
  export * from "./create";
4
+ export * from "./utils";
@@ -4,3 +4,4 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./proxy"), exports);
5
5
  tslib_1.__exportStar(require("./safe"), exports);
6
6
  tslib_1.__exportStar(require("./create"), exports);
7
+ tslib_1.__exportStar(require("./utils"), exports);
@@ -60,7 +60,6 @@ function buildProxyTransactionRequest(signer, args) {
60
60
  data: args.data,
61
61
  });
62
62
  const gasLimitStr = gasLimit.toString();
63
- console.log(`GasLimit: ${gasLimitStr}`);
64
63
  const sigParams = {
65
64
  gasPrice: args.gasPrice,
66
65
  gasLimit: gasLimitStr,
@@ -1,4 +1,5 @@
1
1
  import { Wallet } from "@ethersproject/wallet";
2
2
  import { JsonRpcSigner } from "@ethersproject/providers";
3
- import { SafeTransactionArgs, TransactionRequest } from "../types";
3
+ import { SafeTransaction, SafeTransactionArgs, TransactionRequest } from "../types";
4
+ export declare function aggregateTransaction(txns: SafeTransaction[]): SafeTransaction;
4
5
  export declare function buildSafeTransactionRequest(signer: Wallet | JsonRpcSigner, args: SafeTransactionArgs): Promise<TransactionRequest>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildSafeTransactionRequest = void 0;
3
+ exports.buildSafeTransactionRequest = exports.aggregateTransaction = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const types_1 = require("../types");
6
6
  const utils_1 = require("./utils");
@@ -82,6 +82,7 @@ function aggregateTransaction(txns) {
82
82
  }
83
83
  return transaction;
84
84
  }
85
+ exports.aggregateTransaction = aggregateTransaction;
85
86
  function buildSafeTransactionRequest(signer, args) {
86
87
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
88
  const transaction = aggregateTransaction(args.transactions);
package/dist/client.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Wallet } from "@ethersproject/wallet";
2
- import { JsonRpcSigner } from "@ethersproject/providers";
2
+ import { JsonRpcSigner, TransactionResponse } from "@ethersproject/providers";
3
3
  import { HttpClient } from "./http-helpers";
4
- import { AddressPayload, AuthArgs, NoncePayload, ProxyTransaction, RelayerTransaction, RelayerTransactionResponse, RelayPayload, SafeTransaction } from "./types";
4
+ import { AddressPayload, AuthArgs, ManualOverrides, NoncePayload, ProxyTransaction, RelayerTransaction, RelayerTransactionResponse, RelayPayload, SafeTransaction } from "./types";
5
5
  import { AuthHandler } from "./auth";
6
6
  export declare class RelayClient {
7
7
  readonly relayerUrl: string;
@@ -17,6 +17,7 @@ export declare class RelayClient {
17
17
  getTransactions(): Promise<RelayerTransaction[]>;
18
18
  executeProxyTransactions(txns: ProxyTransaction[]): Promise<RelayerTransactionResponse>;
19
19
  executeSafeTransactions(txns: SafeTransaction[]): Promise<RelayerTransactionResponse>;
20
+ executeManualTransactions(txns: SafeTransaction[], overrides?: ManualOverrides): Promise<TransactionResponse>;
20
21
  deploySafe(): Promise<RelayerTransactionResponse>;
21
22
  pollUntilState(transactionId: string, states: string[], maxPolls?: number): Promise<RelayerTransaction | undefined>;
22
23
  private submitTransaction;
package/dist/client.js CHANGED
@@ -9,9 +9,9 @@ const types_1 = require("./types");
9
9
  const endpoints_1 = require("./endpoints");
10
10
  const builder_1 = require("./builder");
11
11
  const encode_1 = require("./encode");
12
- const builder_2 = require("./builder");
13
12
  const auth_1 = require("./auth");
14
13
  const utils_1 = require("./utils");
14
+ const manual_1 = require("./manual");
15
15
  class RelayClient {
16
16
  constructor(relayerUrl, chainId, signer, authArgs) {
17
17
  this.relayerUrl = relayerUrl.endsWith("/") ? relayerUrl.slice(0, -1) : relayerUrl;
@@ -92,6 +92,17 @@ class RelayClient {
92
92
  return this.submitTransaction(request);
93
93
  });
94
94
  }
95
+ executeManualTransactions(txns, overrides) {
96
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
97
+ if (overrides == undefined) {
98
+ overrides = {};
99
+ }
100
+ if (this.signer == undefined) {
101
+ throw new Error("missing signer");
102
+ }
103
+ return manual_1.executeManualTransactions(this.signer, txns, overrides);
104
+ });
105
+ }
95
106
  deploySafe() {
96
107
  var _a;
97
108
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -107,7 +118,7 @@ class RelayClient {
107
118
  payment: "0",
108
119
  paymentReceiver: ethers_1.ethers.constants.AddressZero,
109
120
  };
110
- const request = yield builder_2.buildSafeCreateTransactionRequest(this.signer, args);
121
+ const request = yield builder_1.buildSafeCreateTransactionRequest(this.signer, args);
111
122
  console.log(`Client side deploy request creation took: ${(Date.now() - start) / 1000} seconds`);
112
123
  return this.submitTransaction(request);
113
124
  });
@@ -1 +1,3 @@
1
1
  export * from "./proxy";
2
+ export * from "./safe";
3
+ export * from "./utils";
@@ -2,3 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./proxy"), exports);
5
+ tslib_1.__exportStar(require("./safe"), exports);
6
+ tslib_1.__exportStar(require("./utils"), exports);
@@ -0,0 +1,5 @@
1
+ import { JsonRpcSigner } from "@ethersproject/providers";
2
+ import { TransactionResponse } from "@ethersproject/abstract-provider";
3
+ import { Wallet } from "ethers";
4
+ import { SafeTransaction, ManualOverrides } from "../types";
5
+ export declare function executeManualTransactions(signer: Wallet | JsonRpcSigner, transactions: SafeTransaction[], overrides: ManualOverrides): Promise<TransactionResponse>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeManualTransactions = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ethers_1 = require("ethers");
6
+ const builder_1 = require("../builder");
7
+ const encode_1 = require("../encode");
8
+ const abis_1 = require("../abis");
9
+ function executeManualTransactions(signer, transactions, overrides) {
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ const from = yield signer.getAddress();
12
+ const aggTxn = builder_1.aggregateTransaction(transactions);
13
+ const sig = encode_1.abiEncodePacked({ type: "uint256", value: from }, // r
14
+ { type: "uint256", value: 0 }, // s
15
+ { type: "uint8", value: 1 });
16
+ const safeAddress = builder_1.deriveSafe(from);
17
+ const safeContract = new ethers_1.ethers.Contract(safeAddress, abis_1.safeAbi, signer);
18
+ if (overrides.gasLimit == undefined) {
19
+ const gasLimit = yield safeContract.estimateGas.execTransaction(aggTxn.to, aggTxn.value, aggTxn.data, aggTxn.operation, 0, 0, 0, ethers_1.ethers.constants.AddressZero, ethers_1.ethers.constants.AddressZero, sig);
20
+ console.log(`Estimated gas Limit: ${gasLimit}`);
21
+ overrides.gasLimit = gasLimit;
22
+ }
23
+ return safeContract.execTransaction(aggTxn.to, aggTxn.value, aggTxn.data, aggTxn.operation, 0, 0, 0, ethers_1.ethers.constants.AddressZero, ethers_1.ethers.constants.AddressZero, sig, overrides);
24
+ });
25
+ }
26
+ exports.executeManualTransactions = executeManualTransactions;
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { BigNumberish } from "ethers";
1
2
  export declare enum TransactionType {
2
3
  PROXY = "PROXY",
3
4
  SAFE = "SAFE",
@@ -116,3 +117,7 @@ export interface RelayerTransaction {
116
117
  createdAt: Date;
117
118
  updatedAt: Date;
118
119
  }
120
+ export interface ManualOverrides {
121
+ gasLimit?: BigNumberish;
122
+ gasPrice?: BigNumberish;
123
+ }
package/dist/types.js CHANGED
@@ -28,3 +28,4 @@ var RelayerTransactionState;
28
28
  RelayerTransactionState["STATE_CONFIRMED"] = "STATE_CONFIRMED";
29
29
  RelayerTransactionState["STATE_FAILED"] = "STATE_FAILED";
30
30
  })(RelayerTransactionState = exports.RelayerTransactionState || (exports.RelayerTransactionState = {}));
31
+ ;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@polymarket/relayer-client",
3
3
  "description": "Client for Polymarket relayers",
4
- "version": "1.0.3",
4
+ "version": "1.0.4",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [