Add EIP: Encumber - #7246
Conversation
8716d0c to
72f84f4
Compare
102e031 to
23438e7
Compare
|
The commit add17ee (as a parent of 6eab861) contains errors. |
23df83a to
5286f61
Compare
use assigned number Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
| * | ||
| * Any function which would reduce balanceOf(owner) below encumberedBalanceOf(owner) MUST revert | ||
| */ | ||
| function encumberedBalanceOf(address owner) external returns (uint); |
| * This value increases when {encumber} or {encumberFrom} are called by the `owner` or by another permitted account. | ||
| * This value decreases when {release} and {transferFrom} are called by `taker`. | ||
| */ | ||
| function encumbrances(address owner, address taker) external returns (uint); |
File
|
|
Hi @coburncoburn, this is a very interesting proposal to me as a previous editor of EIP-2615 (NFT w/ mortgage and rental functions). I can see this becoming a new financial primitive, but I suggest that we add one more function to allow for the secondary trading of encumbrances without needing to move the tokens around with In other words, we want to allow takers to easily transfer their encumbrances to other takers. See example: 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
);Please let me know your thoughts. |
This comment was marked as off-topic.
This comment was marked as off-topic.
|
Hey guys, @coburncoburn, I'm part of Inclusio Labs we are a startup (with deep experience in TradFi lending and structured debt) focused on building financial inclusion products, starting with a new type of oracle-free lending protocol. I was excited to see this standard come up. I believe in it strongly and want to help in the drafting process. |
|
@adrianmcli That's a really interesting idea. Transferring debt/encumbrance seems very useful. One question: does |
| event Encumber(address indexed owner, address indexed taker, uint amount); | ||
|
|
||
| /** | ||
| * @dev Emitted when the encumbrance of a `taker` to an `owner` is reduced by `amount`. |
There was a problem hiding this comment.
Should read:
* @dev Emitted when the encumbrance of an `owner` to a `taker` is reduced by `amount`.
|
I am closing this pull request because we are in the process of separating EIPs and ERCs into distinct repositories. Unfortunately, as far as we are aware, GitHub does not provide any tools to ease this migration, so every pull request will need to be re-opened manually. As this is a PR to create / modify an ERC, I will kindly ask you to redirect this to the new repository at ethereum/ERCs. We have prepared a guide to help with the process. If there is relevant history here, please link to this PR from the new pull request. On behalf of the EIP Editors, I apologize for this inconvenience. |
|
ethereum/ERCs#54 The new home of this standard |
When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met: