@@ -16,8 +16,10 @@ import {
1616 ParsedTransaction ,
1717 SignedTransaction ,
1818 SignTransactionOptions ,
19+ TokenTransferRecipientParams ,
1920 VerifyAddressOptions ,
2021 VerifyTransactionOptions ,
22+ TokenType ,
2123} from '@bitgo/sdk-core' ;
2224import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics' ;
2325import utils from './lib/utils' ;
@@ -245,18 +247,26 @@ export class Vet extends BaseCoin {
245247 } as unknown as Hash ;
246248 }
247249
248- buildNftTransferData ( params : BuildNftTransferDataOptions ) : string {
249- const { recipientAddress, fromAddress } = params ;
250+ buildNftTransferData ( params : BuildNftTransferDataOptions ) : TokenTransferRecipientParams {
251+ const { recipientAddress, fromAddress, tokenContractAddress } = params ;
250252 if ( ! utils . isValidAddress ( recipientAddress ) ) {
251253 throw new InvalidAddressError ( 'Invalid recipient address' ) ;
252254 }
253255 if ( ! utils . isValidAddress ( fromAddress ) ) {
254256 throw new InvalidAddressError ( 'Invalid from address' ) ;
255257 }
258+ if ( ! utils . isValidAddress ( tokenContractAddress ) ) {
259+ throw new InvalidAddressError ( 'Invalid NFT contract address address' ) ;
260+ }
256261 switch ( params . type ) {
257262 case 'ERC721' : {
258263 const tokenId = params . tokenId ;
259- return utils . getTransferNFTData ( fromAddress , recipientAddress , tokenId ) ;
264+ return {
265+ tokenType : TokenType . ERC721 ,
266+ tokenQuantity : '1' , // This NFT standard will always have quantity of 1
267+ tokenContractAddress,
268+ tokenId,
269+ } ;
260270 }
261271 default :
262272 throw new NotImplementedError ( `NFT type ${ params . type } not supported on ${ this . getChain ( ) } ` ) ;
0 commit comments