four-flap-meme-sdk 1.6.89 → 1.6.91

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.
@@ -19,24 +19,38 @@ import { Wallet } from 'ethers';
19
19
  * 这是一个最小化的 Paymaster,无条件代付所有 UserOp 的 gas。
20
20
  * 基于 ERC-4337 IPaymaster 接口实现。
21
21
  */
22
- export declare const SIMPLE_PAYMASTER_ABI: readonly ["constructor(address _entryPoint)", "function entryPoint() external view returns (address)", "function owner() external view returns (address)", "function deposit() external payable", "function getDeposit() external view returns (uint256)", "function withdrawTo(address payable withdrawAddress, uint256 amount) external", "function transferOwnership(address newOwner) external", "function validatePaymasterUserOp(tuple(address sender, uint256 nonce, bytes initCode, bytes callData, uint256 callGasLimit, uint256 verificationGasLimit, uint256 preVerificationGas, uint256 maxFeePerGas, uint256 maxPriorityFeePerGas, bytes paymasterAndData, bytes signature) userOp, bytes32 userOpHash, uint256 maxCost) external returns (bytes memory context, uint256 validationData)", "function postOp(uint8 mode, bytes calldata context, uint256 actualGasCost) external"];
22
+ export declare const SIMPLE_PAYMASTER_ABI: readonly ["constructor(address _entryPoint)", "function entryPoint() external view returns (address)", "function owner() external view returns (address)", "function withdrawTo(address payable to, uint256 amount) external", "function validatePaymasterUserOp((address sender,uint256 nonce,bytes initCode,bytes callData,uint256 callGasLimit,uint256 verificationGasLimit,uint256 preVerificationGas,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,bytes paymasterAndData,bytes signature), bytes32, uint256) external view returns (bytes memory, uint256)", "function postOp(uint8, bytes calldata, uint256) external view"];
23
23
  /**
24
- * SimplePaymaster 合约 Bytecode
24
+ * SimplePaymaster 编译后的完整 Bytecode
25
25
  *
26
26
  * ✅ 安全设计:
27
27
  * - 只有 owner(AA Payer)可以提取资金
28
28
  * - validatePaymasterUserOp() 无条件接受所有请求(由 owner 信任的 SDK 生成)
29
- * - 资金存储在 EntryPoint 合约中(不在 Paymaster 本身)
29
+ * - 资金存储在 EntryPoint 合约中(通过 EntryPoint.depositTo 充值)
30
30
  *
31
31
  * 🔐 防盗机制:
32
32
  * 1. withdrawTo() 有 onlyOwner 限制
33
33
  * 2. 只有 EntryPoint 可以调用 validatePaymasterUserOp 和 postOp
34
34
  * 3. 资金存储在 EntryPoint,只有通过合约的 withdrawTo 才能取出
35
35
  *
36
- * Solidity 源码 (v0.8.23):
36
+ * Solidity 源码 (solc 0.8.33, optimizer 200 runs):
37
37
  * ```solidity
38
38
  * // SPDX-License-Identifier: MIT
39
- * pragma solidity ^0.8.23;
39
+ * pragma solidity ^0.8.19;
40
+ *
41
+ * struct UserOperation {
42
+ * address sender;
43
+ * uint256 nonce;
44
+ * bytes initCode;
45
+ * bytes callData;
46
+ * uint256 callGasLimit;
47
+ * uint256 verificationGasLimit;
48
+ * uint256 preVerificationGas;
49
+ * uint256 maxFeePerGas;
50
+ * uint256 maxPriorityFeePerGas;
51
+ * bytes paymasterAndData;
52
+ * bytes signature;
53
+ * }
40
54
  *
41
55
  * contract SimplePaymaster {
42
56
  * address public immutable entryPoint;
@@ -47,92 +61,37 @@ export declare const SIMPLE_PAYMASTER_ABI: readonly ["constructor(address _entry
47
61
  * owner = msg.sender;
48
62
  * }
49
63
  *
50
- * modifier onlyOwner() {
51
- * require(msg.sender == owner, "only owner");
52
- * _;
53
- * }
54
- *
55
- * modifier onlyEntryPoint() {
56
- * require(msg.sender == entryPoint, "only entry point");
57
- * _;
58
- * }
59
- *
60
- * function validatePaymasterUserOp(bytes calldata, bytes32, uint256)
61
- * external view onlyEntryPoint returns (bytes memory, uint256) {
62
- * return ("", 0);
63
- * }
64
- *
65
- * function postOp(uint8, bytes calldata, uint256) external view onlyEntryPoint {}
66
- *
67
- * function deposit() external payable {
68
- * (bool s,) = entryPoint.call{value: msg.value}(
69
- * abi.encodeWithSignature("depositTo(address)", address(this)));
70
- * require(s, "deposit failed");
71
- * }
72
- *
73
- * function getDeposit() external view returns (uint256) {
74
- * (bool s, bytes memory d) = entryPoint.staticcall(
75
- * abi.encodeWithSignature("balanceOf(address)", address(this)));
76
- * require(s, "query failed");
77
- * return abi.decode(d, (uint256));
78
- * }
79
- *
80
- * function withdrawTo(address payable to, uint256 amount) external onlyOwner {
81
- * (bool s,) = entryPoint.call(
82
- * abi.encodeWithSignature("withdrawTo(address,uint256)", to, amount));
83
- * require(s, "withdraw failed");
84
- * }
85
- *
86
- * function transferOwnership(address newOwner) external onlyOwner {
87
- * owner = newOwner;
88
- * }
89
- *
90
- * receive() external payable {}
91
- * }
92
- * ```
93
- *
94
- * 编译设置: solc 0.8.23, optimizer enabled (200 runs), evm: paris
95
- */
96
- /**
97
- * SimplePaymaster 编译后的完整 Bytecode
98
- *
99
- * 这是一个最小化的 Paymaster 合约,功能:
100
- * - validatePaymasterUserOp: 无条件接受所有 UserOp
101
- * - postOp: 空实现
102
- * - withdrawTo: 只有 owner 可以提取资金
103
- *
104
- * Solidity 源码:
105
- * ```solidity
106
- * // SPDX-License-Identifier: MIT
107
- * pragma solidity ^0.8.19;
108
- *
109
- * contract SimplePaymaster {
110
- * address public immutable entryPoint;
111
- * address public owner;
112
- *
113
- * constructor(address _entryPoint) { entryPoint = _entryPoint; owner = msg.sender; }
114
- *
115
- * function validatePaymasterUserOp(bytes calldata, bytes32, uint256)
116
- * external view returns (bytes memory, uint256) {
117
- * require(msg.sender == entryPoint, "not EP");
64
+ * function validatePaymasterUserOp(
65
+ * UserOperation calldata,
66
+ * bytes32,
67
+ * uint256
68
+ * ) external view returns (bytes memory context, uint256 validationData) {
69
+ * require(msg.sender == entryPoint, "!EP");
118
70
  * return ("", 0);
119
71
  * }
120
72
  *
121
73
  * function postOp(uint8, bytes calldata, uint256) external view {
122
- * require(msg.sender == entryPoint, "not EP");
74
+ * require(msg.sender == entryPoint, "!EP");
123
75
  * }
124
76
  *
125
- * function withdrawTo(address to, uint256 amount) external {
126
- * require(msg.sender == owner, "not owner");
77
+ * function withdrawTo(address payable to, uint256 amount) external {
78
+ * require(msg.sender == owner, "!owner");
127
79
  * (bool s,) = entryPoint.call(abi.encodeWithSignature("withdrawTo(address,uint256)", to, amount));
128
- * require(s);
80
+ * require(s, "withdraw failed");
129
81
  * }
130
82
  *
131
83
  * receive() external payable {}
132
84
  * }
133
85
  * ```
86
+ *
87
+ * ✅ 函数选择器:
88
+ * - 0xf465c77e: validatePaymasterUserOp(UserOperation,bytes32,uint256) - ERC-4337 v0.6 正确签名
89
+ * - 0xa9a23409: postOp(uint8,bytes,uint256)
90
+ * - 0x205c2878: withdrawTo(address,uint256)
91
+ * - 0x8da5cb5b: owner()
92
+ * - 0xb0d691fe: entryPoint()
134
93
  */
