@paulstinchcombe/gasless-nft-tx 0.22.2 → 0.22.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/permit.d.ts.map +1 -1
- package/dist/permit.js +28 -1
- package/dist/permit.js.map +1 -1
- package/package.json +1 -1
package/dist/permit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit.d.ts","sourceRoot":"","sources":["../src/permit.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,YAAY,EAIjB,MAAM,MAAM,CAAC;AAGd,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"permit.d.ts","sourceRoot":"","sources":["../src/permit.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,YAAY,EAIjB,MAAM,MAAM,CAAC;AAGd,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAyOD,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAS7G"}
|
package/dist/permit.js
CHANGED
|
@@ -18,6 +18,13 @@ const EIP2612_TOKEN_ABI = [
|
|
|
18
18
|
outputs: [{ name: '', type: 'uint256' }],
|
|
19
19
|
stateMutability: 'view',
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
type: 'function',
|
|
23
|
+
name: 'version',
|
|
24
|
+
inputs: [],
|
|
25
|
+
outputs: [{ name: '', type: 'string' }],
|
|
26
|
+
stateMutability: 'view',
|
|
27
|
+
},
|
|
21
28
|
{
|
|
22
29
|
type: 'function',
|
|
23
30
|
name: 'permit',
|
|
@@ -92,6 +99,22 @@ function ensureUserAccountMatchesOwner(owner, userPrivateKey) {
|
|
|
92
99
|
}
|
|
93
100
|
return account;
|
|
94
101
|
}
|
|
102
|
+
async function resolvePermitDomainVersion(params) {
|
|
103
|
+
try {
|
|
104
|
+
const version = await params.publicClient.readContract({
|
|
105
|
+
address: params.paymentToken,
|
|
106
|
+
abi: EIP2612_TOKEN_ABI,
|
|
107
|
+
functionName: 'version',
|
|
108
|
+
});
|
|
109
|
+
if (typeof version === 'string' && version.length > 0) {
|
|
110
|
+
return version;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// Fall back to EIP-2612 default domain version used by many tokens.
|
|
115
|
+
}
|
|
116
|
+
return '1';
|
|
117
|
+
}
|
|
95
118
|
async function buildEip2612PermitCall(params) {
|
|
96
119
|
const account = ensureUserAccountMatchesOwner(params.owner, params.userPrivateKey);
|
|
97
120
|
const tokenName = await params.publicClient.readContract({
|
|
@@ -105,11 +128,15 @@ async function buildEip2612PermitCall(params) {
|
|
|
105
128
|
functionName: 'nonces',
|
|
106
129
|
args: [params.owner],
|
|
107
130
|
});
|
|
131
|
+
const domainVersion = await resolvePermitDomainVersion({
|
|
132
|
+
publicClient: params.publicClient,
|
|
133
|
+
paymentToken: params.paymentToken,
|
|
134
|
+
});
|
|
108
135
|
const deadline = toDeadline(params.deadlineSeconds);
|
|
109
136
|
const signature = await account.signTypedData({
|
|
110
137
|
domain: {
|
|
111
138
|
name: tokenName,
|
|
112
|
-
version:
|
|
139
|
+
version: domainVersion,
|
|
113
140
|
chainId: params.chainId,
|
|
114
141
|
verifyingContract: params.paymentToken,
|
|
115
142
|
},
|
package/dist/permit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit.js","sourceRoot":"","sources":["../src/permit.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"permit.js","sourceRoot":"","sources":["../src/permit.ts"],"names":[],"mappings":";;AAqQA,wDASC;AA9QD,+BAOc;AACd,4CAAoD;AAsBpD,MAAM,iBAAiB,GAAG;IACzB;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,eAAe,EAAE,MAAM;KACvB;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACvB;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,eAAe,EAAE,MAAM;KACvB;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;YAC5B,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9B,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;SAC9B;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC7B;CACQ,CAAC;AAEX,MAAM,WAAW,GAAG;IACnB;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC;QACD,OAAO,EAAE;YACR,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;SACjC;QACD,eAAe,EAAE,MAAM;KACvB;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC;gBACC,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACX;wBACC,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE;4BACX,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACjC;qBACD;oBACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;iBACxC;aACD;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;SACpC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC7B;CACQ,CAAC;AAEX,MAAM,uBAAuB,GAAG,4CAAuD,CAAC;AACxF,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzC,SAAS,UAAU,CAAC,eAAwB;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,IAAI,wBAAwB,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AACtD,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc,EAAE,cAA6B;IACnF,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,cAAc,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,SAAS,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,MAA2E;IACpH,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;YACtD,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,GAAG,EAAE,iBAAiB;YACtB,YAAY,EAAE,SAAS;SACvB,CAAC,CAAC;QACH,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,OAAO,CAAC;QAChB,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,oEAAoE;IACrE,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAAoC;IACzE,MAAM,OAAO,GAAG,6BAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;QACxD,OAAO,EAAE,MAAM,CAAC,YAAY;QAC5B,GAAG,EAAE,iBAAiB;QACtB,YAAY,EAAE,MAAM;KACpB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;QACpD,OAAO,EAAE,MAAM,CAAC,YAAY;QAC5B,GAAG,EAAE,iBAAiB;QACtB,YAAY,EAAE,QAAQ;QACtB,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;KACpB,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,MAAM,0BAA0B,CAAC;QACtD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,YAAY,EAAE,MAAM,CAAC,YAAY;KACjC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;QAC7C,MAAM,EAAE;YACP,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB,EAAE,MAAM,CAAC,YAAY;SACtC;QACD,KAAK,EAAE;YACN,MAAM,EAAE;gBACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;aACrC;SACD;QACD,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,KAAK;YACL,QAAQ;SACR;KACD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,qBAAc,EAAC,SAAS,CAAC,CAAC;IACzC,OAAO;QACN,EAAE,EAAE,MAAM,CAAC,YAAY;QACvB,IAAI,EAAE,IAAA,yBAAkB,EAAC;YACxB,GAAG,EAAE,iBAAiB;YACtB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SACzG,CAAC;KACF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAAoC;IACzE,MAAM,OAAO,GAAG,6BAA6B,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAC;IACxE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;QACxD,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC;KACzD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC7G,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,iBAAU,CAAC,CAAC,CAAC,iBAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAE7E,MAAM,YAAY,GAAG;QACpB,OAAO,EAAE;YACR,KAAK,EAAE,MAAM,CAAC,YAAY;YAC1B,MAAM,EAAE,YAAY;YACpB,UAAU;YACV,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACpB;QACD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW;KACX,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;QAC7C,MAAM,EAAE;YACP,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB,EAAE,cAAc;SACjC;QACD,KAAK,EAAE;YACN,aAAa,EAAE;gBACd,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjC;YACD,YAAY,EAAE;gBACb,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;gBAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;aACxC;SACD;QACD,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,YAAY;KACrB,CAAC,CAAC;IAEH,OAAO;QACN,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,IAAA,yBAAkB,EAAC;YACxB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC;SAC7C,CAAC;KACF,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAAC,MAAoC;IAChF,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paulstinchcombe/gasless-nft-tx",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.3",
|
|
4
4
|
"description": "Complete library for deploying and managing KAMI NFT contracts with truly gasless transactions using EIP-4337 Account Abstraction. Now compatible with OpenZeppelin Contracts v5.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|