@@ -75,6 +75,7 @@ async function defaultTextResolver() {
7575
7676async function resolveSignerFromEns ( signerEnsName , options = { } ) {
7777 const resolver = options . textResolver || defaultTextResolver ;
78+ const allowLocalFallback = options . allowLocalFallback === true || process . env . COMMANDLAYER_ALLOW_LOCAL_KEY_FALLBACK === 'true' || process . env . NODE_ENV === 'test' ;
7879 const requiredKeys = [ 'cl.sig.pub' , 'cl.sig.kid' , 'cl.sig.canonical' , 'cl.receipt.signer' ] ;
7980 const records = { } ;
8081
@@ -98,24 +99,27 @@ async function resolveSignerFromEns(signerEnsName, options = {}) {
9899 signer : signerEnsName ,
99100 records,
100101 ensResolved : true ,
101- keySource : 'live ENS text record' ,
102+ keySource : 'ens_txt' ,
103+ errorCode : null ,
102104 } ;
103105 }
104106
105- if ( signerEnsName === FALLBACK_SIGNER ) {
107+ if ( allowLocalFallback && signerEnsName === FALLBACK_SIGNER ) {
106108 return {
107109 signer : signerEnsName ,
108110 records : { ...FALLBACK_RECORDS } ,
109111 ensResolved : true ,
110- keySource : 'local demo fallback (runtime.commandlayer.eth only)' ,
112+ keySource : 'local_test_fallback' ,
113+ errorCode : null ,
111114 } ;
112115 }
113116
114117 return {
115118 signer : signerEnsName || 'unknown' ,
116119 records : { } ,
117120 ensResolved : false ,
118- keySource : 'not resolved' ,
121+ keySource : 'ens_txt' ,
122+ errorCode : 'ens_key_unavailable' ,
119123 } ;
120124}
121125
@@ -215,7 +219,9 @@ async function verifyReceipt(receiptInput, options = {}) {
215219 return {
216220 ok,
217221 status : ok ? 'VERIFIED' : 'INVALID' ,
218- reason : ok ? 'Receipt verification passed.' : 'Receipt is invalid, tampered, or does not match the signer key metadata.' ,
222+ reason : ok
223+ ? 'Receipt verification passed.'
224+ : ( ens . errorCode === 'ens_key_unavailable' ? 'ens_key_unavailable' : 'Receipt is invalid, tampered, or does not match the signer key metadata.' ) ,
219225 signer : receipt ?. signer || null ,
220226 verb : receipt ?. verb || null ,
221227 hash : recomputedHash ,
@@ -232,6 +238,7 @@ async function verifyReceipt(receiptInput, options = {}) {
232238 key_id_matched : keyIdMatched ,
233239 canonicalization_matched : canonicalizationOk ,
234240 signer_matched : signerMatched ,
241+ key_resolution_error : ens . errorCode ,
235242 } ,
236243 } ;
237244}
0 commit comments