أنت تعمل على تطبيق blockchain الذي يدير رسوم الصرف للأصول المختلفة. في هذا التطبيق، يرتبط كل رسم باسم أصل محدد. مهمتك هي تنفيذ وظيفة تقوم باسترداد مجموع جميع الرسوم المرتبطة باسم أصل معين.

يتم إعطاؤك مقتطف رمز ينفذ الوظيفة جزئيًا. ويتوقع وسيطة واحدة، `args`، وهي عبارة عن مصفوفة من السلاسل. يجب أن تتحقق الوظيفة مما إذا كان طول "args" يساوي 1. إذا لم يكن الأمر كذلك، فيجب أن تسجل رسالة خطأ وترجع خطأ.

بعد ذلك، تقوم الدالة بتعيين العنصر الأول من `args` إلى المتغير `name`. مهمتك هي استخدام متغير "الاسم" لاسترداد مبلغ رسوم الصرف للأصل المحدد.

لاسترداد مبلغ رسوم الصرف، يمكنك استخدام الدالة `GetStateByPartialCompositeKey()` التي يوفرها كعب البلوكشين (يمثلها المتغير ``كعب`). تأخذ هذه الوظيفة وسيطتين: نمط مفتاح مركب ومجموعة من السمات التي تشكل المفتاح المركب الجزئي. في هذه الحالة، نمط المفتاح المركب هو "ExchangeFee" والمصفوفة التي تحتوي على "الاسم" تشكل المفتاح المركب الجزئي.

إذا قامت الدالة `GetStateByPartialCompositeKey()` بإرجاع خطأ، فيجب عليك التعامل معه بشكل مناسب.

مهمتك هي إكمال الوظيفة المحددة لاسترداد مبلغ رسوم الصرف المرتبط باسم الأصل المقدم.

اكتب دالة بالتوقيع التالي لحل هذه المشكلة:
```اذهب
func GetFeeSum(stub shim.ChaincodeStubInterface, args []string) pb.Response {
    // الرمز الخاص بك هنا
}
```

تأكد من أن وظيفتك تلبي المتطلبات التالية:
- تحقق مما إذا كانت `args` تحتوي على عنصر واحد بالضبط. إذا لم يكن الأمر كذلك، قم بتسجيل رسالة خطأ وإرجاع خطأ.
- قم بتعيين العنصر الأول من `args` للمتغير `name`.
- استخدم `GetStateByPartialCompositeKey()` لاسترداد مبلغ رسوم الصرف لاسم الأصل المحدد.
- إذا قام `GetStateByPartialCompositeKey()` بإرجاع خطأ، فقم بتسجيل رسالة خطأ وإرجاع خطأ.
- إذا تم استرداد مبلغ رسوم الصرف بنجاح، قم بإعادته كسلسلة في الرد.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}