# AtomicSolver

[Git Source](https://github.com/Ion-Protocol/nucleus-boring-vault/blob/cc0b494b83e17b9b169a73b96050d2810b690477/src/atomic-queue/AtomicSolver.sol)

**Inherits:** IAtomicSolver, Owned, ERC721Holder

**Author:**

## State Variables

### \_solving

```solidity
bool private _solving;
```

### \_balancerVault

```solidity
address private immutable _balancerVault;
```

### approvedToCallFinishSolve

```solidity
mapping(address => bool) private approvedToCallFinishSolve;
```

## Functions

### constructor

```solidity
constructor(address _owner, address _vault) Owned(_owner);
```

### updateMapping

```solidity
function updateMapping(address who, bool state) external onlyOwner;
```

### finishSolve

```solidity
function finishSolve(
    bytes calldata runData,
    address initiator,
    ERC20,
    ERC20 want,
    uint256,
    uint256 assetsForWant
)
    external;
```

### doStuff

```solidity
function doStuff(
    address[] calldata targets,
    uint256[] calldata values,
    bytes[] calldata ammo
)
    external
    payable
    onlyOwner;
```

### receiveFlashLoan

```solidity
function receiveFlashLoan(
    address[] calldata tokens,
    uint256[] calldata amounts,
    uint256[] calldata feeAmounts,
    bytes calldata userData
)
    external;
```

### getEth

```solidity
function getEth(address payable receiver) external onlyOwner;
```

### receive

```solidity
receive() external payable;
```
