11import { Prettify } from '../utils/types' ;
22import { Bytes32Hex , ChecksummedAddress } from '../types/primitives' ;
3- import { RelayerErrorBase , RelayerErrorBaseParams } from './RelayerErrorBase' ;
3+ import {
4+ ContractErrorBase ,
5+ ContractErrorBaseParams ,
6+ } from './ContractErrorBase' ;
47
58////////////////////////////////////////////////////////////////////////////////
69// ACLErrorBase
@@ -11,28 +14,22 @@ export type ACLErrorBaseType = ACLErrorBase & {
1114} ;
1215
1316export type ACLErrorBaseParams = Prettify <
14- RelayerErrorBaseParams & {
15- aclAddress : ChecksummedAddress ;
17+ ContractErrorBaseParams & {
1618 handle : Bytes32Hex ;
1719 }
1820> ;
1921
20- export abstract class ACLErrorBase extends RelayerErrorBase {
21- private readonly _aclAddress : ChecksummedAddress ;
22+ export abstract class ACLErrorBase extends ContractErrorBase {
2223 private readonly _handle : Bytes32Hex ;
2324
2425 constructor ( params : ACLErrorBaseParams ) {
2526 super ( {
2627 ...params ,
2728 name : params . name ?? 'ACLErrorBase' ,
2829 } ) ;
29- this . _aclAddress = params . aclAddress ;
3030 this . _handle = params . handle ;
3131 }
3232
33- public get aclAddress ( ) {
34- return this . _aclAddress ;
35- }
3633 public get handle ( ) {
3734 return this . _handle ;
3835 }
@@ -46,19 +43,55 @@ export type ACLPublicDecryptionErrorType = ACLPublicDecryptionError & {
4643 name : 'ACLPublicDecryptionError' ;
4744} ;
4845
49- export class ACLPublicDecryptionError extends ACLErrorBase {
46+ export class ACLPublicDecryptionError extends ContractErrorBase {
47+ private readonly _handles : Bytes32Hex [ ] ;
48+
5049 constructor ( {
51- aclAddress ,
52- handle ,
50+ contractAddress ,
51+ handles ,
5352 } : {
54- aclAddress : ChecksummedAddress ;
55- handle : Bytes32Hex ;
53+ contractAddress : ChecksummedAddress ;
54+ handles : Bytes32Hex [ ] ;
5655 } ) {
56+ const handleList = handles . join ( ', ' ) ;
5757 super ( {
58- message : `Handle ${ handle } is not allowed for public decryption!` ,
58+ message :
59+ handles . length === 1
60+ ? `Handle ${ handles [ 0 ] } is not allowed for public decryption`
61+ : `${ handles . length } handles are not allowed for public decryption: ${ handleList } ` ,
5962 name : 'ACLPublicDecryptionError' ,
60- aclAddress,
61- handle,
63+ contractAddress,
64+ contractName : 'ACL' ,
65+ } ) ;
66+ this . _handles = handles ;
67+ }
68+
69+ public get handles ( ) : Bytes32Hex [ ] {
70+ return this . _handles ;
71+ }
72+ }
73+
74+ ////////////////////////////////////////////////////////////////////////////////
75+ // ACLUserDecryptionError
76+ ////////////////////////////////////////////////////////////////////////////////
77+
78+ export type ACLUserDecryptionErrorType = ACLUserDecryptionError & {
79+ name : 'ACLUserDecryptionError' ;
80+ } ;
81+
82+ export class ACLUserDecryptionError extends ContractErrorBase {
83+ constructor ( {
84+ contractAddress,
85+ message,
86+ } : {
87+ contractAddress : ChecksummedAddress ;
88+ message : string ;
89+ } ) {
90+ super ( {
91+ message,
92+ name : 'ACLUserDecryptionError' ,
93+ contractAddress,
94+ contractName : 'ACL' ,
6295 } ) ;
6396 }
6497}
0 commit comments