@@ -540,10 +540,8 @@ public class ERC1155MintPayload
540
540
public int quantity ;
541
541
public NFTMetadata metadata ;
542
542
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 ;
547
545
548
546
public ERC1155MintPayload ( string receiverAddress , NFTMetadata metadata , int quantity = 1 )
549
547
{
@@ -556,9 +554,8 @@ public ERC1155MintPayload(string receiverAddress, NFTMetadata metadata, int quan
556
554
this . royaltyBps = 0 ;
557
555
this . quantity = quantity ;
558
556
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 ( ) ;
562
559
}
563
560
}
564
561
@@ -574,10 +571,8 @@ public class ERC1155MintAdditionalPayload
574
571
public int royaltyBps ;
575
572
public int quantity ;
576
573
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 ;
581
576
582
577
public ERC1155MintAdditionalPayload ( string receiverAddress , string tokenId , int quantity = 1 )
583
578
{
@@ -590,9 +585,8 @@ public ERC1155MintAdditionalPayload(string receiverAddress, string tokenId, int
590
585
this . royaltyBps = 0 ;
591
586
this . quantity = quantity ;
592
587
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 ( ) ;
596
590
}
597
591
}
598
592
@@ -643,13 +637,61 @@ public async Task<ERC1155SignedPayload> Generate(ERC1155MintPayload payloadToSig
643
637
{
644
638
if ( Utils . IsWebGLBuild ( ) )
645
639
{
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 ;
647
691
}
648
692
else
649
693
{
650
694
var uri = await ThirdwebManager . Instance . SDK . storage . UploadText ( JsonConvert . SerializeObject ( payloadToSign . metadata ) ) ;
651
- var startTime = await Utils . GetCurrentBlockTimeStamp ( ) ;
652
- var endTime = Utils . GetUnixTimeStampIn10Years ( ) ;
653
695
var royalty = await TransactionManager . ThirdwebRead < TokenERC1155Contract . GetDefaultRoyaltyInfoFunction , TokenERC1155Contract . GetDefaultRoyaltyInfoOutputDTO > (
654
696
contractAddress ,
655
697
new TokenERC1155Contract . GetDefaultRoyaltyInfoFunction ( ) { }
@@ -659,7 +701,7 @@ public async Task<ERC1155SignedPayload> Generate(ERC1155MintPayload payloadToSig
659
701
new TokenERC1155Contract . PrimarySaleRecipientFunction ( ) { }
660
702
) ;
661
703
662
- TokenERC1155Contract . MintRequest req = new TokenERC1155Contract . MintRequest ( )
704
+ var req = new TokenERC1155Contract . MintRequest ( )
663
705
{
664
706
To = payloadToSign . to ,
665
707
RoyaltyRecipient = royalty . ReturnValue1 ,
@@ -670,8 +712,8 @@ public async Task<ERC1155SignedPayload> Generate(ERC1155MintPayload payloadToSig
670
712
Quantity = payloadToSign . quantity ,
671
713
PricePerToken = BigInteger . Parse ( payloadToSign . price . ToWei ( ) ) ,
672
714
Currency = payloadToSign . currencyAddress ,
673
- ValidityStartTimestamp = startTime ,
674
- ValidityEndTimestamp = endTime ,
715
+ ValidityStartTimestamp = payloadToSign . mintStartTime ,
716
+ ValidityEndTimestamp = payloadToSign . mintEndTime ,
675
717
Uid = payloadToSign . uid . HexStringToByteArray ( )
676
718
} ;
677
719
@@ -684,33 +726,83 @@ await ThirdwebManager.Instance.SDK.wallet.GetChainId(),
684
726
string . IsNullOrEmpty ( privateKeyOverride ) ? null : privateKeyOverride
685
727
) ;
686
728
687
- ERC1155SignedPayload signedPayload = new ERC1155SignedPayload ( ) ;
688
- signedPayload . signature = signature ;
689
- signedPayload . payload = new ERC1155SignedPayloadOutput ( )
729
+ var signedPayload = new ERC1155SignedPayload ( )
690
730
{
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
+ }
703
747
} ;
704
748
705
749
return signedPayload ;
706
750
}
707
751
}
708
752
709
- public async Task < ERC1155SignedPayload > GenerateFromTokenId ( ERC1155MintAdditionalPayload payloadToSign )
753
+ public async Task < ERC1155SignedPayload > GenerateFromTokenId ( ERC1155MintAdditionalPayload payloadToSign , string privateKeyOverride = "" )
710
754
{
711
755
if ( Utils . IsWebGLBuild ( ) )
712
756
{
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 ;
714
806
}
715
807
else
716
808
{
@@ -719,8 +811,6 @@ public async Task<ERC1155SignedPayload> GenerateFromTokenId(ERC1155MintAdditiona
719
811
contractAddress ,
720
812
new TokenERC1155Contract . UriFunction ( ) { TokenId = BigInteger . Parse ( payloadToSign . tokenId ) }
721
813
) ;
722
- var startTime = await Utils . GetCurrentBlockTimeStamp ( ) ;
723
- var endTime = Utils . GetUnixTimeStampIn10Years ( ) ;
724
814
var royalty = await TransactionManager . ThirdwebRead < TokenERC1155Contract . GetDefaultRoyaltyInfoFunction , TokenERC1155Contract . GetDefaultRoyaltyInfoOutputDTO > (
725
815
contractAddress ,
726
816
new TokenERC1155Contract . GetDefaultRoyaltyInfoFunction ( ) { }
@@ -730,7 +820,7 @@ public async Task<ERC1155SignedPayload> GenerateFromTokenId(ERC1155MintAdditiona
730
820
new TokenERC1155Contract . PrimarySaleRecipientFunction ( ) { }
731
821
) ;
732
822
733
- TokenERC1155Contract . MintRequest req = new TokenERC1155Contract . MintRequest ( )
823
+ var req = new TokenERC1155Contract . MintRequest ( )
734
824
{
735
825
To = payloadToSign . to ,
736
826
RoyaltyRecipient = royalty . ReturnValue1 ,
@@ -741,29 +831,38 @@ public async Task<ERC1155SignedPayload> GenerateFromTokenId(ERC1155MintAdditiona
741
831
Quantity = payloadToSign . quantity ,
742
832
PricePerToken = BigInteger . Parse ( payloadToSign . price ) ,
743
833
Currency = payloadToSign . currencyAddress ,
744
- ValidityStartTimestamp = startTime ,
745
- ValidityEndTimestamp = endTime ,
834
+ ValidityStartTimestamp = payloadToSign . mintStartTime ,
835
+ ValidityEndTimestamp = payloadToSign . mintEndTime ,
746
836
Uid = payloadToSign . uid . HexStringToByteArray ( )
747
837
} ;
748
838
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
+ ) ;
750
847
751
- ERC1155SignedPayload signedPayload = new ERC1155SignedPayload ( ) ;
752
- signedPayload . signature = signature ;
753
- signedPayload . payload = new ERC1155SignedPayloadOutput ( )
848
+ var signedPayload = new ERC1155SignedPayload ( )
754
849
{
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
+ }
767
866
} ;
768
867
return signedPayload ;
769
868
}
0 commit comments