PHP: It wants an “object” so I give it and object and then it errors saying it wanted an “array” what...












-1















Im confused. Working with the Cardano API (v1) using a PHP wrapper.



The createNewTransaction($source, $destination, $spendingPassword) function requires parameters in the form of an array:



// source of funds (array)
$source = array(
'accountIndex' => $wallet_idx,
'walletId' => $wallet_id
);

// destination for funds (array)
$destination = array(
'address' => $banker,
'amount' => $lovelace
);

// spending pass
$spendingPassword = get_user_meta('1', 'spending_pass', true);

// transaction
$client->createNewTransaction($source, $destination, $spendingPassword);


So then im returned this error from the API:




Array ( [status] => error [diagnostic] => Array (
[validationError] => Error in $: When parsing the constructor Payment
of type Cardano.Wallet.API.V1.Types.Payment expected Object but got
Array. ) [message] => JSONValidationFailed )




So then, I looked up how to turn an array into an object thinking that would solve my problem. So I did this:



   $o_source = (object) $source;
$o_destination = (object) $destination;


and then sent it back to the API to see if the transaction would go through, but I got another error:




Fatal error: Uncaught TypeError: Argument 1 passed to
Cardano::createNewTransaction() must be of the type array, object
given...




So, now Im confuseed, I thought I had originally sent it an array but then it said it wanted an object. I dont get it!



Help please!










