# \[BIP-667\] Roles V2 Migration & New Treasury Permissions

**URL:** <https://forum.balancer.fi/t/bip-667-roles-v2-migration-new-treasury-permissions/5742>\
**Category:** Karpatkey Updates\
**Created:** [May 9, 2024, 2:13pm UTC](https://forum.balancer.fi/t/bip-667-roles-v2-migration-new-treasury-permissions/5742 "2024-05-09T14:13:16Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![gosuto](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/gosuto/32/2014_2.png) [@gosuto](https://forum.balancer.fi/u/gosuto)\
**Post date:** [July 16, 2024, 11:50am UTC](https://forum.balancer.fi/t/bip-667-roles-v2-migration-new-treasury-permissions/5742/4 "2024-07-16T11:50:16Z")

</div>

## permissions policy

### tldr

- adds:

- removes:

### questions

- im guessing that if there is no entry in the zodiac roles ui for a given parameter, then it is basically callable without any restrictions? because in the case of `signOrder` for cowswap, i dont see any restrictions on neither `feeAmountBP` nor `order.feeAmount`. i still think that having both completely unbound opens the door to possible unwanted behaviour. not a show stopper per se, but would be nice to see a limit of for example 10% or even 20% total fee. i did mention this in the previous review already as well ([ref](https://forum.balancer.fi/t/bip-442-permissions-preset-update-request-2/5209/3))

- why remove `swapExactTokensForTokens`?

- why recipient `address(0)` for univ3 collect?

### feedback

- quite a heavy migration, but i am sure next iterations will go a lot easier with this new zodiac roles ui!

- overall the ui is great help, would be nice to have an address book connected to it

- note that a lot of function signatures in the ui (identifiers, parameters) are not decoding at all

- ui can only display a diff of two policies by comparing an actual policy versus a hash (“saved version” of a policy?). how that hash is generated and how it relates to the actual policy is completely opaque

## payload json

your payload json has raw calldata, opposed to actual method names:

```auto
{
    "to": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
    "data": "0x095ea7b3000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f670220000000000000000000000000000000000000000000000000000000000000000",
    "value": "0"
}

```

vs

```auto
{
    "to": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
    "value": "0",
    "data": null,
    "contractMethod": {
    "inputs": [
        { "name": "_spender", "type": "address" },
        { "name": "_amount", "type": "uint256" }
    ],
    "name": "approve",
    "payable": false
    },
    "contractInputsValues": {
    "_spender": "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022",
    "_amount": "0"
    }
}

```

i also noticed some data type mismatches in the [payload you suggested on github](https://github.com/BalancerMaxis/multisig-ops/pull/1154), but we can discuss that there 🙂

---

_[View the full topic](https://forum.balancer.fi/t/bip-667-roles-v2-migration-new-treasury-permissions/5742)._
