@@ -540,10 +540,8 @@ public class ERC1155MintPayload
540540 public int quantity ;
541541 public NFTMetadata metadata ;
542542 public string uid ;
543-
544- // TODO implement these, needs JS bridging support
545- // public long mintStartTime;
546- // public long mintEndTime;
543+ public long mintStartTime ;
544+ public long mintEndTime ;
547545
548546 public ERC1155MintPayload ( string receiverAddress , NFTMetadata metadata , int quantity = 1 )
549547 {
@@ -556,9 +554,8 @@ public ERC1155MintPayload(string receiverAddress, NFTMetadata metadata, int quan
556554 this . royaltyBps = 0 ;
557555 this . quantity = quantity ;
558556 this . uid = Utils . ToBytes32HexString ( Guid . NewGuid ( ) . ToByteArray ( ) ) ;
559- // TODO temporary solution
560- // this.mintStartTime = Utils.UnixTimeNowMs() * 1000L;
561- // this.mintEndTime = this.mintStartTime + 1000L * 60L * 60L * 24L * 365L;
557+ this . mintStartTime = Utils . GetUnixTimeStampNow ( ) - 60 ;
558+ this . mintEndTime = Utils . GetUnixTimeStampIn10Years ( ) ;
562559 }
563560 }
564561
@@ -574,10 +571,8 @@ public class ERC1155MintAdditionalPayload
574571 public int royaltyBps ;
575572 public int quantity ;
576573 public string uid ;
577-
578- // TODO implement these, needs JS bridging support
579- // public long mintStartTime;
580- // public long mintEndTime;
574+ public long mintStartTime ;
575+ public long mintEndTime ;
581576
582577 public ERC1155MintAdditionalPayload ( string receiverAddress , string tokenId , int quantity = 1 )
583578 {
@@ -590,9 +585,8 @@ public ERC1155MintAdditionalPayload(string receiverAddress, string tokenId, int
590585 this . royaltyBps = 0 ;
591586 this . quantity = quantity ;
592587 this . uid = Utils . ToBytes32HexString ( Guid . NewGuid ( ) . ToByteArray ( ) ) ;
593- // TODO temporary solution
594- // this.mintStartTime = Utils.UnixTimeNowMs() * 1000L;
595- // this.mintEndTime = this.mintStartTime + 1000L * 60L * 60L * 24L * 365L;
588+ this . mintStartTime = Utils . GetUnixTimeStampNow ( ) - 60 ;
589+ this . mintEndTime = Utils . GetUnixTimeStampIn10Years ( ) ;
596590 }
597591 }
598592
@@ -643,13 +637,61 @@ public async Task<ERC1155SignedPayload> Generate(ERC1155MintPayload payloadToSig
643637 {
644638 if ( Utils . IsWebGLBuild ( ) )
645639 {
646- return await Bridge . InvokeRoute < ERC1155SignedPayload > ( getRoute ( "generate" ) , Utils . ToJsonStringArray ( payloadToSign ) ) ;
640+ var signedPayload = await Bridge . InvokeRoute < ERC1155SignedPayload > ( getRoute ( "generate" ) , Utils . ToJsonStringArray ( payloadToSign ) ) ;
641+
642+ if ( privateKeyOverride == "" )
643+ return signedPayload ;
644+
645+ var req = new TokenERC1155Contract . MintRequest ( )
646+ {
647+ To = payloadToSign . to ,
648+ RoyaltyRecipient = signedPayload . payload . royaltyRecipient ,
649+ RoyaltyBps = signedPayload . payload . royaltyBps ,
650+ PrimarySaleRecipient = signedPayload . payload . primarySaleRecipient ,
651+ TokenId = Utils . GetMaxUint256 ( ) ,
652+ Uri = signedPayload . payload . uri ,
653+ Quantity = payloadToSign . quantity ,
654+ PricePerToken = BigInteger . Parse ( payloadToSign . price . ToWei ( ) ) ,
655+ Currency = payloadToSign . currencyAddress ,
656+ ValidityStartTimestamp = payloadToSign . mintStartTime ,
657+ ValidityEndTimestamp = payloadToSign . mintEndTime ,
658+ Uid = payloadToSign . uid . HexStringToByteArray ( )
659+ } ;
660+
661+ string signature = await Thirdweb . EIP712 . GenerateSignature_TokenERC1155 (
662+ "TokenERC1155" ,
663+ "1" ,
664+ await ThirdwebManager . Instance . SDK . wallet . GetChainId ( ) ,
665+ contractAddress ,
666+ req ,
667+ string . IsNullOrEmpty ( privateKeyOverride ) ? null : privateKeyOverride
668+ ) ;
669+
670+ signedPayload = new ERC1155SignedPayload ( )
671+ {
672+ signature = signature ,
673+ payload = new ERC1155SignedPayloadOutput ( )
674+ {
675+ to = req . To ,
676+ tokenId = req . TokenId . ToString ( ) ,
677+ price = req . PricePerToken . ToString ( ) ,
678+ currencyAddress = req . Currency ,
679+ primarySaleRecipient = req . PrimarySaleRecipient ,
680+ royaltyRecipient = req . RoyaltyRecipient ,
681+ royaltyBps = ( int ) req . RoyaltyBps ,
682+ quantity = ( int ) req . Quantity ,
683+ uri = req . Uri ,
684+ uid = req . Uid . ByteArrayToHexString ( ) ,
685+ mintStartTime = ( long ) req . ValidityStartTimestamp ,
686+ mintEndTime = ( long ) req . ValidityEndTimestamp
687+ }
688+ } ;
689+
690+ return signedPayload ;
647691 }
648692 else
649693 {
650694 var uri = await ThirdwebManager . Instance . SDK . storage . UploadText ( JsonConvert . SerializeObject ( payloadToSign . metadata ) ) ;
651- var startTime = await Utils . GetCurrentBlockTimeStamp ( ) ;
652- var endTime = Utils . GetUnixTimeStampIn10Years ( ) ;
653695 var royalty = await TransactionManager . ThirdwebRead < TokenERC1155Contract . GetDefaultRoyaltyInfoFunction , TokenERC1155Contract . GetDefaultRoyaltyInfoOutputDTO > (
654696 contractAddress ,
655697 new TokenERC1155Contract . GetDefaultRoyaltyInfoFunction ( ) { }
@@ -659,7 +701,7 @@ public async Task<ERC1155SignedPayload> Generate(ERC1155MintPayload payloadToSig
659701 new TokenERC1155Contract . PrimarySaleRecipientFunction ( ) { }
660702 ) ;
661703
662- TokenERC1155Contract . MintRequest req = new TokenERC1155Contract . MintRequest ( )
704+ var req = new TokenERC1155Contract . MintRequest ( )
663705 {
664706 To = payloadToSign . to ,
665707 RoyaltyRecipient = royalty . ReturnValue1 ,
@@ -670,8 +712,8 @@ public async Task<ERC1155SignedPayload> Generate(ERC1155MintPayload payloadToSig
670712 Quantity = payloadToSign . quantity ,
671713 PricePerToken = BigInteger . Parse ( payloadToSign . price . ToWei ( ) ) ,
672714 Currency = payloadToSign . currencyAddress ,
673- ValidityStartTimestamp = startTime ,
674- ValidityEndTimestamp = endTime ,
715+ ValidityStartTimestamp = payloadToSign . mintStartTime ,
716+ ValidityEndTimestamp = payloadToSign . mintEndTime ,
675717 Uid = payloadToSign . uid . HexStringToByteArray ( )
676718 } ;
677719
@@ -684,33 +726,83 @@ await ThirdwebManager.Instance.SDK.wallet.GetChainId(),
684726 string . IsNullOrEmpty ( privateKeyOverride ) ? null : privateKeyOverride
685727 ) ;
686728
687- ERC1155SignedPayload signedPayload = new ERC1155SignedPayload ( ) ;
688- signedPayload . signature = signature ;
689- signedPayload . payload = new ERC1155SignedPayloadOutput ( )
729+ var signedPayload = new ERC1155SignedPayload ( )
690730 {
691- to = req . To ,
692- tokenId = req . TokenId . ToString ( ) ,
693- price = req . PricePerToken . ToString ( ) ,
694- currencyAddress = req . Currency ,
695- primarySaleRecipient = req . PrimarySaleRecipient ,
696- royaltyRecipient = req . RoyaltyRecipient ,
697- royaltyBps = ( int ) req . RoyaltyBps ,
698- quantity = ( int ) req . Quantity ,
699- uri = req . Uri ,
700- uid = req . Uid . ByteArrayToHexString ( ) ,
701- mintStartTime = ( long ) req . ValidityStartTimestamp ,
702- mintEndTime = ( long ) req . ValidityEndTimestamp
731+ signature = signature ,
732+ payload = new ERC1155SignedPayloadOutput ( )
733+ {
734+ to = req . To ,
735+ tokenId = req . TokenId . ToString ( ) ,
736+ price = req . PricePerToken . ToString ( ) ,
737+ currencyAddress = req . Currency ,
738+ primarySaleRecipient = req . PrimarySaleRecipient ,
739+ royaltyRecipient = req . RoyaltyRecipient ,
740+ royaltyBps = ( int ) req . RoyaltyBps ,
741+ quantity = ( int ) req . Quantity ,
742+ uri = req . Uri ,
743+ uid = req . Uid . ByteArrayToHexString ( ) ,
744+ mintStartTime = ( long ) req . ValidityStartTimestamp ,
745+ mintEndTime = ( long ) req . ValidityEndTimestamp
746+ }
703747 } ;
704748
705749 return signedPayload ;
706750 }
707751 }
708752
709- public async Task < ERC1155SignedPayload > GenerateFromTokenId ( ERC1155MintAdditionalPayload payloadToSign )
753+ public async Task < ERC1155SignedPayload > GenerateFromTokenId ( ERC1155MintAdditionalPayload payloadToSign , string privateKeyOverride = "" )
710754 {
711755 if ( Utils . IsWebGLBuild ( ) )
712756 {
713- return await Bridge . InvokeRoute < ERC1155SignedPayload > ( getRoute ( "generateFromTokenId" ) , Utils . ToJsonStringArray ( payloadToSign ) ) ;
757+ var signedPayload = await Bridge . InvokeRoute < ERC1155SignedPayload > ( getRoute ( "generateFromTokenId" ) , Utils . ToJsonStringArray ( payloadToSign ) ) ;
758+
759+ if ( privateKeyOverride == "" )
760+ return signedPayload ;
761+
762+ var req = new TokenERC1155Contract . MintRequest ( )
763+ {
764+ To = payloadToSign . to ,
765+ RoyaltyRecipient = signedPayload . payload . royaltyRecipient ,
766+ RoyaltyBps = ( BigInteger ) signedPayload . payload . royaltyBps ,
767+ PrimarySaleRecipient = signedPayload . payload . primarySaleRecipient ,
768+ TokenId = BigInteger . Parse ( payloadToSign . tokenId ) ,
769+ Uri = signedPayload . payload . uri ,
770+ Quantity = payloadToSign . quantity ,
771+ PricePerToken = BigInteger . Parse ( payloadToSign . price ) ,
772+ Currency = payloadToSign . currencyAddress ,
773+ ValidityStartTimestamp = payloadToSign . mintStartTime ,
774+ ValidityEndTimestamp = payloadToSign . mintEndTime ,
775+ Uid = payloadToSign . uid . HexStringToByteArray ( )
776+ } ;
777+ string signature = await Thirdweb . EIP712 . GenerateSignature_TokenERC1155 (
778+ "TokenERC1155" ,
779+ "1" ,
780+ await ThirdwebManager . Instance . SDK . wallet . GetChainId ( ) ,
781+ contractAddress ,
782+ req ,
783+ string . IsNullOrEmpty ( privateKeyOverride ) ? null : privateKeyOverride
784+ ) ;
785+
786+ signedPayload = new ERC1155SignedPayload ( )
787+ {
788+ signature = signature ,
789+ payload = new ERC1155SignedPayloadOutput ( )
790+ {
791+ to = req . To ,
792+ tokenId = req . TokenId . ToString ( ) ,
793+ price = req . PricePerToken . ToString ( ) ,
794+ currencyAddress = req . Currency ,
795+ primarySaleRecipient = req . PrimarySaleRecipient ,
796+ royaltyRecipient = req . RoyaltyRecipient ,
797+ royaltyBps = ( int ) req . RoyaltyBps ,
798+ quantity = ( int ) req . Quantity ,
799+ uri = req . Uri ,
800+ uid = req . Uid . ByteArrayToHexString ( ) ,
801+ mintStartTime = ( long ) req . ValidityStartTimestamp ,
802+ mintEndTime = ( long ) req . ValidityEndTimestamp
803+ }
804+ } ;
805+ return signedPayload ;
714806 }
715807 else
716808 {
@@ -719,8 +811,6 @@ public async Task<ERC1155SignedPayload> GenerateFromTokenId(ERC1155MintAdditiona
719811 contractAddress ,
720812 new TokenERC1155Contract . UriFunction ( ) { TokenId = BigInteger . Parse ( payloadToSign . tokenId ) }
721813 ) ;
722- var startTime = await Utils . GetCurrentBlockTimeStamp ( ) ;
723- var endTime = Utils . GetUnixTimeStampIn10Years ( ) ;
724814 var royalty = await TransactionManager . ThirdwebRead < TokenERC1155Contract . GetDefaultRoyaltyInfoFunction , TokenERC1155Contract . GetDefaultRoyaltyInfoOutputDTO > (
725815 contractAddress ,
726816 new TokenERC1155Contract . GetDefaultRoyaltyInfoFunction ( ) { }
@@ -730,7 +820,7 @@ public async Task<ERC1155SignedPayload> GenerateFromTokenId(ERC1155MintAdditiona
730820 new TokenERC1155Contract . PrimarySaleRecipientFunction ( ) { }
731821 ) ;
732822
733- TokenERC1155Contract . MintRequest req = new TokenERC1155Contract . MintRequest ( )
823+ var req = new TokenERC1155Contract . MintRequest ( )
734824 {
735825 To = payloadToSign . to ,
736826 RoyaltyRecipient = royalty . ReturnValue1 ,
@@ -741,29 +831,38 @@ public async Task<ERC1155SignedPayload> GenerateFromTokenId(ERC1155MintAdditiona
741831 Quantity = payloadToSign . quantity ,
742832 PricePerToken = BigInteger . Parse ( payloadToSign . price ) ,
743833 Currency = payloadToSign . currencyAddress ,
744- ValidityStartTimestamp = startTime ,
745- ValidityEndTimestamp = endTime ,
834+ ValidityStartTimestamp = payloadToSign . mintStartTime ,
835+ ValidityEndTimestamp = payloadToSign . mintEndTime ,
746836 Uid = payloadToSign . uid . HexStringToByteArray ( )
747837 } ;
748838
749- string signature = await Thirdweb . EIP712 . GenerateSignature_TokenERC1155 ( "TokenERC1155" , "1" , await ThirdwebManager . Instance . SDK . wallet . GetChainId ( ) , contractAddress , req ) ;
839+ string signature = await Thirdweb . EIP712 . GenerateSignature_TokenERC1155 (
840+ "TokenERC1155" ,
841+ "1" ,
842+ await ThirdwebManager . Instance . SDK . wallet . GetChainId ( ) ,
843+ contractAddress ,
844+ req ,
845+ string . IsNullOrEmpty ( privateKeyOverride ) ? null : privateKeyOverride
846+ ) ;
750847
751- ERC1155SignedPayload signedPayload = new ERC1155SignedPayload ( ) ;
752- signedPayload . signature = signature ;
753- signedPayload . payload = new ERC1155SignedPayloadOutput ( )
848+ var signedPayload = new ERC1155SignedPayload ( )
754849 {
755- to = req . To ,
756- tokenId = req . TokenId . ToString ( ) ,
757- price = req . PricePerToken . ToString ( ) ,
758- currencyAddress = req . Currency ,
759- primarySaleRecipient = req . PrimarySaleRecipient ,
760- royaltyRecipient = req . RoyaltyRecipient ,
761- royaltyBps = ( int ) req . RoyaltyBps ,
762- quantity = ( int ) req . Quantity ,
763- uri = req . Uri ,
764- uid = req . Uid . ByteArrayToHexString ( ) ,
765- mintStartTime = ( long ) req . ValidityStartTimestamp ,
766- mintEndTime = ( long ) req . ValidityEndTimestamp
850+ signature = signature ,
851+ payload = new ERC1155SignedPayloadOutput ( )
852+ {
853+ to = req . To ,
854+ tokenId = req . TokenId . ToString ( ) ,
855+ price = req . PricePerToken . ToString ( ) ,
856+ currencyAddress = req . Currency ,
857+ primarySaleRecipient = req . PrimarySaleRecipient ,
858+ royaltyRecipient = req . RoyaltyRecipient ,
859+ royaltyBps = ( int ) req . RoyaltyBps ,
860+ quantity = ( int ) req . Quantity ,
861+ uri = req . Uri ,
862+ uid = req . Uid . ByteArrayToHexString ( ) ,
863+ mintStartTime = ( long ) req . ValidityStartTimestamp ,
864+ mintEndTime = ( long ) req . ValidityEndTimestamp
865+ }
767866 } ;
768867 return signedPayload ;
769868 }
0 commit comments