-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add EIP: Encumber #7246
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 <[email protected]>
* | ||
* Any function which would reduce balanceOf(owner) below encumberedBalanceOf(owner) MUST revert | ||
*/ | ||
function encumberedBalanceOf(address owner) external returns (uint); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can this be a view?
* 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); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this can also be a view, yeah?
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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: