Skip to content

Commit 9d863b9

Browse files
committed
Modular payments gateway
1 parent f2db1bf commit 9d863b9

File tree

6 files changed

+855
-0
lines changed

6 files changed

+855
-0
lines changed

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,9 @@
44
[submodule "lib/openzeppelin-contracts"]
55
path = lib/openzeppelin-contracts
66
url = https://github.com/OpenZeppelin/openzeppelin-contracts
7+
[submodule "lib/modular-contracts"]
8+
path = lib/modular-contracts
9+
url = https://github.com/thirdweb-dev/modular-contracts
10+
[submodule "lib/solady"]
11+
path = lib/solady
12+
url = https://github.com/vectorized/solady

lib/modular-contracts

Submodule modular-contracts added at 112f9e3

lib/solady

Submodule solady added at a1f9be9

src/ModularPaymentsGateway.sol

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
pragma solidity ^0.8.22;
3+
4+
import { ModularCore } from "lib/modular-contracts/src/ModularCore.sol";
5+
import { Initializable } from "lib/solady/src/utils/Initializable.sol";
6+
7+
contract ModularPaymentsGateway is ModularCore, Initializable {
8+
constructor() {
9+
_disableInitializers();
10+
}
11+
12+
function initialize(
13+
address _owner,
14+
address[] memory _extensions,
15+
bytes[] memory _extensionInstallData
16+
) external payable {
17+
_initializeOwner(_owner);
18+
19+
// Install and initialize extensions
20+
require(_extensions.length == _extensionInstallData.length);
21+
for (uint256 i = 0; i < _extensions.length; i++) {
22+
_installExtension(_extensions[i], _extensionInstallData[i]);
23+
}
24+
}
25+
26+
function getSupportedCallbackFunctions()
27+
public
28+
pure
29+
override
30+
returns (SupportedCallbackFunction[] memory supportedCallbackFunctions)
31+
{}
32+
}

0 commit comments

Comments
 (0)