generic collection

The purpose of this project is to create a collection resource that can let anyone initialize an arbitrary NFT collection and store into it without account owner's authorization(as long as it's whitelisted).

see use example in lib/go/test/generic_collection_test.go