I originally made a comment here regarding this: ethereum/EIPs#7246 (comment)
I like the idea for the EIP7246 standard but I believe it's necessary to bake in a way (within the standard) to transfer encumbrances. So here is my proposed addition:
function transferEncumbranceRights(address owner, address newTaker, uint amount) external {
// Ensure caller has enough encumbrance for the transfer
require(encumbrances[owner][msg.sender] >= amount, "Insufficient encumbrance");
// Reduce the encumbrance of the old taker
encumbrances[owner][msg.sender] -= amount;
// Increase the encumbrance of the new taker
encumbrances[owner][newTaker] += amount;
// Emit an event for tracking
emit EncumbranceRightsTransferred(owner, msg.sender, newTaker, amount);
}
event EncumbranceRightsTransferred(
address indexed owner,
address indexed oldTaker,
address indexed newTaker,
uint amount
);
I might be completely off-base here, but wanted to get the discussion started. I am also happy to make a PR.
Another alternative to address this use-case would be to simply require the issuing of receipt tokens whenever an encumbrance is created. But I think that might be too much overhead compared to adding this simple function.
Please let me know your thoughts.
I originally made a comment here regarding this: ethereum/EIPs#7246 (comment)
I like the idea for the EIP7246 standard but I believe it's necessary to bake in a way (within the standard) to transfer encumbrances. So here is my proposed addition:
I might be completely off-base here, but wanted to get the discussion started. I am also happy to make a PR.
Another alternative to address this use-case would be to simply require the issuing of receipt tokens whenever an encumbrance is created. But I think that might be too much overhead compared to adding this simple function.
Please let me know your thoughts.