Skip to content

Commit

Permalink
refactor: integrate IErrandManager into Errantry and ErrantryClientSm…
Browse files Browse the repository at this point in the history
…artAccount
  • Loading branch information
Da-Colon committed Dec 29, 2024
1 parent d2bc670 commit aca58ca
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 9 deletions.
9 changes: 6 additions & 3 deletions contracts/src/Errantry.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import {IErrantry} from "./interfaces/IErrantry.sol";
import {IErrandManager} from "./interfaces/IErrandManager.sol";
import {ErrandManager} from "./ErrandManager.sol";
import {Lib} from "./libraries/Lib.sol";
import {ErrantryClientSmartAccount} from "./ErrantryClientSmartAccount.sol";
import {Lib} from "./libraries/Lib.sol";
import {IEntryPoint} from "@account-abstraction/contracts/interfaces/IEntryPoint.sol";
import {PackedUserOperation} from "@account-abstraction/contracts/interfaces/PackedUserOperation.sol";
import "./OnlyOracle.sol";
Expand Down Expand Up @@ -54,12 +55,14 @@ contract Errantry is IErrantry, OnlyOracle {
if (clients[clientAddress].client != address(0)) {
revert ClientAlreadyRegistered();
}
IErrandManager errandManager = new ErrandManager();
clients[msg.sender] = Lib.Client({
client: msg.sender,
errandManager: new ErrandManager(),
errandManager: errandManager,
smartAccount: new ErrantryClientSmartAccount(
SA_ENTRY_POINT,
TRUSTED_ORACLE
TRUSTED_ORACLE,
errandManager
)
});

Expand Down
12 changes: 8 additions & 4 deletions contracts/src/ErrantryClientSmartAccount.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@
pragma solidity ^0.8.28;

import {SimpleAccount, IEntryPoint, PackedUserOperation, SIG_VALIDATION_SUCCESS} from "@account-abstraction/contracts/samples/SimpleAccount.sol";
import {OnlyOracle} from "./OnlyOracle.sol";
import {IErrantryClientSmartAccount} from "./interfaces/IErrantryClientSmartAccount.sol";
import {IErrandManager} from "./interfaces/IErrandManager.sol";

contract ErrantryClientSmartAccount is SimpleAccount, OnlyOracle {
contract ErrantryClientSmartAccount is IErrantryClientSmartAccount {
constructor(
IEntryPoint _entryPoint,
address _trustedOracle
) SimpleAccount(_entryPoint) OnlyOracle(_trustedOracle) {}
address _trustedOracle,
IErrandManager _errandManager
)
IErrantryClientSmartAccount(_entryPoint, _trustedOracle, _errandManager)
{}

/* >>>>>>>> general external functions <<<<<<< */
function _validateSignature(
Expand Down
18 changes: 18 additions & 0 deletions contracts/src/interfaces/IErrantryClientSmartAccount.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

import {SimpleAccount, IEntryPoint} from "@account-abstraction/contracts/samples/SimpleAccount.sol";
import {OnlyOracle} from "../OnlyOracle.sol";
import {IErrandManager} from "./IErrandManager.sol";

abstract contract IErrantryClientSmartAccount is SimpleAccount, OnlyOracle {
IErrandManager private ERRAND_MANAGER;

constructor(
IEntryPoint _entryPoint,
address _trustedOracle,
IErrandManager _errandManager
) SimpleAccount(_entryPoint) OnlyOracle(_trustedOracle) {
ERRAND_MANAGER = _errandManager;
}
}
4 changes: 2 additions & 2 deletions contracts/src/libraries/Lib.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import {IErrandManager} from "../interfaces/IErrandManager.sol";
import {ErrantryClientSmartAccount} from "../ErrantryClientSmartAccount.sol";
import {IErrantryClientSmartAccount} from "../interfaces/IErrantryClientSmartAccount.sol";

library Lib {
struct NewClientParams {
Expand All @@ -11,7 +11,7 @@ library Lib {
struct Client {
address client;
IErrandManager errandManager;
ErrantryClientSmartAccount smartAccount;
IErrantryClientSmartAccount smartAccount;
}

// we are going to restrict this to a single stablecoin for now
Expand Down

0 comments on commit aca58ca

Please sign in to comment.