make fields in signOrder optional

This commit is contained in:
TheJuze
2024-01-19 12:27:19 +03:00
parent 330fc513e5
commit fcc30178ab
6 changed files with 14 additions and 11 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@orionprotocol/sdk",
"version": "0.20.42-rc5",
"version": "0.20.42-rc6",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@orionprotocol/sdk",
"version": "0.20.42-rc5",
"version": "0.20.42-rc6",
"hasInstallScript": true,
"license": "ISC",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@orionprotocol/sdk",
"version": "0.20.42-rc5",
"version": "0.20.42-rc6",
"description": "Orion Protocol SDK",
"main": "./lib/index.cjs",
"module": "./lib/index.js",

View File

@@ -14,10 +14,10 @@ export type LockOrderProps = {
senderAddress: string // broker
asset: string
amount: ethers.BigNumberish
targetChainId: ethers.BigNumberish
sign: string // подпись юзера
signer: ethers.Signer
chainId: SupportedChainId
targetChainId: SupportedChainId
}
export const signLockOrder = async ({

View File

@@ -25,13 +25,15 @@ export const signOrder = async (
serviceFeeAssetAddr: string,
signer: ethers.Signer,
chainId: SupportedChainId,
targetChainId?: ethers.BigNumberish,
targetChainId?: SupportedChainId,
) => {
const nonce = Date.now();
const expiration = nonce + DEFAULT_EXPIRATION;
const secret = generateSecret();
const secretHash = ethers.keccak256(secret);
const isCrossChain = targetChainId === undefined || targetChainId === chainId;
const order: Order = {
senderAddress,
matcherAddress,
@@ -55,7 +57,7 @@ export const signOrder = async (
)),
nonce,
expiration,
...(targetChainId !== undefined
...(isCrossChain
? {
secretHash,
targetChainId
@@ -83,7 +85,7 @@ export const signOrder = async (
...order,
id: hashOrder(order),
signature: fixedSignature,
secret
...(isCrossChain ? { secret } : {})
};
return signedOrder;
};

View File

@@ -51,7 +51,7 @@ export type Order = {
expiration: number // uint64
buySide: 0 | 1 // uint8, 1=buy, 0=sell
secretHash?: string // uint64
targetChainId?: ethers.BigNumberish // uint64
targetChainId?: SupportedChainId // uint64
}
export type LockOrder = {
@@ -60,14 +60,14 @@ export type LockOrder = {
expiration: ethers.BigNumberish // uint64
asset: string // address(?)
amount: ethers.BigNumberish // uint64
targetChainId: ethers.BigNumberish // uint64
targetChainId: SupportedChainId // uint64
secretHash: string // uint64
sign: string // uint64 // подпись юзера
}
type SignedOrderAdditionalProps = {
signature: string // bytes
secret: string
secret?: string
needWithdraw?: boolean // bool (not supported yet by smart-contract)
}

View File

@@ -22,7 +22,8 @@
"noUnusedLocals": true /* Enable error reporting when a local variables aren't read. */,
"noUnusedParameters": true /* Raise an error when a function parameter isn't read */,
"noUncheckedIndexedAccess": true,
"skipLibCheck": true /* Skip type checking all .d.ts files. */
"skipLibCheck": true, /* Skip type checking all .d.ts files. */
"exactOptionalPropertyTypes": false, /* allow ? in interfaces */
},
"ts-node": {
// Tell ts-node CLI to install the --loader automatically, explained below