@@ -51,7 +51,6 @@ use frame_support::{
5151 weights:: Weight ,
5252} ;
5353use frame_system:: ensure_signed;
54- use pallet_identity:: PermissionedCallOriginData ;
5554use polymesh_primitives:: {
5655 extract_auth, traits:: SubsidiserTrait , AuthorizationData , Balance , EventDid , IdentityId ,
5756 Signatory , TransactionError ,
@@ -305,6 +304,8 @@ pub mod pallet {
305304 Overflow ,
306305 /// The extrinsic expected a different `AuthorizationType` than what the `data.auth_type()` is.
307306 BadAuthorizationType ,
307+ /// The caller's identity was not found.
308+ IdentityNotFound ,
308309 }
309310}
310311
@@ -324,7 +325,7 @@ impl<T: Config> Pallet<T> {
324325 fn base_accept_paying_key ( origin : T :: RuntimeOrigin , auth_id : u64 ) -> DispatchResult {
325326 let caller_key = ensure_signed ( origin) ?;
326327 let user_did =
327- <Identity < T > >:: get_identity ( & caller_key) . ok_or ( Error :: < T > :: UserKeyCddMissing ) ?;
328+ <Identity < T > >:: get_identity ( & caller_key) . ok_or ( Error :: < T > :: IdentityNotFound ) ?;
328329 let signer = Signatory :: Account ( caller_key. clone ( ) ) ;
329330
330331 <Identity < T > >:: accept_auth_with ( & signer, auth_id, |data, auth_by| -> DispatchResult {
@@ -357,17 +358,15 @@ impl<T: Config> Pallet<T> {
357358 user_key : T :: AccountId ,
358359 paying_key : T :: AccountId ,
359360 ) -> DispatchResult {
360- let PermissionedCallOriginData {
361- sender,
362- primary_did : sender_did,
363- ..
364- } = <Identity < T > >:: ensure_origin_call_permissions ( origin) ?;
361+ let caller_key = ensure_signed ( origin) ?;
362+ let caller_did =
363+ Identity :: < T > :: get_identity ( & caller_key) . ok_or ( Error :: < T > :: IdentityNotFound ) ?;
365364
366365 // Allow: `origin == user_key` or `origin == paying_key`.
367- if sender != user_key && sender != paying_key {
366+ if caller_key != user_key && caller_key != paying_key {
368367 // Allow: `origin == primary key of user_key's identity`.
369368 ensure ! (
370- < Identity <T >> :: get_identity( & user_key) == Some ( sender_did ) ,
369+ Identity :: <T >:: get_identity( & user_key) == Some ( caller_did ) ,
371370 Error :: <T >:: NotAuthorizedForUserKey
372371 ) ;
373372 }
@@ -384,7 +383,7 @@ impl<T: Config> Pallet<T> {
384383 <Subsidies < T > >:: remove ( & user_key) ;
385384
386385 Self :: deposit_event ( Event :: RemovedPayingKey (
387- sender_did . for_event ( ) ,
386+ caller_did . for_event ( ) ,
388387 user_key,
389388 paying_key,
390389 ) ) ;
@@ -397,14 +396,12 @@ impl<T: Config> Pallet<T> {
397396 action : UpdateAction ,
398397 amount : Balance ,
399398 ) -> DispatchResult {
400- let PermissionedCallOriginData {
401- sender : paying_key,
402- primary_did : paying_did,
403- ..
404- } = <Identity < T > >:: ensure_origin_call_permissions ( origin) ?;
399+ let caller_key = ensure_signed ( origin) ?;
400+ let caller_did =
401+ Identity :: < T > :: get_identity ( & caller_key) . ok_or ( Error :: < T > :: IdentityNotFound ) ?;
405402
406403 // Check if the current paying key matches.
407- let mut subsidy = Self :: ensure_is_paying_key ( & user_key, & paying_key ) ?;
404+ let mut subsidy = Self :: ensure_is_paying_key ( & user_key, & caller_key ) ?;
408405
409406 // Update polyx limit.
410407 let old_remaining = subsidy. remaining ;
@@ -421,9 +418,9 @@ impl<T: Config> Pallet<T> {
421418 <Subsidies < T > >:: insert ( & user_key, subsidy) ;
422419
423420 Self :: deposit_event ( Event :: UpdatedPolyxLimit (
424- paying_did . for_event ( ) ,
421+ caller_did . for_event ( ) ,
425422 user_key,
426- paying_key ,
423+ caller_key ,
427424 new_remaining,
428425 old_remaining,
429426 ) ) ;
@@ -457,15 +454,6 @@ impl<T: Config> Pallet<T> {
457454 Ok ( auth_id)
458455 }
459456
460- /// Check if the `key` has a valid CDD.
461- fn key_has_valid_cdd ( key : & T :: AccountId ) -> bool {
462- if let Some ( did) = <Identity < T > >:: get_identity ( key) {
463- <Identity < T > >:: has_valid_cdd ( did)
464- } else {
465- false
466- }
467- }
468-
469457 /// Ensure that `paying_key` is the paying key for `user_key`.
470458 fn ensure_is_paying_key (
471459 user_key : & T :: AccountId ,
@@ -495,16 +483,6 @@ impl<T: Config> Pallet<T> {
495483 Error :: <T >:: NotAuthorizedForPayingKey
496484 ) ;
497485
498- // Ensure both user_key and paying_key have valid CDD.
499- ensure ! (
500- <Identity <T >>:: has_valid_cdd( user_did) ,
501- Error :: <T >:: UserKeyCddMissing
502- ) ;
503- ensure ! (
504- Self :: key_has_valid_cdd( & paying_key) ,
505- Error :: <T >:: PayingKeyCddMissing
506- ) ;
507-
508486 // Remove existing subsidy for the user_key, if it exists.
509487 if let Some ( subsidy) = <Subsidies < T > >:: get ( & user_key) {
510488 // Decrease old paying key usage.
0 commit comments