PHP: It wants an “object” so I give it and object and then it errors saying it wanted an “array” what...
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
add a comment |
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
add a comment |
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
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
php arrays object
asked Nov 27 '18 at 17:31
jonjon
274
274
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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.
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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