0

abi: [
  {
    inputs: [ [Object], [Object] ],
    stateMutability: 'payable',
    type: 'constructor'
  },
  {
    inputs: [ [Object], [Object], [Object] ],
    name: 'InvalidSelector',
    type: 'error'
  },
  {
    anonymous: false,
    inputs: [ [Object] ],
    name: 'Initialized',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object] ],
    name: 'Paused',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object] ],
    name: 'Unpaused',
    type: 'event'
  },
  { stateMutability: 'payable', type: 'fallback' },
  {
    inputs: [],
    name: 'getTrustedForwarder',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [],
    name: 'pause',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [],
    name: 'paused',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'supportsInterface',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [],
    name: 'unpause',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  { stateMutability: 'payable', type: 'receive' },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'AssetHeld',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'AssetListed',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'AssetListingWithUpdatedPrice',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object] ],
    name: 'AssetUnListed',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object] ],
    name: 'Initialized',
    type: 'event'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'completInProcess',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'getAssetHeld',
    outputs: [ [Object], [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'getAssetHeldOwners',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'getAssetListedOwners',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'getAssetListing',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'listAssetCopies',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'listOwnerAssets',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    name: 'listOwnersAfterPurchase',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'listingToProcess',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object] ],
    name: 'AssetPriceRecorded',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object] ],
    name: 'Initialized',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object] ],
    name: 'PriceUpdated',
    type: 'event'
  },
  {
    inputs: [],
    name: 'getAssetBasePrice',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [],
    name: 'getAssetCurrentBasePrice',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'getAssetCurrentPrice',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'getOwnedAssetPrice',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object] ],
    name: 'init',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'setPremiumPrice',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object] ],
    name: 'updateAssetPrice',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'updateCurrentPrice',
    outputs: [ [Object] ],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object] ],
    name: 'InvalidSelector',
    type: 'error'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object] ],
    name: 'DiamondCut',
    type: 'event'
  },
  {
    inputs: [ [Object], [Object], [Object] ],
    name: 'diamondCut',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'OffchainProcessStarted',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object] ],
    name: 'OffchainProcessUpdated',
    type: 'event'
  },
  {
    inputs: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    name: 'addAssetProcess',
    outputs: [ [Object] ],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'getAssetProcessState',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'init',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object] ],
    name: 'updateAssetProcess',
    outputs: [],
    stateMutability: 'payable',
    type: 'function'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'AssetPurchased',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object] ],
    name: 'Initialized',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object] ],
    name: 'OffchainProcessUpdated',
    type: 'event'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'addTolisting',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'init',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    name: 'purchaseApproved',
    outputs: [ [Object] ],
    stateMutability: 'payable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'purchaseRequest',
    outputs: [ [Object] ],
    stateMutability: 'payable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'set_URI',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'updatecurrentprice',
    outputs: [],
    stateMutability: 'payable',
    type: 'function'
  },
  { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
  { inputs: [], name: 'InvalidShortString', type: 'error' },
  { inputs: [ [Object] ], name: 'StringTooLong', type: 'error' },
  {
    anonymous: false,
    inputs: [],
    name: 'EIP712DomainChanged',
    type: 'event'
  },
  {
    inputs: [],
    name: 'eip712Domain',
    outputs: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'execute',
    outputs: [ [Object], [Object] ],
    stateMutability: 'payable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'getNonce',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'verify',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object] ],
    name: 'ApprovalForAll',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'TransferBatch',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'TransferSingle',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object] ],
    name: 'URI',
    type: 'event'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'balanceOf',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'balanceOfBatch',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'exists',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [],
    name: 'getAssetIds',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'init',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'isApprovedForAll',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'mint',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'safeBatchTransferFrom',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object], [Object] ],
    name: 'safeTransferFrom',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object], [Object] ],
    name: 'setApprovalForAll',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'setURI',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'supportsInterface',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'totalSupply',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'uri',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    anonymous: false,
    inputs: [ [Object] ],
    name: 'Initialized',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object] ],
    name: 'OwnershipTransferred',
    type: 'event'
  },
  {
    inputs: [],
    name: 'owner',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'EscrowAssetActive',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'EscrowAssetCancel',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'EscrowAssetClosed',
    type: 'event'
  },
  {
    anonymous: false,
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'EscrowAssetStarted',
    type: 'event'
  },
  {
    inputs: [ [Object], [Object], [Object], [Object] ],
    name: 'addEscrow',
    outputs: [ [Object] ],
    stateMutability: 'payable',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'confirmDelivery',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  },
  {
    inputs: [],
    name: 'getEscrowBalance',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'getEscrowDetails',
    outputs: [ [Object] ],
    stateMutability: 'view',
    type: 'function'
  },
  {
    inputs: [ [Object] ],
    name: 'initEscrow',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function'
  }
]

I tried to call a function through my backend there I faced an error "Message:: invalid fragment object (argument="value", value={}, code=INVALID_ARGUMENT, version=abi/5.7.0)".

I attached my code below and while debugging the code executed in this line " const contract = new ethers.Contract(address, abi, signer);"

` const wallet = new ethers.Wallet(privateKey, provider);

  logger.log('info', `${this.prefix} Connecting Wallet `);

  const signer = wallet.connect(provider);

  logger.log('info', `${this.prefix} Sending the signed transaction`);

  console.log('address:', address);

  const abi: any = this.contractsAggregateAbiService.getAggregatedAbi(address);

  // const signer = provider.getSigner();

  const contract = new ethers.Contract(address, abi, signer);

  // Calling dynamic function name
  const gasEstimated = await contract.estimateGas[`${functionName}`](...args);

  const gas = await this.calcGas(gasEstimated, network);
  console.log('estimated gas:', gas);

  const value = await contract[`${functionName}`](...args, {
    // gasLimit: gas.gasLimit,
    maxFeePerGas: gas.maxFeePerGas,
    maxPriorityFeePerGas: gas.maxPriorityFeePerGas,
  });

  logger.log('info', `${this.prefix} Returning response: %s`, value);

`

Wiswa
  • 11
  • 2
  • I am using "ethers": "^5.7.2" version – Wiswa Jun 21 '23 at 05:12
  • looks like issue with the ABI. Can you include the relevant part of the ABI and of the smart contract source code? – 70ny Jun 21 '23 at 07:33
  • I added my abi please check – Wiswa Jun 21 '23 at 09:24
  • what's the response of `this.contractsAggregateAbiService.getAggregatedAbi(address);` ? Can you just pass the `abi` you pasted at the beginning of your question to the `new ethers.Contract(address, abi, signer);` call? – 70ny Jun 21 '23 at 19:59
  • The error is saying your passing in a wrong argument or it thinks your passing in the wrong argument. It expected a `value` and got `{}` – Matt Jaf Jun 21 '23 at 20:13

0 Answers0