@huuduynvc/permit2-sdk 1.3.1
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/LICENSE +21 -0
- package/README.md +12 -0
- package/dist/allowanceTransfer.d.ts +36 -0
- package/dist/constants.d.ts +13 -0
- package/dist/domain.d.ts +7 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -0
- package/dist/permit2-sdk.cjs.development.js +1566 -0
- package/dist/permit2-sdk.cjs.development.js.map +1 -0
- package/dist/permit2-sdk.cjs.production.min.js +2 -0
- package/dist/permit2-sdk.cjs.production.min.js.map +1 -0
- package/dist/permit2-sdk.esm.js +1546 -0
- package/dist/permit2-sdk.esm.js.map +1 -0
- package/dist/providers/AllowanceProvider.d.ts +17 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/signatureTransfer.d.ts +41 -0
- package/package.json +40 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"permit2-sdk.cjs.development.js","sources":["../src/constants.ts","../src/domain.ts","../src/allowanceTransfer.ts","../src/signatureTransfer.ts","../src/providers/AllowanceProvider.ts"],"sourcesContent":["import { BigNumber } from '@ethersproject/bignumber'\n\n// @deprecated please use permit2Address(chainId: number)\nexport const PERMIT2_ADDRESS = '0x000000000022D473030F116dDEE9F6B43aC78BA3'\n\nexport function permit2Address(chainId?: number): string {\n switch (chainId) {\n case 324:\n return '0x0000000000225e31D15943971F47aD3022F714Fa'\n default:\n return PERMIT2_ADDRESS\n }\n}\n\nexport const MaxUint48 = BigNumber.from('0xffffffffffff')\nexport const MaxUint160 = BigNumber.from('0xffffffffffffffffffffffffffffffffffffffff')\nexport const MaxUint256 = BigNumber.from('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n\n// alias max types for their usages\n// allowance transfer types\nexport const MaxAllowanceTransferAmount = MaxUint160\nexport const MaxAllowanceExpiration = MaxUint48\nexport const MaxOrderedNonce = MaxUint48\n\n// signature transfer types\nexport const MaxSignatureTransferAmount = MaxUint256\nexport const MaxUnorderedNonce = MaxUint256\nexport const MaxSigDeadline = MaxUint256\n\nexport const InstantExpiration: BigNumber = BigNumber.from(0)\n","import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'\n\nconst PERMIT2_DOMAIN_NAME = 'Permit2'\n\nexport function permit2Domain(permit2Address: string, chainId: number): TypedDataDomain {\n return {\n name: PERMIT2_DOMAIN_NAME,\n chainId,\n verifyingContract: permit2Address,\n }\n}\n\nexport type PermitData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: any\n}\n","import invariant from 'tiny-invariant'\nimport { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'\nimport { BigNumberish } from '@ethersproject/bignumber'\nimport { _TypedDataEncoder } from '@ethersproject/hash'\nimport { MaxSigDeadline, MaxOrderedNonce, MaxAllowanceTransferAmount, MaxAllowanceExpiration } from './constants'\nimport { permit2Domain } from './domain'\n\nexport interface PermitDetails {\n token: string\n amount: BigNumberish\n expiration: BigNumberish\n nonce: BigNumberish\n}\n\nexport interface PermitSingle {\n details: PermitDetails\n spender: string\n sigDeadline: BigNumberish\n}\n\nexport interface PermitBatch {\n details: PermitDetails[]\n spender: string\n sigDeadline: BigNumberish\n}\n\nexport type PermitSingleData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitSingle\n}\n\nexport type PermitBatchData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitBatch\n}\n\nconst PERMIT_DETAILS = [\n { name: 'token', type: 'address' },\n { name: 'amount', type: 'uint160' },\n { name: 'expiration', type: 'uint48' },\n { name: 'nonce', type: 'uint48' },\n]\n\nconst PERMIT_TYPES = {\n PermitSingle: [\n { name: 'details', type: 'PermitDetails' },\n { name: 'spender', type: 'address' },\n { name: 'sigDeadline', type: 'uint256' },\n ],\n PermitDetails: PERMIT_DETAILS,\n}\n\nconst PERMIT_BATCH_TYPES = {\n PermitBatch: [\n { name: 'details', type: 'PermitDetails[]' },\n { name: 'spender', type: 'address' },\n { name: 'sigDeadline', type: 'uint256' },\n ],\n PermitDetails: PERMIT_DETAILS,\n}\n\nfunction isPermit(permit: PermitSingle | PermitBatch): permit is PermitSingle {\n return !Array.isArray(permit.details)\n}\n\nexport abstract class AllowanceTransfer {\n /**\n * Cannot be constructed.\n */\n private constructor() {}\n\n // return the data to be sent in a eth_signTypedData RPC call\n // for signing the given permit data\n public static getPermitData(\n permit: PermitSingle | PermitBatch,\n permit2Address: string,\n chainId: number\n ): PermitSingleData | PermitBatchData {\n invariant(MaxSigDeadline.gte(permit.sigDeadline), 'SIG_DEADLINE_OUT_OF_RANGE')\n\n const domain = permit2Domain(permit2Address, chainId)\n if (isPermit(permit)) {\n validatePermitDetails(permit.details)\n return {\n domain,\n types: PERMIT_TYPES,\n values: permit,\n }\n } else {\n permit.details.forEach(validatePermitDetails)\n return {\n domain,\n types: PERMIT_BATCH_TYPES,\n values: permit,\n }\n }\n }\n\n public static hash(permit: PermitSingle | PermitBatch, permit2Address: string, chainId: number): string {\n const { domain, types, values } = AllowanceTransfer.getPermitData(permit, permit2Address, chainId)\n return _TypedDataEncoder.hash(domain, types, values)\n }\n}\n\nfunction validatePermitDetails(details: PermitDetails) {\n invariant(MaxOrderedNonce.gte(details.nonce), 'NONCE_OUT_OF_RANGE')\n invariant(MaxAllowanceTransferAmount.gte(details.amount), 'AMOUNT_OUT_OF_RANGE')\n invariant(MaxAllowanceExpiration.gte(details.expiration), 'EXPIRATION_OUT_OF_RANGE')\n}\n","import invariant from 'tiny-invariant'\nimport { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'\nimport { BigNumberish } from '@ethersproject/bignumber'\nimport { _TypedDataEncoder } from '@ethersproject/hash'\nimport { permit2Domain } from './domain'\nimport { MaxSigDeadline, MaxUnorderedNonce, MaxSignatureTransferAmount } from './constants'\n\nexport interface Witness {\n witness: any\n witnessTypeName: string\n witnessType: Record<string, TypedDataField[]>\n}\n\nexport interface TokenPermissions {\n token: string\n amount: BigNumberish\n}\n\nexport interface PermitTransferFrom {\n permitted: TokenPermissions\n spender: string\n nonce: BigNumberish\n deadline: BigNumberish\n}\n\nexport interface PermitBatchTransferFrom {\n permitted: TokenPermissions[]\n spender: string\n nonce: BigNumberish\n deadline: BigNumberish\n}\n\nexport type PermitTransferFromData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitTransferFrom\n}\n\nexport type PermitBatchTransferFromData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitBatchTransferFrom\n}\n\nconst TOKEN_PERMISSIONS = [\n { name: 'token', type: 'address' },\n { name: 'amount', type: 'uint256' },\n]\n\nconst PERMIT_TRANSFER_FROM_TYPES = {\n PermitTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n}\n\nconst PERMIT_BATCH_TRANSFER_FROM_TYPES = {\n PermitBatchTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions[]' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n}\n\nfunction permitTransferFromWithWitnessType(witness: Witness): Record<string, TypedDataField[]> {\n return {\n PermitWitnessTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'witness', type: witness.witnessTypeName },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n ...witness.witnessType,\n }\n}\n\nfunction permitBatchTransferFromWithWitnessType(witness: Witness): Record<string, TypedDataField[]> {\n return {\n PermitBatchWitnessTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions[]' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'witness', type: witness.witnessTypeName },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n ...witness.witnessType,\n }\n}\n\nfunction isPermitTransferFrom(permit: PermitTransferFrom | PermitBatchTransferFrom): permit is PermitTransferFrom {\n return !Array.isArray(permit.permitted)\n}\n\nexport abstract class SignatureTransfer {\n /**\n * Cannot be constructed.\n */\n private constructor() {}\n\n // return the data to be sent in a eth_signTypedData RPC call\n // for signing the given permit data\n public static getPermitData(\n permit: PermitTransferFrom | PermitBatchTransferFrom,\n permit2Address: string,\n chainId: number,\n witness?: Witness\n ): PermitTransferFromData | PermitBatchTransferFromData {\n invariant(MaxSigDeadline.gte(permit.deadline), 'SIG_DEADLINE_OUT_OF_RANGE')\n invariant(MaxUnorderedNonce.gte(permit.nonce), 'NONCE_OUT_OF_RANGE')\n\n const domain = permit2Domain(permit2Address, chainId)\n if (isPermitTransferFrom(permit)) {\n validateTokenPermissions(permit.permitted)\n const types = witness ? permitTransferFromWithWitnessType(witness) : PERMIT_TRANSFER_FROM_TYPES\n const values = witness ? Object.assign(permit, { witness: witness.witness }) : permit\n return {\n domain,\n types,\n values,\n }\n } else {\n permit.permitted.forEach(validateTokenPermissions)\n const types = witness ? permitBatchTransferFromWithWitnessType(witness) : PERMIT_BATCH_TRANSFER_FROM_TYPES\n const values = witness ? Object.assign(permit, { witness: witness.witness }) : permit\n return {\n domain,\n types,\n values,\n }\n }\n }\n\n public static hash(\n permit: PermitTransferFrom | PermitBatchTransferFrom,\n permit2Address: string,\n chainId: number,\n witness?: Witness\n ): string {\n const { domain, types, values } = SignatureTransfer.getPermitData(permit, permit2Address, chainId, witness)\n return _TypedDataEncoder.hash(domain, types, values)\n }\n}\n\nfunction validateTokenPermissions(permissions: TokenPermissions) {\n invariant(MaxSignatureTransferAmount.gte(permissions.amount), 'AMOUNT_OUT_OF_RANGE')\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { Provider } from '@ethersproject/providers'\nimport Permit2Abi from '../../abis/Permit2.json'\nimport { Contract } from '@ethersproject/contracts'\n\nexport interface AllowanceData {\n amount: BigNumber\n nonce: number\n expiration: number\n}\n\nexport class AllowanceProvider {\n private permit2: Contract\n\n constructor(private provider: Provider, private permit2Address: string) {\n this.permit2 = new Contract(this.permit2Address, Permit2Abi, this.provider)\n }\n\n async getAllowanceData(token: string, owner: string, spender: string): Promise<AllowanceData> {\n return await this.permit2.allowance(owner, token, spender)\n }\n\n async getAllowance(token: string, owner: string, spender: string): Promise<BigNumber> {\n return (await this.getAllowanceData(token, owner, spender)).amount\n }\n\n async getNonce(token: string, owner: string, spender: string): Promise<number> {\n return (await this.getAllowanceData(token, owner, spender)).nonce\n }\n\n async getExpiration(token: string, owner: string, spender: string): Promise<number> {\n return (await this.getAllowanceData(token, owner, spender)).expiration\n }\n}\n"],"names":["PERMIT2_ADDRESS","permit2Address","chainId","MaxUint48","BigNumber","from","MaxUint160","MaxUint256","MaxAllowanceTransferAmount","MaxAllowanceExpiration","MaxOrderedNonce","MaxSignatureTransferAmount","MaxUnorderedNonce","MaxSigDeadline","InstantExpiration","PERMIT2_DOMAIN_NAME","permit2Domain","name","verifyingContract","PERMIT_DETAILS","type","PERMIT_TYPES","PermitSingle","PermitDetails","PERMIT_BATCH_TYPES","PermitBatch","isPermit","permit","Array","isArray","details","AllowanceTransfer","getPermitData","gte","sigDeadline","process","invariant","domain","validatePermitDetails","types","values","forEach","hash","_AllowanceTransfer$ge","_TypedDataEncoder","nonce","amount","expiration","TOKEN_PERMISSIONS","PERMIT_TRANSFER_FROM_TYPES","PermitTransferFrom","TokenPermissions","PERMIT_BATCH_TRANSFER_FROM_TYPES","PermitBatchTransferFrom","permitTransferFromWithWitnessType","witness","_extends","PermitWitnessTransferFrom","witnessTypeName","witnessType","permitBatchTransferFromWithWitnessType","PermitBatchWitnessTransferFrom","isPermitTransferFrom","permitted","SignatureTransfer","deadline","validateTokenPermissions","Object","assign","_SignatureTransfer$ge","permissions","AllowanceProvider","provider","permit2","Contract","Permit2Abi","_proto","prototype","getAllowanceData","_getAllowanceData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","owner","spender","wrap","_callee$","_context","prev","next","allowance","abrupt","sent","stop","_x","_x2","_x3","apply","arguments","getAllowance","_getAllowance","_callee2","_callee2$","_context2","_x4","_x5","_x6","getNonce","_getNonce","_callee3","_callee3$","_context3","_x7","_x8","_x9","getExpiration","_getExpiration","_callee4","_callee4$","_context4","_x10","_x11","_x12"],"mappings":";;;;;;;;;;;AAEA;IACaA,eAAe,GAAG;SAEfC,cAAcA,CAACC,OAAgB;EAC7C,QAAQA,OAAO;IACb,KAAK,GAAG;MACN,OAAO,4CAA4C;IACrD;MACE,OAAOF,eAAe;;AAE5B;IAEaG,SAAS,gBAAGC,mBAAS,CAACC,IAAI,CAAC,gBAAgB;IAC3CC,UAAU,gBAAGF,mBAAS,CAACC,IAAI,CAAC,4CAA4C;IACxEE,UAAU,gBAAGH,mBAAS,CAACC,IAAI,CAAC,oEAAoE;AAE7G;AACA;IACaG,0BAA0B,GAAGF;IAC7BG,sBAAsB,GAAGN;IACzBO,eAAe,GAAGP;AAE/B;IACaQ,0BAA0B,GAAGJ;IAC7BK,iBAAiB,GAAGL;IACpBM,cAAc,GAAGN;IAEjBO,iBAAiB,gBAAcV,mBAAS,CAACC,IAAI,CAAC,CAAC;;AC3B5D,IAAMU,mBAAmB,GAAG,SAAS;AAErC,SAAgBC,aAAaA,CAACf,cAAsB,EAAEC,OAAe;EACnE,OAAO;IACLe,IAAI,EAAEF,mBAAmB;IACzBb,OAAO,EAAPA,OAAO;IACPgB,iBAAiB,EAAEjB;GACpB;AACH;;AC4BA,IAAMkB,cAAc,GAAG,CACrB;EAAEF,IAAI,EAAE,OAAO;EAAEG,IAAI,EAAE;CAAW,EAClC;EAAEH,IAAI,EAAE,QAAQ;EAAEG,IAAI,EAAE;CAAW,EACnC;EAAEH,IAAI,EAAE,YAAY;EAAEG,IAAI,EAAE;CAAU,EACtC;EAAEH,IAAI,EAAE,OAAO;EAAEG,IAAI,EAAE;CAAU,CAClC;AAED,IAAMC,YAAY,GAAG;EACnBC,YAAY,EAAE,CACZ;IAAEL,IAAI,EAAE,SAAS;IAAEG,IAAI,EAAE;GAAiB,EAC1C;IAAEH,IAAI,EAAE,SAAS;IAAEG,IAAI,EAAE;GAAW,EACpC;IAAEH,IAAI,EAAE,aAAa;IAAEG,IAAI,EAAE;GAAW,CACzC;EACDG,aAAa,EAAEJ;CAChB;AAED,IAAMK,kBAAkB,GAAG;EACzBC,WAAW,EAAE,CACX;IAAER,IAAI,EAAE,SAAS;IAAEG,IAAI,EAAE;GAAmB,EAC5C;IAAEH,IAAI,EAAE,SAAS;IAAEG,IAAI,EAAE;GAAW,EACpC;IAAEH,IAAI,EAAE,aAAa;IAAEG,IAAI,EAAE;GAAW,CACzC;EACDG,aAAa,EAAEJ;CAChB;AAED,SAASO,QAAQA,CAACC,MAAkC;EAClD,OAAO,CAACC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,OAAO,CAAC;AACvC;AAEA,IAAsBC,iBAAiB;;;;EAIrC,SAAAA;;;EAGAA,iBAAA,CACcC,aAAa,GAApB,SAAAA,cACLL,MAAkC,EAClC1B,cAAsB,EACtBC,OAAe;IAEf,CAAUW,cAAc,CAACoB,GAAG,CAACN,MAAM,CAACO,WAAW,CAAC,GAAAC,CAAhDC,SAAS,QAAyC,2BAA2B;IAE7E,IAAMC,MAAM,GAAGrB,aAAa,CAACf,cAAc,EAAEC,OAAO,CAAC;IACrD,IAAIwB,QAAQ,CAACC,MAAM,CAAC,EAAE;MACpBW,qBAAqB,CAACX,MAAM,CAACG,OAAO,CAAC;MACrC,OAAO;QACLO,MAAM,EAANA,MAAM;QACNE,KAAK,EAAElB,YAAY;QACnBmB,MAAM,EAAEb;OACT;KACF,MAAM;MACLA,MAAM,CAACG,OAAO,CAACW,OAAO,CAACH,qBAAqB,CAAC;MAC7C,OAAO;QACLD,MAAM,EAANA,MAAM;QACNE,KAAK,EAAEf,kBAAkB;QACzBgB,MAAM,EAAEb;OACT;;GAEJ;EAAAI,iBAAA,CAEaW,IAAI,GAAX,SAAAA,OAAYf,MAAkC,EAAE1B,cAAsB,EAAEC,OAAe;IAC5F,IAAAyC,qBAAA,GAAkCZ,iBAAiB,CAACC,aAAa,CAACL,MAAM,EAAE1B,cAAc,EAAEC,OAAO,CAAC;MAA1FmC,MAAM,GAAAM,qBAAA,CAANN,MAAM;MAAEE,KAAK,GAAAI,qBAAA,CAALJ,KAAK;MAAEC,MAAM,GAAAG,qBAAA,CAANH,MAAM;IAC7B,OAAOI,sBAAiB,CAACF,IAAI,CAACL,MAAM,EAAEE,KAAK,EAAEC,MAAM,CAAC;GACrD;EAAA,OAAAT,iBAAA;AAAA;AAGH,SAASO,qBAAqBA,CAACR,OAAsB;EACnD,CAAUpB,eAAe,CAACuB,GAAG,CAACH,OAAO,CAACe,KAAK,CAAC,GAAAV,CAA5CC,SAAS,QAAqC,oBAAoB;EAClE,CAAU5B,0BAA0B,CAACyB,GAAG,CAACH,OAAO,CAACgB,MAAM,CAAC,GAAAX,CAAxDC,SAAS,QAAiD,qBAAqB;EAC/E,CAAU3B,sBAAsB,CAACwB,GAAG,CAACH,OAAO,CAACiB,UAAU,CAAC,GAAAZ,CAAxDC,SAAS,QAAiD,yBAAyB;AACrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClEA,IAAMY,iBAAiB,GAAG,CACxB;EAAE/B,IAAI,EAAE,OAAO;EAAEG,IAAI,EAAE;CAAW,EAClC;EAAEH,IAAI,EAAE,QAAQ;EAAEG,IAAI,EAAE;CAAW,CACpC;AAED,IAAM6B,0BAA0B,GAAG;EACjCC,kBAAkB,EAAE,CAClB;IAAEjC,IAAI,EAAE,WAAW;IAAEG,IAAI,EAAE;GAAoB,EAC/C;IAAEH,IAAI,EAAE,SAAS;IAAEG,IAAI,EAAE;GAAW,EACpC;IAAEH,IAAI,EAAE,OAAO;IAAEG,IAAI,EAAE;GAAW,EAClC;IAAEH,IAAI,EAAE,UAAU;IAAEG,IAAI,EAAE;GAAW,CACtC;EACD+B,gBAAgB,EAAEH;CACnB;AAED,IAAMI,gCAAgC,GAAG;EACvCC,uBAAuB,EAAE,CACvB;IAAEpC,IAAI,EAAE,WAAW;IAAEG,IAAI,EAAE;GAAsB,EACjD;IAAEH,IAAI,EAAE,SAAS;IAAEG,IAAI,EAAE;GAAW,EACpC;IAAEH,IAAI,EAAE,OAAO;IAAEG,IAAI,EAAE;GAAW,EAClC;IAAEH,IAAI,EAAE,UAAU;IAAEG,IAAI,EAAE;GAAW,CACtC;EACD+B,gBAAgB,EAAEH;CACnB;AAED,SAASM,iCAAiCA,CAACC,OAAgB;EACzD,OAAAC,QAAA;IACEC,yBAAyB,EAAE,CACzB;MAAExC,IAAI,EAAE,WAAW;MAAEG,IAAI,EAAE;KAAoB,EAC/C;MAAEH,IAAI,EAAE,SAAS;MAAEG,IAAI,EAAE;KAAW,EACpC;MAAEH,IAAI,EAAE,OAAO;MAAEG,IAAI,EAAE;KAAW,EAClC;MAAEH,IAAI,EAAE,UAAU;MAAEG,IAAI,EAAE;KAAW,EACrC;MAAEH,IAAI,EAAE,SAAS;MAAEG,IAAI,EAAEmC,OAAO,CAACG;KAAiB,CACnD;IACDP,gBAAgB,EAAEH;KACfO,OAAO,CAACI,WAAW;AAE1B;AAEA,SAASC,sCAAsCA,CAACL,OAAgB;EAC9D,OAAAC,QAAA;IACEK,8BAA8B,EAAE,CAC9B;MAAE5C,IAAI,EAAE,WAAW;MAAEG,IAAI,EAAE;KAAsB,EACjD;MAAEH,IAAI,EAAE,SAAS;MAAEG,IAAI,EAAE;KAAW,EACpC;MAAEH,IAAI,EAAE,OAAO;MAAEG,IAAI,EAAE;KAAW,EAClC;MAAEH,IAAI,EAAE,UAAU;MAAEG,IAAI,EAAE;KAAW,EACrC;MAAEH,IAAI,EAAE,SAAS;MAAEG,IAAI,EAAEmC,OAAO,CAACG;KAAiB,CACnD;IACDP,gBAAgB,EAAEH;KACfO,OAAO,CAACI,WAAW;AAE1B;AAEA,SAASG,oBAAoBA,CAACnC,MAAoD;EAChF,OAAO,CAACC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACoC,SAAS,CAAC;AACzC;AAEA,IAAsBC,iBAAiB;;;;EAIrC,SAAAA;;;EAGAA,iBAAA,CACchC,aAAa,GAApB,SAAAA,cACLL,MAAoD,EACpD1B,cAAsB,EACtBC,OAAe,EACfqD,OAAiB;IAEjB,CAAU1C,cAAc,CAACoB,GAAG,CAACN,MAAM,CAACsC,QAAQ,CAAC,GAAA9B,CAA7CC,SAAS,QAAsC,2BAA2B;IAC1E,CAAUxB,iBAAiB,CAACqB,GAAG,CAACN,MAAM,CAACkB,KAAK,CAAC,GAAAV,CAA7CC,SAAS,QAAsC,oBAAoB;IAEnE,IAAMC,MAAM,GAAGrB,aAAa,CAACf,cAAc,EAAEC,OAAO,CAAC;IACrD,IAAI4D,oBAAoB,CAACnC,MAAM,CAAC,EAAE;MAChCuC,wBAAwB,CAACvC,MAAM,CAACoC,SAAS,CAAC;MAC1C,IAAMxB,KAAK,GAAGgB,OAAO,GAAGD,iCAAiC,CAACC,OAAO,CAAC,GAAGN,0BAA0B;MAC/F,IAAMT,MAAM,GAAGe,OAAO,GAAGY,MAAM,CAACC,MAAM,CAACzC,MAAM,EAAE;QAAE4B,OAAO,EAAEA,OAAO,CAACA;OAAS,CAAC,GAAG5B,MAAM;MACrF,OAAO;QACLU,MAAM,EAANA,MAAM;QACNE,KAAK,EAALA,KAAK;QACLC,MAAM,EAANA;OACD;KACF,MAAM;MACLb,MAAM,CAACoC,SAAS,CAACtB,OAAO,CAACyB,wBAAwB,CAAC;MAClD,IAAM3B,MAAK,GAAGgB,OAAO,GAAGK,sCAAsC,CAACL,OAAO,CAAC,GAAGH,gCAAgC;MAC1G,IAAMZ,OAAM,GAAGe,OAAO,GAAGY,MAAM,CAACC,MAAM,CAACzC,MAAM,EAAE;QAAE4B,OAAO,EAAEA,OAAO,CAACA;OAAS,CAAC,GAAG5B,MAAM;MACrF,OAAO;QACLU,MAAM,EAANA,MAAM;QACNE,KAAK,EAALA,MAAK;QACLC,MAAM,EAANA;OACD;;GAEJ;EAAAwB,iBAAA,CAEatB,IAAI,GAAX,SAAAA,OACLf,MAAoD,EACpD1B,cAAsB,EACtBC,OAAe,EACfqD,OAAiB;IAEjB,IAAAc,qBAAA,GAAkCL,iBAAiB,CAAChC,aAAa,CAACL,MAAM,EAAE1B,cAAc,EAAEC,OAAO,EAAEqD,OAAO,CAAC;MAAnGlB,MAAM,GAAAgC,qBAAA,CAANhC,MAAM;MAAEE,KAAK,GAAA8B,qBAAA,CAAL9B,KAAK;MAAEC,MAAM,GAAA6B,qBAAA,CAAN7B,MAAM;IAC7B,OAAOI,sBAAiB,CAACF,IAAI,CAACL,MAAM,EAAEE,KAAK,EAAEC,MAAM,CAAC;GACrD;EAAA,OAAAwB,iBAAA;AAAA;AAGH,SAASE,wBAAwBA,CAACI,WAA6B;EAC7D,CAAU3D,0BAA0B,CAACsB,GAAG,CAACqC,WAAW,CAACxB,MAAM,CAAC,GAAAX,CAA5DC,SAAS,QAAqD,qBAAqB;AACrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC9IamC,iBAAiB;EAG5B,SAAAA,kBAAoBC,QAAkB,EAAUvE,cAAsB;IAAlD,aAAQ,GAARuE,QAAQ;IAAoB,mBAAc,GAAdvE,cAAc;IAC5D,IAAI,CAACwE,OAAO,GAAG,IAAIC,kBAAQ,CAAC,IAAI,CAACzE,cAAc,EAAE0E,UAAU,EAAE,IAAI,CAACH,QAAQ,CAAC;;EAC5E,IAAAI,MAAA,GAAAL,iBAAA,CAAAM,SAAA;EAAAD,MAAA,CAEKE,gBAAgB;IAAA,IAAAC,iBAAA,gBAAAC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAtB,SAAAC,QAAuBC,KAAa,EAAEC,KAAa,EAAEC,OAAe;MAAA,OAAAL,mBAAA,GAAAM,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACrD,IAAI,CAAClB,OAAO,CAACmB,SAAS,CAACP,KAAK,EAAED,KAAK,EAAEE,OAAO,CAAC;UAAA;YAAA,OAAAG,QAAA,CAAAI,MAAA,WAAAJ,QAAA,CAAAK,IAAA;UAAA;UAAA;YAAA,OAAAL,QAAA,CAAAM,IAAA;;SAAAZ,OAAA;KAC3D;IAAA,SAAAL,iBAAAkB,EAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAnB,iBAAA,CAAAoB,KAAA,OAAAC,SAAA;;IAAA,OAAAtB,gBAAA;;EAAAF,MAAA,CAEKyB,YAAY;IAAA,IAAAC,aAAA,gBAAAtB,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAlB,SAAAqB,SAAmBnB,KAAa,EAAEC,KAAa,EAAEC,OAAe;MAAA,OAAAL,mBAAA,GAAAM,IAAA,UAAAiB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAf,IAAA,GAAAe,SAAA,CAAAd,IAAA;UAAA;YAAAc,SAAA,CAAAd,IAAA;YAAA,OAChD,IAAI,CAACb,gBAAgB,CAACM,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;UAAA;YAAA,OAAAmB,SAAA,CAAAZ,MAAA,WAAAY,SAAA,CAAAX,IAAA,CAAEhD,MAAM;UAAA;UAAA;YAAA,OAAA2D,SAAA,CAAAV,IAAA;;SAAAQ,QAAA;KACnE;IAAA,SAAAF,aAAAK,GAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAN,aAAA,CAAAH,KAAA,OAAAC,SAAA;;IAAA,OAAAC,YAAA;;EAAAzB,MAAA,CAEKiC,QAAQ;IAAA,IAAAC,SAAA,gBAAA9B,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAd,SAAA6B,SAAe3B,KAAa,EAAEC,KAAa,EAAEC,OAAe;MAAA,OAAAL,mBAAA,GAAAM,IAAA,UAAAyB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;UAAA;YAAAsB,SAAA,CAAAtB,IAAA;YAAA,OAC5C,IAAI,CAACb,gBAAgB,CAACM,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;UAAA;YAAA,OAAA2B,SAAA,CAAApB,MAAA,WAAAoB,SAAA,CAAAnB,IAAA,CAAEjD,KAAK;UAAA;UAAA;YAAA,OAAAoE,SAAA,CAAAlB,IAAA;;SAAAgB,QAAA;KAClE;IAAA,SAAAF,SAAAK,GAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAN,SAAA,CAAAX,KAAA,OAAAC,SAAA;;IAAA,OAAAS,QAAA;;EAAAjC,MAAA,CAEKyC,aAAa;IAAA,IAAAC,cAAA,gBAAAtC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAnB,SAAAqC,SAAoBnC,KAAa,EAAEC,KAAa,EAAEC,OAAe;MAAA,OAAAL,mBAAA,GAAAM,IAAA,UAAAiC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;UAAA;YAAA8B,SAAA,CAAA9B,IAAA;YAAA,OACjD,IAAI,CAACb,gBAAgB,CAACM,KAAK,EAAEC,KAAK,EAAEC,OAAO,CAAC;UAAA;YAAA,OAAAmC,SAAA,CAAA5B,MAAA,WAAA4B,SAAA,CAAA3B,IAAA,CAAE/C,UAAU;UAAA;UAAA;YAAA,OAAA0E,SAAA,CAAA1B,IAAA;;SAAAwB,QAAA;KACvE;IAAA,SAAAF,cAAAK,IAAA,EAAAC,IAAA,EAAAC,IAAA;MAAA,OAAAN,cAAA,CAAAnB,KAAA,OAAAC,SAAA;;IAAA,OAAAiB,aAAA;;EAAA,OAAA9C,iBAAA;AAAA;;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=(e=require("tiny-invariant"))&&"object"==typeof e&&"default"in e?e.default:e,n=require("@ethersproject/hash"),r=require("@ethersproject/bignumber"),a=require("@ethersproject/contracts"),i=r.BigNumber.from("0xffffffffffff"),s=r.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffff"),o=r.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),p=s,u=i,y=i,d=o,l=o,m=o,c=r.BigNumber.from(0);function f(e,t){return{name:"Permit2",chainId:t,verifyingContract:e}}var h=[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}],T={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:h},v={PermitBatch:[{name:"details",type:"PermitDetails[]"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:h},g=function(){function e(){}return e.getPermitData=function(e,n,r){m.gte(e.sigDeadline)||t(!1);var a=f(n,r);return function(e){return!Array.isArray(e.details)}(e)?(w(e.details),{domain:a,types:T,values:e}):(e.details.forEach(w),{domain:a,types:v,values:e})},e.hash=function(t,r,a){var i=e.getPermitData(t,r,a);return n._TypedDataEncoder.hash(i.domain,i.types,i.values)},e}();function w(e){y.gte(e.nonce)||t(!1),p.gte(e.amount)||t(!1),u.gte(e.expiration)||t(!1)}function x(){x=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",p=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function y(e,t,n,r){var i=Object.create((t&&t.prototype instanceof h?t:h).prototype),s=new L(r||[]);return a(i,"_invoke",{value:E(e,n,s)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=y;var l="suspendedStart",m="executing",c="completed",f={};function h(){}function T(){}function v(){}var g={};u(g,s,(function(){return this}));var w=Object.getPrototypeOf,b=w&&w(w(N([])));b&&b!==n&&r.call(b,s)&&(g=b);var P=v.prototype=h.prototype=Object.create(g);function k(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function n(a,i,s,o){var p=d(e[a],e,i);if("throw"!==p.type){var u=p.arg,y=u.value;return y&&"object"==typeof y&&r.call(y,"__await")?t.resolve(y.__await).then((function(e){n("next",e,s,o)}),(function(e){n("throw",e,s,o)})):t.resolve(y).then((function(e){u.value=e,s(u)}),(function(e){return n("throw",e,s,o)}))}o(p.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function E(t,n,r){var a=l;return function(i,s){if(a===m)throw new Error("Generator is already running");if(a===c){if("throw"===i)throw s;return{value:e,done:!0}}for(r.method=i,r.arg=s;;){var o=r.delegate;if(o){var p=D(o,r);if(p){if(p===f)continue;return p}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===l)throw a=c,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=m;var u=d(t,n,r);if("normal"===u.type){if(a=r.done?c:"suspendedYield",u.arg===f)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=c,r.method="throw",r.arg=u.arg)}}}function D(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,D(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),f;var i=d(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,f;var s=i.arg;return s?s.done?(n[t.resultName]=s.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,f):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function N(t){if(t||""===t){var n=t[s];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return T.prototype=v,a(P,"constructor",{value:v,configurable:!0}),a(v,"constructor",{value:T,configurable:!0}),T.displayName=u(v,p,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===T||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,u(e,p,"GeneratorFunction")),e.prototype=Object.create(P),e},t.awrap=function(e){return{__await:e}},k(A.prototype),u(A.prototype,o,(function(){return this})),t.AsyncIterator=A,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var s=new A(y(e,n,r,a),i);return t.isGeneratorFunction(n)?s:s.next().then((function(e){return e.done?e.value:s.next()}))},k(P),u(P,p,"Generator"),u(P,s,(function(){return this})),u(P,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=N,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(I),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return o.type="throw",o.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var s=this.tryEntries[i],o=s.completion;if("root"===s.tryLoc)return a("end");if(s.tryLoc<=this.prev){var p=r.call(s,"catchLoc"),u=r.call(s,"finallyLoc");if(p&&u){if(this.prev<s.catchLoc)return a(s.catchLoc,!0);if(this.prev<s.finallyLoc)return a(s.finallyLoc)}else if(p){if(this.prev<s.catchLoc)return a(s.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return a(s.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=e,s.arg=t,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),I(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;I(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:N(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),f}},t}function b(e,t,n,r,a,i,s){try{var o=e[i](s),p=o.value}catch(e){return void n(e)}o.done?t(p):Promise.resolve(p).then(r,a)}function P(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function s(e){b(i,r,a,s,o,"next",e)}function o(e){b(i,r,a,s,o,"throw",e)}s(void 0)}))}}function k(){return(k=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var A=[{name:"token",type:"address"},{name:"amount",type:"uint256"}],E={PermitTransferFrom:[{name:"permitted",type:"TokenPermissions"},{name:"spender",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}],TokenPermissions:A},D={PermitBatchTransferFrom:[{name:"permitted",type:"TokenPermissions[]"},{name:"spender",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}],TokenPermissions:A},S=function(){function e(){}return e.getPermitData=function(e,n,r,a){m.gte(e.deadline)||t(!1),l.gte(e.nonce)||t(!1);var i=f(n,r);return function(e){return!Array.isArray(e.permitted)}(e)?(I(e.permitted),{domain:i,types:a?function(e){return k({PermitWitnessTransferFrom:[{name:"permitted",type:"TokenPermissions"},{name:"spender",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"witness",type:e.witnessTypeName}],TokenPermissions:A},e.witnessType)}(a):E,values:a?Object.assign(e,{witness:a.witness}):e}):(e.permitted.forEach(I),{domain:i,types:a?function(e){return k({PermitBatchWitnessTransferFrom:[{name:"permitted",type:"TokenPermissions[]"},{name:"spender",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"witness",type:e.witnessTypeName}],TokenPermissions:A},e.witnessType)}(a):D,values:a?Object.assign(e,{witness:a.witness}):e})},e.hash=function(t,r,a,i){var s=e.getPermitData(t,r,a,i);return n._TypedDataEncoder.hash(s.domain,s.types,s.values)},e}();function I(e){d.gte(e.amount)||t(!1)}var L=[{inputs:[],name:"AllowanceExpired",type:"error"},{inputs:[],name:"ExcessiveInvalidation",type:"error"},{inputs:[],name:"InsufficientAllowance",type:"error"},{inputs:[],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[],name:"NotSpender",type:"error"},{inputs:[],name:"SignatureExpired",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"address",name:"spender",type:"address"}],name:"Lockdown",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint48",name:"newNonce",type:"uint48"},{indexed:!1,internalType:"uint48",name:"oldNonce",type:"uint48"}],name:"NonceInvalidation",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"uint256",name:"word",type:"uint256"},{indexed:!1,internalType:"uint256",name:"mask",type:"uint256"}],name:"UnorderedNonceInvalidation",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint48",name:"newNonce",type:"uint48"}],name:"invalidateNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"wordPos",type:"uint256"},{internalType:"uint256",name:"mask",type:"uint256"}],name:"invalidateUnorderedNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"}],internalType:"struct IAllowanceTransfer.TokenSpenderPair[]",name:"approvals",type:"tuple[]"}],name:"lockdown",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"nonceBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails[]",name:"details",type:"tuple[]"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitBatch",name:"permitBatch",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails",name:"details",type:"tuple"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitSingle",name:"permitSingle",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeName",type:"string"},{internalType:"string",name:"witnessType",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeName",type:"string"},{internalType:"string",name:"witnessType",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"to",type:"address"}],internalType:"struct IAllowanceTransfer.AllowanceTransferDetails[]",name:"transferDetails",type:"tuple[]"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];exports.AllowanceProvider=function(){function e(e,t){this.provider=e,this.permit2Address=t,this.permit2=new a.Contract(this.permit2Address,L,this.provider)}var t=e.prototype;return t.getAllowanceData=function(){var e=P(x().mark((function e(t,n,r){return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.permit2.allowance(n,t,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.getAllowance=function(){var e=P(x().mark((function e(t,n,r){return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAllowanceData(t,n,r);case 2:return e.abrupt("return",e.sent.amount);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.getNonce=function(){var e=P(x().mark((function e(t,n,r){return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAllowanceData(t,n,r);case 2:return e.abrupt("return",e.sent.nonce);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.getExpiration=function(){var e=P(x().mark((function e(t,n,r){return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAllowanceData(t,n,r);case 2:return e.abrupt("return",e.sent.expiration);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),e}(),exports.AllowanceTransfer=g,exports.InstantExpiration=c,exports.MaxAllowanceExpiration=u,exports.MaxAllowanceTransferAmount=p,exports.MaxOrderedNonce=y,exports.MaxSigDeadline=m,exports.MaxSignatureTransferAmount=d,exports.MaxUint160=s,exports.MaxUint256=o,exports.MaxUint48=i,exports.MaxUnorderedNonce=l,exports.PERMIT2_ADDRESS="0x000000000022D473030F116dDEE9F6B43aC78BA3",exports.SignatureTransfer=S,exports.permit2Address=function(e){switch(e){case 324:return"0x0000000000225e31D15943971F47aD3022F714Fa";default:return"0x000000000022D473030F116dDEE9F6B43aC78BA3"}};
|
2
|
+
//# sourceMappingURL=permit2-sdk.cjs.production.min.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"permit2-sdk.cjs.production.min.js","sources":["../src/constants.ts","../src/domain.ts","../src/allowanceTransfer.ts","../src/signatureTransfer.ts","../src/providers/AllowanceProvider.ts"],"sourcesContent":["import { BigNumber } from '@ethersproject/bignumber'\n\n// @deprecated please use permit2Address(chainId: number)\nexport const PERMIT2_ADDRESS = '0x000000000022D473030F116dDEE9F6B43aC78BA3'\n\nexport function permit2Address(chainId?: number): string {\n switch (chainId) {\n case 324:\n return '0x0000000000225e31D15943971F47aD3022F714Fa'\n default:\n return PERMIT2_ADDRESS\n }\n}\n\nexport const MaxUint48 = BigNumber.from('0xffffffffffff')\nexport const MaxUint160 = BigNumber.from('0xffffffffffffffffffffffffffffffffffffffff')\nexport const MaxUint256 = BigNumber.from('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n\n// alias max types for their usages\n// allowance transfer types\nexport const MaxAllowanceTransferAmount = MaxUint160\nexport const MaxAllowanceExpiration = MaxUint48\nexport const MaxOrderedNonce = MaxUint48\n\n// signature transfer types\nexport const MaxSignatureTransferAmount = MaxUint256\nexport const MaxUnorderedNonce = MaxUint256\nexport const MaxSigDeadline = MaxUint256\n\nexport const InstantExpiration: BigNumber = BigNumber.from(0)\n","import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'\n\nconst PERMIT2_DOMAIN_NAME = 'Permit2'\n\nexport function permit2Domain(permit2Address: string, chainId: number): TypedDataDomain {\n return {\n name: PERMIT2_DOMAIN_NAME,\n chainId,\n verifyingContract: permit2Address,\n }\n}\n\nexport type PermitData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: any\n}\n","import invariant from 'tiny-invariant'\nimport { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'\nimport { BigNumberish } from '@ethersproject/bignumber'\nimport { _TypedDataEncoder } from '@ethersproject/hash'\nimport { MaxSigDeadline, MaxOrderedNonce, MaxAllowanceTransferAmount, MaxAllowanceExpiration } from './constants'\nimport { permit2Domain } from './domain'\n\nexport interface PermitDetails {\n token: string\n amount: BigNumberish\n expiration: BigNumberish\n nonce: BigNumberish\n}\n\nexport interface PermitSingle {\n details: PermitDetails\n spender: string\n sigDeadline: BigNumberish\n}\n\nexport interface PermitBatch {\n details: PermitDetails[]\n spender: string\n sigDeadline: BigNumberish\n}\n\nexport type PermitSingleData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitSingle\n}\n\nexport type PermitBatchData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitBatch\n}\n\nconst PERMIT_DETAILS = [\n { name: 'token', type: 'address' },\n { name: 'amount', type: 'uint160' },\n { name: 'expiration', type: 'uint48' },\n { name: 'nonce', type: 'uint48' },\n]\n\nconst PERMIT_TYPES = {\n PermitSingle: [\n { name: 'details', type: 'PermitDetails' },\n { name: 'spender', type: 'address' },\n { name: 'sigDeadline', type: 'uint256' },\n ],\n PermitDetails: PERMIT_DETAILS,\n}\n\nconst PERMIT_BATCH_TYPES = {\n PermitBatch: [\n { name: 'details', type: 'PermitDetails[]' },\n { name: 'spender', type: 'address' },\n { name: 'sigDeadline', type: 'uint256' },\n ],\n PermitDetails: PERMIT_DETAILS,\n}\n\nfunction isPermit(permit: PermitSingle | PermitBatch): permit is PermitSingle {\n return !Array.isArray(permit.details)\n}\n\nexport abstract class AllowanceTransfer {\n /**\n * Cannot be constructed.\n */\n private constructor() {}\n\n // return the data to be sent in a eth_signTypedData RPC call\n // for signing the given permit data\n public static getPermitData(\n permit: PermitSingle | PermitBatch,\n permit2Address: string,\n chainId: number\n ): PermitSingleData | PermitBatchData {\n invariant(MaxSigDeadline.gte(permit.sigDeadline), 'SIG_DEADLINE_OUT_OF_RANGE')\n\n const domain = permit2Domain(permit2Address, chainId)\n if (isPermit(permit)) {\n validatePermitDetails(permit.details)\n return {\n domain,\n types: PERMIT_TYPES,\n values: permit,\n }\n } else {\n permit.details.forEach(validatePermitDetails)\n return {\n domain,\n types: PERMIT_BATCH_TYPES,\n values: permit,\n }\n }\n }\n\n public static hash(permit: PermitSingle | PermitBatch, permit2Address: string, chainId: number): string {\n const { domain, types, values } = AllowanceTransfer.getPermitData(permit, permit2Address, chainId)\n return _TypedDataEncoder.hash(domain, types, values)\n }\n}\n\nfunction validatePermitDetails(details: PermitDetails) {\n invariant(MaxOrderedNonce.gte(details.nonce), 'NONCE_OUT_OF_RANGE')\n invariant(MaxAllowanceTransferAmount.gte(details.amount), 'AMOUNT_OUT_OF_RANGE')\n invariant(MaxAllowanceExpiration.gte(details.expiration), 'EXPIRATION_OUT_OF_RANGE')\n}\n","import invariant from 'tiny-invariant'\nimport { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'\nimport { BigNumberish } from '@ethersproject/bignumber'\nimport { _TypedDataEncoder } from '@ethersproject/hash'\nimport { permit2Domain } from './domain'\nimport { MaxSigDeadline, MaxUnorderedNonce, MaxSignatureTransferAmount } from './constants'\n\nexport interface Witness {\n witness: any\n witnessTypeName: string\n witnessType: Record<string, TypedDataField[]>\n}\n\nexport interface TokenPermissions {\n token: string\n amount: BigNumberish\n}\n\nexport interface PermitTransferFrom {\n permitted: TokenPermissions\n spender: string\n nonce: BigNumberish\n deadline: BigNumberish\n}\n\nexport interface PermitBatchTransferFrom {\n permitted: TokenPermissions[]\n spender: string\n nonce: BigNumberish\n deadline: BigNumberish\n}\n\nexport type PermitTransferFromData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitTransferFrom\n}\n\nexport type PermitBatchTransferFromData = {\n domain: TypedDataDomain\n types: Record<string, TypedDataField[]>\n values: PermitBatchTransferFrom\n}\n\nconst TOKEN_PERMISSIONS = [\n { name: 'token', type: 'address' },\n { name: 'amount', type: 'uint256' },\n]\n\nconst PERMIT_TRANSFER_FROM_TYPES = {\n PermitTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n}\n\nconst PERMIT_BATCH_TRANSFER_FROM_TYPES = {\n PermitBatchTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions[]' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n}\n\nfunction permitTransferFromWithWitnessType(witness: Witness): Record<string, TypedDataField[]> {\n return {\n PermitWitnessTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'witness', type: witness.witnessTypeName },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n ...witness.witnessType,\n }\n}\n\nfunction permitBatchTransferFromWithWitnessType(witness: Witness): Record<string, TypedDataField[]> {\n return {\n PermitBatchWitnessTransferFrom: [\n { name: 'permitted', type: 'TokenPermissions[]' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'witness', type: witness.witnessTypeName },\n ],\n TokenPermissions: TOKEN_PERMISSIONS,\n ...witness.witnessType,\n }\n}\n\nfunction isPermitTransferFrom(permit: PermitTransferFrom | PermitBatchTransferFrom): permit is PermitTransferFrom {\n return !Array.isArray(permit.permitted)\n}\n\nexport abstract class SignatureTransfer {\n /**\n * Cannot be constructed.\n */\n private constructor() {}\n\n // return the data to be sent in a eth_signTypedData RPC call\n // for signing the given permit data\n public static getPermitData(\n permit: PermitTransferFrom | PermitBatchTransferFrom,\n permit2Address: string,\n chainId: number,\n witness?: Witness\n ): PermitTransferFromData | PermitBatchTransferFromData {\n invariant(MaxSigDeadline.gte(permit.deadline), 'SIG_DEADLINE_OUT_OF_RANGE')\n invariant(MaxUnorderedNonce.gte(permit.nonce), 'NONCE_OUT_OF_RANGE')\n\n const domain = permit2Domain(permit2Address, chainId)\n if (isPermitTransferFrom(permit)) {\n validateTokenPermissions(permit.permitted)\n const types = witness ? permitTransferFromWithWitnessType(witness) : PERMIT_TRANSFER_FROM_TYPES\n const values = witness ? Object.assign(permit, { witness: witness.witness }) : permit\n return {\n domain,\n types,\n values,\n }\n } else {\n permit.permitted.forEach(validateTokenPermissions)\n const types = witness ? permitBatchTransferFromWithWitnessType(witness) : PERMIT_BATCH_TRANSFER_FROM_TYPES\n const values = witness ? Object.assign(permit, { witness: witness.witness }) : permit\n return {\n domain,\n types,\n values,\n }\n }\n }\n\n public static hash(\n permit: PermitTransferFrom | PermitBatchTransferFrom,\n permit2Address: string,\n chainId: number,\n witness?: Witness\n ): string {\n const { domain, types, values } = SignatureTransfer.getPermitData(permit, permit2Address, chainId, witness)\n return _TypedDataEncoder.hash(domain, types, values)\n }\n}\n\nfunction validateTokenPermissions(permissions: TokenPermissions) {\n invariant(MaxSignatureTransferAmount.gte(permissions.amount), 'AMOUNT_OUT_OF_RANGE')\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { Provider } from '@ethersproject/providers'\nimport Permit2Abi from '../../abis/Permit2.json'\nimport { Contract } from '@ethersproject/contracts'\n\nexport interface AllowanceData {\n amount: BigNumber\n nonce: number\n expiration: number\n}\n\nexport class AllowanceProvider {\n private permit2: Contract\n\n constructor(private provider: Provider, private permit2Address: string) {\n this.permit2 = new Contract(this.permit2Address, Permit2Abi, this.provider)\n }\n\n async getAllowanceData(token: string, owner: string, spender: string): Promise<AllowanceData> {\n return await this.permit2.allowance(owner, token, spender)\n }\n\n async getAllowance(token: string, owner: string, spender: string): Promise<BigNumber> {\n return (await this.getAllowanceData(token, owner, spender)).amount\n }\n\n async getNonce(token: string, owner: string, spender: string): Promise<number> {\n return (await this.getAllowanceData(token, owner, spender)).nonce\n }\n\n async getExpiration(token: string, owner: string, spender: string): Promise<number> {\n return (await this.getAllowanceData(token, owner, spender)).expiration\n }\n}\n"],"names":["MaxUint48","BigNumber","from","MaxUint160","MaxUint256","MaxAllowanceTransferAmount","MaxAllowanceExpiration","MaxOrderedNonce","MaxSignatureTransferAmount","MaxUnorderedNonce","MaxSigDeadline","InstantExpiration","permit2Domain","permit2Address","chainId","name","verifyingContract","PERMIT_DETAILS","type","PERMIT_TYPES","PermitSingle","PermitDetails","PERMIT_BATCH_TYPES","PermitBatch","AllowanceTransfer","getPermitData","permit","gte","sigDeadline","invariant","domain","Array","isArray","details","isPermit","validatePermitDetails","types","values","forEach","hash","_AllowanceTransfer$ge","_TypedDataEncoder","nonce","amount","expiration","TOKEN_PERMISSIONS","PERMIT_TRANSFER_FROM_TYPES","PermitTransferFrom","TokenPermissions","PERMIT_BATCH_TRANSFER_FROM_TYPES","PermitBatchTransferFrom","SignatureTransfer","witness","deadline","permitted","isPermitTransferFrom","validateTokenPermissions","_extends","PermitWitnessTransferFrom","witnessTypeName","witnessType","permitTransferFromWithWitnessType","Object","assign","PermitBatchWitnessTransferFrom","permitBatchTransferFromWithWitnessType","_SignatureTransfer$ge","permissions","AllowanceProvider","provider","this","permit2","Contract","Permit2Abi","_proto","prototype","getAllowanceData","_getAllowanceData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","owner","spender","wrap","_context","prev","next","allowance","abrupt","sent","stop","_x","_x2","_x3","apply","arguments","getAllowance","_getAllowance","_callee2","_context2","_x4","_x5","_x6","getNonce","_getNonce","_callee3","_context3","_x7","_x8","_x9","getExpiration","_getExpiration","_callee4","_context4","_x10","_x11","_x12"],"mappings":"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"}
|