@pimlico/mock-paymaster 0.0.4 → 0.0.6
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/CHANGELOG.md +12 -0
- package/_cjs/helpers/erc20-utils.js +26 -15
- package/_cjs/helpers/erc20-utils.js.map +1 -1
- package/_cjs/helpers/schema.js +7 -7
- package/_cjs/helpers/schema.js.map +1 -1
- package/_cjs/helpers/utils.js +1 -13
- package/_cjs/helpers/utils.js.map +1 -1
- package/_cjs/index.js +16 -20
- package/_cjs/index.js.map +1 -1
- package/_cjs/relay.js +24 -11
- package/_cjs/relay.js.map +1 -1
- package/_cjs/setup.js +118 -0
- package/_cjs/setup.js.map +1 -0
- package/_cjs/singletonPaymasters.js +1 -61
- package/_cjs/singletonPaymasters.js.map +1 -1
- package/_esm/helpers/erc20-utils.js +28 -13
- package/_esm/helpers/erc20-utils.js.map +1 -1
- package/_esm/helpers/schema.js +7 -7
- package/_esm/helpers/schema.js.map +1 -1
- package/_esm/helpers/utils.js +1 -12
- package/_esm/helpers/utils.js.map +1 -1
- package/_esm/index.js +15 -21
- package/_esm/index.js.map +1 -1
- package/_esm/relay.js +33 -16
- package/_esm/relay.js.map +1 -1
- package/_esm/setup.js +120 -0
- package/_esm/setup.js.map +1 -0
- package/_esm/singletonPaymasters.js +3 -67
- package/_esm/singletonPaymasters.js.map +1 -1
- package/_types/helpers/erc20-utils.d.ts +4 -2
- package/_types/helpers/erc20-utils.d.ts.map +1 -1
- package/_types/helpers/schema.d.ts +569 -569
- package/_types/helpers/schema.d.ts.map +1 -1
- package/_types/helpers/utils.d.ts +1 -5
- package/_types/helpers/utils.d.ts.map +1 -1
- package/_types/index.d.ts +1 -0
- package/_types/index.d.ts.map +1 -1
- package/_types/relay.d.ts +4 -5
- package/_types/relay.d.ts.map +1 -1
- package/_types/setup.d.ts +11 -0
- package/_types/setup.d.ts.map +1 -0
- package/_types/singletonPaymasters.d.ts +0 -4
- package/_types/singletonPaymasters.d.ts.map +1 -1
- package/helpers/erc20-utils.ts +40 -16
- package/helpers/schema.ts +7 -7
- package/helpers/utils.ts +0 -24
- package/index.ts +19 -22
- package/package.json +2 -2
- package/relay.ts +44 -22
- package/setup.ts +163 -0
- package/singletonPaymasters.ts +2 -91
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singletonPaymasters.js","sourceRoot":"","sources":["../singletonPaymasters.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"singletonPaymasters.js","sourceRoot":"","sources":["../singletonPaymasters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,35 @@
|
|
|
1
|
-
import { concat, encodeFunctionData, getCreate2Address, hexToBigInt, pad, parseAbi, toHex } from "viem";
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { http, concat, createTestClient, createWalletClient, encodeFunctionData, getCreate2Address, hexToBigInt, pad, parseAbi, parseEther, toHex } from "viem";
|
|
2
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
3
|
+
import { getChain, getPublicClient } from "./utils.js";
|
|
4
|
+
export const erc20Bytecode = concat([
|
|
4
5
|
"0x60a060405234801561001057600080fd5b50604051610ff0380380610ff083398101604081905261002f9161022c565b6040518060400160405280600981526020016805465737445524332360bc1b8152506040518060400160405280600381526020016205432360ec1b815250816003908161007c919061034d565b506004610089828261034d565b5050506100a63369d3c21bcecceda10000006100b160201b60201c565b60ff166080526104a3565b6001600160a01b0382166100e457600060405163ec442f0560e01b81526004016100db9190610430565b60405180910390fd5b6100f0600083836100f4565b5050565b6001600160a01b03831661011f5780600260008282546101149190610454565b9091555061017e9050565b6001600160a01b0383166000908152602081905260409020548181101561015f5783818360405163391434e360e21b81526004016100db9392919061046d565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661019a576002805482900390556101b9565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101fc9190610495565b60405180910390a3505050565b60ff8116811461021857600080fd5b50565b805161022681610209565b92915050565b60006020828403121561024157610241600080fd5b600061024d848461021b565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061029557607f821691505b6020821081036102a7576102a761026b565b50919050565b60006102266102b98381565b90565b6102c5836102ad565b815460001960089490940293841b1916921b91909117905550565b60006102ed8184846102bc565b505050565b818110156100f0576103056000826102e0565b6001016102f2565b601f8211156102ed576000818152602090206020601f850104810160208510156103345750805b6103466020601f8601048301826102f2565b5050505050565b81516001600160401b0381111561036657610366610255565b6103708254610281565b61037b82828561030d565b6020601f8311600181146103af57600084156103975750858201515b600019600886021c1981166002860217865550610408565b600085815260208120601f198616915b828110156103df57888501518255602094850194600190920191016103bf565b868310156103fb5784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b60006001600160a01b038216610226565b61042a81610410565b82525050565b602081016102268284610421565b634e487b7160e01b600052601160045260246000fd5b808201808211156102265761022661043e565b8061042a565b6060810161047b8286610421565b6104886020830185610467565b61024d6040830184610467565b602081016102268284610467565b608051610b326104be60003960006101650152610b326000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063313ce56711610081578063a9059cbb1161005b578063a9059cbb146101cf578063dd62ed3e146101e2578063fb4dcefa1461022857600080fd5b8063313ce5671461016357806370a082311461019157806395d89b41146101c757600080fd5b806318160ddd116100b257806318160ddd1461012c57806323b872dd1461013d5780632d688ca81461015057600080fd5b806305ea5c22146100d957806306fdde03146100ee578063095ea7b31461010c575b600080fd5b6100ec6100e7366004610868565b61023b565b005b6100f661024b565b604051610103919061092c565b60405180910390f35b61011f61011a366004610944565b6102dd565b604051610103919061098b565b6002545b604051610103919061099f565b61011f61014b366004610868565b6102f7565b6100ec61015e366004610944565b61031b565b7f000000000000000000000000000000000000000000000000000000000000000060405161010391906109b6565b61013061019f3660046109c4565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100f6610329565b61011f6101dd366004610944565b610338565b6101306101f03660046109ed565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6100ec6102363660046109ed565b610346565b61024683838361037c565b505050565b60606003805461025a90610a4f565b80601f016020809104026020016040519081016040528092919081815260200182805461028690610a4f565b80156102d35780601f106102a8576101008083540402835291602001916102d3565b820191906000526020600020905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b6000336102eb81858561037c565b60019150505b92915050565b600033610305858285610389565b610310858585610441565b506001949350505050565b61032582826104ec565b5050565b60606004805461025a90610a4f565b6000336102eb818585610441565b61032582826103778573ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610441565b6102468383836001610548565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461043b578181101561042c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161042393929190610a84565b60405180910390fd5b61043b84848484036000610548565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166104915760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b73ffffffffffffffffffffffffffffffffffffffff82166104e15760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b61024683838361068e565b73ffffffffffffffffffffffffffffffffffffffff821661053c5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b6103256000838361068e565b73ffffffffffffffffffffffffffffffffffffffff84166105985760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b73ffffffffffffffffffffffffffffffffffffffff83166105e85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160209081526040808320938716835292905220829055801561043b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610680919061099f565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff83166106c65780600260008282546106bb9190610ae9565b909155506107589050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561072c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161042393929190610a84565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff8216610781576002805482900390556107ad565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161080a919061099f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102f1565b61083e81610817565b811461084957600080fd5b50565b80356102f181610835565b8061083e565b80356102f181610857565b60008060006060848603121561088057610880600080fd5b600061088c868661084c565b935050602061089d8682870161084c565b92505060406108ae8682870161085d565b9150509250925092565b60005b838110156108d35781810151838201526020016108bb565b50506000910152565b60006108e6825190565b8084526020840193506108fd8185602086016108b8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920192915050565b6020808252810161093d81846108dc565b9392505050565b6000806040838503121561095a5761095a600080fd5b6000610966858561084c565b92505060206109778582860161085d565b9150509250929050565b8015155b82525050565b602081016102f18284610981565b80610985565b602081016102f18284610999565b60ff8116610985565b602081016102f182846109ad565b6000602082840312156109d9576109d9600080fd5b60006109e5848461084c565b949350505050565b60008060408385031215610a0357610a03600080fd5b6000610a0f858561084c565b92505060206109778582860161084c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600281046001821680610a6357607f821691505b602082108103610a7557610a75610a20565b50919050565b61098581610817565b60608101610a928286610a7b565b610a9f6020830185610999565b6109e56040830184610999565b602081016102f18284610a7b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102f1576102f1610aba56fea2646970667358221220d40f68e247510ec8b7876d327ac47b949de248d0626aaf2670151c5e84ee6b4a64736f6c634300081a0033",
|
|
5
6
|
pad(toHex(18n)) // constructor args (token_decimals)
|
|
6
7
|
]);
|
|
7
|
-
const create2Salt = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
8
|
-
export const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
export const create2Salt = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
9
|
+
export const getPaymasterUtilityWallet = async (anvilRpc) => {
|
|
10
|
+
const account = privateKeyToAccount("0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
|
|
11
|
+
// Check if account has balance
|
|
12
|
+
const publicClient = await getPublicClient(anvilRpc);
|
|
13
|
+
const balance = await publicClient.getBalance({ address: account.address });
|
|
14
|
+
// If no balance, set it to 1000 ETH
|
|
15
|
+
if (balance === 0n) {
|
|
16
|
+
// Create test client for setting balance
|
|
17
|
+
const testClient = createTestClient({
|
|
18
|
+
mode: "anvil",
|
|
19
|
+
transport: http(anvilRpc)
|
|
20
|
+
});
|
|
21
|
+
await testClient.setBalance({
|
|
22
|
+
address: account.address,
|
|
23
|
+
value: parseEther("1000")
|
|
13
24
|
});
|
|
14
25
|
}
|
|
26
|
+
// Create and return wallet client
|
|
27
|
+
const walletClient = createWalletClient({
|
|
28
|
+
chain: await getChain(anvilRpc),
|
|
29
|
+
account,
|
|
30
|
+
transport: http(anvilRpc)
|
|
31
|
+
});
|
|
32
|
+
return walletClient;
|
|
15
33
|
};
|
|
16
34
|
export const tokenBalanceOf = async (holder, anvilRpc) => {
|
|
17
35
|
const publicClient = await getPublicClient(anvilRpc);
|
|
@@ -26,10 +44,7 @@ export const tokenBalanceOf = async (holder, anvilRpc) => {
|
|
|
26
44
|
return hexToBigInt(balance.data ?? "0x");
|
|
27
45
|
};
|
|
28
46
|
export const sudoMintTokens = async ({ amount, to, anvilRpc }) => {
|
|
29
|
-
const walletClient = await
|
|
30
|
-
addressIndex: 0,
|
|
31
|
-
anvilRpc
|
|
32
|
-
});
|
|
47
|
+
const walletClient = await getPaymasterUtilityWallet(anvilRpc);
|
|
33
48
|
await walletClient.sendTransaction({
|
|
34
49
|
to: erc20Address,
|
|
35
50
|
value: 0n,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20-utils.js","sourceRoot":"","sources":["../../helpers/erc20-utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"erc20-utils.js","sourceRoot":"","sources":["../../helpers/erc20-utils.ts"],"names":[],"mappings":"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"}
|
package/_esm/helpers/schema.js
CHANGED
|
@@ -56,7 +56,7 @@ export const hexNumberSchema = z
|
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
})
|
|
59
|
-
.transform(
|
|
59
|
+
.transform(BigInt);
|
|
60
60
|
export const hexDataSchema = z
|
|
61
61
|
.string()
|
|
62
62
|
.regex(hexDataPattern, { message: "not valid hex data" })
|
|
@@ -64,21 +64,21 @@ export const hexDataSchema = z
|
|
|
64
64
|
const signedAuthorizationSchema = z.union([
|
|
65
65
|
z.object({
|
|
66
66
|
contractAddress: addressSchema,
|
|
67
|
-
chainId: hexNumberSchema.transform(
|
|
68
|
-
nonce: hexNumberSchema.transform(
|
|
67
|
+
chainId: hexNumberSchema.transform(Number),
|
|
68
|
+
nonce: hexNumberSchema.transform(Number),
|
|
69
69
|
r: hexDataSchema.transform((val) => val),
|
|
70
70
|
s: hexDataSchema.transform((val) => val),
|
|
71
71
|
v: hexNumberSchema.optional(),
|
|
72
|
-
yParity: hexNumberSchema.transform(
|
|
72
|
+
yParity: hexNumberSchema.transform(Number)
|
|
73
73
|
}),
|
|
74
74
|
z.object({
|
|
75
75
|
address: addressSchema,
|
|
76
|
-
chainId: hexNumberSchema.transform(
|
|
77
|
-
nonce: hexNumberSchema.transform(
|
|
76
|
+
chainId: hexNumberSchema.transform(Number),
|
|
77
|
+
nonce: hexNumberSchema.transform(Number),
|
|
78
78
|
r: hexDataSchema.transform((val) => val),
|
|
79
79
|
s: hexDataSchema.transform((val) => val),
|
|
80
80
|
v: hexNumberSchema.optional(),
|
|
81
|
-
yParity: hexNumberSchema.transform(
|
|
81
|
+
yParity: hexNumberSchema.transform(Number)
|
|
82
82
|
})
|
|
83
83
|
]);
|
|
84
84
|
const userOperationSchemaPaymasterV6 = z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../helpers/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAE,MAAM,MAAM,CAAA;AAC3C,OAAO,EAAE,CAAC,EAA0B,MAAM,KAAK,CAAA;AAE/C,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,8EAAsB,CAAA;IACtB,0FAA4B,CAAA;IAC5B,8FAA8B,CAAA;AAClC,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC3C,YAAY,GAAY;QACpB,IAAI,OAAO,GAAG,GAAG,CAAA;QACjB,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,GAAG,6BAA6B,CAAA;QAC3C,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;CACJ;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IAC/B,4DAA4D;IAC5D,YACI,GAAW,EACF,IAAa,EACb,OAAgB,SAAS;QAElC,KAAK,CAAC,GAAG,CAAC,CAAA;QAHV;;;;mBAAS,IAAI;WAAS;QACtB;;;;mBAAS,IAAI;WAAqB;IAGtC,CAAC;CACJ;AAED,MAAM,cAAc,GAAG,kBAAkB,CAAA;AACzC,MAAM,cAAc,GAAG,uBAAuB,CAAA;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;KAC7D,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,KAAK,CAAC,cAAc,CAAC;KACrB,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACd,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACd,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACvB,qGAAqG;IACrG,IAAI,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,0DAA0D;IAC3E,CAAC;IAAC,MAAM,CAAC;QACL,GAAG,CAAC,QAAQ,CAAC;YACT,IAAI,EAAE,QAAQ;YACd,OAAO,EACH,kEAAkE;SACzE,CAAC,CAAA;IACN,CAAC;AACL,CAAC,CAAC;KACD,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../helpers/schema.ts"],"names":[],"mappings":"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"}
|
package/_esm/helpers/utils.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { http, createPublicClient,
|
|
2
|
-
import { mnemonicToAccount } from "viem/accounts";
|
|
1
|
+
import { http, createPublicClient, defineChain } from "viem";
|
|
3
2
|
import { erc20Address } from "./erc20-utils.js";
|
|
4
3
|
import { RpcError, ValidationErrors } from "./schema.js";
|
|
5
4
|
/// Returns the bigger of two BigInts.
|
|
@@ -42,16 +41,6 @@ export const getPublicClient = async (anvilRpc) => {
|
|
|
42
41
|
pollingInterval: 100
|
|
43
42
|
});
|
|
44
43
|
};
|
|
45
|
-
export const getAnvilWalletClient = async ({ addressIndex, anvilRpc }) => {
|
|
46
|
-
const chain = await getChain(anvilRpc);
|
|
47
|
-
return createWalletClient({
|
|
48
|
-
account: mnemonicToAccount("test test test test test test test test test test test junk", {
|
|
49
|
-
addressIndex
|
|
50
|
-
}),
|
|
51
|
-
chain,
|
|
52
|
-
transport: http(anvilRpc)
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
44
|
export const isTokenSupported = async (token) => {
|
|
56
45
|
if (token !== erc20Address) {
|
|
57
46
|
throw new RpcError("Token is not supported", ValidationErrors.InvalidFields);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,EAKJ,kBAAkB,EAClB,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAExD,sCAAsC;AACtC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;IAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAkB,EAAE;IAC7D,MAAM,UAAU,GAAG,kBAAkB,CAAC;QAClC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;KAC1B,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAA;IAE7C,OAAO,WAAW,CAAC;QACf,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS,OAAO,EAAE;QACxB,cAAc,EAAE;YACZ,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACf;QACD,OAAO,EAAE;YACL,OAAO,EAAE;gBACL,IAAI,EAAE,CAAC,MAAM,CAAC;aACjB;SACJ;KACJ,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,QAAgB,EACuB,EAAE;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;IAC7B,mCAAmC;IACnC,+CAA+C;IAC/C,IAAI;IACJ,wCAAwC;IACxC,4DAA4D;IAC5D,GAAG;KACN,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEtC,OAAO,kBAAkB,CAAC;QACtB,KAAK;QACL,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,GAAG;KACvB,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAc,EAAE,EAAE;IACrD,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QACzB,MAAM,IAAI,QAAQ,CACd,wBAAwB,EACxB,gBAAgB,CAAC,aAAa,CACjC,CAAA;IACL,CAAC;AACL,CAAC,CAAA"}
|
package/_esm/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import cors from "@fastify/cors";
|
|
2
2
|
import Fastify from "fastify";
|
|
3
3
|
import { defineInstance } from "prool";
|
|
4
|
-
import { http,
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { getAnvilWalletClient, getChain } from "./helpers/utils.js";
|
|
4
|
+
import { http, createWalletClient } from "viem";
|
|
5
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
6
|
+
import { getChain } from "./helpers/utils.js";
|
|
8
7
|
import { createRpcHandler } from "./relay.js";
|
|
9
|
-
import {
|
|
8
|
+
import { setup } from "./setup.js";
|
|
10
9
|
export const paymaster = defineInstance(({ anvilRpc, altoRpc, port: _port, host: _host = "localhost" }) => {
|
|
11
10
|
const app = Fastify({});
|
|
12
11
|
return {
|
|
@@ -15,29 +14,23 @@ export const paymaster = defineInstance(({ anvilRpc, altoRpc, port: _port, host:
|
|
|
15
14
|
port: _port,
|
|
16
15
|
name: "mock-paymaster",
|
|
17
16
|
start: async ({ port = _port }) => {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
});
|
|
23
|
-
const publicClient = createPublicClient({
|
|
24
|
-
transport: http(anvilRpc),
|
|
25
|
-
chain
|
|
17
|
+
const paymasterSigner = createWalletClient({
|
|
18
|
+
chain: await getChain(anvilRpc),
|
|
19
|
+
account: privateKeyToAccount("0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"),
|
|
20
|
+
transport: http(anvilRpc)
|
|
26
21
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
await setup({
|
|
23
|
+
anvilRpc,
|
|
24
|
+
paymasterSigner: paymasterSigner.account.address
|
|
30
25
|
});
|
|
31
|
-
await deployPaymasters({ walletClient, publicClient });
|
|
32
|
-
await deployErc20Token(walletClient, publicClient);
|
|
33
26
|
app.register(cors, {
|
|
34
27
|
origin: "*",
|
|
35
28
|
methods: ["POST", "GET", "OPTIONS"]
|
|
36
29
|
});
|
|
37
30
|
const rpcHandler = createRpcHandler({
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
paymasterSigner
|
|
31
|
+
altoRpc,
|
|
32
|
+
anvilRpc,
|
|
33
|
+
paymasterSigner
|
|
41
34
|
});
|
|
42
35
|
app.post("/", {}, rpcHandler);
|
|
43
36
|
app.get("/ping", async (_request, reply) => {
|
|
@@ -50,4 +43,5 @@ export const paymaster = defineInstance(({ anvilRpc, altoRpc, port: _port, host:
|
|
|
50
43
|
}
|
|
51
44
|
};
|
|
52
45
|
});
|
|
46
|
+
export { erc20Address, sudoMintTokens } from "./helpers/erc20-utils.js";
|
|
53
47
|
//# sourceMappingURL=index.js.map
|
package/_esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CACnC,CAAC,EACG,QAAQ,EACR,OAAO,EACP,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,GAAG,WAAW,EACwC,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;IAEvB,OAAO;QACH,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,kBAAkB,CAAC;gBACvC,KAAK,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBAC/B,OAAO,EAAE,mBAAmB,CACxB,oEAAoE,CACvE;gBACD,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC5B,CAAC,CAAA;YAEF,MAAM,KAAK,CAAC;gBACR,QAAQ;gBACR,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO;aACnD,CAAC,CAAA;YAEF,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;aACtC,CAAC,CAAA;YAEF,MAAM,UAAU,GAAG,gBAAgB,CAAC;gBAChC,OAAO;gBACP,QAAQ;gBACR,eAAe;aAClB,CAAC,CAAA;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;YAE7B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,GAAG,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;KACJ,CAAA;AACL,CAAC,CACJ,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA"}
|
package/_esm/relay.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as util from "node:util";
|
|
2
|
-
import { BaseError, getAddress, toHex } from "viem";
|
|
3
|
-
import { entryPoint06Address, entryPoint07Address, entryPoint08Address } from "viem/account-abstraction";
|
|
2
|
+
import { http, BaseError, getAddress, toHex } from "viem";
|
|
3
|
+
import { createBundlerClient, entryPoint06Address, entryPoint07Address, entryPoint08Address } from "viem/account-abstraction";
|
|
4
4
|
import { fromZodError } from "zod-validation-error";
|
|
5
5
|
import { getSingletonPaymaster06Address, getSingletonPaymaster07Address, getSingletonPaymaster08Address, sponsorshipIcon } from "./constants.js";
|
|
6
6
|
import { erc20Address } from "./helpers/erc20-utils.js";
|
|
7
7
|
import { InternalBundlerError, RpcError, ValidationErrors, jsonRpcSchema, pimlicoGetTokenQuotesSchema, pmGetPaymasterData, pmGetPaymasterStubDataParamsSchema, pmSponsorUserOperationParamsSchema } from "./helpers/schema.js";
|
|
8
|
-
import { isTokenSupported, maxBigInt } from "./helpers/utils.js";
|
|
8
|
+
import { getChain, getPublicClient, isTokenSupported, maxBigInt } from "./helpers/utils.js";
|
|
9
9
|
import { getDummyPaymasterData, getSignedPaymasterData } from "./singletonPaymasters.js";
|
|
10
10
|
const handlePmSponsor = async ({ entryPoint, userOperation, paymasterMode, bundler, paymaster, publicClient, paymasterSigner, estimateGas }) => {
|
|
11
11
|
const is06 = entryPoint === entryPoint06Address;
|
|
@@ -66,7 +66,7 @@ const validateEntryPoint = (entryPoint) => {
|
|
|
66
66
|
throw new RpcError("EntryPoint not supported", ValidationErrors.InvalidFields);
|
|
67
67
|
}
|
|
68
68
|
};
|
|
69
|
-
const handleMethod = async ({ parsedBody, paymasterSigner, publicClient,
|
|
69
|
+
const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundlerClient }) => {
|
|
70
70
|
const [paymaster06, paymaster07, paymaster08] = [
|
|
71
71
|
getSingletonPaymaster06Address(paymasterSigner.account.address),
|
|
72
72
|
getSingletonPaymaster07Address(paymasterSigner.account.address),
|
|
@@ -88,7 +88,7 @@ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler
|
|
|
88
88
|
entryPoint,
|
|
89
89
|
userOperation,
|
|
90
90
|
paymasterMode: { mode: "verifying" },
|
|
91
|
-
bundler,
|
|
91
|
+
bundler: bundlerClient,
|
|
92
92
|
paymaster: epToPaymaster[entryPoint],
|
|
93
93
|
publicClient,
|
|
94
94
|
paymasterSigner,
|
|
@@ -153,14 +153,6 @@ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler
|
|
|
153
153
|
}
|
|
154
154
|
];
|
|
155
155
|
}
|
|
156
|
-
if (parsedBody.method === "pimlico_getUserOperationGasPrice") {
|
|
157
|
-
return await bundler.request({
|
|
158
|
-
// @ts-ignore
|
|
159
|
-
method: "pimlico_getUserOperationGasPrice",
|
|
160
|
-
// @ts-ignore
|
|
161
|
-
params: []
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
156
|
if (parsedBody.method === "pimlico_getTokenQuotes") {
|
|
165
157
|
const params = pimlicoGetTokenQuotesSchema.safeParse(parsedBody.params);
|
|
166
158
|
if (!params.success) {
|
|
@@ -194,10 +186,35 @@ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler
|
|
|
194
186
|
}))
|
|
195
187
|
};
|
|
196
188
|
}
|
|
197
|
-
|
|
189
|
+
// If boosted userOp, forward to bundler's boost_sendUserOperation method.
|
|
190
|
+
if (parsedBody.method === "eth_sendUserOperation") {
|
|
191
|
+
const userOp = parsedBody.params[0];
|
|
192
|
+
const isBoosted = userOp.maxFeePerGas === "0x0" &&
|
|
193
|
+
userOp.maxPriorityFeePerGas === "0x0";
|
|
194
|
+
if (isBoosted) {
|
|
195
|
+
return await bundlerClient.request({
|
|
196
|
+
// @ts-ignore
|
|
197
|
+
method: "boost_sendUserOperation",
|
|
198
|
+
// @ts-ignore
|
|
199
|
+
params: parsedBody.params
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Forward all other requests to the bundler
|
|
204
|
+
return await bundlerClient.request({
|
|
205
|
+
// @ts-ignore
|
|
206
|
+
method: parsedBody.method,
|
|
207
|
+
// @ts-ignore
|
|
208
|
+
params: parsedBody.params ?? []
|
|
209
|
+
});
|
|
198
210
|
};
|
|
199
|
-
export const createRpcHandler = ({
|
|
211
|
+
export const createRpcHandler = ({ altoRpc, anvilRpc, paymasterSigner }) => {
|
|
200
212
|
return async (request, _reply) => {
|
|
213
|
+
const publicClient = await getPublicClient(anvilRpc);
|
|
214
|
+
const bundlerClient = createBundlerClient({
|
|
215
|
+
chain: await getChain(anvilRpc),
|
|
216
|
+
transport: http(altoRpc)
|
|
217
|
+
});
|
|
201
218
|
const body = request.body;
|
|
202
219
|
const parsedBody = jsonRpcSchema.safeParse(body);
|
|
203
220
|
if (!parsedBody.success) {
|
|
@@ -205,7 +222,7 @@ export const createRpcHandler = ({ bundler, publicClient, paymasterSigner }) =>
|
|
|
205
222
|
}
|
|
206
223
|
try {
|
|
207
224
|
const result = await handleMethod({
|
|
208
|
-
|
|
225
|
+
bundlerClient,
|
|
209
226
|
paymasterSigner,
|
|
210
227
|
parsedBody: parsedBody.data,
|
|
211
228
|
publicClient
|
package/_esm/relay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../relay.ts"],"names":[],"mappings":"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"}
|
package/_esm/setup.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { concat, getContract, parseEther } from "viem";
|
|
2
|
+
import { constants, getSingletonPaymaster06Address, getSingletonPaymaster06InitCode, getSingletonPaymaster07Address, getSingletonPaymaster07InitCode, getSingletonPaymaster08Address, getSingletonPaymaster08InitCode } from "./constants.js";
|
|
3
|
+
import { singletonPaymaster06Abi, singletonPaymaster07Abi, singletonPaymaster08Abi } from "./helpers/abi.js";
|
|
4
|
+
import { create2Salt, erc20Address, erc20Bytecode, getPaymasterUtilityWallet } from "./helpers/erc20-utils.js";
|
|
5
|
+
import { getPublicClient } from "./helpers/utils.js";
|
|
6
|
+
export const deployPaymasters = async ({ anvilRpc, paymasterSigner }) => {
|
|
7
|
+
const walletClient = await getPaymasterUtilityWallet(anvilRpc);
|
|
8
|
+
const publicClient = await getPublicClient(anvilRpc);
|
|
9
|
+
let nonce = await publicClient.getTransactionCount({
|
|
10
|
+
address: walletClient.account.address
|
|
11
|
+
});
|
|
12
|
+
const paymaster06Address = getSingletonPaymaster06Address(paymasterSigner);
|
|
13
|
+
const paymaster07Address = getSingletonPaymaster07Address(paymasterSigner);
|
|
14
|
+
const paymaster08Address = getSingletonPaymaster08Address(paymasterSigner);
|
|
15
|
+
// Deploy singleton paymaster 06 if not already deployed.
|
|
16
|
+
const paymaster06Code = await publicClient.getCode({
|
|
17
|
+
address: paymaster06Address
|
|
18
|
+
});
|
|
19
|
+
if (!paymaster06Code) {
|
|
20
|
+
const hash = await walletClient.sendTransaction({
|
|
21
|
+
to: constants.deterministicDeployer,
|
|
22
|
+
data: concat([
|
|
23
|
+
constants.create2Salt,
|
|
24
|
+
getSingletonPaymaster06InitCode(paymasterSigner)
|
|
25
|
+
]),
|
|
26
|
+
nonce: nonce++
|
|
27
|
+
});
|
|
28
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
29
|
+
}
|
|
30
|
+
// Deploy singleton paymaster 07 if not already deployed.
|
|
31
|
+
const paymaster07Code = await publicClient.getCode({
|
|
32
|
+
address: paymaster07Address
|
|
33
|
+
});
|
|
34
|
+
if (!paymaster07Code) {
|
|
35
|
+
const hash = await walletClient.sendTransaction({
|
|
36
|
+
to: constants.deterministicDeployer,
|
|
37
|
+
data: concat([
|
|
38
|
+
constants.create2Salt,
|
|
39
|
+
getSingletonPaymaster07InitCode(paymasterSigner)
|
|
40
|
+
]),
|
|
41
|
+
nonce: nonce++
|
|
42
|
+
});
|
|
43
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
44
|
+
}
|
|
45
|
+
// Deploy singleton paymaster 08 if not already deployed.
|
|
46
|
+
const paymaster08Code = await publicClient.getCode({
|
|
47
|
+
address: paymaster08Address
|
|
48
|
+
});
|
|
49
|
+
if (!paymaster08Code) {
|
|
50
|
+
const hash = await walletClient.sendTransaction({
|
|
51
|
+
to: constants.deterministicDeployer,
|
|
52
|
+
data: concat([
|
|
53
|
+
constants.create2Salt,
|
|
54
|
+
getSingletonPaymaster08InitCode(paymasterSigner)
|
|
55
|
+
]),
|
|
56
|
+
nonce: nonce++
|
|
57
|
+
});
|
|
58
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
59
|
+
}
|
|
60
|
+
const depositAmount = parseEther("50");
|
|
61
|
+
// Initialize contract instances and fund if needed.
|
|
62
|
+
// Only check deposit balance if the contract was already deployed.
|
|
63
|
+
// Fund paymaster 06 if balance is less than deposit amount.
|
|
64
|
+
const singletonPaymaster06 = getContract({
|
|
65
|
+
address: paymaster06Address,
|
|
66
|
+
abi: singletonPaymaster06Abi,
|
|
67
|
+
client: walletClient
|
|
68
|
+
});
|
|
69
|
+
const deposit06 = await singletonPaymaster06.read.getDeposit();
|
|
70
|
+
if (deposit06 < depositAmount) {
|
|
71
|
+
await singletonPaymaster06.write.deposit({
|
|
72
|
+
value: depositAmount,
|
|
73
|
+
nonce: nonce++
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
// Fund paymaster 07 if balance is less than deposit amount.
|
|
77
|
+
const singletonPaymaster07 = getContract({
|
|
78
|
+
address: paymaster07Address,
|
|
79
|
+
abi: singletonPaymaster07Abi,
|
|
80
|
+
client: walletClient
|
|
81
|
+
});
|
|
82
|
+
const deposit07 = await singletonPaymaster07.read.getDeposit();
|
|
83
|
+
if (deposit07 < depositAmount) {
|
|
84
|
+
await singletonPaymaster07.write.deposit({
|
|
85
|
+
value: depositAmount,
|
|
86
|
+
nonce: nonce++
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// Fund paymaster 08 if balance is less than deposit amount.
|
|
90
|
+
const singletonPaymaster08 = getContract({
|
|
91
|
+
address: paymaster08Address,
|
|
92
|
+
abi: singletonPaymaster08Abi,
|
|
93
|
+
client: walletClient
|
|
94
|
+
});
|
|
95
|
+
const deposit08 = await singletonPaymaster08.read.getDeposit();
|
|
96
|
+
if (deposit08 < depositAmount) {
|
|
97
|
+
await singletonPaymaster08.write.deposit({
|
|
98
|
+
value: depositAmount,
|
|
99
|
+
nonce: nonce++
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
export const deployErc20Token = async (anvilRpc) => {
|
|
104
|
+
const publicClient = await getPublicClient(anvilRpc);
|
|
105
|
+
if ((await publicClient.getCode({ address: erc20Address })) === undefined) {
|
|
106
|
+
const walletClient = await getPaymasterUtilityWallet(anvilRpc);
|
|
107
|
+
await walletClient.sendTransaction({
|
|
108
|
+
to: "0x4e59b44847b379578588920ca78fbf26c0b4956c",
|
|
109
|
+
data: concat([create2Salt, erc20Bytecode])
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
export const setup = async ({ anvilRpc, paymasterSigner }) => {
|
|
114
|
+
await deployPaymasters({
|
|
115
|
+
anvilRpc,
|
|
116
|
+
paymasterSigner
|
|
117
|
+
});
|
|
118
|
+
await deployErc20Token(anvilRpc);
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../setup.ts"],"names":[],"mappings":"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"}
|