createAuthorization method

Future<Authorization> createAuthorization({
  1. required String contractAddress,
  2. required BigInt nonce,
})

Creates and signs an EIP-7702 authorization for contract delegation.

Implementation

Future<Authorization> createAuthorization({
  required String contractAddress,
  required BigInt nonce,
}) async {
  final authorization = Authorization.unsigned(
    chainId: chain.chainId,
    address: contractAddress,
    nonce: nonce,
  );

  final signature = await signAuthorization(authorization);

  // Extract signature components
  final r = signature.sublist(0, 32);
  final s = signature.sublist(32, 64);
  final yParity = signature[64];

  return authorization.withSignature(
    yParity: yParity,
    r: _bytesToBigInt(r),
    s: _bytesToBigInt(s),
  );
}