This PR was made to address MIP-7, adding escrowless edition printing through a delegate.
This PR consists of two parts, adding a holder delegate and adding the additional delegate account to print.
Holder Delegate - The holder delegate is a new, third type of delegate added for NFTs and pNFTs. It's allows for the holder to delegate permissions that specific to them. Currently the only Delegate Role is for Prints but it could easily be extended to other uses.
Print Delegate Role - This delegate role allows for a delegated authority to print an edition, rather than just the holder. Multiple delegates can be set so an edition can be escrowlessly listed on several marketplaces at one. Because the unified Instruction architecture versions on args structs rather than the accounts context, I hacked the delegate in as a remaining account instead of created a new Instruction with duplicate handling. It switches based on the accounts array length to pass in an Option for the holder delegate role.
This PR was made to address MIP-7, adding escrowless edition printing through a delegate.
This PR consists of two parts, adding a holder delegate and adding the additional delegate account to print.
Holder Delegate - The holder delegate is a new, third type of delegate added for NFTs and pNFTs. It's allows for the holder to delegate permissions that specific to them. Currently the only Delegate Role is for Prints but it could easily be extended to other uses.
Print Delegate Role - This delegate role allows for a delegated authority to print an edition, rather than just the holder. Multiple delegates can be set so an edition can be escrowlessly listed on several marketplaces at one. Because the unified Instruction architecture versions on args structs rather than the accounts context, I hacked the delegate in as a remaining account instead of created a new Instruction with duplicate handling. It switches based on the accounts array length to pass in an Option for the holder delegate role.