Back to Small Spender
OpenGov Referendum#356 >> Treasury Proposal#401
Executed
Requested:
50.00 KSM

#356 Recover KSM from a erroneous teleport/XCM call

Proposer:
Fcjm...tkGF
 
in Treasury
Beneficiary:
Etbi...29v1
(50.00 KSM)
8th Mar '24
(Edited)
treasury
xcm
error

We lost 50 KSM in a blockhole during a teleport call. We were trying to teleport 50 KSM from our account on Bridgehub-Kusama to Kusama.

We first tried with small amounts after we had found the right working call and then we thought copied the call-data to initiate the actual transfer, but it was an old copy that lead to the error of unroutable, which is a fatal error and the tokens get lost apparently in the system. We don't know where they get lost. You can see it in the events that the tokens don't get deposited anywhere. This is new information to us.

This is the call-data I have used: 0x1f0903000109030300010100666963fc8192623504df2da473a1db2c69e1660463e2fd5071bcc68a96c3970d0304000100000b00203d88792d0000000000

This would have been the correct call-data: 0x1f090301000300010100666963fc8192623504df2da473a1db2c69e1660463e2fd5071bcc68a96c3970d0304000100000b00203d88792d0000000000

Our request is to recover the 50 KSM from openGov to the account that made call.

  • The call was our mistake, we should have double checked.
  • There is work in progress by the core developers to make sure these errors are claimable in the future, but it's not in production yet.
  • The 50 KSM was on that account was to bid for a system-collator slot for bridgehub, which we didn't win. The teleport was one way until runtime upgrade 1,001,000

Show More

Proposal Passed

of 3

Summary
Passed
50%Aye
AyeNay
50%Nay
Ayes(0)
0.00 KSM
Nays(0)
0.00 KSM
Support
0.00 KSM
Voting Details
Approval0.00%Threshold0.00%
Support0.00%Threshold0.00%
Please Log In to comment

7Comments
0%
0%
50%
0%
50%
Eoca...bJ5g
 
 
9th Mar '24
(Edited)

Alzymologist Oy Decentralized voice

We approve this ideologically, but as a design shop we are obliged to take due diligence in doing some tech analysis of incident. This will take some time, but now:

Just a brief and quick 3rd party review to be done in 5 minutes.

Extrinsics decoded with BridgeHub Kusama metadata version spec_version: "1001000", spec_name: "bridge-hub-kusama"

Incorrect (executed) call:

Pallet: PolkadotXcm
  Call: limited_teleport_assets
    Field Name: dest
      Enum
        Enum Variant Name: V3
          Struct: 2 field(s)
            Field Name: parents
              u8: 0
            Field Name: interior
              Enum
                Enum Variant Name: X1
                  Enum
                    Enum Variant Name: GlobalConsensus
                      Enum
                        Enum Variant Name: Kusama
    Field Name: beneficiary
      Enum
        Enum Variant Name: V3
          Struct: 2 field(s)
            Field Name: parents
              u8: 0
            Field Name: interior
              Enum
                Enum Variant Name: X1
                  Enum
                    Enum Variant Name: AccountId32
                      Field Name: network
                        Enum
                          Enum Variant Name: None
                      Field Name: id
                        Sequence u8: 666963fc8192623504df2da473a1db2c69e1660463e2fd5071bcc68a96c3970d
    Field Name: assets
      Enum
        Enum Variant Name: V3
          Sequence: 1 element(s)
            Struct: 2 field(s)
              Field Name: id
                Enum
                  Enum Variant Name: Concrete
                    Struct: 2 field(s)
                      Field Name: parents
                        u8: 1
                      Field Name: interior
                        Enum
                          Enum Variant Name: Here
              Field Name: fun
                Enum
                  Enum Variant Name: Fungible
                    u128: 50000000000000
    Field Name: fee_asset_item
      u32: 0
    Field Name: weight_limit
      Enum
        Enum Variant Name: Unlimited

correct call (should have been executed):

Pallet: PolkadotXcm
  Call: limited_teleport_assets
    Field Name: dest
      Enum
        Enum Variant Name: V3
          Struct: 2 field(s)
            Field Name: parents
              u8: 1
            Field Name: interior
              Enum
                Enum Variant Name: Here
    Field Name: beneficiary
      Enum
        Enum Variant Name: V3
          Struct: 2 field(s)
            Field Name: parents
              u8: 0
            Field Name: interior
              Enum
                Enum Variant Name: X1
                  Enum
                    Enum Variant Name: AccountId32
                      Field Name: network
                        Enum
                          Enum Variant Name: None
                      Field Name: id
                        Sequence u8: 666963fc8192623504df2da473a1db2c69e1660463e2fd5071bcc68a96c3970d
    Field Name: assets
      Enum
        Enum Variant Name: V3
          Sequence: 1 element(s)
            Struct: 2 field(s)
              Field Name: id
                Enum
                  Enum Variant Name: Concrete
                    Struct: 2 field(s)
                      Field Name: parents
                        u8: 1
                      Field Name: interior
                        Enum
                          Enum Variant Name: Here
              Field Name: fun
                Enum
                  Enum Variant Name: Fungible
                    u128: 50000000000000
    Field Name: fee_asset_item
      u32: 0
    Field Name: weight_limit
      Enum
        Enum Variant Name: Unlimited

EDIT in a few minutes:

ok this is hard to read. Diff starts in line 7:

diff correct:

            Field Name: parents
              u8: 1
            Field Name: interior
              Enum
                Enum Variant Name: Here

diff incorrect:

            Field Name: parents
              u8: 0
            Field Name: interior
              Enum
                Enum Variant Name: X1
                  Enum
                    Enum Variant Name: GlobalConsensus
                      Enum
                        Enum Variant Name: Kusama

Hide replies
user-profile-imageStakerSpace
 
 
9th Mar '24

@Alzymologist Thanks for checking this and posting it here. the Difference indeed that the destination should have been [parents:1, interior:here]. 

GqC3...m8Jj
 
 
11th Mar '24

What's your plan if this passes and then one day your 50 KSM becomes recoverable?

Hide replies
user-profile-imageStakerSpace
 
 
12th Mar '24

@AdamClaySteeber We would send it back to the treasury 😇

GqC3...m8Jj
 
 
20th Mar '24

@StakerSpace 

I'm sorry I didn't vote on this, I deliberated on it for a bit too long - I couldn't decide until just recently! But it would have been inconsequential since I would have voted AYE. I'm glad it passed! If your funds become recoverable I will be sure to check that they are refunded to the Treasury.

Be more careful next time :)

FDL9...finf
 
 
16th Mar '24

Sorry guys, please be very careful with assets, it may be someones funds...

Hide replies
user-profile-imageStakerSpace
 
 
18th Mar '24

Hey @SPACE_INVADER maybe it was not clear the post to you. The funds were ours and not someone elses. 

user-profile-imageStakerSpace
 
 
19th Mar '24

@SPACE_INVADER The funds were our own and not someone elses

EvoL...oVus
 
 
19th Mar '24

Although there was a mistake with the call I'd argue the going missing is an issue with the system and not your fault.

Hide replies
user-profile-imageStakerSpace
 
 
19th Mar '24

@olanod The system allows for the right calls to be made, it's was our fault to make the wrong system.

Dm4u...1Xkk
 
 
16th Mar '24

Sorry guys, if it was your mistake you need to be responsible. If we recover it , it brings bad precedent and there will be tons of applications. I vote NAY.


Discover similar proposals