-
Notifications
You must be signed in to change notification settings - Fork 2
/
IAccountFacet.sol
38 lines (24 loc) · 1.29 KB
/
IAccountFacet.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// SPDX-License-Identifier: SYMM-Core-Business-Source-License-1.1
// This contract is licensed under the SYMM Core Business Source License 1.1
// Copyright (c) 2023 Symmetry Labs AG
// For more information, see https://docs.symm.io/legal-disclaimer/license
pragma solidity >=0.8.18;
import "./IAccountEvents.sol";
import "../../storages/MuonStorage.sol";
interface IAccountFacet is IAccountEvents {
//Party A
function deposit(uint256 amount) external;
function depositFor(address user, uint256 amount) external;
function withdraw(uint256 amount) external;
function withdrawTo(address user, uint256 amount) external;
function allocate(uint256 amount) external;
function depositAndAllocate(uint256 amount) external;
function deallocate(uint256 amount, SingleUpnlSig memory upnlSig) external;
function internalTransfer(address user, uint256 amount) external;
// PartyB
function allocateForPartyB(uint256 amount, address partyA) external;
function deallocateForPartyB(uint256 amount, address partyA, SingleUpnlSig memory upnlSig) external;
function transferAllocation(uint256 amount, address origin, address recipient, SingleUpnlSig memory upnlSig) external;
function depositToReserveVault(uint256 amount, address partyB) external;
function withdrawFromReserveVault(uint256 amount) external;
}