@reyaxyz/common 0.335.0 → 0.337.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-24.5%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-22.98%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-13%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-25.83%25-red.svg?style=flat) |
9
+ | ![Statements](https://img.shields.io/badge/statements-24.52%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-22.98%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-12.94%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-25.88%25-red.svg?style=flat) |
10
10
 
@@ -181,7 +181,7 @@ function estimateGasExternalChains(signer, data, value, chainId, targetContract)
181
181
  case 5:
182
182
  decodedError = _a.sent();
183
183
  reason = customReasonMapper(decodedError);
184
- console.error("Error simulating external transaction account address ".concat(accountAddress, " reason ").concat(decodedError === null || decodedError === void 0 ? void 0 : decodedError.name, " ").concat(decodedError, " ").concat(error_3));
184
+ console.error("Error simulating external transaction with value ".concat(value, ", account address ").concat(accountAddress, ", reason ").concat(decodedError === null || decodedError === void 0 ? void 0 : decodedError.name, " ").concat(JSON.stringify(decodedError), " ").concat(error_3));
185
185
  throw new Error(reason);
186
186
  case 6:
187
187
  if (Object.values(types_1.ReyaChainId).includes(chainId)) {
@@ -1 +1 @@
1
- {"version":3,"file":"executeTransaction.js","sourceRoot":"/","sources":["transactions/executeTransaction.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ethers,\n JsonRpcProvider,\n JsonRpcSigner,\n Network,\n Signer,\n} from 'ethers';\nimport { MoneyInOutChainId, ReyaChainId } from '../types';\nimport { ContractType, getAddress } from './contractAddresses';\nimport { abi } from './abis/Errors.json';\nimport { ErrorDecoder } from 'ethers-decode-error';\nimport type { DecodedError } from 'ethers-decode-error';\nimport { getGasBuffer } from './txHelpers';\nimport { getPublicRpcUrlsOrThrow } from '../utils';\nimport { Interface } from 'ethers';\n\nconst reyaChainIdRPCMapper: { [key: number]: string } = {\n [ReyaChainId.reyaNetwork]:\n 'https://rpc.reya.network/263e76b89da84d478fd2b6e8783a1cfe',\n [ReyaChainId.reyaCronos]:\n 'https://rpc.reya-cronos.gelato.digital/263e76b89da84d478fd2b6e8783a1cfe',\n};\n\nexport type Transaction = {\n from: string;\n to: string;\n data: string;\n value?: string;\n};\nconst errorDecoder = ErrorDecoder.create([abi]);\n\nexport async function estimateGas(\n signer: Signer | JsonRpcSigner,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n): Promise<\n Transaction & {\n gasLimit: bigint;\n maxPriorityFeePerGas?: bigint;\n maxFeePerGas?: bigint;\n }\n> {\n const accountAddress = await signer.getAddress();\n\n return estimateGasGivenAddress(\n accountAddress,\n data,\n value,\n chainId,\n targetContract,\n );\n}\n\n// TODO: deprecate this when /executeGelato is gone\nexport async function estimateGasGivenAddress(\n accountAddress: string,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n): Promise<\n Transaction & {\n gasLimit: bigint;\n maxPriorityFeePerGas?: bigint;\n maxFeePerGas?: bigint;\n }\n> {\n const contractAddress = Object.values(ContractType).includes(\n targetContract as ContractType,\n )\n ? getAddress(chainId, targetContract as ContractType)\n : targetContract;\n\n const tx = {\n from: accountAddress, // @todo Update with relayer address\n to: contractAddress,\n data,\n ...(value && value !== '0' ? { value: value } : {}),\n };\n\n const gasLimit: bigint = BigInt('5000000'); // hardcode to 5m gas limit if fails to get estimate\n\n try {\n const network = new Network('Reya', chainId);\n const provider = new JsonRpcProvider(\n reyaChainIdRPCMapper[chainId],\n network,\n {\n staticNetwork: network,\n pollingInterval: 50,\n },\n );\n await provider.call(tx);\n } catch (error) {\n const decodedError = await errorDecoder.decode(error);\n const reason = customReasonMapper(decodedError);\n console.error(\n `Error simulating transaction account address ${accountAddress} reason ${decodedError?.name} ${decodedError} ${error}`,\n );\n throw new Error(reason);\n }\n\n if (Object.values(ReyaChainId).includes(chainId as ReyaChainId)) {\n const maxPriorityFeePerGas: bigint = BigInt('0');\n const maxFeePerGas: bigint = BigInt('100000000');\n return { ...tx, gasLimit, maxPriorityFeePerGas, maxFeePerGas };\n }\n\n return { ...tx, gasLimit };\n}\n\nexport async function estimateGasFromTxAndChainId(\n chainId: ReyaChainId | MoneyInOutChainId,\n tx: ethers.TransactionRequest,\n): Promise<bigint> {\n const rpcUrls = getPublicRpcUrlsOrThrow(chainId);\n let lastError = null;\n\n for (const url of rpcUrls) {\n try {\n const provider = new ethers.JsonRpcProvider(url);\n const estimation = await provider.estimateGas(tx);\n return addGasBuffer(estimation);\n } catch (error) {\n lastError = error;\n }\n }\n\n throw new Error('All RPC URLs failed; last error: ' + lastError);\n}\n\nasync function estimateGasExternalChains(\n signer: Signer | JsonRpcSigner,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n): Promise<\n Transaction & {\n gasLimit: bigint;\n maxPriorityFeePerGas?: bigint;\n maxFeePerGas?: bigint;\n }\n> {\n const accountAddress = await signer.getAddress();\n\n const contractAddress = Object.values(ContractType).includes(\n targetContract as ContractType,\n )\n ? getAddress(chainId, targetContract as ContractType)\n : targetContract;\n const tx = {\n from: accountAddress,\n to: contractAddress,\n data,\n ...(value && value !== '0' ? { value: value } : {}),\n };\n\n let gasLimit: bigint = BigInt('5000000'); // hardcode to 5m gas limit if fails to get estimate\n\n try {\n const gasEstimate = await signer.estimateGas(tx);\n gasLimit = getGasBuffer(gasEstimate);\n } catch (error) {\n const decodedError = await errorDecoder.decode(error);\n const reason = customReasonMapper(decodedError);\n console.error(\n `Error simulating external transaction account address ${accountAddress} reason ${decodedError?.name} ${decodedError} ${error}`,\n );\n throw new Error(reason);\n }\n\n if (Object.values(ReyaChainId).includes(chainId as ReyaChainId)) {\n const maxPriorityFeePerGas: bigint = BigInt('0');\n const maxFeePerGas: bigint = BigInt('100000000');\n return { ...tx, gasLimit, maxPriorityFeePerGas, maxFeePerGas };\n }\n\n return { ...tx, gasLimit };\n}\n\nexport async function executeTransaction(\n signer: Signer | JsonRpcSigner,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n) {\n const txData = await estimateGasExternalChains(\n signer,\n data,\n value,\n chainId,\n targetContract,\n );\n\n try {\n const txResponse = await signer.sendTransaction(txData);\n const txReceipt = await txResponse.wait();\n return txReceipt;\n } catch (error) {\n console.warn(error);\n throw new Error('Transaction Execution Error');\n }\n}\nconst customReasonMapper = ({ name, reason }: DecodedError): string => {\n switch (name) {\n case 'SignatureInvalid':\n return `Invalid signature. Please refresh page and try again`;\n case 'StalePriceDetected':\n return `Price not updated, please try again a bit later`;\n case 'SmallOrderSize':\n return `Order size below minimum`;\n case 'DustyOrderSize':\n return `Order amount is not divisible by trade size spacing`;\n case 'AccountBelowIM':\n return `Account below required margin`;\n default:\n // This handles the non-custom errors\n return reason ?? 'Error executing transaction';\n }\n};\n\nfunction addGasBuffer(estimation: bigint): bigint {\n return (estimation * BigInt(120)) / BigInt(100);\n}\n\nexport async function decodeErrorBytes(returnData: string): Promise<string> {\n const INTERFACE = new Interface(abi);\n const decodedError = INTERFACE.parseError(returnData);\n console.log(decodedError);\n return `${decodedError?.name}: ${decodedError?.args}` || 'Error not found';\n}\n"]}
1
+ {"version":3,"file":"executeTransaction.js","sourceRoot":"/","sources":["transactions/executeTransaction.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ethers,\n JsonRpcProvider,\n JsonRpcSigner,\n Network,\n Signer,\n} from 'ethers';\nimport { MoneyInOutChainId, ReyaChainId } from '../types';\nimport { ContractType, getAddress } from './contractAddresses';\nimport { abi } from './abis/Errors.json';\nimport { ErrorDecoder } from 'ethers-decode-error';\nimport type { DecodedError } from 'ethers-decode-error';\nimport { getGasBuffer } from './txHelpers';\nimport { getPublicRpcUrlsOrThrow } from '../utils';\nimport { Interface } from 'ethers';\n\nconst reyaChainIdRPCMapper: { [key: number]: string } = {\n [ReyaChainId.reyaNetwork]:\n 'https://rpc.reya.network/263e76b89da84d478fd2b6e8783a1cfe',\n [ReyaChainId.reyaCronos]:\n 'https://rpc.reya-cronos.gelato.digital/263e76b89da84d478fd2b6e8783a1cfe',\n};\n\nexport type Transaction = {\n from: string;\n to: string;\n data: string;\n value?: string;\n};\nconst errorDecoder = ErrorDecoder.create([abi]);\n\nexport async function estimateGas(\n signer: Signer | JsonRpcSigner,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n): Promise<\n Transaction & {\n gasLimit: bigint;\n maxPriorityFeePerGas?: bigint;\n maxFeePerGas?: bigint;\n }\n> {\n const accountAddress = await signer.getAddress();\n\n return estimateGasGivenAddress(\n accountAddress,\n data,\n value,\n chainId,\n targetContract,\n );\n}\n\n// TODO: deprecate this when /executeGelato is gone\nexport async function estimateGasGivenAddress(\n accountAddress: string,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n): Promise<\n Transaction & {\n gasLimit: bigint;\n maxPriorityFeePerGas?: bigint;\n maxFeePerGas?: bigint;\n }\n> {\n const contractAddress = Object.values(ContractType).includes(\n targetContract as ContractType,\n )\n ? getAddress(chainId, targetContract as ContractType)\n : targetContract;\n\n const tx = {\n from: accountAddress, // @todo Update with relayer address\n to: contractAddress,\n data,\n ...(value && value !== '0' ? { value: value } : {}),\n };\n\n const gasLimit: bigint = BigInt('5000000'); // hardcode to 5m gas limit if fails to get estimate\n\n try {\n const network = new Network('Reya', chainId);\n const provider = new JsonRpcProvider(\n reyaChainIdRPCMapper[chainId],\n network,\n {\n staticNetwork: network,\n pollingInterval: 50,\n },\n );\n await provider.call(tx);\n } catch (error) {\n const decodedError = await errorDecoder.decode(error);\n const reason = customReasonMapper(decodedError);\n console.error(\n `Error simulating transaction account address ${accountAddress} reason ${decodedError?.name} ${decodedError} ${error}`,\n );\n throw new Error(reason);\n }\n\n if (Object.values(ReyaChainId).includes(chainId as ReyaChainId)) {\n const maxPriorityFeePerGas: bigint = BigInt('0');\n const maxFeePerGas: bigint = BigInt('100000000');\n return { ...tx, gasLimit, maxPriorityFeePerGas, maxFeePerGas };\n }\n\n return { ...tx, gasLimit };\n}\n\nexport async function estimateGasFromTxAndChainId(\n chainId: ReyaChainId | MoneyInOutChainId,\n tx: ethers.TransactionRequest,\n): Promise<bigint> {\n const rpcUrls = getPublicRpcUrlsOrThrow(chainId);\n let lastError = null;\n\n for (const url of rpcUrls) {\n try {\n const provider = new ethers.JsonRpcProvider(url);\n const estimation = await provider.estimateGas(tx);\n return addGasBuffer(estimation);\n } catch (error) {\n lastError = error;\n }\n }\n\n throw new Error('All RPC URLs failed; last error: ' + lastError);\n}\n\nasync function estimateGasExternalChains(\n signer: Signer | JsonRpcSigner,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n): Promise<\n Transaction & {\n gasLimit: bigint;\n maxPriorityFeePerGas?: bigint;\n maxFeePerGas?: bigint;\n }\n> {\n const accountAddress = await signer.getAddress();\n\n const contractAddress = Object.values(ContractType).includes(\n targetContract as ContractType,\n )\n ? getAddress(chainId, targetContract as ContractType)\n : targetContract;\n const tx = {\n from: accountAddress,\n to: contractAddress,\n data,\n ...(value && value !== '0' ? { value: value } : {}),\n };\n\n let gasLimit: bigint = BigInt('5000000'); // hardcode to 5m gas limit if fails to get estimate\n\n try {\n const gasEstimate = await signer.estimateGas(tx);\n gasLimit = getGasBuffer(gasEstimate);\n } catch (error) {\n const decodedError = await errorDecoder.decode(error);\n const reason = customReasonMapper(decodedError);\n console.error(\n `Error simulating external transaction with value ${value}, account address ${accountAddress}, reason ${decodedError?.name} ${JSON.stringify(\n decodedError,\n )} ${error}`,\n );\n throw new Error(reason);\n }\n\n if (Object.values(ReyaChainId).includes(chainId as ReyaChainId)) {\n const maxPriorityFeePerGas: bigint = BigInt('0');\n const maxFeePerGas: bigint = BigInt('100000000');\n return { ...tx, gasLimit, maxPriorityFeePerGas, maxFeePerGas };\n }\n\n return { ...tx, gasLimit };\n}\n\nexport async function executeTransaction(\n signer: Signer | JsonRpcSigner,\n data: string,\n value: string,\n chainId: number,\n targetContract: ContractType | string,\n) {\n const txData = await estimateGasExternalChains(\n signer,\n data,\n value,\n chainId,\n targetContract,\n );\n\n try {\n const txResponse = await signer.sendTransaction(txData);\n const txReceipt = await txResponse.wait();\n return txReceipt;\n } catch (error) {\n console.warn(error);\n throw new Error('Transaction Execution Error');\n }\n}\nconst customReasonMapper = ({ name, reason }: DecodedError): string => {\n switch (name) {\n case 'SignatureInvalid':\n return `Invalid signature. Please refresh page and try again`;\n case 'StalePriceDetected':\n return `Price not updated, please try again a bit later`;\n case 'SmallOrderSize':\n return `Order size below minimum`;\n case 'DustyOrderSize':\n return `Order amount is not divisible by trade size spacing`;\n case 'AccountBelowIM':\n return `Account below required margin`;\n default:\n // This handles the non-custom errors\n return reason ?? 'Error executing transaction';\n }\n};\n\nfunction addGasBuffer(estimation: bigint): bigint {\n return (estimation * BigInt(120)) / BigInt(100);\n}\n\nexport async function decodeErrorBytes(returnData: string): Promise<string> {\n const INTERFACE = new Interface(abi);\n const decodedError = INTERFACE.parseError(returnData);\n console.log(decodedError);\n return `${decodedError?.name}: ${decodedError?.args}` || 'Error not found';\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"executeTransaction.d.ts","sourceRoot":"/","sources":["transactions/executeTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,aAAa,EAEb,MAAM,EACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAe/D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,YAAY,GAAG,MAAM,GACpC,OAAO,CACR,WAAW,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CACF,CAUA;AAGD,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,YAAY,GAAG,MAAM,GACpC,OAAO,CACR,WAAW,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CACF,CA2CA;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,WAAW,GAAG,iBAAiB,EACxC,EAAE,EAAE,MAAM,CAAC,kBAAkB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAejB;AAoDD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,YAAY,GAAG,MAAM,6CAkBtC;AAuBD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E"}
1
+ {"version":3,"file":"executeTransaction.d.ts","sourceRoot":"/","sources":["transactions/executeTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,aAAa,EAEb,MAAM,EACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAe/D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,YAAY,GAAG,MAAM,GACpC,OAAO,CACR,WAAW,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CACF,CAUA;AAGD,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,YAAY,GAAG,MAAM,GACpC,OAAO,CACR,WAAW,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CACF,CA2CA;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,WAAW,GAAG,iBAAiB,EACxC,EAAE,EAAE,MAAM,CAAC,kBAAkB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAejB;AAsDD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,YAAY,GAAG,MAAM,6CAkBtC;AAuBD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E"}
@@ -16,6 +16,7 @@ export declare const MA_HEALTH_DANGER_THRESHOLD = 95;
16
16
  export declare const MA_HEALTH_WARNING_THRESHOLD = 80;
17
17
  export declare const SOCKET_BRIDGE_IN_MSG_GAS_LIMIT: bigint;
18
18
  export declare const SOCKET_EMPTY_PAYLOAD_SIZE = 160;
19
+ export declare const applySocketFeeBuffer: (fees: bigint) => bigint;
19
20
  export declare const REYA_DEX_ID = 2;
20
21
  export declare const getPoolAccountId: (isProduction: boolean) => number;
21
22
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"/","sources":["utils/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,IAAI,EACJ,WAAW,EACX,QAAQ,EACT,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,QAAe,CAAC;AACxC,eAAO,MAAM,WAAW,EAAE,MAAa,CAAC;AAExC,eAAO,MAAM,kBAAkB,EAAE,MAAqB,CAAC;AAEvD,eAAO,MAAM,YAAY,iBAA2B,CAAC;AAErD,eAAO,MAAM,mBAAmB,UAmB/B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAwDtC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiBrD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,oBAAoB,EACpB,wBAAwB,CAKzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQlD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAUlD,CAAC;AAEF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,eAAO,MAAM,8BAA8B,QAAqB,CAAC;AACjE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,eAAO,MAAM,gBAAgB,iBAAkB,OAAO,KAAG,MAExD,CAAC"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"/","sources":["utils/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,IAAI,EACJ,WAAW,EACX,QAAQ,EACT,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,QAAe,CAAC;AACxC,eAAO,MAAM,WAAW,EAAE,MAAa,CAAC;AAExC,eAAO,MAAM,kBAAkB,EAAE,MAAqB,CAAC;AAEvD,eAAO,MAAM,YAAY,iBAA2B,CAAC;AAErD,eAAO,MAAM,mBAAmB,UAmB/B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAwDtC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiBrD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,oBAAoB,EACpB,wBAAwB,CAKzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQlD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAUlD,CAAC;AAEF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,eAAO,MAAM,8BAA8B,QAAqB,CAAC;AACjE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,oBAAoB,SAAU,MAAM,KAAG,MAGnD,CAAC;AAEF,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,eAAO,MAAM,gBAAgB,iBAAkB,OAAO,KAAG,MAExD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.getPoolAccountId = exports.REYA_DEX_ID = exports.SOCKET_EMPTY_PAYLOAD_SIZE = exports.SOCKET_BRIDGE_IN_MSG_GAS_LIMIT = exports.MA_HEALTH_WARNING_THRESHOLD = exports.MA_HEALTH_DANGER_THRESHOLD = exports.SPECIAL_TIER_THRESHOLD = exports.TIER_TYPE_MAP = exports.VOLUME_TIER_MAP = exports.TRADING_LOTTERY_BOOST = exports.INSTANT_TRADING_RATE_XP = exports.conditionalOrderTypeNames = exports.RANKS_TRADING = exports.RANKS = exports.WHITELISTED_WALLETS = exports.CHANNEL_NAME = exports.ONE_DAY_IN_SECONDS = exports.API_TIMEOUT = exports.MAX_UINT128 = void 0;
4
+ exports.getPoolAccountId = exports.REYA_DEX_ID = exports.applySocketFeeBuffer = exports.SOCKET_EMPTY_PAYLOAD_SIZE = exports.SOCKET_BRIDGE_IN_MSG_GAS_LIMIT = exports.MA_HEALTH_WARNING_THRESHOLD = exports.MA_HEALTH_DANGER_THRESHOLD = exports.SPECIAL_TIER_THRESHOLD = exports.TIER_TYPE_MAP = exports.VOLUME_TIER_MAP = exports.TRADING_LOTTERY_BOOST = exports.INSTANT_TRADING_RATE_XP = exports.conditionalOrderTypeNames = exports.RANKS_TRADING = exports.RANKS = exports.WHITELISTED_WALLETS = exports.CHANNEL_NAME = exports.ONE_DAY_IN_SECONDS = exports.API_TIMEOUT = exports.MAX_UINT128 = void 0;
5
5
  var types_1 = require("../types");
6
6
  exports.MAX_UINT128 = Math.pow(2, 128) - 1;
7
7
  exports.API_TIMEOUT = 2500;
@@ -134,6 +134,11 @@ exports.MA_HEALTH_DANGER_THRESHOLD = 95;
134
134
  exports.MA_HEALTH_WARNING_THRESHOLD = 80;
135
135
  exports.SOCKET_BRIDGE_IN_MSG_GAS_LIMIT = BigInt('20000000');
136
136
  exports.SOCKET_EMPTY_PAYLOAD_SIZE = 160;
137
+ var applySocketFeeBuffer = function (fees) {
138
+ // apply 10% buffer
139
+ return (fees * BigInt(110)) / BigInt(100);
140
+ };
141
+ exports.applySocketFeeBuffer = applySocketFeeBuffer;
137
142
  exports.REYA_DEX_ID = 2;
138
143
  var getPoolAccountId = function (isProduction) {
139
144
  return isProduction ? 2 : 4;
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"/","sources":["utils/consts.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ConditionalOrderType,\n ConditionalOrderTypeName,\n Rank,\n RankTrading,\n TierType,\n} from '../types';\n\nexport const MAX_UINT128 = 2 ** 128 - 1;\nexport const API_TIMEOUT: number = 2500;\n\nexport const ONE_DAY_IN_SECONDS: number = 60 * 60 * 24;\n\nexport const CHANNEL_NAME = 'redis-pub-sub' as const;\n\nexport const WHITELISTED_WALLETS = [\n '0xE116e2c0c2B0e7cd88060F06e2b2D7981Ef897ef',\n '0xb9db1789e8998eEDB6a53348Fe57Dcd080405cD4',\n '0x9A47F123916fC4745aCC6868D88450DC6056d335',\n '0x8d24B1663E80B4d1aB85e6B710Cd9178e475fd60',\n '0x1A0E5AbE817FDC9C000176183FA54e4B86940a83',\n '0x2b38d2d4FEcf085Eb7552607b5A5D631180015D6',\n '0xFcC63268172cDcf1Ae6D9dC572a10d0De7303C92',\n '0xDa0aA49cA0ca58939b76BaeCDcbfDb04b40CF6e8',\n '0xe33340635435BCA1E7686af89971D23525b2d8F8',\n '0xF8F6B70a36f4398f0853a311dC6699Aba8333Cc1', // internal dev account for testing\n '0x564aa5a2e98bdfcb876e8bcce129c18b6f052a0d',\n '0xaE173a960084903b1d278Ff9E3A81DeD82275556',\n '0x7aa47a9737395ae9e98E8b25aC97ee04b205dC22',\n '0xfd4295c1a0b07e6b706f0ab83dc9eb461b7f17b3', // input from simon\n '0x2fa11ef008c4b585ccf0a76861794ac7ae5a3a67', // brokoli\n '0x423063ed854736ae151B79032e4275AB57245173',\n '0xb89b383C26c2514907b6De5B6df96b2d97f425eC',\n '0x6C51275FD01d5DbD2DA194E92f920f8598306dF2', // Daniel\n];\n\nexport const RANKS: Record<number, Rank> = {\n 0: {\n rankNumber: 0,\n rankName: '',\n rankLetter: '',\n },\n 1: {\n rankNumber: 1,\n rankName: 'Alpha',\n rankLetter: 'α',\n },\n 2: {\n rankNumber: 2,\n rankName: 'Beta',\n rankLetter: 'β',\n },\n 3: {\n rankNumber: 3,\n rankName: 'Gamma',\n rankLetter: 'γ',\n },\n 4: {\n rankNumber: 4,\n rankName: 'Delta',\n rankLetter: 'δ',\n },\n 5: {\n rankNumber: 5,\n rankName: 'Epsilon',\n rankLetter: 'ε',\n },\n 6: {\n rankNumber: 6,\n rankName: 'Zeta',\n rankLetter: 'ζ',\n },\n 7: {\n rankNumber: 7,\n rankName: 'Eta',\n rankLetter: 'η',\n },\n 8: {\n rankNumber: 8,\n rankName: 'Theta',\n rankLetter: 'θ',\n },\n 9: {\n rankNumber: 9,\n rankName: 'Iota',\n rankLetter: 'ι',\n },\n 10: {\n rankNumber: 10,\n rankName: 'Kappa',\n rankLetter: 'κ',\n },\n};\n\nexport const RANKS_TRADING: Record<number, RankTrading> = {\n 0: {\n rankNumber: 0,\n rankName: '',\n },\n 1: {\n rankNumber: 1,\n rankName: 'Heracles',\n },\n 2: {\n rankNumber: 2,\n rankName: 'Perseus',\n },\n 3: {\n rankNumber: 3,\n rankName: 'Achilles',\n },\n};\n\nexport const conditionalOrderTypeNames: Record<\n ConditionalOrderType,\n ConditionalOrderTypeName\n> = {\n [ConditionalOrderType.STOP_LOSS]: 'Stop Loss',\n [ConditionalOrderType.TAKE_PROFIT]: 'Take Profit',\n [ConditionalOrderType.LIMIT_ORDER]: 'Limit Order',\n};\n\nexport const INSTANT_TRADING_RATE_XP = 2;\nexport const TRADING_LOTTERY_BOOST = 10;\n\nexport const VOLUME_TIER_MAP: Record<number, number> = {\n 0: 0, // Tier 0: $0 volume\n 1: 100_000, // Tier 1: $100,000 volume\n 2: 1_000_000, // Tier 2: $1,000,000 volume\n 3: 10_000_000, // Tier 3: $10,000,000 volume\n 4: 100_000_000, // Tier 4: $100,000,000 volume\n 5: 500_000_000, // Tier 5: $500,000,000 volume\n 6: 1_000_000_000, // Tier 6: $1,000,000,000 volume\n};\n\nexport const TIER_TYPE_MAP: Record<number, TierType> = {\n 0: TierType.REGULAR,\n 1: TierType.REGULAR,\n 2: TierType.REGULAR,\n 3: TierType.REGULAR,\n 4: TierType.REGULAR,\n 5: TierType.REGULAR,\n 6: TierType.REGULAR,\n 100: TierType.VIP,\n 101: TierType.VIP,\n};\n\nexport const SPECIAL_TIER_THRESHOLD = 100;\n\nexport const MA_HEALTH_DANGER_THRESHOLD = 95;\nexport const MA_HEALTH_WARNING_THRESHOLD = 80;\n\nexport const SOCKET_BRIDGE_IN_MSG_GAS_LIMIT = BigInt('20000000');\nexport const SOCKET_EMPTY_PAYLOAD_SIZE = 160;\n\nexport const REYA_DEX_ID = 2;\n\nexport const getPoolAccountId = (isProduction: boolean): number => {\n return isProduction ? 2 : 4;\n};\n"]}
1
+ {"version":3,"file":"consts.js","sourceRoot":"/","sources":["utils/consts.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ConditionalOrderType,\n ConditionalOrderTypeName,\n Rank,\n RankTrading,\n TierType,\n} from '../types';\n\nexport const MAX_UINT128 = 2 ** 128 - 1;\nexport const API_TIMEOUT: number = 2500;\n\nexport const ONE_DAY_IN_SECONDS: number = 60 * 60 * 24;\n\nexport const CHANNEL_NAME = 'redis-pub-sub' as const;\n\nexport const WHITELISTED_WALLETS = [\n '0xE116e2c0c2B0e7cd88060F06e2b2D7981Ef897ef',\n '0xb9db1789e8998eEDB6a53348Fe57Dcd080405cD4',\n '0x9A47F123916fC4745aCC6868D88450DC6056d335',\n '0x8d24B1663E80B4d1aB85e6B710Cd9178e475fd60',\n '0x1A0E5AbE817FDC9C000176183FA54e4B86940a83',\n '0x2b38d2d4FEcf085Eb7552607b5A5D631180015D6',\n '0xFcC63268172cDcf1Ae6D9dC572a10d0De7303C92',\n '0xDa0aA49cA0ca58939b76BaeCDcbfDb04b40CF6e8',\n '0xe33340635435BCA1E7686af89971D23525b2d8F8',\n '0xF8F6B70a36f4398f0853a311dC6699Aba8333Cc1', // internal dev account for testing\n '0x564aa5a2e98bdfcb876e8bcce129c18b6f052a0d',\n '0xaE173a960084903b1d278Ff9E3A81DeD82275556',\n '0x7aa47a9737395ae9e98E8b25aC97ee04b205dC22',\n '0xfd4295c1a0b07e6b706f0ab83dc9eb461b7f17b3', // input from simon\n '0x2fa11ef008c4b585ccf0a76861794ac7ae5a3a67', // brokoli\n '0x423063ed854736ae151B79032e4275AB57245173',\n '0xb89b383C26c2514907b6De5B6df96b2d97f425eC',\n '0x6C51275FD01d5DbD2DA194E92f920f8598306dF2', // Daniel\n];\n\nexport const RANKS: Record<number, Rank> = {\n 0: {\n rankNumber: 0,\n rankName: '',\n rankLetter: '',\n },\n 1: {\n rankNumber: 1,\n rankName: 'Alpha',\n rankLetter: 'α',\n },\n 2: {\n rankNumber: 2,\n rankName: 'Beta',\n rankLetter: 'β',\n },\n 3: {\n rankNumber: 3,\n rankName: 'Gamma',\n rankLetter: 'γ',\n },\n 4: {\n rankNumber: 4,\n rankName: 'Delta',\n rankLetter: 'δ',\n },\n 5: {\n rankNumber: 5,\n rankName: 'Epsilon',\n rankLetter: 'ε',\n },\n 6: {\n rankNumber: 6,\n rankName: 'Zeta',\n rankLetter: 'ζ',\n },\n 7: {\n rankNumber: 7,\n rankName: 'Eta',\n rankLetter: 'η',\n },\n 8: {\n rankNumber: 8,\n rankName: 'Theta',\n rankLetter: 'θ',\n },\n 9: {\n rankNumber: 9,\n rankName: 'Iota',\n rankLetter: 'ι',\n },\n 10: {\n rankNumber: 10,\n rankName: 'Kappa',\n rankLetter: 'κ',\n },\n};\n\nexport const RANKS_TRADING: Record<number, RankTrading> = {\n 0: {\n rankNumber: 0,\n rankName: '',\n },\n 1: {\n rankNumber: 1,\n rankName: 'Heracles',\n },\n 2: {\n rankNumber: 2,\n rankName: 'Perseus',\n },\n 3: {\n rankNumber: 3,\n rankName: 'Achilles',\n },\n};\n\nexport const conditionalOrderTypeNames: Record<\n ConditionalOrderType,\n ConditionalOrderTypeName\n> = {\n [ConditionalOrderType.STOP_LOSS]: 'Stop Loss',\n [ConditionalOrderType.TAKE_PROFIT]: 'Take Profit',\n [ConditionalOrderType.LIMIT_ORDER]: 'Limit Order',\n};\n\nexport const INSTANT_TRADING_RATE_XP = 2;\nexport const TRADING_LOTTERY_BOOST = 10;\n\nexport const VOLUME_TIER_MAP: Record<number, number> = {\n 0: 0, // Tier 0: $0 volume\n 1: 100_000, // Tier 1: $100,000 volume\n 2: 1_000_000, // Tier 2: $1,000,000 volume\n 3: 10_000_000, // Tier 3: $10,000,000 volume\n 4: 100_000_000, // Tier 4: $100,000,000 volume\n 5: 500_000_000, // Tier 5: $500,000,000 volume\n 6: 1_000_000_000, // Tier 6: $1,000,000,000 volume\n};\n\nexport const TIER_TYPE_MAP: Record<number, TierType> = {\n 0: TierType.REGULAR,\n 1: TierType.REGULAR,\n 2: TierType.REGULAR,\n 3: TierType.REGULAR,\n 4: TierType.REGULAR,\n 5: TierType.REGULAR,\n 6: TierType.REGULAR,\n 100: TierType.VIP,\n 101: TierType.VIP,\n};\n\nexport const SPECIAL_TIER_THRESHOLD = 100;\n\nexport const MA_HEALTH_DANGER_THRESHOLD = 95;\nexport const MA_HEALTH_WARNING_THRESHOLD = 80;\n\nexport const SOCKET_BRIDGE_IN_MSG_GAS_LIMIT = BigInt('20000000');\nexport const SOCKET_EMPTY_PAYLOAD_SIZE = 160;\nexport const applySocketFeeBuffer = (fees: bigint): bigint => {\n // apply 10% buffer\n return (fees * BigInt(110)) / BigInt(100);\n};\n\nexport const REYA_DEX_ID = 2;\n\nexport const getPoolAccountId = (isProduction: boolean): number => {\n return isProduction ? 2 : 4;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/common",
3
- "version": "0.335.0",
3
+ "version": "0.337.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -44,5 +44,5 @@
44
44
  "generate:coverage-badges": "npx istanbul-badges-readme --silent"
45
45
  },
46
46
  "packageManager": "pnpm@8.3.1",
47
- "gitHead": "af0af5bcedc07c510977e3acec2b7a3a4e13664b"
47
+ "gitHead": "6758c837f027a7b0fab5970c8a7ab3654d71f386"
48
48
  }
@@ -167,7 +167,9 @@ async function estimateGasExternalChains(
167
167
  const decodedError = await errorDecoder.decode(error);
168
168
  const reason = customReasonMapper(decodedError);
169
169
  console.error(
170
- `Error simulating external transaction account address ${accountAddress} reason ${decodedError?.name} ${decodedError} ${error}`,
170
+ `Error simulating external transaction with value ${value}, account address ${accountAddress}, reason ${decodedError?.name} ${JSON.stringify(
171
+ decodedError,
172
+ )} ${error}`,
171
173
  );
172
174
  throw new Error(reason);
173
175
  }
@@ -152,6 +152,10 @@ export const MA_HEALTH_WARNING_THRESHOLD = 80;
152
152
 
153
153
  export const SOCKET_BRIDGE_IN_MSG_GAS_LIMIT = BigInt('20000000');
154
154
  export const SOCKET_EMPTY_PAYLOAD_SIZE = 160;
155
+ export const applySocketFeeBuffer = (fees: bigint): bigint => {
156
+ // apply 10% buffer
157
+ return (fees * BigInt(110)) / BigInt(100);
158
+ };
155
159
 
156
160
  export const REYA_DEX_ID = 2;
157
161