Skip to content

Commit

Permalink
Update arc-0041.md
Browse files Browse the repository at this point in the history
Wording + naming
  • Loading branch information
SudoWeezy authored Jul 11, 2023
1 parent bbc1039 commit 106dc71
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions ARCs/arc-0041.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
arc: 41
title: NFT's vault of NFTs & FTs
description: Application ID storing NFTs & FTs on behalf of user
description: Application subsidiaries of an NFT storing NFTs & FTs
author: Stéphane BARROSO (@SudoWeezy)
discussions-to: https://github.com/algorandfoundation/ARCs/issues/213
status: Draft
Expand All @@ -12,19 +12,19 @@ created: 2023-06-16

## Abstract
This standard is inspired by <a href="https://eips.ethereum.org/EIPS/eip-6551">EIP-6551</a>
The goal is to create a smart contract who will give is owner a way to bundle multiple Algo/Fungible Token/NFTs at once.
The goal is to create a smart contract that will give its owner a way to bundle multiple Algo/Fungible Token/NFTs at once.


## Specification
The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC-2119</a>.

### Glossary
In the document we will use following syntax:
In the document, we will use the following syntax:
- Authority NFT -> NFT that detain & manage others NFTs & FTs
- Vault -> Application ID holding NFTs & FTs of the Authority NFT

### Events
In order to allow wallet & dApps to identify the vault of the Authority NFT, an [ARC-28](./arc-0028.md) event MUST be emitted when creating the vault.
To allow wallet & dApps to identify the vault of the Authority NFT, an [ARC-28](./arc-0028.md) event MUST be emitted when creating the vault.
```json
{
"events": [
Expand All @@ -49,7 +49,7 @@ In order to allow wallet & dApps to identify the vault of the Authority NFT, an
},
{
"type": "uint64",
"name": "AppId",
"name": "appId",
"desc": "The Application ID of the authority NFT, (0 if ASA)"
}
]
Expand All @@ -58,7 +58,7 @@ In order to allow wallet & dApps to identify the vault of the Authority NFT, an
}
```

A `arc41_AccountCreated` event MUST be emitted, when a vault is created.
An `arc41_AccountCreated` event MUST be emitted when a vault is created.


### Interface
Expand All @@ -69,16 +69,16 @@ A `arc41_AccountCreated` event MUST be emitted, when a vault is created.
"methods": [
{
"name": "arc41_isOwner",
"desc": "Indicate if the caller detain the Authority NFT of this vault, this method MUST be called internally by every other methods of the application, it must call ARC-72 ownerOf in case of a application NFT",
"desc": "Indicate if the caller detains the Authority NFT of this vault, this method MUST be called internally by every other method of the application, it must call ARC-72 ownerOf in case of an application NFT",
"readonly": true,
"returns": { "type": "bool", "desc": "True if the caller detain the Authority NFT of this vault, False otherwise" }
"returns": { "type": "bool", "desc": "True if the caller detains the Authority NFT of this vault, False otherwise" }
},
{
"name": "arc41_optIn",
"desc": "Opt-in ASA in the vault",
"readonly": false,
"args": [
{ "type": "uint64", "name": "assetId" }
{ "type": "uint64", "name": "asaId" }
],
"returns": { "type": "void" }
},
Expand Down Expand Up @@ -110,7 +110,7 @@ A `arc41_AccountCreated` event MUST be emitted, when a vault is created.
},
{
"type": "uint64",
"name": "AppId",
"name": "appId",
"desc": "The Application ID of the authority NFT, (0 if ASA)"
}
],
Expand All @@ -120,7 +120,7 @@ A `arc41_AccountCreated` event MUST be emitted, when a vault is created.
}
```

The `arc41_isOwner` method MUST be called internaly by every other methods.
The `arc41_isOwner` method MUST be called internally by every other method.
The `arc41_transferAlgoFrom` method MUST error when `from` is not the owner of `asaId` or `tokenId`.
The `arc41_transferFrom` method MUST error when `from` is not the owner of `asaId` or `tokenId`.

Expand All @@ -131,7 +131,7 @@ ASAs NFT following [ARC-3](./arc-0003.md), [ARC-19](./arc-0019.md) or [ARC-69](.
This standard is compatible with every NFT standard.

## Security Considerations
The method `isOwner` **MUST** be called internally by the logic of every other method of the application to ensure that the caller detain the Authority NFT.
The method `isOwner` **MUST** be called internally by the logic of every other application method to ensure that the caller detains the Authority NFT.

## Copyright
Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>.

0 comments on commit 106dc71

Please sign in to comment.