SAD PANDA: TypeError: не удалось получить

=== САД ПАНДА ===

TypeError: не удалось получить

=== САД ПАНДА ===

При выполнении транзакции каденции потока в react.js возникла указанная выше ошибка. Моя цель - когда я нажимаю кнопку minttoken, эта транзакция должна выполняться, чтобы отчеканить NFT.

      const mintToken = async() => {
        console.log(form.name)
        const encoded = await fcl.send([
             fcl.proposer(fcl.currentUser().authorization),
            fcl.payer(fcl.authz),
             fcl.authorizations([fcl.authz]),
            fcl.limit(50),
            fcl.args([
                fcl.arg(form.name,t.String),
                fcl.arg(form.velocity,t.String),
                fcl.arg(form.angle,t.String),
                fcl.arg(form.rating,t.String),
                fcl.arg(form.uri,t.String)    
              ]),
            fcl.transaction`
        import commitContract from 0xf8d6e0586b0a20c7
                
                transaction {
                let receiverRef: &{commitContract.NFTReceiver}
                let minterRef: &commitContract.NFTMinter

                prepare(acct: AuthAccount) {
                    self.receiverRef = acct.getCapability<&{commitContract.NFTReceiver}>(/public/NFTReceiver)
                        .borrow()
                        ?? panic("Could not borrow receiver reference")        
                    
                    self.minterRef = acct.borrow<&commitContract.NFTMinter>(from: /storage/NFTMinter)
                        ?? panic("could not borrow minter reference")
                }

                execute {
                    let metadata : {String : String} = {
                        "name": name,
                        "swing_velocity": velocity, 
                        "swing_angle": angle, 
                        "rating": rating,
                        "uri": uri
                    }
                    let newNFT <- self.minterRef.mintNFT()
                
                    self.receiverRef.deposit(token: <-newNFT, metadata: metadata)

                    log("NFT Minted and deposited to Account 2's Collection")
                }
                }
            
        
                `
                
      ]);
      await fcl.decode(encoded);
    }

1 ответ

эта бесполезная ошибка - это моя вина, но я могу объяснить, что здесь происходит, потому что это также происходит только в действительно конкретной ситуации.

Ошибка Sad Panda - это ошибка перехвата всех, которая возникает, когда происходит катастрофический сбой, когда fcl пытается разрешить сигнатуры, и он терпит неудачу совершенно неожиданным образом. Во время написания это обычно проявляется, когда люди пишут свои собственные функции авторизации, поэтому это было первое, на что я обратил внимание в вашем примере кода. Поскольку вы используете fcl.authz а также fcl.currentUser().authorization (кстати, оба они одинаковы) ваша ситуация здесь не из-за настраиваемой функции авторизации, что наводит меня на мысль, что это либо проблема конфигурации (fcl.authz с трудом выполняет свою работу правильно), либо то, что fcl возврат из кошелька не соответствует внутренним ожиданиям (скорее всего, из-за устаревшей версии fcl).

Я также видел это, когда версия sdk, которую использует fcl, не совпадает с версией sdk, которая там есть (потому что некоторые люди добавили @onflow/sdk а также @onflow/fcl), поэтому, возможно, также можно проверить, чтобы убедиться, что у вас есть только fcl в вашем package.json, а не sdk (все, что вам нужно от sdk, должно быть открыто из fcl, что означает, что вам не нужен sdk как прямая зависимость от ваше приложение)

Сначала я бы порекомендовал убедиться, что вы используете последнюю версию fcl (ваш код все еще должен работать), затем я бы убедился, что вы используете только fcl, а не случайно используете старую версию sdk. Если после этого вы все еще получаете ту же ошибку, не могли бы вы создать проблему в github, чтобы мы могли выделить некоторые ресурсы, чтобы помочь разобраться в этом (и сделать так, чтобы вы и другие не видели эту загадочную ошибку в будущих версиях fcl)

Другие вопросы по тегам