@reyaxyz/common 0.210.2 → 0.210.3
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
|
-
|  |  |  |  |
|
|
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.signSetReferralMapping = exports.signSetAccountTier = exports.signRevokePermission = exports.signVote = exports.signGrantPermission = exports.signRegisterEmbeddedWallet = exports.signCancelConditionalOrder = exports.isConditionalOrderSignatureValid = exports.signInitiateOrUpdateSession = exports.signConditionalOrder = exports.signPoolRemoveLiquidity = exports.signCoreCommands = exports.convertEthersSignatureToEIP712Signature = void 0;
|
|
39
|
+
exports.signSetReferralMapping = exports.signSetAccountTier = exports.signRevokePermission = exports.signVoteByProxy = exports.signVote = exports.signGrantPermission = exports.signRegisterEmbeddedWallet = exports.signCancelConditionalOrder = exports.isConditionalOrderSignatureValid = exports.signInitiateOrUpdateSession = exports.signConditionalOrder = 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");
|
|
@@ -336,10 +336,11 @@ function signGrantPermission(signer, reyaChainId, accountId, permission, user, n
|
|
|
336
336
|
exports.signGrantPermission = signGrantPermission;
|
|
337
337
|
function signVote(signer, reyaChainId, contractAddress, voter, isYesVote, deadline) {
|
|
338
338
|
return __awaiter(this, void 0, void 0, function () {
|
|
339
|
-
var
|
|
339
|
+
var types, values, domain, signatureString;
|
|
340
340
|
return __generator(this, function (_a) {
|
|
341
341
|
switch (_a.label) {
|
|
342
|
-
case 0:
|
|
342
|
+
case 0:
|
|
343
|
+
types = {
|
|
343
344
|
CastVoteBySig: [
|
|
344
345
|
{ name: 'verifyingChainId', type: 'uint256' },
|
|
345
346
|
{ name: 'voter', type: 'address' },
|
|
@@ -347,21 +348,50 @@ function signVote(signer, reyaChainId, contractAddress, voter, isYesVote, deadli
|
|
|
347
348
|
{ name: 'nonce', type: 'uint256' },
|
|
348
349
|
{ name: 'deadline', type: 'uint256' },
|
|
349
350
|
],
|
|
350
|
-
}
|
|
351
|
+
};
|
|
352
|
+
values = {
|
|
351
353
|
verifyingChainId: reyaChainId,
|
|
352
354
|
voter: voter,
|
|
353
355
|
yesVote: isYesVote,
|
|
354
356
|
nonce: 1, // hardcoded because a user cannot vote more than once
|
|
355
357
|
deadline: deadline,
|
|
358
|
+
};
|
|
359
|
+
domain = getReyaDomain(contractAddress);
|
|
360
|
+
return [4 /*yield*/, signer.signTypedData(domain, types, values)];
|
|
361
|
+
case 1:
|
|
362
|
+
signatureString = _a.sent();
|
|
363
|
+
return [2 /*return*/, signatureString];
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
exports.signVote = signVote;
|
|
369
|
+
function signVoteByProxy(signer, reyaChainId, contractAddress, voter, votingPower, deadline) {
|
|
370
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
371
|
+
var signature;
|
|
372
|
+
return __generator(this, function (_a) {
|
|
373
|
+
switch (_a.label) {
|
|
374
|
+
case 0: return [4 /*yield*/, signReyaTypedData(signer, contractAddress, {
|
|
375
|
+
RelayVoteBySig: [
|
|
376
|
+
{ name: 'verifyingChainId', type: 'uint256' },
|
|
377
|
+
{ name: 'voter', type: 'address' },
|
|
378
|
+
{ name: 'votingPower', type: 'uint256' },
|
|
379
|
+
{ name: 'deadline', type: 'uint256' },
|
|
380
|
+
],
|
|
381
|
+
}, {
|
|
382
|
+
verifyingChainId: reyaChainId,
|
|
383
|
+
voter: voter,
|
|
384
|
+
votingPower: votingPower,
|
|
385
|
+
deadline: deadline,
|
|
356
386
|
})];
|
|
357
387
|
case 1:
|
|
358
388
|
signature = _a.sent();
|
|
359
|
-
return [2 /*return*/, signature
|
|
389
|
+
return [2 /*return*/, convertEthersSignatureToEIP712Signature(signature, deadline)];
|
|
360
390
|
}
|
|
361
391
|
});
|
|
362
392
|
});
|
|
363
393
|
}
|
|
364
|
-
exports.
|
|
394
|
+
exports.signVoteByProxy = signVoteByProxy;
|
|
365
395
|
function signRevokePermission(signer, reyaChainId, accountId, permission, user, nonce, deadline) {
|
|
366
396
|
return __awaiter(this, void 0, void 0, function () {
|
|
367
397
|
var signature;
|
|
@@ -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 { Address, ConditionalOrderStatus, ReyaChainId } from '../types';\n\nexport type EIP712Signature = {\n v: number;\n r: string;\n s: string;\n deadline: number;\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<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\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 verifyingChainId: reyaChainId,\n caller: caller,\n accountId: accountId,\n commands: commands,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\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\nfunction 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\nconst sessionUpdateTypes = {\n InitiateOrUpdateSession: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'session', type: 'InitiateOrUpdateSessionDetails' },\n ],\n InitiateOrUpdateSessionDetails: [\n { name: 'accountId', type: 'uint128' },\n { name: 'target', type: 'address' },\n { name: 'until', type: 'uint256' },\n { name: 'signer', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n ],\n};\n\nexport async function signConditionalOrder(\n signer: Signer | JsonRpcSigner,\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): Promise<string> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CONDITIONAL_ORDERS_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 signature.serialized;\n}\n\nexport async function signInitiateOrUpdateSession(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n target: string,\n until: number,\n nonce: bigint,\n deadline: number,\n): Promise<string> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CONDITIONAL_ORDERS_PROXY),\n sessionUpdateTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n session: {\n accountId: accountId,\n target: target,\n until: until,\n signer: await signer.getAddress(),\n nonce: nonce,\n },\n },\n );\n\n return signature.serialized;\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 === signerAddress;\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 signRegisterEmbeddedWallet(\n signer: Signer | JsonRpcSigner,\n embeddedWalletAddress: string,\n): Promise<string> {\n const message = {\n embeddedWalletAddress: embeddedWalletAddress,\n actionType: 'register',\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 signature = await signReyaTypedData(\n signer,\n contractAddress,\n {\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 {\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\n return signature.compactSerialized;\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 async function signSetAccountTier(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n tierId: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_PERP_PROXY),\n {\n SetAccountTier: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'marketId', type: 'uint128' },\n { name: 'accountId', type: 'uint128' },\n { name: 'tierId', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n marketId: marketId,\n accountId: accountId,\n tierId: tierId,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport async function signSetReferralMapping(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n refereeAccountId: number,\n referrerAccountId: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_PERP_PROXY),\n {\n SetReferralMapping: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'refereeAccountId', type: 'uint128' },\n { name: 'referrerAccountId', type: 'uint128' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n refereeAccountId: refereeAccountId,\n referrerAccountId: referrerAccountId,\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 { Address, ConditionalOrderStatus, ReyaChainId } from '../types';\n\nexport type EIP712Signature = {\n v: number;\n r: string;\n s: string;\n deadline: number;\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<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\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 verifyingChainId: reyaChainId,\n caller: caller,\n accountId: accountId,\n commands: commands,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\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\nfunction 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\nconst sessionUpdateTypes = {\n InitiateOrUpdateSession: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'session', type: 'InitiateOrUpdateSessionDetails' },\n ],\n InitiateOrUpdateSessionDetails: [\n { name: 'accountId', type: 'uint128' },\n { name: 'target', type: 'address' },\n { name: 'until', type: 'uint256' },\n { name: 'signer', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n ],\n};\n\nexport async function signConditionalOrder(\n signer: Signer | JsonRpcSigner,\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): Promise<string> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CONDITIONAL_ORDERS_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 signature.serialized;\n}\n\nexport async function signInitiateOrUpdateSession(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n target: string,\n until: number,\n nonce: bigint,\n deadline: number,\n): Promise<string> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CONDITIONAL_ORDERS_PROXY),\n sessionUpdateTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n session: {\n accountId: accountId,\n target: target,\n until: until,\n signer: await signer.getAddress(),\n nonce: nonce,\n },\n },\n );\n\n return signature.serialized;\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 === signerAddress;\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 signRegisterEmbeddedWallet(\n signer: Signer | JsonRpcSigner,\n embeddedWalletAddress: string,\n): Promise<string> {\n const message = {\n embeddedWalletAddress: embeddedWalletAddress,\n actionType: 'register',\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 signVoteByProxy(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n contractAddress: string,\n voter: string,\n votingPower: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n contractAddress,\n {\n RelayVoteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'voter', type: 'address' },\n { name: 'votingPower', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n voter: voter,\n votingPower: votingPower,\n deadline: deadline,\n },\n );\n return convertEthersSignatureToEIP712Signature(signature, deadline);\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 async function signSetAccountTier(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n tierId: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_PERP_PROXY),\n {\n SetAccountTier: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'marketId', type: 'uint128' },\n { name: 'accountId', type: 'uint128' },\n { name: 'tierId', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n marketId: marketId,\n accountId: accountId,\n tierId: tierId,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport async function signSetReferralMapping(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n refereeAccountId: number,\n referrerAccountId: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_PERP_PROXY),\n {\n SetReferralMapping: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'refereeAccountId', type: 'uint128' },\n { name: 'referrerAccountId', type: 'uint128' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n refereeAccountId: refereeAccountId,\n referrerAccountId: referrerAccountId,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n"]}
|
|
@@ -17,6 +17,7 @@ export declare function signCancelConditionalOrder(signer: Signer | JsonRpcSigne
|
|
|
17
17
|
export declare function signRegisterEmbeddedWallet(signer: Signer | JsonRpcSigner, embeddedWalletAddress: string): Promise<string>;
|
|
18
18
|
export declare function signGrantPermission(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, accountId: number, permission: string, user: string, nonce: number, deadline: number): Promise<EIP712Signature>;
|
|
19
19
|
export declare function signVote(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, contractAddress: string, voter: string, isYesVote: boolean, deadline: number): Promise<string>;
|
|
20
|
+
export declare function signVoteByProxy(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, contractAddress: string, voter: string, votingPower: number, deadline: number): Promise<EIP712Signature>;
|
|
20
21
|
export declare function signRevokePermission(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, accountId: number, permission: string, user: string, nonce: number, deadline: number): Promise<EIP712Signature>;
|
|
21
22
|
export declare function signSetAccountTier(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, accountId: number, marketId: number, tierId: number, deadline: number): Promise<EIP712Signature>;
|
|
22
23
|
export declare function signSetReferralMapping(signer: Signer | JsonRpcSigner, reyaChainId: ReyaChainId, refereeAccountId: number, referrerAccountId: number, deadline: number): Promise<EIP712Signature>;
|
|
@@ -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.210.
|
|
3
|
+
"version": "0.210.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"generate:coverage-badges": "npx istanbul-badges-readme --silent"
|
|
44
44
|
},
|
|
45
45
|
"packageManager": "pnpm@8.3.1",
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "fcb228180d1b83e35070a33291670d44c011f3f0"
|
|
47
47
|
}
|
package/src/transactions/sign.ts
CHANGED
|
@@ -345,28 +345,57 @@ export async function signVote(
|
|
|
345
345
|
isYesVote: boolean,
|
|
346
346
|
deadline: number,
|
|
347
347
|
): Promise<string> {
|
|
348
|
+
const types = {
|
|
349
|
+
CastVoteBySig: [
|
|
350
|
+
{ name: 'verifyingChainId', type: 'uint256' },
|
|
351
|
+
{ name: 'voter', type: 'address' },
|
|
352
|
+
{ name: 'yesVote', type: 'bool' },
|
|
353
|
+
{ name: 'nonce', type: 'uint256' },
|
|
354
|
+
{ name: 'deadline', type: 'uint256' },
|
|
355
|
+
],
|
|
356
|
+
};
|
|
357
|
+
const values = {
|
|
358
|
+
verifyingChainId: reyaChainId,
|
|
359
|
+
voter: voter,
|
|
360
|
+
yesVote: isYesVote,
|
|
361
|
+
nonce: 1, // hardcoded because a user cannot vote more than once
|
|
362
|
+
deadline: deadline,
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
const domain = getReyaDomain(contractAddress);
|
|
366
|
+
|
|
367
|
+
const signatureString = await signer.signTypedData(domain, types, values);
|
|
368
|
+
|
|
369
|
+
return signatureString;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
export async function signVoteByProxy(
|
|
373
|
+
signer: Signer | JsonRpcSigner,
|
|
374
|
+
reyaChainId: ReyaChainId,
|
|
375
|
+
contractAddress: string,
|
|
376
|
+
voter: string,
|
|
377
|
+
votingPower: number,
|
|
378
|
+
deadline: number,
|
|
379
|
+
): Promise<EIP712Signature> {
|
|
348
380
|
const signature = await signReyaTypedData(
|
|
349
381
|
signer,
|
|
350
382
|
contractAddress,
|
|
351
383
|
{
|
|
352
|
-
|
|
384
|
+
RelayVoteBySig: [
|
|
353
385
|
{ name: 'verifyingChainId', type: 'uint256' },
|
|
354
386
|
{ name: 'voter', type: 'address' },
|
|
355
|
-
{ name: '
|
|
356
|
-
{ name: 'nonce', type: 'uint256' },
|
|
387
|
+
{ name: 'votingPower', type: 'uint256' },
|
|
357
388
|
{ name: 'deadline', type: 'uint256' },
|
|
358
389
|
],
|
|
359
390
|
},
|
|
360
391
|
{
|
|
361
392
|
verifyingChainId: reyaChainId,
|
|
362
393
|
voter: voter,
|
|
363
|
-
|
|
364
|
-
nonce: 1, // hardcoded because a user cannot vote more than once
|
|
394
|
+
votingPower: votingPower,
|
|
365
395
|
deadline: deadline,
|
|
366
396
|
},
|
|
367
397
|
);
|
|
368
|
-
|
|
369
|
-
return signature.compactSerialized;
|
|
398
|
+
return convertEthersSignatureToEIP712Signature(signature, deadline);
|
|
370
399
|
}
|
|
371
400
|
|
|
372
401
|
export async function signRevokePermission(
|