Skip to content

Type mismatch for argument 0, type '&signer' #268

@banool

Description

@banool

With code like this:

export const USER_ONE_ACCOUNT = Account.generate();

// fund account

  const payload = createEntryPayload(GLOBAL_METADATA_ABI, {
    function: 'register_blob',
    functionArguments: [
      blobNameSuffix,
      expirationMicros,
      blobCommitment,
      chunksetCount,
      blobSize,
      paymentTierId,
      encodingId,
    ],
    typeArguments: [],
  });

  const transaction = await aptos.transaction.build.simple({
    sender: USER_ONE_ACCOUNT.accountAddress,
    data: payload,
  });

  const signedTransaction = await aptos.signAndSubmitTransaction({
    signer: USER_ONE_ACCOUNT,
    transaction,
  });

With corresponding Move code like this:

    #[randomness]
    entry fun register_blob(
        writer: &signer,
        blob_name_suffix: String,
        expiration_micros: u64,
        blob_commitment: vector<u8>,
        chunkset_count: u32,
        blob_size: u64,
        payment_tier_id: u8,
        encoding_u8: u8, 
    ) acquires Blobs, PaymentTiers, Slices {
        register_blob_internal(writer, blob_name_suffix, expiration_micros, blob_commitment, chunkset_count, blob_size, payment_tier_id, encoding_u8, object::address_to_object<Metadata>(@shelby_usd_token_metadata));
    }

The typechecker is happy, but then I get an error from the node:

Error: Error: Type mismatch for argument 0, type '&signer'
    at parseArg (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/transactions/transactionBuilder/remoteAbi.ts:555:9)
    at checkOrConvertArgument (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/transactions/transactionBuilder/remoteAbi.ts:326:10)
    at convertArgument (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/transactions/transactionBuilder/remoteAbi.ts:276:10)
    at <anonymous> (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/transactions/transactionBuilder/transactionBuilder.ts:219:5)
    at Array.map (<anonymous>)
    at generateTransactionPayloadWithABI (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/transactions/transactionBuilder/transactionBuilder.ts:204:87)
    at ur (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/transactions/transactionBuilder/transactionBuilder.ts:159:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Ya (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/internal/transactionSubmission.ts:141:15)
    at async A (/Users/dport/a/shelby/rust/apps/sp-processor/e2e-tests/node_modules/.pnpm/@aptos-labs+ts-sdk@5.1.1_got@11.8.6/node_modules/@aptos-labs/ts-sdk/src/internal/transactionSubmission.ts:97:19)

I wonder if there's some incompatibility between Surf and the TS SDK? My versions:

  • Surf: 1.9.7
  • TS SDK: 5.1.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions