@reyaxyz/common 0.347.1 → 0.348.0

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.
package/README.md CHANGED
@@ -6,5 +6,5 @@
6
6
 
7
7
  | Statements | Branches | Functions | Lines |
8
8
  | --------------------------- | ----------------------- | ------------------------- | ----------------- |
9
- | ![Statements](https://img.shields.io/badge/statements-34.24%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-32.69%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-20%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-35.58%25-red.svg?style=flat) |
9
+ | ![Statements](https://img.shields.io/badge/statements-35.67%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-32.69%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-22.02%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-37.06%25-red.svg?style=flat) |
10
10
 
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.signManagePermissionBySig = exports.signRevokePermission = exports.signVote = exports.signGrantPermission = exports.signCancelConditionalOrder = exports.isConditionalOrderSignatureValid = exports.signOrdersGatewayOrder = exports.createOrdersGatewayOrderNonce = exports.getReyaDomain = exports.signPoolRemoveLiquidity = exports.signCoreCommands = exports.convertEthersSignatureToEIP712Signature = void 0;
39
+ exports.signManagePermissionBySig = exports.signRevokePermission = exports.signVote = exports.signGrantPermission = exports.signCancelConditionalOrder = exports.signMassCancel = exports.signOrderCancel = exports.isConditionalOrderSignatureValid = exports.signOrdersGatewayOrder = exports.createOrdersGatewayOrderNonce = exports.getReyaDomain = exports.signPoolRemoveLiquidity = exports.signCoreCommands = exports.convertEthersSignatureToEIP712Signature = void 0;
40
40
  var ethers_1 = require("ethers");
41
41
  var contractAddresses_1 = require("./contractAddresses");
42
42
  var types_1 = require("../types");
@@ -253,6 +253,86 @@ function isConditionalOrderSignatureValid(signerAddress, signature, reyaChainId,
253
253
  return recoveredAddress.toLowerCase() === signerAddress.toLowerCase();
254
254
  }
255
255
  exports.isConditionalOrderSignatureValid = isConditionalOrderSignatureValid;
256
+ var orderCancelTypes = {
257
+ OrderCancel: [
258
+ { name: 'verifyingChainId', type: 'uint64' },
259
+ { name: 'deadline', type: 'uint64' },
260
+ { name: 'cancel', type: 'OrderCancelDetails' },
261
+ ],
262
+ OrderCancelDetails: [
263
+ { name: 'accountId', type: 'uint64' },
264
+ { name: 'marketId', type: 'uint64' },
265
+ { name: 'orderId', type: 'uint64' },
266
+ { name: 'clOrdId', type: 'uint64' },
267
+ { name: 'nonce', type: 'uint64' },
268
+ ],
269
+ };
270
+ var massCancelTypes = {
271
+ MassCancel: [
272
+ { name: 'verifyingChainId', type: 'uint64' },
273
+ { name: 'deadline', type: 'uint64' },
274
+ { name: 'massCancel', type: 'MassCancelDetails' },
275
+ ],
276
+ MassCancelDetails: [
277
+ { name: 'accountId', type: 'uint64' },
278
+ { name: 'marketId', type: 'uint64' },
279
+ { name: 'nonce', type: 'uint64' },
280
+ ],
281
+ };
282
+ function signOrderCancel(signer, reyaChainId, accountId, marketId, orderId, clOrdId, nonce, deadline) {
283
+ return __awaiter(this, void 0, void 0, function () {
284
+ var signature;
285
+ return __generator(this, function (_a) {
286
+ switch (_a.label) {
287
+ case 0: return [4 /*yield*/, signReyaTypedData(signer, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY), orderCancelTypes, {
288
+ verifyingChainId: reyaChainId,
289
+ deadline: deadline,
290
+ cancel: {
291
+ accountId: accountId,
292
+ marketId: marketId,
293
+ orderId: orderId,
294
+ clOrdId: clOrdId,
295
+ nonce: nonce,
296
+ },
297
+ })];
298
+ case 1:
299
+ signature = _a.sent();
300
+ return [2 /*return*/, {
301
+ serializedSignature: signature.serialized,
302
+ nonce: nonce,
303
+ signature: convertEthersSignatureToEIP712Signature(signature, deadline),
304
+ }];
305
+ }
306
+ });
307
+ });
308
+ }
309
+ exports.signOrderCancel = signOrderCancel;
310
+ function signMassCancel(signer, reyaChainId, accountId, marketId, nonce, deadline) {
311
+ return __awaiter(this, void 0, void 0, function () {
312
+ var signature;
313
+ return __generator(this, function (_a) {
314
+ switch (_a.label) {
315
+ case 0: return [4 /*yield*/, signReyaTypedData(signer, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY), massCancelTypes, {
316
+ verifyingChainId: reyaChainId,
317
+ deadline: deadline,
318
+ massCancel: {
319
+ accountId: accountId,
320
+ marketId: marketId,
321
+ nonce: nonce,
322
+ },
323
+ })];
324
+ case 1:
325
+ signature = _a.sent();
326
+ return [2 /*return*/, {
327
+ serializedSignature: signature.serialized,
328
+ nonce: nonce,
329
+ signature: convertEthersSignatureToEIP712Signature(signature, deadline),
330
+ }];
331
+ }
332
+ });
333
+ });
334
+ }
335
+ exports.signMassCancel = signMassCancel;
256
336
  function signCancelConditionalOrder(signer, orderId) {
257
337
  return __awaiter(this, void 0, void 0, function () {
258
338
  var message;
@@ -1 +1 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"/","sources":["transactions/sign.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n JsonRpcSigner,\n Signature,\n Signer,\n TypedDataField,\n verifyTypedData,\n} from 'ethers';\nimport { ContractType, getAddress } from './contractAddresses';\nimport { Command } from './action';\nimport {\n Address,\n ConditionalOrderStatus,\n ConditionalOrderType,\n OrdersGatewayOrderType,\n ReyaChainId,\n} from '../types';\n\nexport type EIP712Signature = {\n v: number;\n r: string;\n s: string;\n deadline: number;\n};\n\nexport type CoreCommandsEIP712SignatureAndPayload = {\n signature: EIP712Signature;\n payload: {\n verifyingContract: string;\n types: Record<string, Array<TypedDataField>>;\n value: {\n verifyingChainId: number;\n caller: Address;\n accountId: number;\n commands: Command[];\n nonce: number;\n deadline: number;\n extraSignatureData: string;\n };\n };\n};\n\nexport function convertEthersSignatureToEIP712Signature(\n signature: Signature,\n deadline: number,\n): EIP712Signature {\n return {\n v: signature.v,\n r: signature.r,\n s: signature.s,\n deadline,\n };\n}\n\nexport async function signCoreCommands(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n accountId: number,\n commands: Command[],\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<CoreCommandsEIP712SignatureAndPayload> {\n const types = {\n ExecuteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'accountId', type: 'uint128' },\n { name: 'commands', type: 'Command[]' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n Command: [\n { name: 'commandType', type: 'uint8' },\n { name: 'inputs', type: 'bytes' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n ],\n };\n\n const value = {\n verifyingChainId: reyaChainId,\n caller: caller,\n accountId: accountId,\n commands: commands,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n };\n\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n types,\n value,\n );\n\n const eip712Signature = convertEthersSignatureToEIP712Signature(\n signature,\n deadline,\n );\n\n return {\n signature: eip712Signature,\n payload: {\n verifyingContract: getAddress(reyaChainId, ContractType.CORE_PROXY),\n types: types,\n value: value,\n },\n };\n}\n\nexport async function signPoolRemoveLiquidity(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n owner: Address,\n poolId: number,\n sharesAmount: bigint,\n minOut: bigint,\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_POOL_PROXY),\n {\n RemoveLiquidityBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'owner', type: 'address' },\n { name: 'poolId', type: 'uint128' },\n { name: 'sharesAmount', type: 'uint256' },\n { name: 'minOut', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n caller: caller,\n owner: owner,\n poolId: poolId,\n sharesAmount: sharesAmount,\n minOut: minOut,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nasync function signReyaTypedData(\n signer: Signer | JsonRpcSigner,\n verifyingContract: string,\n types: Record<string, Array<TypedDataField>>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: Record<string, any>,\n): Promise<Signature> {\n const domain = getReyaDomain(verifyingContract);\n\n const signatureString = await signer.signTypedData(domain, types, value);\n\n return Signature.from(signatureString);\n}\n\nexport function getReyaDomain(verifyingContract: string) {\n return {\n name: 'Reya',\n version: '1',\n verifyingContract: verifyingContract,\n };\n}\n\nconst conditionalOrderTypes = {\n ConditionalOrder: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'order', type: 'ConditionalOrderDetails' },\n ],\n ConditionalOrderDetails: [\n { name: 'accountId', type: 'uint128' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n { name: 'counterpartyAccountIds', type: 'uint128[]' },\n { name: 'orderType', type: 'uint8' },\n { name: 'inputs', type: 'bytes' },\n { name: 'signer', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n ],\n};\n\nexport function createOrdersGatewayOrderNonce(\n accountId: number,\n marketId: number,\n timestampMs: number,\n): bigint {\n // Validate the input ranges\n if (marketId < 0 || marketId >= 2 ** 32)\n throw new Error('marketId is out of range');\n if (accountId < 0 || accountId >= 2 ** 128)\n throw new Error('accountId is out of range');\n if (timestampMs < 0 || timestampMs >= 2 ** 64)\n throw new Error('timestamp is out of range');\n\n const hashUint256 =\n (BigInt(accountId) << BigInt(98)) |\n (BigInt(timestampMs) << BigInt(32)) |\n BigInt(marketId);\n\n return hashUint256;\n}\n\ntype SignOrdersGatewayOrderOutput = {\n serializedSignature: string;\n nonce: bigint;\n signature: EIP712Signature;\n};\n\nexport async function signOrdersGatewayOrder(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n exchangeId: number,\n counterpartyAccountIds: number[],\n orderType: ConditionalOrderType | OrdersGatewayOrderType,\n inputs: string,\n deadline: number,\n creationTimestampMs: number,\n customNonce?: bigint,\n): Promise<SignOrdersGatewayOrderOutput> {\n const nonce =\n customNonce ??\n createOrdersGatewayOrderNonce(accountId, marketId, creationTimestampMs);\n\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n conditionalOrderTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n order: {\n accountId: accountId,\n marketId: marketId,\n exchangeId: exchangeId,\n counterpartyAccountIds: counterpartyAccountIds,\n orderType: orderType,\n inputs: inputs,\n signer: await signer.getAddress(),\n nonce: nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n nonce,\n signature: convertEthersSignatureToEIP712Signature(signature, deadline),\n };\n}\n\nexport function isConditionalOrderSignatureValid(\n signerAddress: string,\n signature: string,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n exchangeId: number,\n counterpartyAccountIds: number[],\n orderType: number,\n inputs: string,\n nonce: bigint,\n deadline: number,\n): boolean {\n // Encode the data for recovering the address\n const domain = getReyaDomain(\n getAddress(reyaChainId, ContractType.CONDITIONAL_ORDERS_PROXY),\n );\n\n const value = {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n order: {\n accountId: accountId,\n marketId: marketId,\n exchangeId: exchangeId,\n counterpartyAccountIds: counterpartyAccountIds,\n orderType: orderType,\n inputs: inputs,\n signer: signerAddress,\n nonce: nonce,\n },\n };\n\n // Recover the address\n const recoveredAddress = verifyTypedData(\n domain,\n conditionalOrderTypes,\n value,\n signature,\n );\n\n return recoveredAddress.toLowerCase() === signerAddress.toLowerCase();\n}\n\nexport async function signCancelConditionalOrder(\n signer: Signer | JsonRpcSigner,\n orderId: string,\n): Promise<string> {\n const message = {\n orderId: orderId,\n status: ConditionalOrderStatus.CANCELLED,\n actionType: 'changeStatus',\n };\n return await signer.signMessage(JSON.stringify(message));\n}\n\nexport async function signGrantPermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n GrantAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport async function signVote(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n contractAddress: string,\n voter: string,\n isYesVote: boolean,\n deadline: number,\n): Promise<string> {\n const types = {\n CastVoteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'voter', type: 'address' },\n { name: 'yesVote', type: 'bool' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n const values = {\n verifyingChainId: reyaChainId,\n voter: voter,\n yesVote: isYesVote,\n nonce: 1, // hardcoded because a user cannot vote more than once\n deadline: deadline,\n };\n\n const domain = getReyaDomain(contractAddress);\n\n const signatureString = await signer.signTypedData(domain, types, values);\n\n return signatureString;\n}\n\nexport async function signRevokePermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n RevokeAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport const signManagePermissionBySig = async (\n signer: Signer | JsonRpcSigner,\n signerAddress: string,\n reyaChainId: ReyaChainId,\n targetAddress: string,\n permissionState: boolean,\n deadline: number,\n): Promise<EIP712Signature> => {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n {\n ManagePermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'owner', type: 'address' },\n { name: 'target', type: 'address' },\n { name: 'permissionState', type: 'bool' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n owner: signerAddress,\n target: targetAddress,\n permissionState: permissionState,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n};\n"]}
1
+ {"version":3,"file":"sign.js","sourceRoot":"/","sources":["transactions/sign.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n JsonRpcSigner,\n Signature,\n Signer,\n TypedDataField,\n verifyTypedData,\n} from 'ethers';\nimport { ContractType, getAddress } from './contractAddresses';\nimport { Command } from './action';\nimport {\n Address,\n ConditionalOrderStatus,\n ConditionalOrderType,\n OrdersGatewayOrderType,\n ReyaChainId,\n} from '../types';\n\nexport type EIP712Signature = {\n v: number;\n r: string;\n s: string;\n deadline: number;\n};\n\nexport type CoreCommandsEIP712SignatureAndPayload = {\n signature: EIP712Signature;\n payload: {\n verifyingContract: string;\n types: Record<string, Array<TypedDataField>>;\n value: {\n verifyingChainId: number;\n caller: Address;\n accountId: number;\n commands: Command[];\n nonce: number;\n deadline: number;\n extraSignatureData: string;\n };\n };\n};\n\nexport function convertEthersSignatureToEIP712Signature(\n signature: Signature,\n deadline: number,\n): EIP712Signature {\n return {\n v: signature.v,\n r: signature.r,\n s: signature.s,\n deadline,\n };\n}\n\nexport async function signCoreCommands(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n accountId: number,\n commands: Command[],\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<CoreCommandsEIP712SignatureAndPayload> {\n const types = {\n ExecuteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'accountId', type: 'uint128' },\n { name: 'commands', type: 'Command[]' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n Command: [\n { name: 'commandType', type: 'uint8' },\n { name: 'inputs', type: 'bytes' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n ],\n };\n\n const value = {\n verifyingChainId: reyaChainId,\n caller: caller,\n accountId: accountId,\n commands: commands,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n };\n\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n types,\n value,\n );\n\n const eip712Signature = convertEthersSignatureToEIP712Signature(\n signature,\n deadline,\n );\n\n return {\n signature: eip712Signature,\n payload: {\n verifyingContract: getAddress(reyaChainId, ContractType.CORE_PROXY),\n types: types,\n value: value,\n },\n };\n}\n\nexport async function signPoolRemoveLiquidity(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n owner: Address,\n poolId: number,\n sharesAmount: bigint,\n minOut: bigint,\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_POOL_PROXY),\n {\n RemoveLiquidityBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'owner', type: 'address' },\n { name: 'poolId', type: 'uint128' },\n { name: 'sharesAmount', type: 'uint256' },\n { name: 'minOut', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n caller: caller,\n owner: owner,\n poolId: poolId,\n sharesAmount: sharesAmount,\n minOut: minOut,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nasync function signReyaTypedData(\n signer: Signer | JsonRpcSigner,\n verifyingContract: string,\n types: Record<string, Array<TypedDataField>>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: Record<string, any>,\n): Promise<Signature> {\n const domain = getReyaDomain(verifyingContract);\n\n const signatureString = await signer.signTypedData(domain, types, value);\n\n return Signature.from(signatureString);\n}\n\nexport function getReyaDomain(verifyingContract: string) {\n return {\n name: 'Reya',\n version: '1',\n verifyingContract: verifyingContract,\n };\n}\n\nconst conditionalOrderTypes = {\n ConditionalOrder: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'order', type: 'ConditionalOrderDetails' },\n ],\n ConditionalOrderDetails: [\n { name: 'accountId', type: 'uint128' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n { name: 'counterpartyAccountIds', type: 'uint128[]' },\n { name: 'orderType', type: 'uint8' },\n { name: 'inputs', type: 'bytes' },\n { name: 'signer', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n ],\n};\n\nexport function createOrdersGatewayOrderNonce(\n accountId: number,\n marketId: number,\n timestampMs: number,\n): bigint {\n // Validate the input ranges\n if (marketId < 0 || marketId >= 2 ** 32)\n throw new Error('marketId is out of range');\n if (accountId < 0 || accountId >= 2 ** 128)\n throw new Error('accountId is out of range');\n if (timestampMs < 0 || timestampMs >= 2 ** 64)\n throw new Error('timestamp is out of range');\n\n const hashUint256 =\n (BigInt(accountId) << BigInt(98)) |\n (BigInt(timestampMs) << BigInt(32)) |\n BigInt(marketId);\n\n return hashUint256;\n}\n\ntype SignOrdersGatewayOrderOutput = {\n serializedSignature: string;\n nonce: bigint;\n signature: EIP712Signature;\n};\n\nexport async function signOrdersGatewayOrder(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n exchangeId: number,\n counterpartyAccountIds: number[],\n orderType: ConditionalOrderType | OrdersGatewayOrderType,\n inputs: string,\n deadline: number,\n creationTimestampMs: number,\n customNonce?: bigint,\n): Promise<SignOrdersGatewayOrderOutput> {\n const nonce =\n customNonce ??\n createOrdersGatewayOrderNonce(accountId, marketId, creationTimestampMs);\n\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n conditionalOrderTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n order: {\n accountId: accountId,\n marketId: marketId,\n exchangeId: exchangeId,\n counterpartyAccountIds: counterpartyAccountIds,\n orderType: orderType,\n inputs: inputs,\n signer: await signer.getAddress(),\n nonce: nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n nonce,\n signature: convertEthersSignatureToEIP712Signature(signature, deadline),\n };\n}\n\nexport function isConditionalOrderSignatureValid(\n signerAddress: string,\n signature: string,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n exchangeId: number,\n counterpartyAccountIds: number[],\n orderType: number,\n inputs: string,\n nonce: bigint,\n deadline: number,\n): boolean {\n // Encode the data for recovering the address\n const domain = getReyaDomain(\n getAddress(reyaChainId, ContractType.CONDITIONAL_ORDERS_PROXY),\n );\n\n const value = {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n order: {\n accountId: accountId,\n marketId: marketId,\n exchangeId: exchangeId,\n counterpartyAccountIds: counterpartyAccountIds,\n orderType: orderType,\n inputs: inputs,\n signer: signerAddress,\n nonce: nonce,\n },\n };\n\n // Recover the address\n const recoveredAddress = verifyTypedData(\n domain,\n conditionalOrderTypes,\n value,\n signature,\n );\n\n return recoveredAddress.toLowerCase() === signerAddress.toLowerCase();\n}\n\nconst orderCancelTypes = {\n OrderCancel: [\n { name: 'verifyingChainId', type: 'uint64' },\n { name: 'deadline', type: 'uint64' },\n { name: 'cancel', type: 'OrderCancelDetails' },\n ],\n OrderCancelDetails: [\n { name: 'accountId', type: 'uint64' },\n { name: 'marketId', type: 'uint64' },\n { name: 'orderId', type: 'uint64' },\n { name: 'clOrdId', type: 'uint64' },\n { name: 'nonce', type: 'uint64' },\n ],\n};\n\nconst massCancelTypes = {\n MassCancel: [\n { name: 'verifyingChainId', type: 'uint64' },\n { name: 'deadline', type: 'uint64' },\n { name: 'massCancel', type: 'MassCancelDetails' },\n ],\n MassCancelDetails: [\n { name: 'accountId', type: 'uint64' },\n { name: 'marketId', type: 'uint64' },\n { name: 'nonce', type: 'uint64' },\n ],\n};\n\ntype SignCancelOutput = {\n serializedSignature: string;\n nonce: bigint;\n signature: EIP712Signature;\n};\n\nexport async function signOrderCancel(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n orderId: bigint,\n clOrdId: bigint,\n nonce: bigint,\n deadline: number,\n): Promise<SignCancelOutput> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n orderCancelTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: deadline,\n cancel: {\n accountId: accountId,\n marketId: marketId,\n orderId: orderId,\n clOrdId: clOrdId,\n nonce: nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n nonce,\n signature: convertEthersSignatureToEIP712Signature(signature, deadline),\n };\n}\n\nexport async function signMassCancel(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n nonce: bigint,\n deadline: number,\n): Promise<SignCancelOutput> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n massCancelTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: deadline,\n massCancel: {\n accountId: accountId,\n marketId: marketId,\n nonce: nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n nonce,\n signature: convertEthersSignatureToEIP712Signature(signature, deadline),\n };\n}\n\nexport async function signCancelConditionalOrder(\n signer: Signer | JsonRpcSigner,\n orderId: string,\n): Promise<string> {\n const message = {\n orderId: orderId,\n status: ConditionalOrderStatus.CANCELLED,\n actionType: 'changeStatus',\n };\n return await signer.signMessage(JSON.stringify(message));\n}\n\nexport async function signGrantPermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n GrantAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport async function signVote(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n contractAddress: string,\n voter: string,\n isYesVote: boolean,\n deadline: number,\n): Promise<string> {\n const types = {\n CastVoteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'voter', type: 'address' },\n { name: 'yesVote', type: 'bool' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n const values = {\n verifyingChainId: reyaChainId,\n voter: voter,\n yesVote: isYesVote,\n nonce: 1, // hardcoded because a user cannot vote more than once\n deadline: deadline,\n };\n\n const domain = getReyaDomain(contractAddress);\n\n const signatureString = await signer.signTypedData(domain, types, values);\n\n return signatureString;\n}\n\nexport async function signRevokePermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n RevokeAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport const signManagePermissionBySig = async (\n signer: Signer | JsonRpcSigner,\n signerAddress: string,\n reyaChainId: ReyaChainId,\n targetAddress: string,\n permissionState: boolean,\n deadline: number,\n): Promise<EIP712Signature> => {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n {\n ManagePermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'owner', type: 'address' },\n { name: 'target', type: 'address' },\n { name: 'permissionState', type: 'bool' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n owner: signerAddress,\n target: targetAddress,\n permissionState: permissionState,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n};\n"]}
@@ -39,6 +39,13 @@ type SignOrdersGatewayOrderOutput = {
39
39
  };
40
40
  export declare function signOrdersGatewayOrder(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, accountId: number, marketId: number, exchangeId: number, counterpartyAccountIds: number[], orderType: ConditionalOrderType | OrdersGatewayOrderType, inputs: string, deadline: number, creationTimestampMs: number, customNonce?: bigint): Promise<SignOrdersGatewayOrderOutput>;
41
41
  export declare function isConditionalOrderSignatureValid(signerAddress: string, signature: string, reyaChainId: ReyaChainId, accountId: number, marketId: number, exchangeId: number, counterpartyAccountIds: number[], orderType: number, inputs: string, nonce: bigint, deadline: number): boolean;
42
+ type SignCancelOutput = {
43
+ serializedSignature: string;
44
+ nonce: bigint;
45
+ signature: EIP712Signature;
46
+ };
47
+ export declare function signOrderCancel(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, accountId: number, marketId: number, orderId: bigint, clOrdId: bigint, nonce: bigint, deadline: number): Promise<SignCancelOutput>;
48
+ export declare function signMassCancel(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, accountId: number, marketId: number, nonce: bigint, deadline: number): Promise<SignCancelOutput>;
42
49
  export declare function signCancelConditionalOrder(signer: Signer | JsonRpcSigner, orderId: string): Promise<string>;
43
50
  export declare function signGrantPermission(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, accountId: number, permission: string, user: string, nonce: number, deadline: number): Promise<EIP712Signature>;
44
51
  export declare function signVote(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, contractAddress: string, voter: string, isYesVote: boolean, deadline: number): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"sign.d.ts","sourceRoot":"/","sources":["transactions/sign.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sign.d.ts","sourceRoot":"/","sources":["transactions/sign.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/common",
3
- "version": "0.347.1",
3
+ "version": "0.348.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -45,5 +45,5 @@
45
45
  "generate:coverage-badges": "npx istanbul-badges-readme --silent"
46
46
  },
47
47
  "packageManager": "pnpm@8.3.1",
48
- "gitHead": "df85d4c67fbdc67ac23325111be95c492b4398ea"
48
+ "gitHead": "8bec7fed474be08b0f213b6fd0467ae327684d9a"
49
49
  }
@@ -310,6 +310,104 @@ export function isConditionalOrderSignatureValid(
310
310
  return recoveredAddress.toLowerCase() === signerAddress.toLowerCase();
311
311
  }
312
312
 
313
+ const orderCancelTypes = {
314
+ OrderCancel: [
315
+ { name: 'verifyingChainId', type: 'uint64' },
316
+ { name: 'deadline', type: 'uint64' },
317
+ { name: 'cancel', type: 'OrderCancelDetails' },
318
+ ],
319
+ OrderCancelDetails: [
320
+ { name: 'accountId', type: 'uint64' },
321
+ { name: 'marketId', type: 'uint64' },
322
+ { name: 'orderId', type: 'uint64' },
323
+ { name: 'clOrdId', type: 'uint64' },
324
+ { name: 'nonce', type: 'uint64' },
325
+ ],
326
+ };
327
+
328
+ const massCancelTypes = {
329
+ MassCancel: [
330
+ { name: 'verifyingChainId', type: 'uint64' },
331
+ { name: 'deadline', type: 'uint64' },
332
+ { name: 'massCancel', type: 'MassCancelDetails' },
333
+ ],
334
+ MassCancelDetails: [
335
+ { name: 'accountId', type: 'uint64' },
336
+ { name: 'marketId', type: 'uint64' },
337
+ { name: 'nonce', type: 'uint64' },
338
+ ],
339
+ };
340
+
341
+ type SignCancelOutput = {
342
+ serializedSignature: string;
343
+ nonce: bigint;
344
+ signature: EIP712Signature;
345
+ };
346
+
347
+ export async function signOrderCancel(
348
+ signer: Signer | JsonRpcSigner,
349
+ reyaChainId: ReyaChainId,
350
+ accountId: number,
351
+ marketId: number,
352
+ orderId: bigint,
353
+ clOrdId: bigint,
354
+ nonce: bigint,
355
+ deadline: number,
356
+ ): Promise<SignCancelOutput> {
357
+ const signature = await signReyaTypedData(
358
+ signer,
359
+ getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),
360
+ orderCancelTypes,
361
+ {
362
+ verifyingChainId: reyaChainId,
363
+ deadline: deadline,
364
+ cancel: {
365
+ accountId: accountId,
366
+ marketId: marketId,
367
+ orderId: orderId,
368
+ clOrdId: clOrdId,
369
+ nonce: nonce,
370
+ },
371
+ },
372
+ );
373
+
374
+ return {
375
+ serializedSignature: signature.serialized,
376
+ nonce,
377
+ signature: convertEthersSignatureToEIP712Signature(signature, deadline),
378
+ };
379
+ }
380
+
381
+ export async function signMassCancel(
382
+ signer: Signer | JsonRpcSigner,
383
+ reyaChainId: ReyaChainId,
384
+ accountId: number,
385
+ marketId: number,
386
+ nonce: bigint,
387
+ deadline: number,
388
+ ): Promise<SignCancelOutput> {
389
+ const signature = await signReyaTypedData(
390
+ signer,
391
+ getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),
392
+ massCancelTypes,
393
+ {
394
+ verifyingChainId: reyaChainId,
395
+ deadline: deadline,
396
+ massCancel: {
397
+ accountId: accountId,
398
+ marketId: marketId,
399
+ nonce: nonce,
400
+ },
401
+ },
402
+ );
403
+
404
+ return {
405
+ serializedSignature: signature.serialized,
406
+ nonce,
407
+ signature: convertEthersSignatureToEIP712Signature(signature, deadline),
408
+ };
409
+ }
410
+
313
411
  export async function signCancelConditionalOrder(
314
412
  signer: Signer | JsonRpcSigner,
315
413
  orderId: string,