LootLoose
Open your Loot bags and see what's inside
LootLoose is an ERC-1155 contract which allows you to:
- Open your Loot bags and mint 8 ERC-1155 tokens, corresponding to each item in the bag
- Re-assemble your ERC721 bag by giving back the ERC-1155 tokens to the contract
Each ERC1155's token URI is a b64 encoded SVG image, with the item's name (just that item's, not any other item from the bag that contained it).
You can mint the 8 ERC-1155 tokens via 2 ways:
approve
theLootLoose.sol
contract to spend your NFT (or viasetApprovalForAll
) and callingopen
.- Transferring your NFT directly to the contract, triggerring the
onERC721Received
callback
You can reassemble the bag by first approve
or setApprovalForAll
for the tokens
contained in the bag and then calling reassemble
.
Average gas cost to open
is 322k gas, to reassemble
165k.
A UI is available for these contracts at lootloose.com (repo)
Building and testing
git clone https://github.com/gakonst/lootloose
cd lootloose
make
make test
Installing the toolkit
If you do not have DappTools already installed, you'll need to run the below commands
Install Nix
# User must be in sudoers
curl -L https://nixos.org/nix/install | sh
# Run this or login again to use Nix
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
Install DappTools
curl https://dapp.tools/install | sh
Security Notes
- In order to improve gas efficiency, OZ's ERC1155.sol was patched to expose the
_balances
mapping. We use that to do a batch mint insideopen
. - Dom's original LootComponents was modified
to be cheaper to use, since it did a lot of redundant
SLOAD
s in hot code paths.
Disclaimer
These smart contracts are being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the user interface or the smart contracts. They have not been audited and as such there can be no assurance they will work as intended, and users may experience delays, failures, errors, omissions, loss of transmitted information or loss of funds. Paradigm is not liable for any of the foregoing. Users should proceed with caution and use at their own risk.