kzgTest function

Future<void> kzgTest()

Implementation

Future<void> kzgTest()async{

  print("\n\n##################kzg test#################");
  BlobTxSidecar? sidecar;
  BlobTxSidecar? blob20Sidecar;
  KzgSetting? kzgSetting;

  kzgSetting = await KzgSetting.loadFromFile('assets/trusted_setup.json');

  final blobs = <Blob>[];
  final commitments = <KzgCommitment>[];
  final proofs = <KzgProof>[];

  /// blob1
  // blobs.add(await Blob.randBlob());
  /// commitments hash with Blob contain all 0
  /// 010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014
  /// blob2
  blobs.add(Blob.zeroBlob()); // 全0

  for (var b in blobs) {
    final commit = await Kzg4844.kzgBlobToCommitment(b, kzgSetting);
    commitments.add(commit);
    final p = await Kzg4844.kzgComputeBlobKzgProof(b, commit, kzgSetting);
    proofs.add(p);
  }

  sidecar = BlobTxSidecar(
    blobs: blobs,
    commitments: commitments,
    proofs: proofs,
  );


  print("sidecar = ${hex.encode(sidecar.blobHashes().first)}");

  // https://etherscan.io/blob/0x01fc0a717777b0e983ce71eecae52ae24bdfd06459801ba5c20692ef11ca75c9?bid=706618
  const mintBlob20 =
      '{"protocol":"blob20","token":{"operation":"mint","ticker":"ETHS","amount":1000}}';

  final cborData = cborEncodeApplicationJson(mintBlob20);
  final blobs1 = cborDataToESIP8Blobs(cborData);
  final commitments1 = <KzgCommitment>[];
  final proofs1 = <KzgProof>[];

  for (var b in blobs1) {
    final commit = await Kzg4844.kzgBlobToCommitment(b, kzgSetting);
    commitments1.add(commit);
    final p = await Kzg4844.kzgComputeBlobKzgProof(b, commit, kzgSetting);
    proofs1.add(p);
  }

  blob20Sidecar = BlobTxSidecar(
    blobs: blobs1,
    commitments: commitments1,
    proofs: proofs1,
  );

  print("blob20Sidecar = ${hex.encode(blob20Sidecar.blobHashes().first)}");

}