share|improve this question



























    -1















    Im confused. Working with the Cardano API (v1) using a PHP wrapper.



    The createNewTransaction($source, $destination, $spendingPassword) function requires parameters in the form of an array:



    // source of funds (array)
    $source = array(
    'accountIndex' => $wallet_idx,
    'walletId' => $wallet_id
    );

    // destination for funds (array)
    $destination = array(
    'address' => $banker,
    'amount' => $lovelace
    );

    // spending pass
    $spendingPassword = get_user_meta('1', 'spending_pass', true);

    // transaction
    $client->createNewTransaction($source, $destination, $spendingPassword);


    So then im returned this error from the API:




    Array ( [status] => error [diagnostic] => Array (
    [validationError] => Error in $: When parsing the constructor Payment
    of type Cardano.Wallet.API.V1.Types.Payment expected Object but got
    Array. ) [message] => JSONValidationFailed )




    So then, I looked up how to turn an array into an object thinking that would solve my problem. So I did this:



       $o_source = (object) $source;
    $o_destination = (object) $destination;


    and then sent it back to the API to see if the transaction would go through, but I got another error:




    Fatal error: Uncaught TypeError: Argument 1 passed to
    Cardano::createNewTransaction() must be of the type array, object
    given...




    So, now Im confuseed, I thought I had originally sent it an array but then it said it wanted an object. I dont get it!



    Help please!










    share|improve this question

























      -1












      -1








      -1








      Im confused. Working with the Cardano API (v1) using a PHP wrapper.



      The createNewTransaction($source, $destination, $spendingPassword) function requires parameters in the form of an array:



      // source of funds (array)
      $source = array(
      'accountIndex' => $wallet_idx,
      'walletId' => $wallet_id
      );

      // destination for funds (array)
      $destination = array(
      'address' => $banker,
      'amount' => $lovelace
      );

      // spending pass
      $spendingPassword = get_user_meta('1', 'spending_pass', true);

      // transaction
      $client->createNewTransaction($source, $destination, $spendingPassword);


      So then im returned this error from the API:




      Array ( [status] => error [diagnostic] => Array (
      [validationError] => Error in $: When parsing the constructor Payment
      of type Cardano.Wallet.API.V1.Types.Payment expected Object but got
      Array. ) [message] => JSONValidationFailed )




      So then, I looked up how to turn an array into an object thinking that would solve my problem. So I did this:



         $o_source = (object) $source;
      $o_destination = (object) $destination;


      and then sent it back to the API to see if the transaction would go through, but I got another error:




      Fatal error: Uncaught TypeError: Argument 1 passed to
      Cardano::createNewTransaction() must be of the type array, object
      given...




      So, now Im confuseed, I thought I had originally sent it an array but then it said it wanted an object. I dont get it!



      Help please!










      share|improve this question














      Im confused. Working with the Cardano API (v1) using a PHP wrapper.



      The createNewTransaction($source, $destination, $spendingPassword) function requires parameters in the form of an array:



      // source of funds (array)
      $source = array(
      'accountIndex' => $wallet_idx,
      'walletId' => $wallet_id
      );

      // destination for funds (array)
      $destination = array(
      'address' => $banker,
      'amount' => $lovelace
      );

      // spending pass
      $spendingPassword = get_user_meta('1', 'spending_pass', true);

      // transaction
      $client->createNewTransaction($source, $destination, $spendingPassword);


      So then im returned this error from the API:




      Array ( [status] => error [diagnostic] => Array (
      [validationError] => Error in $: When parsing the constructor Payment
      of type Cardano.Wallet.API.V1.Types.Payment expected Object but got
      Array. ) [message] => JSONValidationFailed )




      So then, I looked up how to turn an array into an object thinking that would solve my problem. So I did this:



         $o_source = (object) $source;
      $o_destination = (object) $destination;


      and then sent it back to the API to see if the transaction would go through, but I got another error:




      Fatal error: Uncaught TypeError: Argument 1 passed to
      Cardano::createNewTransaction() must be of the type array, object
      given...




      So, now Im confuseed, I thought I had originally sent it an array but then it said it wanted an object. I dont get it!



      Help please!







      php arrays object






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 27 '18 at 17:31









      jonjon

      274




      274
























          1 Answer
          1






          active

          oldest

          votes


















          1














          The code from the linked library looks something like:



          public function createNewTransaction(
          array $source,
          array $destination,
          string $spendingPassword
          ): array {
          $groupPolicy = 'OptimizeForSecurity';
          return self::jsonDecode($this->post(
          '/api/v1/transactions' .
          '?source=' . $source .
          '?destination=' . $destination .
          '?groupingPolicy=' . $groupPolicy .
          '?spendingPassword=' . $spendingPassword
          ), true);
          }


          If you run this code, then $source and $destination would be cast from arrays to the string "Array". This is what the API is complaining about, it probably expected something other than the string "Array" as the value of the source parameter.



          I recommend that you look for another library, or implement the API calls yourself, because this library has no chance of working correctly in its current state.






          share|improve this answer


























          • Can you help me figure out what's wrong with the existing library? I'm not familiar with CURL and this seems like it's over my head for my current skill level.

            – jon
            Nov 27 '18 at 21:45











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53505107%2fphp-it-wants-an-object-so-i-give-it-and-object-and-then-it-errors-saying-it-w%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          The code from the linked library looks something like:



          public function createNewTransaction(
          array $source,
          array $destination,
          string $spendingPassword
          ): array {
          $groupPolicy = 'OptimizeForSecurity';
          return self::jsonDecode($this->post(
          '/api/v1/transactions' .
          '?source=' . $source .
          '?destination=' . $destination .
          '?groupingPolicy=' . $groupPolicy .
          '?spendingPassword=' . $spendingPassword
          ), true);
          }


          If you run this code, then $source and $destination would be cast from arrays to the string "Array". This is what the API is complaining about, it probably expected something other than the string "Array" as the value of the source parameter.



          I recommend that you look for another library, or implement the API calls yourself, because this library has no chance of working correctly in its current state.






          share|improve this answer


























          • Can you help me figure out what's wrong with the existing library? I'm not familiar with CURL and this seems like it's over my head for my current skill level.

            – jon
            Nov 27 '18 at 21:45
















          1














          The code from the linked library looks something like:



          public function createNewTransaction(
          array $source,
          array $destination,
          string $spendingPassword
          ): array {
          $groupPolicy = 'OptimizeForSecurity';
          return self::jsonDecode($this->post(
          '/api/v1/transactions' .
          '?source=' . $source .
          '?destination=' . $destination .
          '?groupingPolicy=' . $groupPolicy .
          '?spendingPassword=' . $spendingPassword
          ), true);
          }


          If you run this code, then $source and $destination would be cast from arrays to the string "Array". This is what the API is complaining about, it probably expected something other than the string "Array" as the value of the source parameter.



          I recommend that you look for another library, or implement the API calls yourself, because this library has no chance of working correctly in its current state.






          share|improve this answer


























          • Can you help me figure out what's wrong with the existing library? I'm not familiar with CURL and this seems like it's over my head for my current skill level.

            – jon
            Nov 27 '18 at 21:45














          1












          1








          1







          The code from the linked library looks something like:



          public function createNewTransaction(
          array $source,
          array $destination,
          string $spendingPassword
          ): array {
          $groupPolicy = 'OptimizeForSecurity';
          return self::jsonDecode($this->post(
          '/api/v1/transactions' .
          '?source=' . $source .
          '?destination=' . $destination .
          '?groupingPolicy=' . $groupPolicy .
          '?spendingPassword=' . $spendingPassword
          ), true);
          }


          If you run this code, then $source and $destination would be cast from arrays to the string "Array". This is what the API is complaining about, it probably expected something other than the string "Array" as the value of the source parameter.



          I recommend that you look for another library, or implement the API calls yourself, because this library has no chance of working correctly in its current state.






          share|improve this answer















          The code from the linked library looks something like:



          public function createNewTransaction(
          array $source,
          array $destination,
          string $spendingPassword
          ): array {
          $groupPolicy = 'OptimizeForSecurity';
          return self::jsonDecode($this->post(
          '/api/v1/transactions' .
          '?source=' . $source .
          '?destination=' . $destination .
          '?groupingPolicy=' . $groupPolicy .
          '?spendingPassword=' . $spendingPassword
          ), true);
          }


          If you run this code, then $source and $destination would be cast from arrays to the string "Array". This is what the API is complaining about, it probably expected something other than the string "Array" as the value of the source parameter.



          I recommend that you look for another library, or implement the API calls yourself, because this library has no chance of working correctly in its current state.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 27 '18 at 17:51

























          answered Nov 27 '18 at 17:40









          ridrid

          39.5k19123166




          39.5k19123166













          • Can you help me figure out what's wrong with the existing library? I'm not familiar with CURL and this seems like it's over my head for my current skill level.

            – jon
            Nov 27 '18 at 21:45



















          • Can you help me figure out what's wrong with the existing library? I'm not familiar with CURL and this seems like it's over my head for my current skill level.

            – jon
            Nov 27 '18 at 21:45

















          Can you help me figure out what's wrong with the existing library? I'm not familiar with CURL and this seems like it's over my head for my current skill level.

          – jon
          Nov 27 '18 at 21:45





          Can you help me figure out what's wrong with the existing library? I'm not familiar with CURL and this seems like it's over my head for my current skill level.

          – jon
          Nov 27 '18 at 21:45




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53505107%2fphp-it-wants-an-object-so-i-give-it-and-object-and-then-it-errors-saying-it-w%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

          Calculate evaluation metrics using cross_val_predict sklearn

          Insert data from modal to MySQL (multiple modal on website)