def os_retry
bend-collections@1.0.0.0 · src/crypto/secp256k1.bend:63
import bend-collections@1.0.0.0/src/crypto/secp256k1.bend as Secp256k1
import Base
63def os_retry(fuel: Nat, m: Maybe<&2, Keypair>) -> IO(Maybe<&2, Keypair>):
64 match fuel m:
65 case _ Some{kp}:
66 IO.pure(Maybe<&2, Keypair>, Some{kp})
67 case 0n None{}:
68 IO.pure(Maybe<&2, Keypair>, None{})
69 case 1n+f None{}:
70 do IO<Maybe<&2, Keypair>>:
71 seed : List<&2, U32> <- random_bytes(8n, Nil{})
72 kp : Maybe<&2, Keypair> <- os_retry(f, generate_keypair(seed))
73 return kp