Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Bubblegum and Candy-wrapper #671

Merged
merged 183 commits into from
Aug 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
5dd596a
Rename programs/programs -> contracts/programs
ngundotra May 27, 2022
527bca6
Rename programs/programs -> contracts/programs
ngundotra May 27, 2022
d9403e7
fix dockerfiles
ngundotra May 27, 2022
2d6a45f
Merge branch 'anchor-restructure' of https://github.com/jarry-xiao/ca…
May 27, 2022
f465b96
Merge branch 'anchor-restructure' of https://github.com/jarry-xiao/ca…
May 27, 2022
f0f8ea2
Merge branch 'anchor-restructure' of https://github.com/jarry-xiao/ca…
ngundotra May 27, 2022
b97e2a5
fix nonce in bubblegum test
May 27, 2022
cb6b17e
Merge branch 'anchor-restructure' of https://github.com/jarry-xiao/ca…
ngundotra May 27, 2022
36f47b1
fix bubblegum nonce decoding, still failing test
ngundotra May 27, 2022
c67b4bf
rollback nonce by 1 for ownership transfer
May 27, 2022
74af0c9
fix leafNonce for all instructions in test
May 27, 2022
7403778
fix leafNonce for all instructions in test
May 27, 2022
ae10a08
remove log
ngundotra May 27, 2022
b7bacbe
fix bubblegum test
ngundotra May 27, 2022
75e0704
migrate bubblegum and bubblegum to use Vec<u8>
Jun 1, 2022
9f0f90e
set gummyroll interface back to [u8; 32]
Jun 1, 2022
5e1fd72
fix gummyroll tests
Jun 1, 2022
ddf9ce6
propagate Node as [u8;32] type changes
Jun 1, 2022
cf979bc
fix gummyroll test
Jun 1, 2022
a52448c
Merge pull request #85 from jarry-xiao/cmt-0
ngundotra Jun 1, 2022
b41ed0a
Merge pull request #85 from jarry-xiao/cmt-0
ngundotra Jun 1, 2022
f6ee778
add appendAuthority transfer test
May 26, 2022
feacbf5
add authority transfer tests
May 26, 2022
3b577a8
add gummyroll sdk, refactor tests for replace & append ixs
May 26, 2022
81cc904
add transferAuthIx to sdk, refactor tests
May 26, 2022
fd593aa
clean up gummyroll tests a little bit more
May 26, 2022
a1642d9
move merkle-roll-serde to gummyroll accounts
May 26, 2022
10794eb
add verifyLeaf tests
May 26, 2022
3280b74
Merge pull request #81 from jarry-xiao/gummyroll
ngundotra Jun 2, 2022
3e48240
Fix merge conflicts in test files
jarry-xiao Jun 3, 2022
ecf0e83
Fix merge conflicts in test files
jarry-xiao Jun 3, 2022
dc31e5f
Merge pull request #64 from jarry-xiao/gumball-machine
jarry-xiao Jun 3, 2022
bcf2e9c
Merge pull request #64 from jarry-xiao/gumball-machine
jarry-xiao Jun 3, 2022
92adec5
feat(gumball-machine): add SDK and small refactor program
samwise2 Jun 3, 2022
2c3a2e9
add solita bubblegum
Jun 6, 2022
90430a9
add readme
Jun 6, 2022
b762cce
update tests to use solita SDK
Jun 6, 2022
c244002
make solita scripts more robust
Jun 6, 2022
bead2d2
working with solita sdk
samwise2 Jun 7, 2022
e8713c7
cleanup
samwise2 Jun 7, 2022
881b4c5
cleanup
samwise2 Jun 7, 2022
7d96679
Merge pull request #94 from jarry-xiao/solita
ngundotra Jun 7, 2022
169a4fd
Jank Indexer (#95)
jarry-xiao Jun 14, 2022
c3c0c57
Jank Indexer (#95)
jarry-xiao Jun 14, 2022
2d28a8e
Jank Indexer (#95)
jarry-xiao Jun 14, 2022
89d86df
Jxiao/tree nonces (#103)
jarry-xiao Jun 15, 2022
a032e92
Jxiao/tree nonces (#103)
jarry-xiao Jun 15, 2022
184cb6d
Jxiao/tree nonces (#103)
jarry-xiao Jun 15, 2022
f08b762
Update bubblegum key (#107)
jarry-xiao Jun 16, 2022
88f9298
Update bubblegum key (#107)
jarry-xiao Jun 16, 2022
9f62476
Jxiao/bubblegum jankle refactor (#115)
jarry-xiao Jun 17, 2022
0ecf3a6
Jxiao/bubblegum jankle refactor (#115)
jarry-xiao Jun 17, 2022
2f99450
Jxiao/bubblegum jankle refactor (#115)
jarry-xiao Jun 17, 2022
508c175
fix conflicts
austbot Jun 18, 2022
6d4d23f
merge main
austbot Jun 18, 2022
f4b03fe
v1 prefix
austbot Jun 18, 2022
89809d4
v1 prefix
austbot Jun 18, 2022
fc064ea
v1 prefix
austbot Jun 18, 2022
23caedd
v1 prefix
austbot Jun 18, 2022
bc7dc75
fixed conflicts
austbot Jun 18, 2022
45f0d87
fixed conflicts
austbot Jun 18, 2022
ebc7d6e
Fixed leaf schema version in indexer
jarry-xiao Jun 19, 2022
ab0aa17
Merge pull request #114 from jarry-xiao/upsert
austbot Jun 19, 2022
90f1dad
Merge pull request #114 from jarry-xiao/upsert
austbot Jun 19, 2022
13b06bf
Merge pull request #114 from jarry-xiao/upsert
austbot Jun 19, 2022
9e220dd
adds more validation to bgum and parses redeem and cancel redeem
austbot Jun 19, 2022
26af5bf
all bgum events done
austbot Jun 20, 2022
e60ac6f
Merge pull request #116 from jarry-xiao/more-bgum-parsing
austbot Jun 20, 2022
c36939d
Project canopy (#118)
jarry-xiao Jun 22, 2022
1fc098a
Project canopy (#118)
jarry-xiao Jun 22, 2022
34b8d8b
Gumball machine bs58 (#120)
jarry-xiao Jun 23, 2022
ec76dc0
Gumball machine bs58 (#120)
jarry-xiao Jun 23, 2022
ef747e0
Add backfill script to Jankle (#119)
ngundotra Jun 23, 2022
4026b59
proofs and assets serving
austbot Jun 24, 2022
99d7545
proofs and assets serving
austbot Jun 24, 2022
9135e19
add sugar shack example compressed nft marketplace contract, test and…
samwise2 Jun 7, 2022
99fc243
add sugar shack example compressed nft marketplace contract, test and…
samwise2 Jun 7, 2022
4ff9900
Merge pull request #100 from jarry-xiao/gummyshop
samwise2 Jun 27, 2022
5968d04
Merge pull request #100 from jarry-xiao/gummyshop
samwise2 Jun 27, 2022
3c2d79f
proof serving reliably working without explosion of cl_items
austbot Jun 28, 2022
856d908
merge master
austbot Jun 28, 2022
120fd9a
merge master
austbot Jun 28, 2022
409aae7
Merge pull request #117 from jarry-xiao/api-refactor
austbot Jun 29, 2022
6ed7ab5
Merge pull request #117 from jarry-xiao/api-refactor
austbot Jun 29, 2022
2ee6d5a
Jxiao/fix log truncation (#121)
jarry-xiao Jun 30, 2022
4e4d2e1
Jxiao/fix log truncation (#121)
jarry-xiao Jun 30, 2022
6ea2a77
Jxiao/fix log truncation (#121)
jarry-xiao Jun 30, 2022
a3df476
Jxiao/fix log truncation (#121)
jarry-xiao Jun 30, 2022
f06a81b
fixes small bug with accounts and asset id for decompress and configu…
austbot Jun 30, 2022
2fcec77
fixes small bug with accounts and asset id for decompress and configu…
austbot Jun 30, 2022
11a1eee
fixes ///check
austbot Jul 1, 2022
e5192f9
Merge pull request #130 from jarry-xiao/add-config-fix-id-bug
austbot Jul 1, 2022
812d28d
Merge pull request #130 from jarry-xiao/add-config-fix-id-bug
austbot Jul 1, 2022
7100ec7
feat(cli): Add Gumball Machine CLI
jarry-xiao Jun 24, 2022
af74924
Merge pull request #127 from jarry-xiao/sorend/gumball-machine-cli
samwise2 Jul 1, 2022
f4a58a2
Block dispense when no NFTs left, and charge for multiple NFTs
samwise2 Jul 4, 2022
e4333c4
Jankle: parse bubblegum via instructions (without logs) (#128)
ngundotra Jul 5, 2022
8c67b3e
Jankle: parse bubblegum via instructions (without logs) (#128)
ngundotra Jul 5, 2022
18bedd5
Jankle: parse bubblegum via instructions (without logs) (#128)
ngundotra Jul 5, 2022
53e7a57
Add creators to gumball machine header
samwise2 Jul 4, 2022
0277f12
Merge pull request #133 from jarry-xiao/sorend/add-creators-gball-header
samwise2 Jul 6, 2022
08a89c8
CLI supports creators in gball header
samwise2 Jul 6, 2022
b85c901
CLI supports creators in gball header
samwise2 Jul 6, 2022
bf156c9
reduced info needed by gumball sdk
samwise2 Jul 6, 2022
060fd5c
initialize gumball machine indices in chunks, including cli support
samwise2 Jul 6, 2022
eb9964b
Merge pull request #139 from jarry-xiao/initialize-indices-in-chunks
samwise2 Jul 8, 2022
765c881
removed unneeded sdk params
samwise2 Jul 11, 2022
3cea079
solita upgrade and truncate fix
samwise2 Jul 11, 2022
bdfe19c
Sum creator shares to 100. Allow update receiver and creators in gumb…
samwise2 Jul 13, 2022
edb20f8
Sum creator shares to 100. Allow update receiver and creators in gumb…
samwise2 Jul 13, 2022
54bcee4
Merge pull request #147 from jarry-xiao/creator-shares-fix
samwise2 Jul 19, 2022
d60e245
Merge pull request #147 from jarry-xiao/creator-shares-fix
samwise2 Jul 19, 2022
30c6d36
fix gumball machine tests (#152)
ngundotra Jul 19, 2022
081878c
[Gummyroll] Single authority for each tree (#153)
ngundotra Jul 21, 2022
f9dcc25
[Gummyroll] Single authority for each tree (#153)
ngundotra Jul 21, 2022
83f4521
[Gummyroll] Single authority for each tree (#153)
ngundotra Jul 21, 2022
b00fdad
[Gummyroll] Single authority for each tree (#153)
ngundotra Jul 21, 2022
b1c8212
Support decompress with multiple creators, commit yarn.lock, upgrade …
samwise2 Jul 20, 2022
ae6677c
Support decompress with multiple creators, commit yarn.lock, upgrade …
samwise2 Jul 20, 2022
7513bc8
Support decompress with multiple creators, commit yarn.lock, upgrade …
samwise2 Jul 20, 2022
f69c8fa
Merge pull request #154 from jarry-xiao/decompress-multiple-creators
samwise2 Jul 24, 2022
e385246
Merge pull request #154 from jarry-xiao/decompress-multiple-creators
samwise2 Jul 24, 2022
220b25b
Merge pull request #154 from jarry-xiao/decompress-multiple-creators
samwise2 Jul 24, 2022
a830a48
tests, cli and indexer all working with new upgraded anchor client ve…
samwise2 Jul 25, 2022
087222c
aligned solita versions
samwise2 Jul 25, 2022
fe2fbd2
# This is a combination of 9 commits.
Jul 19, 2022
4014099
# This is a combination of 9 commits.
Jul 19, 2022
aee020c
# This is a combination of 9 commits.
Jul 19, 2022
d9e3b6c
Rebase auth changes on main
jarry-xiao Jul 27, 2022
3e849de
Rebase auth changes on main
jarry-xiao Jul 27, 2022
9dc8c4e
Rebase auth changes on main
jarry-xiao Jul 27, 2022
8b45b66
Fix tests and addresss max_size changes
jarry-xiao Jul 27, 2022
e0d2a2e
fixed smoke test
jarry-xiao Jul 27, 2022
b4e35ae
fixed smoke test
jarry-xiao Jul 27, 2022
ae6a7ef
Create seperate Bubblegum, Gummyroll, Gumball, SS and Utils NPM packages
samwise2 Jul 26, 2022
332e0dc
Create seperate Bubblegum, Gummyroll, Gumball, SS and Utils NPM packages
samwise2 Jul 26, 2022
0a7a7ab
Huge purge before release
jarry-xiao Aug 4, 2022
b486821
Huge purge before release
jarry-xiao Aug 4, 2022
50e0aff
Huge purge before release
jarry-xiao Aug 4, 2022
0d66b16
Huge purge before release
jarry-xiao Aug 4, 2022
4e7cbdc
mc
jarry-xiao Aug 4, 2022
66aef7e
mc
jarry-xiao Aug 4, 2022
497826d
mc
jarry-xiao Aug 4, 2022
3a2bbd9
mc
jarry-xiao Aug 4, 2022
641dc21
deps
jarry-xiao Aug 4, 2022
f5060b5
deps
jarry-xiao Aug 4, 2022
0295ff8
merge pain
jarry-xiao Aug 4, 2022
d0fba22
GBall cli fix
jarry-xiao Aug 4, 2022
e3c08b1
add back main
jarry-xiao Aug 4, 2022
ceb95ce
add files
jarry-xiao Aug 4, 2022
90b03ed
remove test
jarry-xiao Aug 4, 2022
4fa8edf
make bubblegum convenience build again
Aug 4, 2022
3038c6a
convenience
jarry-xiao Aug 4, 2022
350e36d
convenience
jarry-xiao Aug 4, 2022
5a9e08d
fix toBuffer issues
Aug 4, 2022
612d052
Merge pull request #167 from jarry-xiao/jxiao/release-purge
ngundotra Aug 5, 2022
7efc7ca
Merge pull request #167 from jarry-xiao/jxiao/release-purge
ngundotra Aug 5, 2022
6e50fea
Merge pull request #167 from jarry-xiao/jxiao/release-purge
ngundotra Aug 5, 2022
ea4a66a
Merge pull request #167 from jarry-xiao/jxiao/release-purge
ngundotra Aug 5, 2022
2554b9d
Merge remote-tracking branch 'remotes/tmp/main'
danenbm Aug 10, 2022
44b7628
Updating Bubblegum directory structure
danenbm Aug 10, 2022
fc920e2
Merge remote-tracking branch 'remotes/tmp/main'
danenbm Aug 10, 2022
6b51901
Updating Bubblegum js/sdk directory structure
danenbm Aug 10, 2022
8898794
Merge remote-tracking branch 'remotes/tmp/main'
danenbm Aug 10, 2022
61d0baa
Updating Bubblegum tests directory structure
danenbm Aug 10, 2022
344538e
Merge remote-tracking branch 'remotes/tmp/main'
danenbm Aug 10, 2022
c1201ce
Updating Candy-wrapper directory structure
danenbm Aug 10, 2022
c3f8b7a
Adding api:gen script to bubblegum js directory
danenbm Aug 10, 2022
1a68c2e
enable bubblegum anchor tests
Aug 10, 2022
120fe90
Moving bubblegum js dependencies to bubblegum specific package.json
danenbm Aug 11, 2022
0ccadbd
Removing extra tsconfig file and adding typedoc file
danenbm Aug 11, 2022
6c6410e
Moved and renamed index.ts to src directory
danenbm Aug 11, 2022
028bd5e
Removing Anchor workspace additions and nonworking yarn scripts
danenbm Aug 12, 2022
302ed9c
Merge branch 'master' into danenbm/add-bubblegum-hist
danenbm Aug 12, 2022
2497d82
Updating yarn.lock file
danenbm Aug 12, 2022
a38a98b
Adding empty api:gen script for candy-wrapper to support CI tests
danenbm Aug 12, 2022
a526c15
Merge branch 'master' into danenbm/add-bubblegum-hist
danenbm Aug 12, 2022
3f2fe0b
Adding back in the js scripts that were previously removed
danenbm Aug 12, 2022
0d590db
Merge branch 'master' into danenbm/add-bubblegum-hist
danenbm Aug 12, 2022
2bd19d4
Updating yarn.lock file
danenbm Aug 12, 2022
5f29a6b
Excluding candy-wrapper from github verify workflow
danenbm Aug 12, 2022
8b60f42
Updating yarn.lock file
danenbm Aug 12, 2022
eb60fbe
Renaming bubblegum to mpl-bubblegum and candy-wrapper to mpl-candy-wr…
danenbm Aug 12, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/verify-lib-on-pr-open.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ jobs:
with:
# exclude packages either do not have `js` dirs or do not have `api:gen` scripts in their local package.json
script: |
const exclude = ['metaplex', 'auction', 'core', 'nft-packs']
const exclude = ['metaplex', 'auction', 'core', 'nft-packs', 'candy-wrapper']
const files = ${{ steps.map-changed-files-to-pkg.outputs.result }}
const result = files
.filter(f => !exclude.includes(f))
Expand Down
5 changes: 4 additions & 1 deletion Anchor.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ cluster = "localnet"
wallet = "~/.config/solana/id.json"

[programs.localnet]
mpl_auction_house="hausS13jsjafwWwGqZTUQRmWyvyxn9EQpqMwV1PBBmk"
auction_house="hausS13jsjafwWwGqZTUQRmWyvyxn9EQpqMwV1PBBmk"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Informational note on why this was changed: when trying to anchor test --skip-lint, I got errors related to not being able to find IDL for mpl_auction_house. I realized this is because the IDL generated and stored in the MPL root target/idl/ directory was called auction_house.json and had name field auction_house.

So tldr; it looks like anchor was expecting mpl_auction_house (based on this naming) but found auction_house. But, I guess this doesn't matter if we aren't using Anchor workspaces.

bubblegum="BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY"

[[test.genesis]]
address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
Expand Down Expand Up @@ -34,4 +35,6 @@ members = [
"token-metadata/program",
"auction-house/program",
"fixed-price-sale/program",
"bubblegum/program",
"candy-wrapper/program"
]
4 changes: 3 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@ exclude = [
"fixed-price-sale/cli",
"token-metadata",
"auction-house/program",
"candy-machine/program"
"candy-machine/program",
"bubblegum/program",
"candy-wrapper/program",
]
2 changes: 1 addition & 1 deletion auction-house/js/test/account.auction-house.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AccountInfo, Keypair, PublicKey } from '@solana/web3.js';
import { AuctionHouse, AuctionHouseArgs } from 'src/generated';
import { AuctionHouse, AuctionHouseArgs } from '../src/generated';
import test from 'tape';
import spok from 'spok';

Expand Down
13 changes: 13 additions & 0 deletions bubblegum/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Smart Contracts

`gummyroll` will be managed by solana-labs

`bubblegum`, `gumball-machine` and `sugar-shack` are managed by metaplex-foundation

### Testing

Testing contracts locally: `anchor test`

Testing contracts against indexer + api: `anchor test --skip-build --skip-local-validator --skip-deploy` and limit the test script to only the continuous test.


16 changes: 16 additions & 0 deletions bubblegum/js/.solitarc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// @ts-check
const path = require('path');
const programDir = path.join(__dirname, '..', 'program');
const idlDir = path.join(__dirname, 'idl');
const sdkDir = path.join(__dirname, 'src', 'generated');
const binaryInstallDir = path.join(__dirname, '.crates');

module.exports = {
idlGenerator: 'anchor',
programName: 'bubblegum',
programId: 'BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY',
idlDir,
sdkDir,
binaryInstallDir,
programDir,
};
202 changes: 202 additions & 0 deletions bubblegum/js/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [2022] [Metaplex Foundation]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
14 changes: 14 additions & 0 deletions bubblegum/js/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Bubblegum

This SDK uses MPL's `Solita` to generate typescript SDK for `anchor` smart-contract.

Solita is particularly helpful:
- Enums: (i.e. TokenProgramVersion)
- Complex types: (ie MetadataArgs support)
- Using typed system to identify issues with smart contract args

### Install

1. `yarn`
2. `node solita.js`
3. `import { ... } from '../sdk/bubblegum'`
Loading