Skip to content

Commit

Permalink
feat: Added isDeleted and TokenRelationships to contract_info
Browse files Browse the repository at this point in the history
  • Loading branch information
andrix10 committed Nov 9, 2020
1 parent 1aecb24 commit 006aa9d
Showing 1 changed file with 38 additions and 15 deletions.
53 changes: 38 additions & 15 deletions contract_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ type ContractInfo struct {
Storage uint64
ContractMemo string
Balance uint64
IsDeleted bool
TokenRelationships map[TokenID]TokenRelationship
}

func newContractInfo(accountID AccountID, contractID ContractID, contractAccountID string, adminKey PublicKey, expirationTime time.Time,
autoRenewPeriod time.Duration, storage uint64, ContractMemo string) ContractInfo {
autoRenewPeriod time.Duration, storage uint64, ContractMemo string, isDeleted bool, tokenRelationship map[TokenID]TokenRelationship) ContractInfo {
return ContractInfo{
AccountID: accountID,
ContractID: contractID,
Expand All @@ -28,6 +30,8 @@ func newContractInfo(accountID AccountID, contractID ContractID, contractAccount
AutoRenewPeriod: autoRenewPeriod,
Storage: storage,
ContractMemo: ContractMemo,
IsDeleted: isDeleted,
TokenRelationships: tokenRelationship,
}
}

Expand All @@ -37,31 +41,50 @@ func contractInfoFromProtobuf(contractInfo *proto.ContractGetInfoResponse_Contra
return ContractInfo{}, err
}

var tokenRelationship = make(map[TokenID]TokenRelationship, len(contractInfo.TokenRelationships))
if contractInfo.TokenRelationships != nil {
for _, relation := range contractInfo.TokenRelationships {
tokenRelationship[tokenIDFromProtobuf(relation.TokenId)] = tokenRelationshipFromProtobuf(relation)
}
}

return ContractInfo{
AccountID: accountIDFromProtobuf(contractInfo.AccountID),
ContractID: contractIDFromProtobuf(contractInfo.ContractID),
ContractAccountID: contractInfo.ContractAccountID,
AdminKey: PublicKey{
keyData: adminKey.toProtoKey().GetEd25519(),
},
ExpirationTime: timeFromProtobuf(contractInfo.ExpirationTime),
AutoRenewPeriod: durationFromProtobuf(contractInfo.AutoRenewPeriod),
Storage: uint64(contractInfo.Storage),
ContractMemo: contractInfo.Memo,
Balance: contractInfo.Balance,
ExpirationTime: timeFromProtobuf(contractInfo.ExpirationTime),
AutoRenewPeriod: durationFromProtobuf(contractInfo.AutoRenewPeriod),
Storage: uint64(contractInfo.Storage),
ContractMemo: contractInfo.Memo,
Balance: contractInfo.Balance,
IsDeleted: contractInfo.Deleted,
TokenRelationships: tokenRelationship,
}, nil
}

func (contractInfo *ContractInfo) toProtobuf() *proto.ContractGetInfoResponse_ContractInfo {
var tokenRelationship = make([]*proto.TokenRelationship, len(contractInfo.TokenRelationships))
count := 0
if len(tokenRelationship) > 0 {
for _, relation := range contractInfo.TokenRelationships {
tokenRelationship[count] = relation.toProtobuf()
count++
}
}

return &proto.ContractGetInfoResponse_ContractInfo{
ContractID: contractInfo.ContractID.toProtobuf(),
AccountID: contractInfo.AccountID.toProtobuf(),
ContractAccountID: contractInfo.ContractAccountID,
AdminKey: contractInfo.AdminKey.toProtoKey(),
ExpirationTime: timeToProtobuf(contractInfo.ExpirationTime),
AutoRenewPeriod: durationToProtobuf(contractInfo.AutoRenewPeriod),
Storage: int64(contractInfo.Storage),
Memo: contractInfo.ContractMemo,
Balance: contractInfo.Balance,
ContractID: contractInfo.ContractID.toProtobuf(),
AccountID: contractInfo.AccountID.toProtobuf(),
ContractAccountID: contractInfo.ContractAccountID,
AdminKey: contractInfo.AdminKey.toProtoKey(),
ExpirationTime: timeToProtobuf(contractInfo.ExpirationTime),
AutoRenewPeriod: durationToProtobuf(contractInfo.AutoRenewPeriod),
Storage: int64(contractInfo.Storage),
Memo: contractInfo.ContractMemo,
Balance: contractInfo.Balance,
TokenRelationships: tokenRelationship,
}
}

0 comments on commit 006aa9d

Please sign in to comment.