UNPKG

@openocean.finance/widget-sdk

Version:

OpenOcean Any-to-Any Cross-Chain-Swap SDK

44 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signPermit2Message = signPermit2Message; const viem_1 = require("viem"); const actions_1 = require("viem/actions"); const utils_1 = require("viem/utils"); const getPermitTransferFromValues_js_1 = require("./getPermitTransferFromValues.js"); const signatureTransfer_js_1 = require("./signatureTransfer.js"); async function signPermit2Message(params) { const { client, chain, tokenAddress, amount, data, witness } = params; const permitTransferFrom = await (0, getPermitTransferFromValues_js_1.getPermitTransferFromValues)(client, chain, tokenAddress, amount); const _witness = witness ? { witness: { diamondAddress: chain.diamondAddress, diamondCalldataHash: (0, viem_1.keccak256)(data), }, witnessTypeName: 'OpenOceanCall', witnessType: { OpenOceanCall: [ { name: 'diamondAddress', type: 'address' }, { name: 'diamondCalldataHash', type: 'bytes32' }, ], }, } : undefined; const permitData = (0, signatureTransfer_js_1.getPermitData)(permitTransferFrom, chain.permit2, chain.id, _witness); const primaryType = witness ? 'PermitWitnessTransferFrom' : 'PermitTransferFrom'; const signature = await (0, utils_1.getAction)(client, actions_1.signTypedData, 'signTypedData')({ account: client.account, primaryType, domain: permitData.domain, types: permitData.types, message: permitData.message, }); return { ...permitData, primaryType, signature, }; } //# sourceMappingURL=signPermit2Message.js.map