Skip to content

Commit

Permalink
feat(users): migrate to last version of users program
Browse files Browse the repository at this point in the history
  • Loading branch information
pavlzk authored and stavares843 committed May 17, 2022
1 parent 77688d9 commit 43c04d9
Show file tree
Hide file tree
Showing 3 changed files with 261 additions and 1 deletion.
2 changes: 1 addition & 1 deletion config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export const Config = {
groupchatsProgramId: 'bJhvwTYCkQceANgeShZ4xaxUqEBPsV8e1NgRnLRymxs',
defaultCommitment: 'confirmed' as Commitment,
defaultPreflightCommitment: 'confirmed' as Commitment,
usersProgramId: '7MaC2xrAmmFsuRBEkD6BEL3eJpXCmaikYhLM3eKBPhAH',
usersProgramId: '8n2ct4HBadJdtr8T31JvYPTvmYeZyCuLUjkt3CwcSsh9',
},
// Realms are just different chains we support
realms: [
Expand Down
60 changes: 60 additions & 0 deletions libraries/Solana/UsersProgram/UsersProgram.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ export default class UsersProgram extends EventEmitter {
name: userInfo.name as string,
photoHash: userInfo.photoHash as string,
status: userInfo.status as string,
bannerImageHash: userInfo.bannerImageHash as string,
extra1: userInfo.extra1 as string,
extra2: userInfo.extra2 as string,
}
}

Expand Down Expand Up @@ -247,6 +250,63 @@ export default class UsersProgram extends EventEmitter {
signers: [payer],
})
}

/**
* @method setBannerImageHash
* Allow the user to update the profile banner image
* @param bannerImageHash profile banner image IPFS hash
* @returns the transaction signature
*/
async setBannerImageHash(bannerImageHash: string): Promise<string> {
const { program, userPDA, payer } = await this._getUpdateOpts()

return program.rpc.setBannerImageHash(bannerImageHash, {
accounts: {
user: userPDA[0],
signer: payer.publicKey,
payer: payer.publicKey,
},
signers: [payer],
})
}

/**
* @method setExtraOne
* Allow the user to update the first extra field of profile
* @param value extra field value
* @returns the transaction signature
*/
async setExtraOne(value: string): Promise<string> {
const { program, userPDA, payer } = await this._getUpdateOpts()

return program.rpc.setExtraOne(value, {
accounts: {
user: userPDA[0],
signer: payer.publicKey,
payer: payer.publicKey,
},
signers: [payer],
})
}

/**
* @method setExtraTwo
* Allow the user to update the second extra field of profile
* @param value extra field value
* @returns the transaction signature
*/
async setExtraTwo(value: string): Promise<string> {
const { program, userPDA, payer } = await this._getUpdateOpts()

return program.rpc.setExtraTwo(value, {
accounts: {
user: userPDA[0],
signer: payer.publicKey,
payer: payer.publicKey,
},
signers: [payer],
})
}
}

export type UserInfo = Awaited<ReturnType<UsersProgram['getUserInfo']>>
200 changes: 200 additions & 0 deletions libraries/Solana/UsersProgram/UsersProgram.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,84 @@ export type Users = {
},
]
},
{
name: 'setBannerImageHash'
accounts: [
{
name: 'user'
isMut: true
isSigner: false
},
{
name: 'signer'
isMut: false
isSigner: true
},
{
name: 'payer'
isMut: true
isSigner: true
},
]
args: [
{
name: 'bannerImageHash'
type: 'string'
},
]
},
{
name: 'setExtraOne'
accounts: [
{
name: 'user'
isMut: true
isSigner: false
},
{
name: 'signer'
isMut: false
isSigner: true
},
{
name: 'payer'
isMut: true
isSigner: true
},
]
args: [
{
name: 'extra1'
type: 'string'
},
]
},
{
name: 'setExtraTwo'
accounts: [
{
name: 'user'
isMut: true
isSigner: false
},
{
name: 'signer'
isMut: false
isSigner: true
},
{
name: 'payer'
isMut: true
isSigner: true
},
]
args: [
{
name: 'extra2'
type: 'string'
},
]
},
]
accounts: [
{
Expand All @@ -138,6 +216,18 @@ export type Users = {
name: 'status'
type: 'string'
},
{
name: 'bannerImageHash'
type: 'string'
},
{
name: 'extra1'
type: 'string'
},
{
name: 'extra2'
type: 'string'
},
]
}
},
Expand All @@ -153,6 +243,16 @@ export type Users = {
name: 'PayerMismatch'
msg: 'Account was not created by provided user'
},
{
code: 6002
name: 'IncorrectField'
msg: 'The field is too short or too long'
},
{
code: 6003
name: 'InputError'
msg: 'Parameters order mismatch'
},
]
}

Expand Down Expand Up @@ -277,6 +377,84 @@ export const IDL: Users = {
},
],
},
{
name: 'setBannerImageHash',
accounts: [
{
name: 'user',
isMut: true,
isSigner: false,
},
{
name: 'signer',
isMut: false,
isSigner: true,
},
{
name: 'payer',
isMut: true,
isSigner: true,
},
],
args: [
{
name: 'bannerImageHash',
type: 'string',
},
],
},
{
name: 'setExtraOne',
accounts: [
{
name: 'user',
isMut: true,
isSigner: false,
},
{
name: 'signer',
isMut: false,
isSigner: true,
},
{
name: 'payer',
isMut: true,
isSigner: true,
},
],
args: [
{
name: 'extra1',
type: 'string',
},
],
},
{
name: 'setExtraTwo',
accounts: [
{
name: 'user',
isMut: true,
isSigner: false,
},
{
name: 'signer',
isMut: false,
isSigner: true,
},
{
name: 'payer',
isMut: true,
isSigner: true,
},
],
args: [
{
name: 'extra2',
type: 'string',
},
],
},
],
accounts: [
{
Expand All @@ -296,6 +474,18 @@ export const IDL: Users = {
name: 'status',
type: 'string',
},
{
name: 'bannerImageHash',
type: 'string',
},
{
name: 'extra1',
type: 'string',
},
{
name: 'extra2',
type: 'string',
},
],
},
},
Expand All @@ -311,5 +501,15 @@ export const IDL: Users = {
name: 'PayerMismatch',
msg: 'Account was not created by provided user',
},
{
code: 6002,
name: 'IncorrectField',
msg: 'The field is too short or too long',
},
{
code: 6003,
name: 'InputError',
msg: 'Parameters order mismatch',
},
],
}

0 comments on commit 43c04d9

Please sign in to comment.