Skip to content

Commit 0fd76bd

Browse files
fix(sdk-coin-sol): create broadcast tx for 2022 token
TICKET: WIN-6819
1 parent 49c9c43 commit 0fd76bd

File tree

3 files changed

+82
-5
lines changed

3 files changed

+82
-5
lines changed

modules/sdk-coin-sol/src/lib/tokenTransferBuilder.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,14 @@ export class TokenTransferBuilder extends TransactionBuilder {
162162
let tokenAddress: string;
163163
let tokenName: string;
164164
let programId: string | undefined;
165-
if (recipient.tokenAddress && recipient.programId) {
166-
tokenName = recipient.tokenName;
167-
tokenAddress = recipient.tokenAddress;
168-
programId = recipient.programId;
169-
} else if (coin) {
165+
if (coin) {
170166
tokenName = coin.name;
171167
tokenAddress = coin.tokenAddress;
172168
programId = coin.programId;
169+
} else if (recipient.tokenAddress && recipient.programId) {
170+
tokenName = recipient.tokenName;
171+
tokenAddress = recipient.tokenAddress;
172+
programId = recipient.programId;
173173
} else {
174174
throw new Error(`Could not determine token information for ${recipient.tokenName}`);
175175
}

modules/sdk-coin-sol/test/fixtures/sol.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,73 @@ export const ovcResponse = {
774774
],
775775
};
776776

777+
export const ovcResponse1 = {
778+
signatureShares: [
779+
{
780+
txRequest: {
781+
transactions: [
782+
{
783+
unsignedTx: {
784+
serializedTx:
785+
'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYJm8vvmG/mNJu4C5kO4WhlMcbT4KVGaOBPzuCDbkObKmYjMY2LbuKyUpEbZOKoMKAoE/jdCpwmd+Gl0v8v3lDPxq4QVKhRREb/BUK0Cp1zNLDNdkc/teKqH+hcxvAU3BKWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA6xfYoS5WNYtTPd5NM41tJdwdrwowp27RyoJ+tJ4154yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZ9mZ6kmvJbJbqUQBH8oUhTvQ3Lm5baZUT3MTIwW1kg9UGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAbd9uHudY/eGEJdvORszdq2GvxNg7kNJ/69+SjYoYv8swsvfMxX8TuuomUFaNib8ODP4cc0RY8ZowseB+vBZ8cCBQcAAgYEAwgHAAgEAQQCAAoMAMqaOwAAAAAJ',
786+
scanIndex: 0,
787+
coin: 'tsol',
788+
signableHex:
789+
'010006099bcbef986fe6349bb80b990ee1686531c6d3e0a54668e04fcee0836e439b2a6623318d8b6ee2b252911b64e2a830a02813f8dd0a9c2677e1a5d2ff2fde50cfc6ae1054a8514446ff0542b40a9d7334b0cd76473fb5e2aa1fe85cc6f014dc1296000000000000000000000000000000000000000000000000000000000000000040eb17d8a12e56358b533dde4d338d6d25dc1daf0a30a76ed1ca827eb49e35e78c97258f4e2489f1bb3d1029148e0d830b5a1399daff1084048e7bd8dbe9f859f6667a926bc96c96ea510047f285214ef4372e6e5b699513dcc4c8c16d6483d506a7d517192c5c51218cc94c3d4af17f58daee089ba1fd44e3dbd98a0000000006ddf6e1ee758fde18425dbce46ccddab61afc4d83b90d27febdf928d8a18bfcb30b2f7ccc57f13baea2650568d89bf0e0cfe1c734458f19a30b1e07ebc167c702050700020604030807000804010402000a0c00ca9a3b0000000009',
790+
derivationPath: 'm/0',
791+
parsedTx: {
792+
inputs: [
793+
{
794+
address: 'BVAZCQTEeAsZXb4qGZcHLaU7UUeLNx9kYiE3QbvP5Txh',
795+
valueString: '1000000000',
796+
value: 1000000000,
797+
},
798+
],
799+
outputs: [
800+
{
801+
address: 'CiUPBFiVKkXcuVhJi9pz9yYd8DKsebRgKqeeorUP7GzZ',
802+
valueString: '1000000000',
803+
coinName: 'tsol:t22mint',
804+
},
805+
],
806+
spendAmount: '1000000000',
807+
type: '',
808+
},
809+
feeInfo: {
810+
fee: 2044280,
811+
feeString: '5000',
812+
},
813+
coinSpecific: {
814+
commonKeychain:
815+
'e4b39344a97b895691482f0fa9005cc56542a18939aceb0a714ecf80ef6344e77cb8682d6755fb9f91269fb3ee02f8fccd0af824a904c30f781e3f7c51f652db',
816+
},
817+
},
818+
signatureShares: [],
819+
signatureShare: {
820+
from: 'backup',
821+
to: 'user',
822+
share:
823+
'8d67d1b5b1c95ee9e7b8337ebce36399270e17193be98fa7dca85246be838d7ecf21922c583a77a68ab892b6338f433cbd6e643abced4820b48168dde864ea05',
824+
publicShare: '9bcbef986fe6349bb80b990ee1686531c6d3e0a54668e04fcee0836e439b2a66',
825+
},
826+
},
827+
],
828+
walletCoin: 'tsol',
829+
},
830+
tssVersion: '0.0.1',
831+
ovc: [
832+
{
833+
eddsaSignature: {
834+
y: '9bcbef986fe6349bb80b990ee1686531c6d3e0a54668e04fcee0836e439b2a66',
835+
R: '8d67d1b5b1c95ee9e7b8337ebce36399270e17193be98fa7dca85246be838d7e',
836+
sigma: 'f933cd116148b2e69d54bd14330c21496b0f562c3a1fe0c589ec83f03e5d4202',
837+
},
838+
},
839+
],
840+
},
841+
],
842+
};
843+
777844
export const ovcResponse2 = {
778845
signatureShares: [
779846
{

modules/sdk-coin-sol/test/unit/sol.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1840,6 +1840,16 @@ describe('SOL:', function () {
18401840
(recoveryTxn.lastScanIndex ?? 0).should.equal(0);
18411841
});
18421842

1843+
it('should take sol 2022 token OVC output and generate a signed sweep transaction', async function () {
1844+
const params = testData.ovcResponse;
1845+
const recoveryTxn = await basecoin.createBroadcastableSweepTransaction(params);
1846+
recoveryTxn.transactions[0].serializedTx.should.equal(
1847+
'AvR+L909kzRq6NuaUe9F6Jt97MOiFs7jpW8MuOrwz4EbKF40d31dci/bgLTq4gpk/Hh3s5cA8FtbLkDQr15PqAE7yd8LOXvsLtO2REqMM/OCZ8wItfsqfTfia2xIfibRW3wHgw63jiaojbXeSqaYajJ/Ca7YwBUz5blydI3fYLgPAgECBsLVtfT7mpvNii8wPk0G942N7TAHE/RW2iq/8LPqAYWqBRo0vIrNQ4djl2+Wh2EVBQ9zgoVTVm0RHXrIv/6/WHxPX1mHv+JqpmAT79ltNjYPK0M2yR+ZMln7VgUTBWFNQvLqE/j/nXlY2/JpxuNr/fXLXEPeS04dPvt9qz1dAoYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAADpiH20cxLj7KnOaoI5ANNoPxYjs472FdjDeMPft3kXdAgQDAgUBBAQAAAAEAgADDAIAAADwopo7AAAAAA=='
1848+
);
1849+
(recoveryTxn.transactions[0].scanIndex ?? 0).should.equal(0);
1850+
(recoveryTxn.lastScanIndex ?? 0).should.equal(0);
1851+
});
1852+
18431853
it('should take consolidation OVC output and generate multiple signed sweep transactions', async function () {
18441854
const params = testData.ovcResponse2;
18451855
const recoveryTxn = await basecoin.createBroadcastableSweepTransaction(params);

0 commit comments

Comments
 (0)