Skip to content

Instantly share code, notes, and snippets.

View Vectorized's full-sized avatar
🎡

Vectorized Vectorized

🎡
View GitHub Profile
@Vectorized
Vectorized / ERC721A.sol
Created February 23, 2022 15:07
ERC721A Re-entrant safe
// SPDX-License-Identifier: MIT
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import '@openzeppelin/contracts/token/ERC721/IERC721.sol';
import '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol';
import '@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol';
import '@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol';
import '@openzeppelin/contracts/utils/Address.sol';
@Vectorized
Vectorized / ERC721A.sol
Last active February 7, 2022 08:35
ERC721A (adjustable start index)
// SPDX-License-Identifier: MIT
// Creator: Chiru Labs
pragma solidity ^0.8.0;
import '@openzeppelin/contracts/token/ERC721/IERC721.sol';
import '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol';
import '@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol';
import '@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol';
import '@openzeppelin/contracts/utils/Address.sol';
@Vectorized
Vectorized / ERC721A.sol
Last active September 27, 2024 08:56
ERC721A Burnable (with configurable start index)
// SPDX-License-Identifier: MIT
// Creator: Chiru Labs
pragma solidity ^0.8.0;
import '@openzeppelin/contracts/token/ERC721/IERC721.sol';
import '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol';
import '@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol';
import '@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol';
import '@openzeppelin/contracts/utils/Address.sol';
@Vectorized
Vectorized / attribute_list.py
Last active September 29, 2015 16:34
Python add/set attributes to list (or any built-in classes)
class L(list):
"""
A subclass of list that can accept additional attributes.
Should be able to be used just like a regular list.
The problem:
a = [1, 2, 4, 8]
a.x = "Hey!" # AttributeError: 'list' object has no attribute 'x'
The solution: