이해를 돕기위해 소스코드 첨부해 드립니다.
KAS 회원1 정보요약
key_id = “KASWHR…”, secret_key = “ypljgMk…”
wallet
address1 = “0x29841a0B453925313Ae449D17724975B78e407b4”
address2 = “0x54a4e8199Ad92bF286E75f009382b2463D38e739”
address3 = “0x63630687e9c82bA85D65E9C31BACbF9CdD8f5E5F”
KIP-17
Contract Address = “0xbaeb819ef213f0991a5645db0d8936086dcca07f”
Contract Alias = “love-nft”
Token ID = “0x1”
KAS 회원2 정보요약
key_id_2 = “KASWFGJ…”, secret_key_2 = “Pl0dw1…”
wallet
address1 = “0xE027421e3356400380c6E65a649721c3692924F2”
Network Baobab
curl 통신으로 NFT전송 API를 사용
NFT Token ID = "0x1"은 회원1 address1에 "0x29841a0B453925313Ae449D17724975B78e407b4"에 발급되어 있음
step 1. 회원1 address1 => 회원1 address2 (정상작동)
$_contract_address = “0xbaeb819ef213f0991a5645db0d8936086dcca07f”;
$_token_id = 1;
$_token_id_value = “0x”.dechex($_token_id);
$_sender_address = “0x29841a0B453925313Ae449D17724975B78e407b4”;
$_owner_address = “0x29841a0B453925313Ae449D17724975B78e407b4”;
$_to_address = “0x54a4e8199Ad92bF286E75f009382b2463D38e739”;
$_url = ‘https://kip17-api.klaytnapi.com/v1/contract/’.$_contract_address."/token/".$_token_id_value;
$_chain_id = “1001”; //테스트계정(1001) 실제계정(8217)
$_header = array();
$_header[] = “x-chain-id:”.$_chain_id;
$_header[] = “Content-Type: application/json”;
$_param = array(
“sender” => $_sender_address
, “owner” => $_owner_address
, “to” => $_to_address
);
$_body = json_encode($_param);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $_url);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlObj, CURLOPT_HEADER, false);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, $_header);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlObj, CURLOPT_USERPWD, $_result[‘key_id’].":".$_result[‘secret_key’]);
curl_setopt($curlObj, CURLOPT_POST, true);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $_body);
$response = curl_exec($curlObj);
$_json = json_decode($response,true);
curl_close($curlObj);
$curlObj = null;
step 2. 회원1 address2 => 회원2 address1 (정상작동)
$_contract_address = “0xbaeb819ef213f0991a5645db0d8936086dcca07f”;
$_token_id = 1;
$_token_id_value = “0x”.dechex($_token_id);
$_sender_address = “0x54a4e8199Ad92bF286E75f009382b2463D38e739”;
$_owner_address = “0x54a4e8199Ad92bF286E75f009382b2463D38e739”;
$_to_address = “0xE027421e3356400380c6E65a649721c3692924F2”;
$_url = 위와 동일
$_chain_id = “1001”; //테스트계정(1001) 실제계정(8217)
$_header = array();
$_header[] = “x-chain-id:”.$_chain_id;
$_header[] = “Content-Type: application/json”;
$_param = array(
“sender” => $_sender_address
, “owner” => $_owner_address
, “to” => $_to_address
);
$_body = json_encode($_param);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $_url);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlObj, CURLOPT_HEADER, false);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, $_header);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlObj, CURLOPT_USERPWD, $_result[‘key_id’].":".$_result[‘secret_key’]);
curl_setopt($curlObj, CURLOPT_POST, true);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $_body);
$response = curl_exec($curlObj);
$_json = json_decode($response,true);
curl_close($curlObj);
$curlObj = null;
step 3. 회원2 address1 => 회원1 address3 (발송되지않음)
$_contract_address = “0xbaeb819ef213f0991a5645db0d8936086dcca07f”;
$_token_id = 1;
$_token_id_value = “0x”.dechex($_token_id);
$_sender_address = “0xE027421e3356400380c6E65a649721c3692924F2”;
$_owner_address = “0xE027421e3356400380c6E65a649721c3692924F2”;
$_to_address = “0x63630687e9c82bA85D65E9C31BACbF9CdD8f5E5F”;
$_url = 위와동일
$_chain_id = “1001”; //테스트계정(1001) 실제계정(8217)
$_header = array();
$_header[] = “x-chain-id:”.$_chain_id;
$_header[] = “Content-Type: application/json”;
$_param = array(
“sender” => $_sender_address
, “owner” => $_owner_address
, “to” => $_to_address
);
$_body = json_encode($_param);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $_url);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlObj, CURLOPT_HEADER, false);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, $_header);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlObj, CURLOPT_USERPWD, $_result[‘key_id_2’].":".$_result[‘secret_key_2’]);
curl_setopt($curlObj, CURLOPT_POST, true);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $_body);
$response = curl_exec($curlObj);
$_json = json_decode($response,true);
curl_close($curlObj);
$curlObj = null;
에러표기문구
Array
(
[code] => 1104404
[message] => Contract not found
[requestId] => bb3c72f0-85cd-99f9-94ac-6ab0d9930386
)