github.com/0chain/gosdk@v1.17.11/zcnbridge/authorizer/proofBurnTicket_test.go (about)

     1  package authorizer_test
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"github.com/0chain/gosdk/zcncore"
     8  
     9  	"github.com/0chain/gosdk/core/zcncrypto"
    10  	"github.com/0chain/gosdk/zcnbridge/authorizer"
    11  	"github.com/stretchr/testify/require"
    12  	"github.com/stretchr/testify/suite"
    13  )
    14  
    15  const walletString = `{
    16    "client_id": "39ac4c04401762778de45d00c51934b2ff15d8168722585daa422195a1ebc5d5",
    17    "client_key": "9cf22d230343a68a149a2ccea1137846dd6d0fe653985eb8bebfbe2583ab0e1e2281b78218f480a50cac78cd0c716c3aafa8d741af813a94ca0a5b4e0b8e7a22",
    18    "keys": [
    19      {
    20        "public_key": "9cf22d230343a68a149a2ccea1137846dd6d0fe653985eb8bebfbe2583ab0e1e2281b78218f480a50cac78cd0c716c3aafa8d741af813a94ca0a5b4e0b8e7a22",
    21        "private_key": "9c6c9022bdbd05670c07eae339dbb5491b1c035c2287a83c56581c505b824623"
    22      }
    23    ],
    24    "mnemonics": "fortune guitar marine bachelor ocean raven hunt silver pass hurt industry forget cradle shuffle render used used order chat shallow aerobic cry exercise junior",
    25    "version": "1.0",
    26    "date_created": "2022-07-17T16:12:25+05:00",
    27    "nonce": 0
    28  }
    29  `
    30  
    31  type TicketTestSuite struct {
    32  	suite.Suite
    33  	w *zcncrypto.Wallet
    34  }
    35  
    36  func TestTicketTestSuite(t *testing.T) {
    37  	suite.Run(t, new(TicketTestSuite))
    38  }
    39  
    40  func (suite *TicketTestSuite) SetupTest() {
    41  	w := &zcncrypto.Wallet{}
    42  	err := json.Unmarshal([]byte(walletString), w)
    43  	require.NoError(suite.T(), err)
    44  	suite.w = w
    45  }
    46  
    47  func (suite *TicketTestSuite) TestBasicSignature() {
    48  	hash := zcncrypto.Sha3Sum256("test")
    49  	signScheme := zcncrypto.NewSignatureScheme("bls0chain")
    50  	err := signScheme.SetPrivateKey(suite.w.Keys[0].PrivateKey)
    51  	require.NoError(suite.T(), err)
    52  	sign, err := signScheme.Sign(hash)
    53  	require.NoError(suite.T(), err)
    54  	require.NotEmpty(suite.T(), sign)
    55  }
    56  
    57  func (suite *TicketTestSuite) TestTicketSignature() {
    58  	pb := &authorizer.ProofOfBurn{
    59  		TxnID:           "TxnID",
    60  		Nonce:           100,
    61  		Amount:          10,
    62  		EthereumAddress: "0xBEEF",
    63  		Signature:       nil,
    64  	}
    65  
    66  	zcncore.InitSignatureScheme("bls0chain")
    67  	err := pb.SignWith0Chain(suite.w)
    68  	require.NoError(suite.T(), err)
    69  	require.NotEmpty(suite.T(), pb.Signature)
    70  }