135
- export declare const SIMPLE_PAYMASTER_BYTECODE = "0x60a060405234801561001057600080fd5b5060405161041a38038061041a83398101604081905261002f9161005d565b6001600160a01b031660805233600055610090565b6001600160a01b038116811461005a57600080fd5b50565b60006020828403121561006f57600080fd5b815161007a81610045565b9392505050565b60805161036761009960003960006101b901526103676000f3fe6080604052600436106100435760003560e01c80638da5cb5b14610048578063a9a234091461008b578063c399ec88146100ad578063f465c77e146100c0575b600080fd5b34801561005457600080fd5b506000546100689060018060a060020a031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561009757600080fd5b506100ab6100a6366004610262565b6100f0565b005b6100ab6100bb366004610262565b610152565b3480156100cc57600080fd5b506100e06100db3660046102a5565b6101a7565b60405161008292919061030d565b6000546001600160a01b0316331461010757600080fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316635f4e75d360e11b17905261014e9061020d565b5050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018757600080fd5b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101c057600080fd5b50506040805160008082526020820190925290610203565b60608152602001906001900390816101d85790505b5091939092909150565b6000806000836001600160a01b0316846040516102299190610343565b6000604051808303816000865af19150503d8060008114610266576040519150601f19603f3d011682016040523d82523d6000602084013e61026b565b606091505b50909695505050505050565b6001600160a01b038116811461028c57600080fd5b50565b803561029a81610277565b919050565b600080604083850312156102b257600080fd5b82356102bd81610277565b946020939093013593505050565b60008060006060848603121561030057600080fd5b505081359360208301359350604090920135919050565b604080825283519082018190526000906020906060840190828701845b828110156103375781518452928401929084019060010161031f565b50505092019290925250919050565b6000825161035881846020870161035f565b9190910192915050565bfe";
94
+ export declare const SIMPLE_PAYMASTER_BYTECODE = "0x60a060405234801561000f575f5ffd5b5060405161059738038061059783398101604081905261002e91610050565b6001600160a01b03166080525f80546001600160a01b0319163317905561007d565b5f60208284031215610060575f5ffd5b81516001600160a01b0381168114610076575f5ffd5b9392505050565b6080516104ee6100a95f395f818160e3015281816101970152818161028301526102ea01526104ee5ff3fe60806040526004361061004c575f3560e01c8063205c2878146100575780638da5cb5b14610078578063a9a23409146100b3578063b0d691fe146100d2578063f465c77e14610105575f5ffd5b3661005357005b5f5ffd5b348015610062575f5ffd5b50610076610071366004610356565b610132565b005b348015610083575f5ffd5b505f54610096906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100be575f5ffd5b506100766100cd36600461038b565b610278565b3480156100dd575f5ffd5b506100967f000000000000000000000000000000000000000000000000000000000000000081565b348015610110575f5ffd5b5061012461011f366004610417565b6102dc565b6040516100aa929190610466565b5f546001600160a01b031633146101795760405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b60448201526064015b60405180910390fd5b6040516001600160a01b038381166024830152604482018390525f917f00000000000000000000000000000000000000000000000000000000000000009091169060640160408051601f198184030181529181526020820180516001600160e01b031663040b850f60e31b179052516101f291906104a2565b5f604051808303815f865af19150503d805f811461022b576040519150601f19603f3d011682016040523d82523d5f602084013e610230565b606091505b50509050806102735760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b6044820152606401610170565b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102d65760405162461bcd60e51b815260206004820152600360248201526202145560ec1b6044820152606401610170565b50505050565b60605f336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461033d5760405162461bcd60e51b815260206004820152600360248201526202145560ec1b6044820152606401610170565b505060408051602081019091525f808252935093915050565b5f5f60408385031215610367575f5ffd5b82356001600160a01b038116811461037d575f5ffd5b946020939093013593505050565b5f5f5f5f6060858703121561039e575f5ffd5b843560ff811681146103ae575f5ffd5b9350602085013567ffffffffffffffff8111156103c9575f5ffd5b8501601f810187136103d9575f5ffd5b803567ffffffffffffffff8111156103ef575f5ffd5b876020828401011115610400575f5ffd5b949760209190910196509394604001359392505050565b5f5f5f60608486031215610429575f5ffd5b833567ffffffffffffffff81111561043f575f5ffd5b84016101608187031215610451575f5ffd5b95602085013595506040909401359392505050565b604081525f83518060408401528060208601606085015e5f606082850101526060601f19601f8301168401019150508260208301529392505050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e815fb15a2e27454af13e74640b3b63a0f1dd20ace677f84f797d2bea4d19efb64736f6c63430008210033";
136
95
  export interface PaymasterConfig {
137
96
  /** RPC URL */
138
97
  rpcUrl?: string;
@@ -30,36 +30,44 @@ export const SIMPLE_PAYMASTER_ABI = [
30
30
  'function entryPoint() external view returns (address)',
31
31
  // 查询所有者
32
32
  'function owner() external view returns (address)',
33
- // 存款到 EntryPoint(任何人都可以调用)
34
- 'function deposit() external payable',
35
- // 查询在 EntryPoint 中的余额
36
- 'function getDeposit() external view returns (uint256)',
37
- // 所有者提取资金
38
- 'function withdrawTo(address payable withdrawAddress, uint256 amount) external',
39
- // 转移所有权
40
- 'function transferOwnership(address newOwner) external',
41
- // ERC-4337 Paymaster 验证函数
42
- 'function validatePaymasterUserOp(tuple(address sender, uint256 nonce, bytes initCode, bytes callData, uint256 callGasLimit, uint256 verificationGasLimit, uint256 preVerificationGas, uint256 maxFeePerGas, uint256 maxPriorityFeePerGas, bytes paymasterAndData, bytes signature) userOp, bytes32 userOpHash, uint256 maxCost) external returns (bytes memory context, uint256 validationData)',
33
+ // 所有者提取资金(调用 EntryPoint.withdrawTo)
34
+ 'function withdrawTo(address payable to, uint256 amount) external',
35
+ // ERC-4337 v0.6 Paymaster 验证函数(正确的 UserOperation 结构体签名)
36
+ 'function validatePaymasterUserOp((address sender,uint256 nonce,bytes initCode,bytes callData,uint256 callGasLimit,uint256 verificationGasLimit,uint256 preVerificationGas,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,bytes paymasterAndData,bytes signature), bytes32, uint256) external view returns (bytes memory, uint256)',
43
37
  // ERC-4337 Paymaster 后处理函数
44
- 'function postOp(uint8 mode, bytes calldata context, uint256 actualGasCost) external',
38
+ 'function postOp(uint8, bytes calldata, uint256) external view',
45
39
  ];
46
40
  /**
47
- * SimplePaymaster 合约 Bytecode
41
+ * SimplePaymaster 编译后的完整 Bytecode
48
42
  *
49
43
  * ✅ 安全设计:
50
44
  * - 只有 owner(AA Payer)可以提取资金
51
45
  * - validatePaymasterUserOp() 无条件接受所有请求(由 owner 信任的 SDK 生成)
52
- * - 资金存储在 EntryPoint 合约中(不在 Paymaster 本身)
46
+ * - 资金存储在 EntryPoint 合约中(通过 EntryPoint.depositTo 充值)
53
47
  *
54
48
  * 🔐 防盗机制:
55
49
  * 1. withdrawTo() 有 onlyOwner 限制
56
50
  * 2. 只有 EntryPoint 可以调用 validatePaymasterUserOp 和 postOp
57
51
  * 3. 资金存储在 EntryPoint,只有通过合约的 withdrawTo 才能取出
58
52
  *
59
- * Solidity 源码 (v0.8.23):
53
+ * Solidity 源码 (solc 0.8.33, optimizer 200 runs):
60
54
  * ```solidity
61
55
  * // SPDX-License-Identifier: MIT
62
- * pragma solidity ^0.8.23;
56
+ * pragma solidity ^0.8.19;
57
+ *
58
+ * struct UserOperation {
59
+ * address sender;
60
+ * uint256 nonce;
61
+ * bytes initCode;
62
+ * bytes callData;
63
+ * uint256 callGasLimit;
64
+ * uint256 verificationGasLimit;
65
+ * uint256 preVerificationGas;
66
+ * uint256 maxFeePerGas;
67
+ * uint256 maxPriorityFeePerGas;
68
+ * bytes paymasterAndData;
69
+ * bytes signature;
70
+ * }
63
71
  *
64
72
  * contract SimplePaymaster {
65
73
  * address public immutable entryPoint;
@@ -70,92 +78,37 @@ export const SIMPLE_PAYMASTER_ABI = [
70
78
  * owner = msg.sender;
71
79
  * }
72
80
  *
73
- * modifier onlyOwner() {
74
- * require(msg.sender == owner, "only owner");
75
- * _;
76
- * }
77
- *
78
- * modifier onlyEntryPoint() {
79
- * require(msg.sender == entryPoint, "only entry point");
80
- * _;
81
- * }
82
- *
83
- * function validatePaymasterUserOp(bytes calldata, bytes32, uint256)
84
- * external view onlyEntryPoint returns (bytes memory, uint256) {
85
- * return ("", 0);
86
- * }
87
- *
88
- * function postOp(uint8, bytes calldata, uint256) external view onlyEntryPoint {}
89
- *
90
- * function deposit() external payable {
91
- * (bool s,) = entryPoint.call{value: msg.value}(
92
- * abi.encodeWithSignature("depositTo(address)", address(this)));
93
- * require(s, "deposit failed");
94
- * }
95
- *
96
- * function getDeposit() external view returns (uint256) {
97
- * (bool s, bytes memory d) = entryPoint.staticcall(
98
- * abi.encodeWithSignature("balanceOf(address)", address(this)));
99
- * require(s, "query failed");
100
- * return abi.decode(d, (uint256));
101
- * }
102
- *
103
- * function withdrawTo(address payable to, uint256 amount) external onlyOwner {
104
- * (bool s,) = entryPoint.call(
105
- * abi.encodeWithSignature("withdrawTo(address,uint256)", to, amount));
106
- * require(s, "withdraw failed");
107
- * }
108
- *
109
- * function transferOwnership(address newOwner) external onlyOwner {
110
- * owner = newOwner;
111
- * }
112
- *
113
- * receive() external payable {}
114
- * }
115
- * ```
116
- *
117
- * 编译设置: solc 0.8.23, optimizer enabled (200 runs), evm: paris
118
- */
119
- /**
120
- * SimplePaymaster 编译后的完整 Bytecode
121
- *
122
- * 这是一个最小化的 Paymaster 合约,功能:
123
- * - validatePaymasterUserOp: 无条件接受所有 UserOp
124
- * - postOp: 空实现
125
- * - withdrawTo: 只有 owner 可以提取资金
126
- *
127
- * Solidity 源码:
128
- * ```solidity
129
- * // SPDX-License-Identifier: MIT
130
- * pragma solidity ^0.8.19;
131
- *
132
- * contract SimplePaymaster {
133
- * address public immutable entryPoint;
134
- * address public owner;
135
- *
136
- * constructor(address _entryPoint) { entryPoint = _entryPoint; owner = msg.sender; }
137
- *
138
- * function validatePaymasterUserOp(bytes calldata, bytes32, uint256)
139
- * external view returns (bytes memory, uint256) {
140
- * require(msg.sender == entryPoint, "not EP");
81
+ * function validatePaymasterUserOp(
82
+ * UserOperation calldata,
83
+ * bytes32,
84
+ * uint256
85
+ * ) external view returns (bytes memory context, uint256 validationData) {
86
+ * require(msg.sender == entryPoint, "!EP");
141
87
  * return ("", 0);
142
88
  * }
143
89
  *
144
90
  * function postOp(uint8, bytes calldata, uint256) external view {
145
- * require(msg.sender == entryPoint, "not EP");
91
+ * require(msg.sender == entryPoint, "!EP");
146
92
  * }
147
93
  *
148
- * function withdrawTo(address to, uint256 amount) external {
149
- * require(msg.sender == owner, "not owner");
94
+ * function withdrawTo(address payable to, uint256 amount) external {
95
+ * require(msg.sender == owner, "!owner");
150
96
  * (bool s,) = entryPoint.call(abi.encodeWithSignature("withdrawTo(address,uint256)", to, amount));
151
- * require(s);
97
+ * require(s, "withdraw failed");
152
98
  * }
153
99
  *
154
100
  * receive() external payable {}
155
101
  * }
156
102
  * ```
103
+ *
104
+ * ✅ 函数选择器:
105
+ * - 0xf465c77e: validatePaymasterUserOp(UserOperation,bytes32,uint256) - ERC-4337 v0.6 正确签名
106
+ * - 0xa9a23409: postOp(uint8,bytes,uint256)
107
+ * - 0x205c2878: withdrawTo(address,uint256)
108
+ * - 0x8da5cb5b: owner()
109
+ * - 0xb0d691fe: entryPoint()
157
110
  */
158
- export const SIMPLE_PAYMASTER_BYTECODE = '0x60a060405234801561001057600080fd5b5060405161041a38038061041a83398101604081905261002f9161005d565b6001600160a01b031660805233600055610090565b6001600160a01b038116811461005a57600080fd5b50565b60006020828403121561006f57600080fd5b815161007a81610045565b9392505050565b60805161036761009960003960006101b901526103676000f3fe6080604052600436106100435760003560e01c80638da5cb5b14610048578063a9a234091461008b578063c399ec88146100ad578063f465c77e146100c0575b600080fd5b34801561005457600080fd5b506000546100689060018060a060020a031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561009757600080fd5b506100ab6100a6366004610262565b6100f0565b005b6100ab6100bb366004610262565b610152565b3480156100cc57600080fd5b506100e06100db3660046102a5565b6101a7565b60405161008292919061030d565b6000546001600160a01b0316331461010757600080fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316635f4e75d360e11b17905261014e9061020d565b5050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018757600080fd5b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101c057600080fd5b50506040805160008082526020820190925290610203565b60608152602001906001900390816101d85790505b5091939092909150565b6000806000836001600160a01b0316846040516102299190610343565b6000604051808303816000865af19150503d8060008114610266576040519150601f19603f3d011682016040523d82523d6000602084013e61026b565b606091505b50909695505050505050565b6001600160a01b038116811461028c57600080fd5b50565b803561029a81610277565b919050565b600080604083850312156102b257600080fd5b82356102bd81610277565b946020939093013593505050565b60008060006060848603121561030057600080fd5b505081359360208301359350604090920135919050565b604080825283519082018190526000906020906060840190828701845b828110156103375781518452928401929084019060010161031f565b50505092019290925250919050565b6000825161035881846020870161035f565b9190910192915050565bfe';
111
+ export const SIMPLE_PAYMASTER_BYTECODE = '0x60a060405234801561000f575f5ffd5b5060405161059738038061059783398101604081905261002e91610050565b6001600160a01b03166080525f80546001600160a01b0319163317905561007d565b5f60208284031215610060575f5ffd5b81516001600160a01b0381168114610076575f5ffd5b9392505050565b6080516104ee6100a95f395f818160e3015281816101970152818161028301526102ea01526104ee5ff3fe60806040526004361061004c575f3560e01c8063205c2878146100575780638da5cb5b14610078578063a9a23409146100b3578063b0d691fe146100d2578063f465c77e14610105575f5ffd5b3661005357005b5f5ffd5b348015610062575f5ffd5b50610076610071366004610356565b610132565b005b348015610083575f5ffd5b505f54610096906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100be575f5ffd5b506100766100cd36600461038b565b610278565b3480156100dd575f5ffd5b506100967f000000000000000000000000000000000000000000000000000000000000000081565b348015610110575f5ffd5b5061012461011f366004610417565b6102dc565b6040516100aa929190610466565b5f546001600160a01b031633146101795760405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b60448201526064015b60405180910390fd5b6040516001600160a01b038381166024830152604482018390525f917f00000000000000000000000000000000000000000000000000000000000000009091169060640160408051601f198184030181529181526020820180516001600160e01b031663040b850f60e31b179052516101f291906104a2565b5f604051808303815f865af19150503d805f811461022b576040519150601f19603f3d011682016040523d82523d5f602084013e610230565b606091505b50509050806102735760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b6044820152606401610170565b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102d65760405162461bcd60e51b815260206004820152600360248201526202145560ec1b6044820152606401610170565b50505050565b60605f336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461033d5760405162461bcd60e51b815260206004820152600360248201526202145560ec1b6044820152606401610170565b505060408051602081019091525f808252935093915050565b5f5f60408385031215610367575f5ffd5b82356001600160a01b038116811461037d575f5ffd5b946020939093013593505050565b5f5f5f5f6060858703121561039e575f5ffd5b843560ff811681146103ae575f5ffd5b9350602085013567ffffffffffffffff8111156103c9575f5ffd5b8501601f810187136103d9575f5ffd5b803567ffffffffffffffff8111156103ef575f5ffd5b876020828401011115610400575f5ffd5b949760209190910196509394604001359392505050565b5f5f5f60608486031215610429575f5ffd5b833567ffffffffffffffff81111561043f575f5ffd5b84016101608187031215610451575f5ffd5b95602085013595506040909401359392505050565b604081525f83518060408401528060208601606085015e5f606082850101526060601f19601f8301168401019150508260208301529392505050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220e815fb15a2e27454af13e74640b3b63a0f1dd20ace677f84f797d2bea4d19efb64736f6c63430008210033';
159
112
  /**
160
113
  * Paymaster 管理器
161
114
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "four-flap-meme-sdk",
3
- "version": "1.6.89",
3
+ "version": "1.6.91",
4
4
  "description": "SDK for Flap bonding curve and four.meme TokenManager",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -34,6 +34,7 @@
34
34
  "pinata": "^1.10.1"
35
35
  },
36
36
  "devDependencies": {
37
+ "solc": "^0.8.33",
37
38
  "typescript": "^5.6.3"
38
39
  }
39
40
  }